手写体汉字识别(分割+卷积识别)[2021课设论文]

本文探讨了使用卷积神经网络(CNN)进行手写汉字识别的课设项目,重点介绍了图像预处理和模型搭建。通过TensorFlow 2.0,实现了模型一和模型二,两者在测试中均达到95%以上的准确率。预处理包括灰度处理、二值化和尺寸统一。虽然遇到了汉字裁剪和图像旋转问题,但整体效果满意。
摘要由CSDN通过智能技术生成

     本文为课设论文:对于汉字数字的识别,模型搭建和代码并不是难点,预处理才显得重要和困难。虽然模型准确率能达到90%~95%,但是也存在没解决的问题。
     如有需要,可以私信提供完整代码工程及其数据集。(tensorflow2搭建模型 pandas数据处理 matplotlib可视化显示 )

1选题背景

       随着时代的不断进步和技术的发展,网络社交媒体的兴起也带来了图像数据的“爆炸性”增长。作为人们日常交流的主要方式之一,图像因其内容丰富,直观等优点而被广泛用作交流的载体。基于卷积神经网络的图像识别是图像识别领域中重要应用,通过使用图像进行特征值提取,识别和卷积等一系列算法运算来识别和分析不同的图像。人工智能的飞速发展使得机器学习在其研究领域中越来越重要。使用算法学习每条数据并预测结果。这已成为打开人工智能之门的重要钥匙。在机器视觉中,图像识别是基础,但是如何将图像中的低级信息与高级图像语义相关联成为图像识别的关键问题。

       本文中所需要解决的问题是:针对含有若干汉字(0-10)的图像,能够自动检测并识别出图像中的汉字。

2卷积神经网络概述

       卷积神经网络是在早些年提出的,近年来人工智能的快速发展使这种模型重新回到学者的视野。它在图像技术,生物医学技术,工业生产等领域起着重要作用。神经网络的最早概念是由科学家在人类神经系统中扩展的,它模仿了人类神经系统并提出了神经网络的概念。从神经网络的概念出发,卷积神经网络得到了进一步的改进,该模型的出现为机器视觉带来了好消息。

       我们选择CNN卷积神经网络而不是选择传统机器学习方法在于卷积神经网络具备以下几点优势:首先CNN不需要人工去提取特征,传统的机器学习需要人工提取特征.;其次传统的机器学习表达能力有限,深度学习表达能力强;最后深度学习适合处理大数据,而数据量比较小的时候,用传统机器学习方法也许更合适。

3主要主要工具库说明

       tensorflow2:我们选择TensorFlow 2.0 替代1.0版本,在于代码上的简洁性,可用性和灵活性,可以极大程度上增快我们的开发效率。

       使用numpy,pandas进行基本的数据挖掘与处理。

       使用 matplotlib,cv2进行图像的读取显示,转化处理。

4样本数据获取方式

数据网站:http://www.nlpr.ia.ac.cn/databases/handwriting/download.html
在这里插入图片描述

       我们从网站中选择了如上图的四个部分的数据作为训练数据和测试数据,然后查询数字汉字字符的GB2312编码十进制格式。从所有汉字类别中选择出汉字(0-10)。
在这里插入图片描述

       最终我们获取0-10共11个类别。样本数量如下:
在这里插入图片描述

5算法实现

5.1图片预处理

       我们从训练集中随机选择40张原始样本图片显示如下:
在这里插入图片描述

       紧接着我们判断图像是RGB三通道,所以我们需要将RGB三通道图像转为灰度。对图像进行灰度处理的同时我们Resize操作统一图片尺寸为(32,32),结果如下:
在这里插入图片描述

       此时图片从三通道转换成一通道,随后设置阈值,对图片进行二值化处理,得到如下图:

在这里插入图片描述

       我们可以明显看出,数字特征更为明显,并且像素点非0即1更有利于计算。同时我们考虑了进行腐蚀和膨胀,但从结果可知,对精度影响不大,在此不多做声明。

5.2模型搭建

       由于数字类别过于简单,样本特征比较明显,初步没有考虑使用经典卷积神经网络,例如AlexNet、VGG、GoogLeNet、ResNet,如果选择了深层的经典神经网络那就意味着需要训练更多的参数以及更多的样本数量,如果后期的训练结果不理想可以考虑使用。

       开始我们搭建了两个网络结构:

       模型一:

       在这个模型中,卷积核的大小都是33,步长都是采用默认的1。这是由于参考了经典模型vgg,两个33的卷积等价与55的卷积,三个33的卷积等价与7*7的卷积。这样的目的是为了减少训练参数的参数,同时增加层数可以提高分类结果的精度。但绝对不是层数越多效果一定越好,在RetNet模型论文中有提到可能产生退化问题,但是本模型的深度远远达不到,无需担心。模型中使用的激活函数都是relu。
在这里插入图片描述

       具体参数使用如上表所示,我们可以将模型一称为五层结构:

  • 1.第一层:两个3*3的卷积核进行卷积。
  • 2.第二层:最大池化(在AlexNet经典模型论文有提到,平均池化更为模糊,所以这边选择了最大池化)。
  • 3.第三层:三个3*3的卷积核进行卷积。
  • 4.第四层:最大池化操作。
  • 5.第五层:两次全连接+Dropout 防止过拟合。

       在第二个模型中,我们进行了三次卷积,两次最大池化,两次全连接以及Dropout 防止过拟合。具体参数使用如下表。
在这里插入图片描述

6结果说明

6.1 原始图形样本训练结果

模型一训练结果如下:

在这里插入图片描述

模型一 训练集和测试集的损失率及准确率迭代变化如下图:
在这里插入图片描述

在这里插入图片描述

       我们随机取40个样本进行测试展示,其中红色标签为预测错误,结果如下图(补充说明:显示的为预处理后的图像):
在这里插入图片描述

模型二的训练结果如下:

在这里插入图片描述

模型二训练集和测试集的损失率及准确率迭代变化如下图:
在这里插入图片描述

在这里插入图片描述

       我们随机取40个样本进行测试展示,其中红色标签为预测错误,结果如下图:

  • 28
    点赞
  • 117
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 39
    评论
评论 39
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Windalove

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值