原文:Handwritten Chinese Text Recognition Using Separable Multi-Dimensional Recurrent Neural Network.
1 摘要
文章主要针对长短期记忆神经网络(LSTM)在汉子识别中效果不佳的问题,提出了Separable Multi-Dimensional Recurrent Neural Network(可分离多维循环神经网络)模型。
2 手写识别常用方法
大多数汉字手写识别系统是基于过分割的方法来达到高性能的。
过分割方法是将文本行过度分割为连续的段,然后通过集成字符分类器,几何和语言上下文模型来给出识别结果。这种方法有两个缺点:
- 不稳定,尤其在有重影的图像中
- 这个框架由几个连续的训练模块组成,因此很难获得整个系统的输出。
隐马尔可夫模型在西文中效果很好(笔者记得早起中文中也有应用);近年来有了将LSTM-RNN应用在手写识别中的案例,还有将RNN和CNN相结合的应用。
3 separable MDLSTM-RNN
传统的BLSTM用来处理一位序列数据,若将脱机手写识别转换成1维数列,数据就会失真。因此,Graves等人使用MDRNN来处理脱机任务。MDRNN中,用
h
(
u
,
v
)
h(u,v)
h(u,v)来表示隐藏层
(
u
,
v
)
(u,v)
(u,v)的状态,用
h
(
u
−
1
,
v
)
,
h
(
u
,
v
−
1
)
h(u-1,v),h(u,v-1)
h(u−1,v),h(u,v−1)表示不同轴的前一隐藏层状态。
h
(
u
,
v
)
=
f
(
W
x
(
u
,
v
)
+
U
h
(
u
−
1
,
v
)
+
V
h
(
u
,
v
−
1
)
+
b
)
h(u,v)=f(Wx(u,v)+Uh(u-1,v)+Vh(u,v-1)+b)
h(u,v)=f(Wx(u,v)+Uh(u−1,v)+Vh(u,v−1)+b)
x
(
u
,
v
)
x(u,v)
x(u,v)是当前输入,W,U,V是权重,b是偏移量,
f
(
)
˙
f(\dot)
f()˙是一个非线性激活函数。通常使用四个这样的模型以如图所示的方式来扫描脱机文本。
然后将四个方向的数据整合,得到整个脱机文本的信息。
这种方式效率不让人满意,于是论文作者提出了SMDLSTM。
传统的的LSTM在单一方向上进行扫描,从上到下,从左到右,使用SMDLSTM对MDLSTM进行改进,同样从四个方向扫描,但扫描方式如图:
这就变成了四个LSTM-RNN。
h
(
u
,
v
)
=
{
f
(
W
x
(
u
,
v
)
+
U
h
(
u
−
1
,
v
)
+
b
)
,
v
e
r
t
i
c
a
l
f
(
W
x
(
u
,
v
)
+
U
h
(
u
,
v
−
1
)
+
b
)
,
h
o
r
i
z
o
n
t
a
l
h(u,v)=\begin{cases}f(Wx(u,v)+Uh(u-1,v)+b),\space vertical\\f(Wx(u,v)+Uh(u,v-1)+b),\space horizontal\end{cases}
h(u,v)={f(Wx(u,v)+Uh(u−1,v)+b), verticalf(Wx(u,v)+Uh(u,v−1)+b), horizontal
SMDLSTM图解如下:
同时,作者还基于此提出了一种BLSTM模型,参数如下图:
从示意图中我们可以看到,在模型的底部,首先要使用一系列卷积层来生成特征序列, 然后,将512个维度的三个双向LSTM(BLSTM)层堆叠在一起,以预测特征序列中每个帧的概率分布。
实验
作者使用CASIA-HWDB上的数据集,数据集情况如下:
作者训练时,对高度不足128的图像填充为128,超过128的图像缩放为128。
实验结果
使用不同模型的正确率(CR)和准确率(AR)如下,
从结果可以看出SMDLSTM好于BLSTM.
作者在不同语料库中的实验结果如下:
同样的,SMDLSTM结果好于BLSTM,但是结果不如基于过度分割的手写识别。
同时笔者很好奇SMDLSTM的准确率和MDLSTM的准确率比较结果和运行时间比较结果,论文作者并没有论述,多少有些遗憾。
总结
在脱机手写识别中,过去应用最多的是CNN,现在有了很多将CNN和RNN结合起来的方法被提出,准确率也大大提高,不过本篇论文作者实验结果准确率均未超过95%,笔者认为方法一般,但方法值得考虑改良。