CRNN是 Convolutional Recurrent Neural Network的缩写,是一种端到端的文字识别的网络。
原文链接:https://arxiv.org/pdf/1507.05717v1.pdf
<https://arxiv.org/pdf/1507.05717v1.pdf>

CRNN由CNN+BiLSTM+CTC构成:




网络结构:




网络结构综合了CNN+RNN

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

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

优势

(1)可以端到端训练;

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

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

(4)训练速度快,并且模型很小。




crnn.pytorch环境配置

下面介绍一下利用pytorch实现的crnn环境配置。

安装pytorch

网站http://pytorch.org/ <http://pytorch.org/>给出了对于不同的环境安装pytorch的命令。本人选择如下:




因此安装命令如下:
pip install
http://download.pytorch.org/whl/cu90/torch-0.3.1-cp27-cp27mu-linux_x86_64.whl
pip install torchvision
安装lmdb
pip install lmdb
下载rcnn源代码
git clone https://github.com/meijieru/crnn.pytorch --recursive
下载预训练的模型

下载地址:https://pan.baidu.com/s/1pLbeCND <https://pan.baidu.com/s/1pLbeCND>

将crnn.pth放到data/路径下

测试
python demo.py


输出:
loading pretrained model from ./data/crnn.pth a-----v--a-i-l-a-bb-l-e--- =>
available

参考:

[1] https://github.com/meijieru/crnn.pytorch

[2] https://blog.csdn.net/qq_14845119/article/details/78934334