【手写汉字识别】基于深度学习的脱机手写汉字识别技术研究
写在前面
最近一段时间在为本科毕业设计做一些知识储备,方向与手写识别的系统设计相关,在看到一篇2019年题为《基于深度学习的脱机手写汉字识别技术研究》的工学硕士论文后,感觉收获比较大,准备把自己的总结和一些想法记录下来,本篇文章只记录本人感兴趣部分
一、发展
- 1966年,IBM 公司R.Casey、G.Nagy发表了关于印刷汉字识别的论文,使用方法是模板匹配,1000个汉字
- 1977年,日本东芝公司开发出首个可以识别2000个不同汉字的印刷体汉字识别系统
- 80年代,GB2312-80字符集诞生
- 1981年,IBM公司的E. F. Yhap等开发了联机手写汉字识别系统,该系统基于汉字笔画,字根编码的思想对汉字进行识别,对920字有91.1%识别率,对2260字有79.9%识别率
- 1988年,国内刘迎键等人提出利用笔段为基元的联机手写汉字识别技术,手写正楷汉字,识别字典可达6763-12000,可达95%识别率
- 1996年,中科院自动化研究所开发出一套脱机手写汉字识别系统,其适用于特定的人群,识别率可以达到93.6%
二、方法
1.传统方法
主要包括数据预处理、特征提取(压缩)和分类识别几部分
- 数据预处理主要包括样本归一化、整形变换、伪样本生成等。
- 特征提取部分可以分为结构特征和统计特征两种,结构特征主要对汉字结构、笔画或部件进行分析来提取,统计特征主要是方向特征,Gabor特征及梯度特征
- 压缩方法有PCA、FDA、DFE
- 分类器常用,MQDF、SVM、HMM、DLQDF、LVQ
2.深度学习方法
2011和2013年ICDAR手写汉字识别比赛使用的都是基于深度学习或神经网络方法,且获得了第一名的成绩(文中貌似没有具体阐述深度学习方法对这一块的发展内容)
三、深度学习研究现状
BP、LeNet-5、DBN、AlexNet、GoogLeNet、VGGNet、RCNN、深度强化学习、指针网络、ResNet、胶囊网络、RNN(LSTM)
四、研究难点
分类数量多、风格差异多、形近字多(GB2312-80标准)
五、本文特点
1.提取汉字图像的八方向梯度特征,使用八方向梯度特征图像作为卷积神经网络的输入,提升了汉字识别的准确率
2.使用深度可分离卷积方式进行卷积,相比于常规卷积,即减少了模型参数又提升了模型识别效果
3.形近字难以识别问题,对卷积神经网络损失函数进行改进,使用 Softmax 损失函数和Center Loss函数作为卷积神经网络的联合损失函数,增大不同类别汉字的类间距离,提升相似手写汉字识别准确率;提出使用卷积神经网络加支持向量机的方法对相似手写汉字进行识别
六、使用的方法
输入图像、图像预处理(对比度增强+尺寸归一化)、八方向梯度特征提取、设计网络(20种网络,均为3x3的卷积核,stride=2,0填充,2x2的max pooling,softmax,将每一个Net的正常卷积改为可分离卷积),超参数包括分类器、损失函数(交叉熵损失函数)、优化器(Adadelta)、权重初始化(W均值0,标准差0.01;b为0)、激活函数(ReLU)、Dropout(50%)、Batch Size(128),做了过程可视化
七、使用的数据集
CASIA-HWDB1.1做训练、ICDAR-2013做测试
八、结果和简要分析
上表可以看到八方向梯度特征整体要比原图输入要好,另外可分离卷积比常规卷积整体要好
上表可以看到网络越复杂, 周期和训练时间越长
上面两表的结论在第一个表分析中已经可以体现
本文使用的最好的模型的的准确率相对还是比较高,存储量底是一个特点
九、总结和想法
花了大概两个小时看完,作为第一篇比较深入研读的论文,这篇论文给我的信息非常多。
- 首先是发展历史,学习一个领域,了解其发展历史是十分有必要的,脱机手写汉字识别的历史大概有半个世纪,至目前位置,使用深度学习的方法要远甚于传统方法,这当然与神经网络强大的非线性函数逼近能力有着莫大的关系。
- 其次是方法研究,传统方法进行目标识别(分类),使用预处理、特征提取(压缩)、分类三个步骤基本是已经成形的流程,对于识别(尤其是本文的单字识别分类)而言,整体效果还是比较可观的,然而一旦将其放在复杂场景或者对多字进行识别,其过程将会复杂得多,多字识别包含检测+识别,单单是检测一个步骤,就已经非常困难。而另一方面,对于神经网络在复杂场景的识别,相比传统方法就容易得多,不过这同时也是我的一个知识盲区,如何在复杂场景在对手写汉字(多字)进行识别,目前也在查找相关资料。
- 深度学习研究现状,深度学习是比较庞大的领域,到目前为止已经发展了许许多多的分支,什么网络适用于什么领域,以及是否可以将多类型的网络结合在一起、如何结合在一起,也是知识盲区。
- 八方向梯度特征提取,根据论文结论来看,效果明显是比较好的,八个方向的效果就可以增加这么多的识别率,如果方向再多一点,或者特征提取的方法换一下,让特征提取的角度变多,是否也会增加识别率呢。
- 可分离卷积,相比常规卷积,可分离卷积分为深度卷积和驻点卷积两个部分,参考链接,其优点是计算量更少,这可能也是为什么模型存储量更少的原因,缺点是对简单网络或单个属性的输入会相当不利,论文中得到的结论,可分离卷积相对整体识别率更好一点。
- 对于手写识别错误的,作者还将其进行提出来进行分析,为什么错误,可以用什么方法来弥补,于是设计了CNN+Center Loss和CNN+SVM两种方式进行分类的改进,得到了更好的效果
- 最后是论文结构,似乎很多硕士论文都是这种结构,也是一个总结
- 绪论
– 研究背景与意义
– 国内外研究
– 本文主要研究内容
– 论文组织结构 - 技术分析
– xxx技术
– xxx技术
– xxx技术
– 小结 - 本文使用的技术A(一个名字)
– 基本流程
– 网络设计
– 训练
– 实验结果和分析
– 小结 - 本文使用的技术B
– 问题描述
– 技术描述
– 实验结果和分析
– 小结 - 总结和展望
– 全文总结
– 展望 - 参考文献
- 其它
【手写汉字识别】基于深度学习的脱机手写汉字识别技术研究相关推荐
- 目标检测YOLO实战应用案例100讲-基于深度学习目标检测的白细胞分类技术研究
目录 前言 基于机器学习的特征工程法 基于深度学习的自动特征提取法
- 《基于深度学习的加密流量识别研究》-2022毕设笔记
参考文献: 基于深度学习的网络流量分类及异常检测方法研究_王伟 基于深度学习的加密流量分类技术研究与实现_马梦叠 基于深度学习的加密流量识别研究综述及展望_郭宇斌 基于深度学习的加密流量算法识别研究_ ...
- 蚂蚁金服张洁:基于深度学习的支付宝人脸识别技术解秘-1
蚂蚁金服张洁:基于深度学习的支付宝人脸识别技术解秘(1) 2015-08-13 10:22 于雪 51CTO 字号:T | T 用户身份认证是互联网金融发展的基石.今年三月,在德国汉诺威举办的IT展览 ...
- opencv交通标志识别_教你从零开始做一个基于深度学习的交通标志识别系统
教你从零开始做一个基于深度学习的交通标志识别系统 基于Yolo v3的交通标志识别系统及源码 自动驾驶之--交通标志识别 在本文章你可以学习到如何训练自己采集的数据集,生成模型,并用yolo v3算法 ...
- DeepEye:一个基于深度学习的程序化交易识别与分类方法
DeepEye:一个基于深度学习的程序化交易识别与分类方法 徐广斌,张伟 上海证券交易所资本市场研究所,上海 200120 上海证券交易所产品创新中心,上海 200120 摘要:基于沪市A股交 ...
- 基于深度学习的单人步态识别系统
基于深度学习的单人步态识别系统(目前数据集大小15人,准确率100%) 一.数据预处理 a.步态轮廓图 b.头部轮廓图 实现方式: 核心代码: c.骨架图 二.提取步态特征 a.角度特征 b.下肢特征 ...
- 毕业设计之 --- 基于深度学习的行人重识别(person reid)
文章目录 0 前言 1 技术背景 2 技术介绍 3 重识别技术实现 3.1 数据集 3.2 行人检测 3.2 Person REID 3.2.1 算法原理 3.2.2 算法流程图 4 实现效果 5 部 ...
- 基于深度学习的命名实体识别研究综述——论文研读
基于深度学习的命名实体识别研究综述 摘要: 0引言 1基于深度学习的命名实体识别方法 1.1基于卷积神经网络的命名实体识别方法 1.2基于循环神经网络的命名实体识别方法 1.3基于Transforme ...
- 一种基于深度学习的增值税发票影像识别系统
一种基于深度学习的增值税发票影像识别系统-专利技术交底书 缩略语和关键术语定义 1.卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构 ...
最新文章
- 小程序协同工作和发布
- 谁会C语言,谁会c语言程序设计
- linux 下 upx 脱壳笔记
- python中的urlencode和urldecode的用法
- PyCharm安装及使用
- Java设计模式之建造者Builder模式代码示例
- 破解百度网盘的Pandownload开发者被捕,让人唏嘘
- SpringCloud教程 | 第二篇: 服务消费者(rest+ribbon)
- SAP Spartacus PageMetaResolver 的单元测试
- 2019.01.28【NOIP普及组】模拟赛C组总结
- 【Java学习笔记十一】图形用户界面
- 什么是面向对象,为什么要面向对象
- c语言的简单程序设计实验报告,工程学院C语言程序设计实验报告
- 一文读懂锂电池叠片、卷绕工艺区别!
- 生物计算机教学,信息技术与高中生物教学的整合
- Redis(五)深入了解Redis核心设计原理 SDS类型(String)redis如何扩容 五种结构底层数据结构 结构变换条件 如何配置条件 GEO使用 ACL
- 前端剑法第二式————淬焰
- 互信息(Mutual Information)
- 网站反爬指南:政府网站篇
- mysql导入数据报错_MySQL导入数据库时报错,MySQL server has go away
热门文章
- 拓新药业301089
- 把数字小写转换成大写,把数字转化成英文
- SpringCloud+SpringCloudAlibaba
- 四步学会使用ECharts做图
- 明解C语言入门篇_第9章_字符串的基本知识
- java+ssm驾校管理教练用户驾校系统@ssm
- android实现拍照、相册选图、裁剪功能,兼容7.0以及小米
- java overload_Java方法重载Overload原理及使用解析
- 我做了一款iOS12捷径市场,也许是目前最好看也是最具技术含量的ShortCuts小程序
- 【Unity数据持久化】Ixmllserializable接口的使用