文章目录

  • 简述
  • 主要内容
    • 1 方向分解特征图
      • 1.1 线下文字的DirectMap
      • 1.2 线上文字的DirectMap
    • 2 卷积网络提出
      • 2.1 网络结构
      • 2.2 参数设置
      • 2.3 网络适应层
    • 3 实验
  • 总结
  • 附录

前面回顾了几种经典的传统文字检测识别方法,这里呈上基于深度学习的文章。可以说基于深度学习的方法的准确率远远超过了传统方法,但是却拉低了学术的层次,一系列缺点这里就不罗列了。很多论文的创新点很少,差不多就是搭个经典网络,稍微改进下网络结构,一堆数据送进去疯狂训练。不断刷准确率,准确率上去了就可以发论文了。

以下要介绍的文章(【Paper】 Zhang X Y , Bengio Y , Liu C L . Online and offline handwritten Chinese character recognition: A comprehensive study and new benchmark[J]. Pattern Recognition, 2017, 61(Complete):348-360.) 说实话也,差不多这样子的,但是毕竟发在PR上,还是有几个创新点值得我们学习。

简述

文章将传统的特征图(directMap)和深度卷积神经网络结合起来了,在线上和线下的文字识别提高到一个较高精度。文章提出了一个新的网络适应层,能够一定程度上实现无监督学习,即可以对新书写风格样本也能准确分类。

主要内容

1 方向分解特征图

在深度学习之前,样本预处理可以说是特别重要的一部分,好的预处理能够极大提高分类性能,前人有大量关于预处理的研究工作,包括形状归一化、去噪、方向分解等等。

方向分解主要有两种实现方式1:1、normalization-cooperated 2、normalization-based ,其中 基于normalization-cooperated方法,无需生成归一化字体,能够减少笔画梯度上的扭曲失真,接下来文章给出具体的DirectMap生成方式。

1.1 线下文字的DirectMap

线下文字的DirectMap的具体流程是这样的:

  1. 灰度调整:背景调整成0,前景调整成[1-255](不同样本需灰度归一化)
  2. 形状归一化:使用LDPI方法2,必其他的形状归一化方法要好。
  3. 方向分解:对原图像(非归一化后的图像)使用Sobel算子求得梯度,将梯度在两个标准方向进行分解。

1.2 线上文字的DirectMap

线上文字能够记录每个笔画的轨迹信息,所能利用的信息更多,且存在较少的噪声干扰,具体流程是这样的:

  1. 形状归一化:使用 the pseudo 2D bi-moment normalization (P2DBMN)3,前面线下文字的方法不适合了。
  2. 方向分解:方向分解的方法同线下的方法,所谓的笔画是两个相邻点所连成的直线,多余的笔画轨迹(手写体常常有连笔笔画)信息也可以利用起来。

最后得到如下图:
从图中可以看到在8个方向的分解,线下字体笔画是空心的,而在线的笔画实心的。图像密度是稀疏的,可以进一步压缩(文章resize成8x32x32)。

2 卷积网络提出

在提出网络之前,文章还分析了一波传统方法与神经网络的联系与区别:

简单的说就是隐藏层代替人工特征提取器NFC、MQDF等,自动提取了特征。

2.1 网络结构

接下来给出了具体设计的网络:

网络有11层,输入层是8*32*32的DirectMap,固定每一层均为3*3的视野窗,步长为1,特征图数从50到400逐层增加,池化层为2*2的max-pool隔层放置(使得特征图尺寸慢慢减小,增加网络层数),最后是两个全连接层,以及SoftMax层分类(3775个常用汉字分类)。

2.2 参数设置

文章中讲了许多网络细节,是目前网络设计的主流规范,这里就简单介绍:

  • 正则化项:使用dropout策略,比例逐层增加(除第一层与最后一层);加入正则化项,即权重W的l2l_{2}l2​范数,比例为0.0005。
  • 激活函数:使用leak-ReLU函数,λ=1/3\lambda=1/3λ=1/3.
  • 权重初始化:权重初始化成0均值的高斯分布,其中δ=0.01\delta=0.01δ=0.01。考虑到实际训练过程成,经过softmax层之后,不同类别之间的比例差异很小,难以分类。这里使用了一个策略就是在乘以一个常数v=−ln0.8Δv=-ln0.8\Deltav=−ln0.8Δ(具体计算过程可以看论文,简单计算)。由于网络每一层具有线性性,故只要在DirectMap中乘即可。
  • 训练过程:使用交叉熵损失函数,使用动量批梯度下降优化器,逐批次训练。具体参数设定可以参考论文,其实也是试出来的,没有理论。

2.3 网络适应层

适应层是本文的一个亮点,目前的研究趋向于弱监督学习无监督学习,如何能使用已有标记的样本去发现未知的样本,是近几年急需解决的问题。
以往的fine-tune策略是,在训练好的网络中加入新的训练样本,再进行训练,仅微调最后全连接层的参数。在很深层的网络中,根据大部分实验来看,也能取得较好的结果,但这还是局限于监督学习。本文提出了一种微调策略,具体过程如下:
1、估计从训练集中计算类均值

式中训练集为{xitrn,yitrn}i=1N\left\{x_{i}^{trn}, y_{i}^{trn}\right\}_{i=1}^{N}{xitrn​,yitrn​}i=1N​,yitrn⁡∈{1,2,…,c}y_{i}^{\operatorname{trn}} \in\{1,2, \ldots, c\}yitrn​∈{1,2,…,c},c是类别数,ϕ(xitrn)\phi\left(x_{i}^{\mathrm{trn}}\right)ϕ(xitrn​)是源网络层输出,{μ1,…,μc}\left\{\mu_{1}, \dots, \mu_{c}\right\}{μ1​,…,μc​}是训练集的均值向量,这用于之后未知类的计算。

2、定义适应层

所谓的适应层,即包括矩阵A∈Rd×dA \in \mathbb{R}^{d \times d}A∈Rd×d和偏置向量b∈Rdb \in \mathbb{R}^{d}b∈Rd,且没有激活函数。学习流程为:先随意初始化A和b,将样本输入到添加适应层后的网络中,得到一个预测类yiy_iyi​以及softmax层的置信度fif_ifi​,给出评价函数
min⁡A,b∑i=1nfi∥Aϕ(xi)+b−μyi∥22+β∥A−I∥F2+γ∥b∥22(2)\min _{A, b} \sum_{i=1}^{n} f_{i}\left\|A \phi\left(x_{i}\right)+b-\mu_{y_{i}}\right\|_{2}^{2}+\beta\|A-I\|_{F}^{2}+\gamma\|b\|_{2}^{2}\quad\quad(2)A,bmin​i=1∑n​fi​∥Aϕ(xi​)+b−μyi​​∥22​+β∥A−I∥F2​+γ∥b∥22​(2)
优化此函数得到最优参数A和b。相应调整网络适应层的参数,再次迭代循环。具体的算法流程图如下:

这个算法策略其实与K-mean聚类相似,只是初始类中心点是根据训练集确定,评价函数是一个二次凸函数,第一项是经验损失,第二三项是正则化项,最优解可以在有限次迭代得到(QP问题)。通过此策略一定程度上可以提高无监督学习的准确率。

3 实验

实验采用HWDB1.0-1.2以及OLHWDB1.0-1.2两个训练集,ICDAR-2013作为训练集(60个作者不同的书写风格)

使用使用一个 NVIDIA Titan-X 12G GPU.,每次实验训练70个epochs,每次80小时(我只能惊叹!!!!)

实验使用批次动量梯度下降法,三个断层代表学习率的下降,学习率对训练产生重要影响,随着迭代进行要降低学习率。

上面两个表格是此方法与以往的线上线下字符识别结果对比,作者花了大量的时间吹嘘了一波,不过总的来看结果还是不错的,他是直接把测试集作为无监督样本。

上表是不同网络的输入特征图尺寸。

上图是正则化的对网络影响。



上面两个图是添加适应层后线下线上识别误差减少率,除了一个作家手写字体之外,其余样本错误率均有所下降。

最后还验证了不同特征方向分解方法的效果。

总结

优点:
1、DirectMap有良好的特征提取能力,前人特征设计方法工作即使在今天仍值得我们学习借鉴,能够把前人的设计理念经验和我们目前深度网络结合起来,深度学习有可能进一步突破。
2、目前大部分网络适用于闭数据集,适应层设计使得网络能够适应于一个开放集,更具有鲁棒性。

缺点:
1、创新型不足,只是在小改动。
2、个人觉得DirectMap也是提取的字符特征图,是不是增加网络深度原始样本训练也能达到相同的效果?结果是不是不能体现DirectMap的优越性?
3、适应性层是不是可以进一步改进,不局限于最后一层,不局限于简单的线性变换。

附录


  1. C.-L. Liu, Normalization-cooperated gradient feature extraction for handwritten character recognition, IEEE Trans. Pattern Anal. Mach. Intell. 29 (8) (2007) 1465–1469 ↩︎

  2. C.-L. Liu, K. Marukawa, Pseudo two-dimensional shape normalization methods for handwritten Chinese character recognition, Pattern Recognit. 38 (12) (2005) 2242–2255. ↩︎

  3. C.-L. Liu, X.-D. Zhou, Online Japanese character recognition using trajectorybased normalization and direction feature extraction, in: Proceedings of International Workshop on Frontiers in Handwriting Recognition (IWFHR), 2006, pp. 217–222. ↩︎

明亮如星研旅(4)—— Online and offline handwritten Chinese character recognition相关推荐

  1. 复星文旅换帅:徐晓亮任董事长职务 钱建农将任复星国际执行总裁

    雷递网 雷建平 11月8日 复星旅游文化集团(简称:"复星文旅")日前换帅,公司董事长.CEO钱建农已获委任为董事会终身荣誉董事长并调任为非执行董事. 钱建农已请辞董事会董事长.集 ...

  2. 星研电子c语言程序清单,单片机理论实验课程设计协同教学方法探讨

    [摘要]通过总结单片机理论.实验和课程设计的教学实践经验及教学研究心得,以某高校电子电气信息类本科专业为例,分析了如何完善单片机课程体系建设,如何在课程教学过程中通过理论与实践相结合加强大学生对理论的 ...

  3. 盘点工业界AI项目流程以及边缘设备现状

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨白夜 来源丨江大白 编辑丨极市平台 导读 本文作者分享了自己踏入深度学习第一个项目的经验以及自己 ...

  4. 白夜:一文看懂AI项目流程及边缘设备开发

    在<AI未来星球>内部群中,白夜从AI项目开发及边缘设备开发的角度,深入浅出的分享了,AI项目开发中的各种感受,以及工作中使用过的一些边缘设备的开发经验. PS:不同嘉宾分享中涉及的相关代 ...

  5. 【人工智能】基于五笔字型规范和人工神经网络的简中汉字识别【一】

    导语:看到一则旧闻,读了一篇论文,产生一些思考,完成一个模型 前言及项目简介 一.旧闻 二.论文 三.思考 四.模型 一.旧闻 大概去年十一月初吧,博主还在进行紧张的研考冲刺阶段.学校下达毕设选题任务 ...

  6. 【基于深度学习的细粒度分类笔记4】图像识别与检测挑战赛冠军方案出炉,基于偏旁部首识别 Duang 字

    雷锋网(公众号:雷锋网) AI 科技评论按:随着互联网的飞速发展,图片成为信息传播的重要媒介,图片中的文本识别与检测技术也一度成为学界业界的研究热点,应用在诸如证件照识别.信息采集.书籍电子化等领域. ...

  7. GitHub Trending第一之后,PaddleOCR再发大招:百度自研顶会SOTA算法正式开源!

    要说生活里最常见.最便民的AI应用技术,OCR(Optical Character Recognition,光学字符识别)当属其中之一.寻常到日常办理各种业务时的身份证识别,前沿到自动驾驶车辆的路牌识 ...

  8. utf8汉字编码16进制对照

    可查询,可深入了解汉字的各种编码 GBK  Unicode UTF-8     Chinese Character Code  code#  Code     (coded in UTF-8) D2B ...

  9. 【原】在vc中实现获取汉字拼音的首字母 - lixiaosan的专栏 - CSDNBlog

    导读: Author: lixiaosan Date: 05/26/2006 /************************************************************ ...

最新文章

  1. 科学:螳螂虾大脑拥有记忆和学习中心
  2. 【科技金融】风控命门——第三届互联网金融风控大会会后复盘
  3. LeetCode每日一题 116. 填充每个节点的下一个右侧节点指针
  4. 【转】二、VTK用于QT的安装
  5. 1.4.3 Arithmetic Progressions
  6. C语言:用指针求字符串长度
  7. 金山词霸笔试题目笔记
  8. 详解pytorch fold和unfold用法
  9. 4位先行进位加法器的vhdl程序_VHDL精密,Verilog简洁,但要写好都要遵守这25条通则...
  10. 使用vue+element开发一个谷歌插件
  11. 用pandas批量分组处理excel数据
  12. 计算机ps2定义,软件硬件界面接口定义 bt656 硬件接口定义
  13. 索画(金山2022)
  14. hosts屏蔽网站以及代理越过屏蔽
  15. Oracle to_date()函数的用法
  16. go语言 冒泡排序原理
  17. libreoffice转换文档的方法(支持各平台各版本的libreoffice)
  18. 广外计算机学院在哪个校区,广东外语外贸大学有几个校区及校区地址 哪个校区最好...
  19. KgoUI(2) 之 vue + layui
  20. 【Get深一度】完备正交函数集合——信号分析

热门文章

  1. CRO无菌车间设计方案SICOLAB
  2. 刚发布!美国今年要砸8.5亿美元布局AI,这两件事,程序员一定做准备了!
  3. Android教程学习日志(一)
  4. 【MySQL基础】MySQL概述及基本SQL语句
  5. 蓝桥杯-振兴中华三种解题方法(C语言)
  6. 全面解析:HRP系统和SPD系统的区别?
  7. 2022年1月11日 星期二
  8. MySQL数据库教程-mysql下载-sqlyog免注册中文下载
  9. 2023年软考成绩什么时候出?软考成绩公布时间间隔多久
  10. 前端学习2——CSS3