第 42 卷 第 8 期
2016 年 8 月
自 动 化 学 报
ACTA AUTOMATICA SINICA
Vol. 42, No. 8
August, 2016
深度学习在手写汉字识别中的应用综述
金连文 1 钟卓耀 1 杨 钊 2 杨维信 1 谢泽澄 1 孙 俊 3
摘 要 手写汉字识别 (Handwritten Chinese character recognition, HCCR) 是模式识别的一个重要研究领域, 最近几十年
来得到了广泛的研究与关注, 随着深度学习新技术的出现, 近年来基于深度学习的手写汉字识别在方法和性能上得到了突破
性的进展. 本文综述了深度学习在手写汉字识别领域的研究进展及具体应用. 首先介绍了手写汉字识别的研究背景与现状. 其
次简要概述了深度学习的几种典型结构模型并介绍了一些主流的开源工具, 在此基础上详细综述了基于深度学习的联机和脱
机手写汉字识别的方法, 阐述了相关方法的原理、技术细节、性能指标等现状情况, 最后进行了分析与总结, 指出了手写汉字
识别领域仍需要解决的问题及未来的研究方向.
关键词 深度学习, 手写汉字识别, 卷积神经网络, 回归神经网络, 长短时记忆模型, 层叠自动编码机
引用格式 金连文, 钟卓耀, 杨钊, 杨维信, 谢泽澄, 孙俊. 深度学习在手写汉字识别中的应用综述. 自动化学报, 2016, 42(8):
1125−1141
DOI 10.16383/j.aas.2016.c150725
Applications of Deep Learning for Handwritten Chinese Character Recognition:
A Review
JIN Lian-Wen1
ZHONG Zhuo-Yao1
YANG Zhao2
YANG Wei-Xin1
XIE Ze-Cheng1
SUN Jun3
Abstract Handwritten Chinese character recognition (HCCR) is an important research filed of pattern recognition,
which has attracted extensive studies during the past decades. With the emergence of deep learning, new breakthrough
progresses of HCCR have been obtained in recent years. In this paper, we review the applications of deep learning models
in the field of HCCR. First, the research background and current state-of-the-art HCCR technologies are introduced.
Then, we provide a brief overview of several typical deep learning models, and introduce some widely used open source
tools for deep learning. The approaches of online HCCR and offline HCCR based on deep learning are surveyed, with
the summaries of the related methods, technical details, and performance analysis. Finally, further research directions are
discussed.
Key words Deep learning, handwritten Chinese character recognition (HCCR), convolutional neural network, recurrent
neural network, long-short term memory (LSTM), stacked auto-encoder
Citation Jin Lian-Wen, Zhong Zhuo-Yao, Yang Zhao, Yang Wei-Xin, Xie Ze-Cheng, Sun Jun. Applications of deep
learning for handwritten Chinese character recognition: a review. Acta Automatica Sinica, 2016, 42(8): 1125−1141
由于在拍照文档、支票、表单表格、证件、邮
政信封、票据、手稿文书等光学字符识别 (Optical
收稿日期 2015-11-04 录用日期 2016-04-18
Manuscript received November 4, 2015; accepted April 18, 2016
国家自然科学基金 (61472144), 广东省科技计划 (2014A010103012,
2015B010101004, 2015B010130003, 2015B010131004) 资助
Supported by National Natural Science Foundation of
and Technology
2015B010130003,
(61472144), Guangdong Science
2015B010101004,
China
Plan (2014A010103012,
2015B010131004)
本文责任编委 刘成林
Recommended by Associate Editor LIU Cheng-Lin
1. 华南理工大学电子与信息学院 广州 510641
2. 广州大学机械与
3. 富士通研究开发中心有限公司信息技
电气工程学院 广州 510641
术研究部 北京 100190
1. School of Electronic and Information Engineering, South
China University of Technology, Guangzhou 510641
2. School
of Mechanical and Electric Engineering, Guangzhou Univer-
sity, Guangzhou 510641
3. Information Technology Labora-
tory, Fujitsu Research & Development Center Co., Ltd, Beijing
100190
character recognition, OCR) 图像识别系统以及手
写文字输入设备中的广泛应用前景, 自从上个世纪
80 年代以来, 手写汉字识别 (Handwritten Chinese
character recognition, HCCR) 一直是模式识别的
一个重要研究领域, 得到了学术界的广泛研究和关
注[1−10]. 手写体汉字识别由于数据采集方式不同
可以划分为脱机 (Offline) 手写体汉字识别和联机
(Online) 手写体汉字识别两大类. 联机手写汉字识
别所处理的手写文字是书写者通过物理设备 (如数
字笔、数字手写板或者触摸屏) 在线书写获取的文
字信号, 书写的轨迹通过定时采样即时输入到计算
机中. 而脱机手写文字识别所处理的手写文字是通
过扫描仪或摄像头等图像捕捉设备采集到的手写文
字二维图片. 由于识别的对象不同, 使得这两类手写
识别技术所采用的方法和策略也不尽相同. 前者的
识别对象是一系列的按时间先后排列的采样点信息,
1126
自
动
化
学
报
42 卷
而后者则是丢失了书写笔顺信息的二维像素信息,
由于没有笔顺信息, 加之由于拍照扫描设备在不同
光照、分辨率、书写纸张等条件下, 数字化会带来一
定的噪声干扰, 一般来说, 脱机手写文字识别比联机
手写文字识别更加困难.
手写汉字识别是一个极具挑战性的模式识别及
机器学习问题, 主要表现在:
1) 中文汉字字符级别的类别繁多, 仅 1980 年
制定的国标 GB2312-80 编码就定义了多达 6 763 类
常用汉字, 远远高出英语、拉丁语等通常只有几十
类数目的西方语言. 然而此编码标准仍然不能满足
汉字信息处理的需求, 所以在 2000 年发布的国标
GB18010 第一版 (GB18010-2000) 大幅度扩展了字
符集, 定义了 27 533 类汉字编码标准, 并成为汉字信
息处理产品必须遵循的强制性执行标准; 此后 2005
年发布的国标第二版 (GB18010-2005) 更是新增加
了 42 711 个汉字和多种少数民族文字等字符, 收录
的字符类别高达 70 244 类汉字.
2) 相比较于印刷体汉字, 手写体字符的书写随
意性大, 缺乏规范性, 人们经常使用的横、竖、撇、
捺、点等笔划容易变形, 如直笔划变弯, 折笔划变成
圆弧, 短横、短竖变成点, 点变成捺等, 笔划的倾斜
角、笔划的相对长度不稳定; 连笔、笔划不清, 笔划
之间的连接关系可能发生变化, 不该连的连上了, 该
连的反而没有连; 笔划不清、缺笔等现象时有发生.
这些都给识别造成了很大的困难; 另外, 不同书写人
书写风格多样和存在明显差异, 出自不同书写者的
同一类汉字在汉字字形, 汉字结构都会有明显的差
异; 中国人口众多, 可以说几乎每个人都有自己的书
写风格, 各种不同风格之间可能存在较大差异; 手写
汉字的风格迥异, 从楷书、行书到草书, 识别难度逐
渐提高.
3) 中文汉字中存在很多相似字和易混淆的汉字
对, 例如: “已-己”、“口-囗”、“泪-汨-汩”、“雎-睢”、
“汆-氽”、“睛-晴”、“海-诲”、“绞-纹”、“莱-菜” 等,
这些高度相似的字符给计算机自动识别带来极大挑
战.
4) 充分的训练数据及其多样性是设计和训练
一个手写汉字识别系统的关键, 但目前针对大类别
多风格的无约束手写数据库仍显不足. 数据库的采
集和整理工作需要消耗大量人力物力来兼顾规模性
和准确性. 北京邮电大学发布的 HCL2000 脱机手
写数据库[11] 及国家 863 中文手写评测数据[12], 都
是比较规范书写的数据; 相比而言, 目前能表现真
实书写情况的手写单字数据库有中国科学院发布
的 CASIA-OLHWDB1.0-1.2[10] 联机单字, CASIA-
HWDB1.0-1.2[10] 文本行数据集, 以及华南理工大
学发布的涵盖单字、词组、文本行、数字、字母、
符号等综合手写数据集 SCUT-COUCH[13], 但上述
两个较新的数据集类别局限于 GB2312-80 标准的
6 763 类, 并且数据总量仍然不够大.
一般而言, 传统的手写中文单字识别系统主要
包括数据预处理、特征提取和分类识别三部分: 1)
数据预处理主要包括样本归一化[14−15]、平滑去噪、
整形变换[16]、伪样本生成[17−19]、添加虚拟笔画 (对
联机数据)[20−22] 等; 2) 特征提取部分可以分为结
构特征和统计特征两种, 结构特征主要对汉字结
构、笔画或部件进行分析来提取. 但对手写字符而
言, 目前最好的特征基本上都是统计特征, 例如方
向特征[23−25]. 对脱机 HCCR 而言, Gabor 特征[26]
及 Gradient 特征[27] 是目前比较好的两种方向特
征提取方法; 对联机 HCCR 而言, 8 方向特征[24]
是目前最有效的特征之一; 3) 分类器最常用的模
型包括改进的二次判决函数 (Modified quadratic
discriminant function, MQDF)[9, 28]、支持向量机
(Support vector machine, SVM)[29]、隐马尔科夫
模型 (Hidden Markov model, HMM)[30]、鉴别学习
二次判决函数 (Discriminative learning quadratic
discriminant function, DLQDF)[31] 和学习矢量量
化 (Learning vector quantity, LVQ)[32] 等. 对于文
本行识别[9−12], 主要有基于切分策略和无切分策略
的两种识别方法, 分别利用投影法、连通域分析法
等方法对文本行进行字符分割, 利用单字分类器对
分割好的字符[33−36], 或利用滑动窗口按一定步长
滑窗, 利用单字分类器对滑动窗口内的字符进行识
别[34], 结合统计语言模型, 在 Bayes 等学习框架下
对整个文本行的上下文关系进行建模[35], 从而得出
整体行识别结果.
经过四十多年来研究学者的不懈努力, HCCR
取得了极大进展, 例如文献 [10] 中使用鉴别特征
提取方法 (Discriminative feature learning, DFE)
和鉴别学习二次判决函数 (Discriminative learn-
ing quadratic discriminant function, DLQDF) 分
类器, 在极具挑战的联机和脱机手写汉字数据集
CASIA-OLHWDB 和 CASIA-HWDB[10] 的几个不
同子集上, 联机手写单字符识别取得的最好识别率
分别是: 95.28 % (DB1.0, 4 037 类汉字)、94.85 %
(DB1.1, 3 926 类汉字) 和 95.31 % (ICDAR 2013
Competition DB, 3 755 类汉字), 脱机手写单字符
识别取得的最好识别率分别是: 94.20 % (DB1.0),
92.08 % (DB1.1) 和 92.72 % (ICDAR 2013 Com-
petition DB). 但是, 无论是联机还是脱机手写识
别, 仍然没有达到足够高的精度. 最近的研究测试表
明[37]: 目前市场上的主流手写识别软件的识别率并
没有达到很高的精度, 不少知名品牌的手写输入法
软件的识别率达不到 90 %, 最好的系统的识别率也
8 期
金连文等: 深度学习在手写汉字识别中的应用综述
1127
仅仅为 95 % 左右, 许多软件系统支持的字符集很不
齐全, 在文本行/单字或重叠/单字混合书写识别模
式下, 不少系统的识别率急剧下降, 相关软件产品的
识别性能体验亟待改善. 因此, 可以说手写汉字识别
仍然是一个还没有完全解决的具有挑战性的研究课
题.
近两年来, 基于传统的 “预处理+特征提取+分
类器” 的手写汉字识别框架似乎并没有特别大的研
究新进展, 很少看到在识别性能上获得突破性进展
的研究报道. 但是, 随着深度学习的兴起, 我们注
意到深度学习对手写汉字识别难题带来了新的活力
和极其有效的解决方法, 例如自 2011 年起, 连续两
届的 ICDAR (International Conference on Docu-
ment Analysis and Recognition) 手写汉字识别比
赛的获胜者都是采用基于深度学习或神经网络的方
法[38−39]. 值得一提的是, 在 2013 年的 ICDAR 手写
汉字比赛中[39], 来自英国华威大学的 Graham 利用
深度稀疏卷积神经网络 (Spatially-sparse convolu-
tional neural network) 的方法[40], 获得了联机手写
汉字识别第一名, 其识别率大幅度提升到 97.39 %,
而来自富士通公司的团队采用改进的 CNN (Con-
volutional neural network) 网络, 获得了脱机手写
汉字识别的第一名, 识别率高达 94.77 %[39], 无论是
联机还是脱机 HCCR, 上述基于深度学习的方法所
取得的结果, 均大幅度领先传统的方法, 显示出深度
学习的强大潜力. 目前手写识别中, 深度学习方法相
比于传统方法, 能达到更高的识别率, 但是其训练和
测试时间较长, 字典存储偏大等问题, 仍待进一步研
究改进.
最 近 几 年 来 随 着 深 度 学 习 的 兴 起 及 不 断 发
展[41−43], 特别是深度卷积神经网络 (CNN)[44−45]、
深度置信网络 (Deep belief network, DBN)[41]、层
叠自动编码机 (Stacked auto-encoder, SAE)[46]、深
度递归神经网络 (Deep recurrent neural network,
DRNN)[47] 等深度模型在图像识别及计算机视觉各
领域的大量突破性成果的涌现[48−59], 相关的方法也
被逐步应用到手写体文字识别领域[40, 60−82], 并取得
了不少突破性发展. 针对相关的学术及技术进展情
况, 本文主要综述及分析基于深度学习的手写体汉
字识别的最新进展.
本文组织结构如下: 第 1 节对深度学习模型及
一些主流的开源工具进行简要介绍; 第 2 节将综述
基于深度学习的手写汉字识别方法; 第 3 节总结全
文并对未来研究方向进行讨论及展望.
1 深度学习模型及相关开源工具简介
深度学习作为神经网络模型的新发展[43, 55], 其
历史可以追溯到上个世纪 40 年代[83], 但严格意义
上深度学习的早期模型如 CNN, 起源于上世纪 80
年代末及 90 年代初 LeCun 的工作[44−45, 84], 而深
度学习真正受到学术界的重视是从 2006 年加拿大
学者 Hinton 等在 Science 上撰文介绍了一种新的
深度神经网络网络模型 DBN 及其训练方法开始
的[41], 此后, 随着相关的一些深度学习模型如 DNN
及 CNN 在语音识别[52] 及图像识别[48, 85] 等领域的
突破性进展报道, 深度学习逐渐获得了学术界及工
业界的广泛重视. 在计算机视觉及图像识别领域,
自从 2012 年之后, 涌现出许多新的模型训练方法
及实际应用技术[86−89], 深度学习也成功地被用来
解决许多极具挑战性的问题, 在语音识别[52]、图像
识别[44−45, 48−59, 85−86, 90]、人脸识别[91−92]、姿态识
别[93]、手写识别[60−82, 94−95]、文本检测和识别[96−97]
和自然语言处理[98−102] 等诸多领域均获得了极大成
功.
深度学习是传统机器学习的一个崭新分支, 其
概念源于人工神经网络的研究, 与传统的人工神经
网络相比, 深度学习是含有多隐藏层的深度神经网
络结构, 通过组合低层特征形成更加抽象的高层来
表示属性类别或特征, 以更好地发现数据的有效特
征表示. 一般而言, 深度学习网络是一种含有多个
隐藏层的神经网络, 具有特定的结构和相应的训练
方法. 典型的深度学习结构包括: 深度置信网络
(DBN)、S 层叠自动编码机 (SAE)、卷积神经网络
(CNN)、回归神经网络 (Recurrent neural network,
RNN) 等, 下面我们将做简要介绍及回顾.
深度置信网络 (DBN) 是 Hinton 教授等于 2006
年提出的一种崭新的神经网络模型[41], 文中创造性
地提出了含有多隐藏层的神经网络的训练方法及无
监督逐层预训练的思想, 为模型参数找到一个合理
的初始解, 使得后续的监督学习方法能够找到最优
解, 同时这种逐层无监督训练可以学习出一定的层
次性特征. 值得说明的是, 随着深度学习算法的发
展, 如非线性激活函数的改进[48, 103]、更好的正则化
方式[48] 和参数初始化方式[104] 的提出, 训练深层网
络已经不再困难, 逐层预训练对参数进行初始化的
方法已很少被利用.
CNN 的最早雏形理念是由 Fukushima 在 1980
年首次提出[105], LeCun 等将反向传播算法 (Back-
propagation, BP) 用于卷积结构, 提出了层与层
之 间 局 部 连 接 且 具 有 多 层 结 构 的 卷 积 神 经 网 络
模型[44−45, 84]. 该结构由一系列的卷积层 (Convo-
lutional layer) 和 聚 合 层 (Pooling layer) 交 替 组
成, 每 一 层 的 输 出 可 以 看 出 是 一 组 特 征 图 (Fea-
ture map). 2012 年, Krizhevsky 等[48] 将 CNN
加 深, 并 利 用 ReLU 非 线 性 激 活 函 数、Dropout
等 一 系 列 新 的 训 练 技 术, 获 得 了 2012 年 Ima-
1128
自
动
化
学
报
42 卷
geNet[90] 比赛第一名. ReLU 及 Dropout 可以说
是近年来对 CNN 发展的两个重要技术, 简要介
绍如下: 1) ReLU 非线性激活函数: 对于传统的
神经网络来说, 一个神经元的输出 f 是它的输入
x 的 函 数 形 式 为: f(x) = tanh(x) = ex−e−x
ex+e−x 或 者
f(x) = sigmoid(x) = 1
1+e−x . Krizhevsky 等[48] 提
出了一种非线性的激活函数 f(x) = max(0, x), 命
名为 ReLU. 对于深层网络, 由于 sigmoid 或者 tanh
函数在接近饱和区时变化缓慢, 导数趋于 0, 所以
在反向传播时, 很容易会出现梯度弥散的现象, 从
而无法完成深度网络的训练. 而 ReLU 在大于 0
的部分导数为其本身, 能很好地适应深层网络的训
练, 并且有助于加速网络的收敛. 2) Dropout 技术:
Dropout 是 Krizhevsky 等[48] 提出的深度网络训练
的一种重要的正则化方法, 能防止深度网络在训练
过程中的过拟合现象. Dropout 正则化方法是指以
一定的概率 (一个乘性因子) 抑制某一个隐藏层神经
元, 即让某一隐藏层的神经元输出为 0, 也就是说,
被抑制的神经元在前向传播上输出为 0, 而且不参
加反向传播的过程. 所以每一次训练样本进入网络,
网络结构其实都可以看作为不一样的, 但网络结构
又是彼此共享权值的. 而且, 通过 Dropout 这种方
法, 可以避免一种特征必须依赖另一种特征的存在
而存在的现象. 在测试的时候, 并不让隐藏层神经元
抑制, 而是对所有的隐藏层神经元的输出值乘上一
个乘性因子, 这也进一步体现了模型平均的思想.
受到 DBN 思想的启发, Ranzato 等于 2007 年
提出了层叠自动编码机的深度学习结构[46]. SAE 与
DBN 的主要区别在于组成深度结构的基本单元由
RBM 变为自动编码机 (Auto-encoder, AE), 它是
一种典型的无监督的两层神经网络结构, 通过输出
对输入进行重建使得隐藏层为输入层的压缩或稀疏
表示, 可以看成是对输入数据的特征学习.
RNN 是一种具有储存记忆功能的神经网络[94],
与前面介绍的 DBN、CNN 及 SAE 相比, 一个显
著的特点就是网络的输出结果不仅仅依赖于当前的
输入, 且与过去的输入相关联, 甚至与网络的未来
输出也相关 (例如双向递归神经网络模型). 同样,
RNN 可以使用反向传播算法进行训练, 这种跨时
间的反向传播算法也被称为沿时间反向传播 (Back
propagation through time, BPTT)[106]. 然而这种
典型的 RNN 不具有长时间记忆的能力, Hochreiter
及 Schmidhuber 在 1997 年对 RNN 进行改进, 提
出了长短时记忆模型 (Long short term memory,
LSTM)[47]. 其主要思想是对 RNN 增加输入门、输
出门、重置激活门, 能够实现对隐藏层输入、输出激
活以及递归控制, 使得神经元在长时间范围内存储
并传递信息.
近年来还涌现出不少别的深度学习模型, 其
中一类值得关注的模型是深度强化学习 (Deep re-
inforcement network, DRN)[107−108], 例如 Google
Deep Mind 团队 2015 年提出的深度 Q 网络 (Deep
Q network, DQN)[108], 其在模拟人的智能及在线强
化学习方面表现出优异的性能. 但由于在手写汉字
识别领域, 还鲜有深度强化学习网络的成功应用报
道, 所以在本文中我们不对 DRN 进行详细介绍.
深度学习近年来的飞速发展及其在众多领域的
广泛应用, 离不开许多优秀的实验仿真平台. Con-
vNet 是由 Krizhevsky 提供的基于 GPU 的开源
CNN 开源库, 在 2012 年 ImageNet 大规模视觉识
别比赛 (Large Scale Visual Recognition Challenge
2012, ILSVRC2012)[90] 中获得了第一名, 此后还推
出了支持多 GPU 的版本 Cuda-ConvNet2[109]; 近
三年来, 涌现出了大量优秀的开源深度学习仿真工
具, 例如 Caffe、Theano、Touch、TensorFlow 等.
表 1 总结了目前一些有代表性的深度学习开源工具
及下载地址.
2 基于深度学习的手写汉字识别
传统的手写汉字识别一般包括预处理 (例如归
一化等)、特征提取、特征降维、分类器设计等环节,
但卷积神经网络 (CNN) 的提出, 使得设计一个端到
端 (End-to-end) 的手写字符识别系统成为可能, 而
无需繁杂的预处理及特征提取、特征降维环节. 此
外, 有研究学者发现, 尽管端到端的 CNN 手写识别
方法能获得比传统方法更好的性能, 但结合传统领
域知识, 仍然能使得常规的 CNN 手写识别系统性
能得到进一步提升. 此外, 针对手写汉字识别的特
征, 近年来还提出了不少改进的 CNN 训练方法. 下
面我们将逐一进行详细介绍.
2.1 基于 CNN 的端到端的识别方法
CNN 在上世纪 90 年代提出来后, 虽然在手
写 西 文 (特 别 是 英 文) 识 别 中 得 到 了 极 大 应 用 推
广[44−45, 84, 110−111], 如 在 英 文 手 写 识 别 领 域, Le-
Cun 等在 1998 年提出的 LeNet5 CNN 模型[45] 在
MNIST 上的识别率已经高达 99.05 %, 加上变形样
本训练后识别率进一步可提升到 99.2 %; 2003 年,
微软研究院的 Simard 等[111] 引入弹性变形 (Elastic
distortion) 及仿射变形 (Affine distortion) 两种数
据增加 (Data argumentation) 技术, 采用类似 CNN
的网络结构, 在 MNIST 上, 获得了 99.6 % 的优异性
能, 大幅度领先于包括 SVM、Boosting、多层感知
器等在内的机器学习方法. 但 CNN 成功应用到手
写中文识别的文献一直报道很少, 这主要源于手写
中文识别的类别数及训练样本庞大, 用常规的 CPU
实验仿真平台很难在几天甚至几周内完成网络结构
的训练. 直到 2011 年瑞士 IDSIA (Istituto Dalle
8 期
金连文等: 深度学习在手写汉字识别中的应用综述
1129
Table 1
Some mainstream deep-learning open source toolboxes and their download address at present
表 1 目前一些主流的深度学习开源仿真工具及其下载地址
工具名称
Caffe[112]
Theano[113−114]
Torch[115]
Purine[116]
MXNet[117]
DIGITS[118]
ConvNet[119]
说明及备注
下载地址
UC Berkeley BVLC 实验室发布的深度学习开源工具,
是目前使用最为广泛的深度学习实验平台之一
https://github.com/BVLC/caffe
基于 Python 语言的深度学习开源仿真工具
https://github.com/Theano/Theano
基于 Lua 脚本语言的工具,
支持 iOS、Android 等嵌入式平台
支持多 GPU, 提供线性加速能力
由百度牵头组织的深度机器学习联盟
(DMCL) 发布的 C++ 深度学习工具库
http://torch.ch/
https://github.com/purine/purine2
https://github.com/dmlc/mxnet
由 NVIDIA 公司集成开发发布的一款基于 Web 页面的
可视化深度学习仿真工具, 支持 Caffe 及 Touch 工程代码
最早的支持 GPU 的 CNN 开源工具之一,
ILSVRC2012 比赛第一名提供的代码
https://github.com/NVIDIA/DIGITS
https://code.google.com/p/cuda-convnet/
Cuda-ConvNet2[109] 支持多 GPU 的 ConvNet
https://github.com/akrizhevsky/cuda-convnet2
DeepCNet[120]
开源 CNN 仿真工具, 曾获 ICDAR 2013 联机
https://github.com/btgraham/SparseConvNet
英国 Warwick 大学 Graham 教授发布的
Petuum[121]
手写汉字识别竞赛第一名
CMU 发布的一款基于多 CPU/GPU 集群并行
化分布式, 机器学习开源仿真平台除了支持深
度学习的常用算法之外, 还提供很多传统机器
学习算法的实现. 可部署在云计算平台之中
https://github.com/petuum/bosen/wiki
CURRENT[122]
支持 GPU 的回归神经网络函数库
http://sourceforge.net/projects/currennt/
Minerva[123]
TensorFlow[124]
DMTK[125]
深度机器学习联盟 (DMCL) 发布的支持多
GPU 并行化的深度学习工具
谷歌发布的机器学习可视化开发工具, 支持多 CPU 及
多 GPU 并行化仿真, 支持 CNN、RNN 等深度学习模型
https://github.com/dmlc/minerva
https://github.com/tensorflow/tensorflow
微软发布的一套通用的分布式深度学习开源仿真工具
https://github.com/Microsoft/DMTK
Molle di Studi sullIntelligenza Artificiale) 实验室
的学者才第一次采用 GPU (GTX 580) 训练 CNN,
实现了其在大类别 (1 000 类) 的手写汉字识别应
用[126]. 文献 [75] 提出了采用多个 CNN 集成的
方法 (不同的输入尺度), 在 NIST SD19 数据集上
(含 80 万样本), 取得了很好的结果 (89.12 %), 在
MNIST 上的识别率为 99.72 % (错误率 0.23 %); 基
于该方法, IDSIA 实验室提交 ICDAR 2011 脱机
和联机手写汉字识别竞赛的系统分别获得了第一名
(识别率 92.12 %) 和第四名 (识别率为 93.01 %)[38].
随 后 2012 年, IDSIA 实 验 室 提 出 了 一 种 多 列
CNN 模型 (Multi-column deep neural networks,
MCDNN)[127], 其基本思想是分别利用 GPU 训练
多个 CNN 网络 (每个 CNN 网络含 4 个卷积层、4
个 Pooling 层、1 个全连接层), 然后用对所有 CNN
的输出进行简单的平均集成, 对联机及脱机手写样
本均转换为图像输入到 CNN 网络进行训练, 不做
任何特征提取或特征选择等方面的工作, CNN 的
输出直接作为最终的识别结果, 是一种典型的端到
端 (End-to-end) 的解决方案. MCDNN 在脱机及
联机中文识别均取得了当时最先进水平的识别结
果[127], 在 CASIA-OLHWDB1.1 联机手写中文数
据集上, MCDNN 在只利用联机手写轨迹的二值图
片信息 (忽略时序信息) 的情况下, 将错误率大大降
低, 从 7.61 % (当时传统方法取得的最好结果) 下降
至 4.61 %, 在脱机手写体汉字识别中取得了比 IC-
DAR 2011 脱机手写汉字竞赛第一名更好的识别性
能 (93.50 %). 另外, 在 ICDAR 2013[39] 中文脱机和
联机手写汉字识别的比赛中, 取得第一名的队伍的
方法均基于 CNN 模型.
此后, 基于 CNN 的深度学习方法逐渐吸引了
手写中文识别领域学者们的重视, 近三年来不断有
新的突破性结果报道. 下面将进一步介绍结合领域
知识及其他改进技术的 CNN 手写体汉字识别方法.
2.2 结合领域知识的 CNN 识别方法
虽然以 MCDNN 为代表的端到端的 CNN 模型
1130
自
动
化
学
报
42 卷
设计简单, 也取得了优异的识别性能, 但端到端的方
法一个不足之处在于其没有很好地利用要手写文字
的一些先验领域知识, 例如联机时序信息、领域相关
的数据生成技术、方向变换特征等, 而这些领域信息
是无法通过 CNN 网络自动学习而获取的. 下面将
介绍近年来传统领域知识和 CNN 相结合的手写汉
字识别方法.
1) 数据生成技术: 为了避免在训练过程中出现
过拟合 (Over fitting) 以及提升 CNN 模型的识别性
能, 除了采用 Dropout 等一些经典的方法之外, 获
取充足的训练样本是保障 CNN 等模型获得高性能
的前提. 但很多时候我们获得的训练样本是十分有
限的, 例如像 CASIA-HWDB/CASIA-OLHWDB
这样优秀的数据集, 其书写者仍然有限 (不到 1 080
人), 且采集地区有限, 不足以覆盖全国汉字书写者
的统计分布, 因此, 数据增加 (Data argumentation)
技术是一种非常重要的提升 CNN 系统鲁棒性及推
广能力的技术. 早在文献 [45] 中 LeCun 等就提出
了采用平移、尺度缩放、旋转、水平及垂直拉伸变形
(Squeezing、Shearing) 等方法对数据进行变形, 有
效地提升了识别性能. 文献 [111] 在仿射变换的基础
上, 进一步提出了弹性变形 (Elastic distortion) 等
两种数据生成技术, 利用 CNN 在 MNIST 获得了
99.60 % 的优异性能, 文献 [16] 利用三角函数构成的
非线性函数, 提出了针对手写汉字的 24 种整形变换
方法, 也可看成是一种有效的手写伪样本数据生成
方法[61]; 文献 [17 – 19] 提出了多种不同的手写伪样
本生成技术, 也被证明对识别性能的提升是有效的.
文献 [128] 提出了 19 种手写伪样本生成方法, 包括
仿射变换、局部弹性形变、非线性拉伸、图像加噪、
模糊化、对比度变化等, 针对 NIST-19 手写数据集,
生成了超过 8.19 亿的巨大样本, 有效解决训练样本
数据量不足问题. 除了在手写字符识别领域之外, 在
自然场景文字检测与识别领域, 数据生成技术也常
常被证明是十分重要且有效提升深度学习模型性能
的技术手段[96, 128].
文献 [129] 采用更深的 CNN 网络 (15 层, 其中
9 个卷积层), 同时结合三维随机变形技术进行了大
规模的数据生成, 除文字模式图像上的 X 坐标、Y
坐标外, 将各像素的灰度值作为 Z 坐标的参数, 即
可生成各种变形模式, 模拟光影以及笔画轻重的变
化, 并借鉴 GoogLeNet 在网络中间层引入多个输出
层以进行多层次监督学习的实现, 在 ICDAR 2013
脱机手写汉字识别比赛测试集上用 5 个 CNN 网络
投票的结果为 96.79 %, 是迄今为止在该数据集上公
开报道的最好的识别结果. 此外文献 [129] 的方法在
MNIST 手写数字上的识别结果为 99.82 %, 这也是
迄今为止我们所知的在该数据集上公开报道的最好
的识别结果. Yang 等进一步基于 CNN 的分类器设
计之中[61] 引入了伪样本生成技术[16], 应用于联机
手写汉字识别, 通过实验证实伪样本技术弥补了在
DCNN 训练中数据不足、泛化能力不够的问题.
图 1 列举了几种常用的数据增广技术所生成的
样本. 可见在手写识别问题中, 只要在不改变原字内
部结构关系的情况下, 能够丰富样本空间的样本个
数的数据增广技术都值得考虑使用. 值得注意的是,
在使用数据增广技术时, 需要控制样本变换的程度,
使得生成样本尽量符合实际样本分布.
图 1 几种常用的手写汉字数据增广技术示意图
Fig. 1 The influences of the controller parameters on the
tracking errors
2) 方向变换特征: 在文献 [40] 中, 除了提出了
稀疏 CNN 模型之外, Graham 引入一种新的领域
知识路径积分特征 (Signature of path)[130−131] 作
用于 CNN 的输入层, 被证明是一种非常有效的联
机时序信息特征提取方法, 由于该路径积分特征图
的引入, 使得其在 CASIA-OLHWDB 数据集上的
识别结果明显优于 MCDNN 的方法, 并且取得了
ICDAR 2013 年联机手写中文汉字识别比赛的第一
名. Graham 在文中还验证了路径积分特征的有效
8 期
金连文等: 深度学习在手写汉字识别中的应用综述
1131
性, 在 CASIA-OLHWDB1.1 数据集上, 若不采用
路径积分特征图, CNN 最佳错误率为 5.12 %, 而引
入路径积分特征图之后, 错误率大幅降低到 3.82 %,
相对错误率下降了 25.39 %, 充分说明了路径积分特
征图这一领域知识的有效性.
值得一提的是, 路径积分特征图是近年来提
出的一种很好的描述联机时序信号的特征, 文献
[40, 60 – 61] 将之引入与 CNN 结合, 在联机手写中
文识别中取得了很好的效果, 文献 [62 – 63] 应用其
来进行书写者鉴别, 相比传统方法, 大幅度提升了识
别精度, 在 NLPR 手写签名数据集上取得了迄今为
止最好的识别率. 路径积分特征是通过路径的多重
累积分获得多阶特征, 文献 [131] 中给出了路径积分
的具体数学定义描述, 文献 [40] 中则举例说明了路
径积分的计算过程, 文献 [62] 对其在手写汉字的提
取进行了可视化, 如图 2 所示. 从物理意义上看, 第
0 阶路径积分代表轨迹的二值图像信息, 第 1 阶代
表轨迹采样点的位移信息, 第 2 阶代表轨迹内采样
点的曲率信息, 以此类推. 相比较之前在联机手写汉
字识别被广泛采用八方向特征[24], 可以看到路径积
分特征图提取的方向信息及梯度变化信息更为丰富
完整.
此后, Yang 等进一步在基于 CNN 的分类器
设 计 之 中 加 入 非 线 性 归 一 化[14−15]、虚 拟 笔 画 技
术[20−22] (对联机数据)、八方向特征[24] 和路径积
分特征图[40] (对联机数据) 等相关领域知识作为先
验知识, 进一步提高联机手写汉字的识别性能[61].
通过实验得到以下观点: 1) 虚拟笔画技术在 DCNN
中能够很好地权衡真实笔画和虚拟笔画之间的权重
分配, 明显改进识别结果; 2) 8 方向特征和路径积分
特征的互补可以取得更好的结果.
在脱机手写汉字方面, 文献 [77] 借鉴在计算
机视觉领域参加 2014 年 ImageNet 大规模图像识
别竞赛 (ILSVRC 2014) 获得了物体识别第一名的
GoogLeNet 的网络结构, 对其进行了精简和改进,
并引入脱机手写汉字识别领域中常用的几种领域
特征提取方法如多尺度多方向的 Gabor 特征、八
方向梯度特征等到 GoogLeNet, 提出了一种改进的
HCCR-GoogLeNet 模型, 在 ICDAR 2013 比赛数
据集上取得了 96.74 % 的识别率, 首次在该数据库
上超过了人类的识别水平 (96.13 %)[39], 该工作同
时表明手动提取的汉字特征图作为先验知识嵌入到
CNN 网络之中, 能够帮助 CNN 网络更好学习到汉
字的辅助特征, 有效提高网络的识别性能.
2.3 其他改进的 CNN 识别方法
在手写汉字识别领域, 为了进一步提升深度学
习模型的性能, 研究人员除了加大模型深度和宽度
及将传统领域知识与深度模型相结合之外, 还对
深度学习的网络结构和训练方法进行了各种改进.
CNN 中常见最大值聚合 (Max-pooling, MP) 操作
的大小和步长一般都是整数 (例如大小为 3× 3, 步
长为 2), Graham[132] 对此提出了更一般化的分数
最大值聚合方法 (Fractional max-pooling, FMP).
FMP 使用的聚合区域大小是 1 到 2 之间的一个随
机分数, 因此需要比以往更多的隐层来确保特征图
缩小到合适大小, 因此 FMP 可以防止传统 MP 中
卷积层特征图快速缩小造成的信息丢失过快的问题.
除此之外, FMP 因为引入了随机聚合区域大小, 因
此在测试阶段可以对每个样本进行多次不同区域大
小的 FMP 从而得到多个测试结果, 集成后可以提高
识别率. 实验证明[132], 使用 FMP 思想设计的 单 个
Fig. 2 Path signature feature map visualization of handwritten Chinese characters
图 2 手写汉字的路径积分特征图可视化
1132
自
动
化
学
报
42 卷
网络在 CASIA-OLHWDB1.1 上单次测试错误率为
3.26 %, 在不需要增加模型存储量情况下, 多次 (12
次) 测试集成结果能有效降低 2.97 %.
除此之外, 研究者对深度模型的样本训练方式
也做出改进. 传统最简单有效的样本训练方式是使
用 Mini-batch 模式, 每个 Mini-batch 内的样本是
从总样本集合中随机抽取, 每个样本被抽取的机会
均等. Yang 等[61] 从心理学对人的记忆遗忘规律的
研究中受到启发, 提出 DropSample 训练技术. 因
为在大规模的手写样本中, CNN 理解每个样本的
难易程度不同, 在训练的后期大量已充分学习的样
本无需反复训练, 而错误标记的样本或严重噪声干
扰的样本应该从训练集中剔除, 对还未很好学习理
解的样本则需要频繁进入网络训练. DropSample
训练方法给每个样本设置一个配额, 根据 CNN 识
别输出的置信度为依据[82], 对当前网络输出的置信
度高低来动态调整该样本被选入 Mini-batch 训练
的概率, 使得网络训练更加高效; DropSample 对
未很好掌握的样本反复学习, 能够提高网络的泛化
能力. 由于 DropSample 作为一种深度模型训练方
法, 只影响每次样本抽取的概率, 因此能够很好地
和其他神经网络结构或改良技术相结合, 从而进一
步提高性能. 文献 [61] 在多个数据集上实验, 使用
DropSample 训练并集成多种领域知识的 CNN, 最
终单个网络在 CASIA-OLHWDB1.1 上取得 3.43 %
的错误率, 9 个不同领域知识的网络集成的结果为
2.94 %. 在 ICDAR 2013 联机手写中文竞赛的数
据集上, DropSample 训练 CNN 集成后最好结果
是 2.49 %, 是目前我们所知的公开文献报道中最好
的结果. 另外, 文献 [76] 提出了两种改进的 CNN
模型用于脱机手写汉字识别: Relaxation CNN (R-
CNN) 及 Alternately training CNN (ART-CNN),
R-CNN 网络与传统的 CNN 相比, 主要区别在于其
不进行卷积层的权值共享, 这样做的一个潜在动机
是为了使每个相应的神经元都能独立地学习有效的
特征, 并且防止过拟合, 但此网络的缺点是将导致存
储量明显增大; 而 ART-CNN 在 R-CNN 的基础上,
进一步提出了一种新的动态调整学习率的训练策略,
在训练过程中, 每隔 N 次 (例如 10 次) 随机将某个
权值矩阵学习率设置为 0, 从而对相应的权值不进
行学习和更新, 采用此策略可以极大提升训练速度.
文献 [76] 利用 10 个 ART-CNN 网络进行集成, 在
ICDAR 2013 比赛数据集上, 获得了 96.06 % 的性
能. 此外, ART-CNN 网络在 MNIST 手写数字识别
实验上, 也取得了 0.25 % 的较低的错误率. 此后, 富
士通研究开发中心进一步改进了 R-CNN 模型, 并
结合大数据生成基础, 单个网络的识别率已经提升
至 96.79 %[129].
表 2 总 结 对 比 了 不 同 的 深 度 学 习 方 法 在 联
机 手 写 中 文 单 字 符 数 据 集 CASIA-OLHWDB1.1
上 的 识 别 结 果. 表 3 总 结 对 比 了 几 种 典 型 的
深 度 学 习 方 法 在 CASIA-OLHWDB1.0、CASIA-
OLHWDB1.1、ICDAR 2013 联机手写中文单字符
识别竞赛数据集识别率情况. 表 4 为不同方法在
ICDAR 2013 脱机手写汉字竞赛集上的识别性能对
比. 由于某些方法并没有在文献中提及其训练时间
和测试速度, 所以在比较中更关注识别性能和字典
大小的对比.
表 2 不同方法在 CASIA-OLHWDB1.1 联机手写中文单字
数据集上的识别结果对比
Table 2 Comparison with different methods on the
CASIA-OLHWDB1.1
准确率
模型集成
(模型数量)
HDNN-SSM-MCE[66]
MCDNN[127]
DeepCNet[40]
方法
传统最佳方法: DFE+DLQDF[10]
(%)
94.85
89.39
94.39
96.42
96.18
96.35
HSP-DCNN (4 种领域知识集成)[64] 96.87
96.74
97.03
96.55
97.06
DeepCNet-FMP (单次测试)[132]
DeepCNet-FMP (多次测试)[132]
DeepCNet-8 方向直方图特征[40]
DCNN (4 种领域知识融合)[60]
DropSample-DCNN[61]
DropSample-DCNN (集成)[61]
伪样本变形
×
×
√
√
√
√
√
√
√
√
√
√
×
×
(35)
×
×
×
√
(8)
×
√
(12 test)
×
√
(9)
表 3 不同深度学习方法在 CASIA-OLHWDB1.0-1.1 以及
ICDAR 2013 竞赛数据集上的识别结果 (%)
Table 3 Comparison with different methods on the
CASIA-OLHWDB1.0-1.1 and ICDAR 2013 Online
CompetitionDB (%)
CASIA-
CASIA-
ICDAR 2013
OLHWDB1.0
OLHWDB1.1
竞赛数据集
95.28
94.39
–
96.93
94.85
–
96.42
96.55
92.62
–
97.391
97.231
97.33
97.06
97.51
MQDF 传统方法[10]
MCDNN[127]
DeepCNet[40]
DropSample-
DCNN[61]
DropSample-
DCNN (集成)[61]
1 DeepCNet 模型参数大约为 590 万个, DropSample-DCNN 的
模型参数为 380 万个.
2.4 基于其他深度模型的识别方法
拥有多个隐层的全连接神经网络一般可以统称
为 DNN, 例如含有多个隐藏层的多层感知器神经
网络, 传统的多层神经网络的训练容易过拟合、容
易陷入局部最优, 而且随着层数加深会出现梯度弥
散等问题. 2014 年, Du 等[65] 将传统方法和 DBN
方法结合, 使用了三种分类器: 原型距离、DNN 和