[论文笔记] CRNN(Convolutional Recurrent Neural Network)_2015 学习笔记
本人文字识别初学者,通过学习笔记记录下自己的学习历程,希望坚持下去。基于对CNN和RNN的大体了解,先从经典文章开始学习。论文笔记根据个人理解而记录,不能完全保证理解的正确性,愿意与大家讨论学习。
该文章全称《An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition》,提出的CRNN模型,是目前比较经典的文字识别模型,主要记录以下几方面:
- 概述
- 网络结构
- 实验相关
概述
本文提出CRNN模型,即将CNN与RNN网络结合,共同训练,在一定程度上实现end-to-end文字检测和识别。说一定程度是因为虽然输入图像不需要精确给出每个字符的位置信息,但实际上还是需要对原始的图像进行前期的裁切工作。
网络结构
CRNN的网络结构包括三个组成部分:卷积层、循环层和转录层。如下图所示:
卷积层从输入图像中得到一组feature maps,再以feature sequence的形式输出,来作为循环层的输入。其中所有输入图像归一化至同一高度(本文实验为32 pixels),每个feature map的第i栏串联为feature sequence的第i个vector,即第i帧。
循环层中采用deep双向lstm模型,如下图所示。LSTM可以将误差差别反向传播到卷积层,从而实现在同一网络中对CNN和RNN的共同训练。并且RNN可以在任意长度的序列上进行学习,优于CNN模型的固定维度。Lstm解决了传统RNN梯度消失的问题,文章堆叠了两个双向lstm,效果更好。循环层的输出为预测的序列结果