使用RNN做联机字符识别的思路是怎样的?

联机手写单字符识别,比如,手写汉字“十”,得到数据为笔画经过的所有点的坐标,以及两个笔画的信息。可以表示为
[
[x11,y11,....., x1n, y1n], # “十”中的“ — ”
[x21,y21,......, x2m,y2m] # “十”中的“ | ”
]
其中,m和n不一定相等。
已邀请:

xinmiao

赞同来自: shuokay

谢邀。
我不是专门研究OCR的,所以回答不够专业,欢迎大家一起讨论~
RNN建模的是条件概率,作用是modeling sequence dynamics。序列数据是广泛存在的,最典型的比如语音,文本、视频等等。在你的问题中,你要建模的是当前素点出现的位置与前后时刻出现位置的条件概率关系(也就是上下文),理论上是比较适合RNN去做的。
一些RNN模型在这个问题上有很好的表现,比如双向LSTM(Bidirectional Long Short-Term Memory)。相比于经典的LSTM,BLSTM不仅可以借助顺序的信息,也可以借助逆序的时序信息,因此在一些任务上有很好的表现。
推荐你看我神Alex Graves的文章:
《Unconstrained Online Handwriting Recognition with Recurrent Neural Networks》
这是专门讲用RNN做在线手写字体识别的文章。
如果你用caffe实现的话,可以关注一个开源的项目:
Handwriting Recognition with LSTMs and ofxCaffe
地址是:http://pkmital.com/home/2015/02/06/handwriting-recognition-with-lstms-and-ofxcaffe/
放个视频看看:)
<oops~ 貌似编辑器不支持插入视频 汗...>
视频链接(请自带梯子~)
https://vimeo.com/118878865

要回复问题请先登录注册