作者将基于经典的VGG-Net进行改进,构建出适合手写体汉字识别的浅层卷积神经网络模型,这个模型将适用于对3755个常用一级汉字的识别。在tensorflow环境下完成实验,得到的模型在验证集中的accuracy准确度可以达到97.44%,并且在作者书写及网上收集的手写汉字样本表现良好,并进一步对结果进行分析。 其次简要概述了深度学习的几种经典网络模型结构,并基于迁移学习的方法对它们进行实现。并进行与自己所改进的浅层CNN进行一个对比。 所使用的的配置如下
设备限制加上时间紧迫做的内容也不是很多与复杂,但也能顺利识别所写的图片。
将分成俩个实验:1.浅层CNN 2.迁移学习策略 所使用的数据集是由中科院自动化模式识别国家实验室在2010年05月所发布,其中分别有在线数据集与离线数据集。作者所使用的是CASIA-HWDB1.1数据集,包含了240张训练图片、60张测试图片,共有1,176,000 张手写图片。
1.浅层CNN及调参思路。
(ps:作者之前毕业时间紧迫只对learning rate 进行一个调整而已哈哈哈哈。)
本次实验是采用的是设计的网络结构,所改进模型训练而来,总汉字类别3755个,总共训练图片张数为1,176,000,其中验证集图片张数为223,987,初始化learning rate设置为0.1。 通过15000次的训练发现模型损失值一直居于0.9上下,无法再降低损失值。由于损失无法再下降,尝试通过改变learning rate,把learning rate的值设置为0.1,0.01,0.001,0.0001进行一个对比实验,得到的结果如图所示,当学习率为0.01,0.001,0.0001时损失值已经发生重叠,可以看到损失值已经得到提升,且准确率也得到了提升,综合损失值与准确率,最终确定学习率的最优参数为0.0001。 因此,learning rate选择0.01,由于batch size的大小为64,所以进行15000次训练,其实总样本只进行了约1轮次的训练,最后,对总样本进行15次训练,也就是对batch size为64张图片进行210000次训练。最终,在验证集accuracy准确度可以达到了97.44%,已经高于人类肉眼可识别的96.13%,已经达到理想水平。
2.迁移学习策略及调参思路
使用的数据集同上面实验,都将它们都进行15轮训练,结果如下图5-2所示,可以明显发现,ResNet在训练集中的表现最好,可以达到96.04%。但是它们在验证集上的表现却效果不佳,VGG16、VGG19、InceptionV3、ResNet50的验证集表现为58.30%、54.16%、45.53%、70.09%。
可以发现表现,训练集表现很好,在验证集表现很差,存在着过拟合,还需要进一步调参。最后对特征图与drop out rate 进行调整,最后的结果,由于之前毕设时间比较赶,所以就只有做到这个程度了。 最后给大家演示一下浅层CNN模型实际识别效果呀!!!! 自己写的几张照片哈哈哈
从baidu上找到几张图片 最后从测试集找几张图片看看哪些图片识别不出来,可以从下面俩张发现用人眼也很难识别出来哈哈哈哈。 由于这段比较闲就写了这个,之前做的毕业设计,确实也挺辛苦的,不容易。顺利毕业了反正哈哈哈,有问题和需要的同学可以问我,后续我也会对代码进行一个整理与上传到Github。 最后,声明一下,由于毕业好几个月了,电脑也进行了重装,有需要代码的,作者将在后续将代码上传到GitHub,耐心等待。后续也会将链接附在这
|