CRNN端到端文字识别

Convolutional Recurrent Neural Network(CRNN),华科白翔老师组的作品,An End-to-End Trainable Neural Network for Image-based Sequence Recognition and ItsApplication to Scene Text Recognition

整体流程:
CNN+biLSTM+CTC

CRNN端到端文字识别

网络结构:

CRNN端到端文字识别

网络的结构综合了CNN+RNN,

(1)   其中Max pooling中的窗口大小为1*2,保证提出的特征具有横向的长度,有利于比较长的文本的识别

(2)   CNN+RNN的训练比较困难,所以加入了BatchNorm,有助于模型收敛

(3)   在300dpi的分辨率下,一个中文汉字的宽度大约为50pix,一个英文字母的宽度大约为20pix,作者上面提供的网络模型,经过4个pooling和最后一个卷积(valid模式),总共会使得原图的宽度缩小pow(2,5)倍,即缩小32倍。而实际使用中,假设都使用一个像素预测一个结果,一个英文字母最多可以缩小20倍,一个中文最多可以缩小50倍。所以作者32倍的缩放对英文会有问题。我这里的建议是,将第三个或者第四个pooling的stride改为(1,2),这样就会使得最终的宽度只缩小16倍。从而满足实际需要。

 

优势:

(1)   可以端到端训练

(2)   不需要进行字符分割和水平缩放操作,只需要垂直方向缩放到固定长度既可,同时可以识别任意长度的序列

(3)   可以训练基于词典的模型和不基于词典的任意模型

(4)   模型速度快,并且很小,本人原始ckpt模型100M,固化后40M,量化后只有10M。

 

 

References:

http://mc.eistar.net/~xbai/

http://mc.eistar.net/~xbai/CRNN/crnn_code.zip

https://github.com/bgshih/crnn

https://github.com/Belval/CRNN