文字识别-CRNN

本文介绍了CRNN模型,包括其端到端训练、无需字符分割的特点,以及卷积层、循环层和转录层的工作原理。重点阐述了如何处理输入图像、LSTM循环神经网络的应用和CTC模型在识别中的作用。展示了中文识别案例和经典论文来源。
摘要由CSDN通过智能技术生成

CRNN的主要特点是:

(1)可以进行端到端的训练

(2)不需要对样本数据进行字符分割,可识别任意长度的文本序列

(3)模型速度快、性能好,并且模型很小(参数少)

 

下面将展开对这三个层进行介绍:

(1)卷积层

① 预处理

CRNN对输入图像先做了缩放处理,把所有输入图像缩放到相同高度,默认是32,宽度可任意长

② 卷积运算

由标准的CNN模型中的卷积层和最大池化层组成,结构类似于VGG,如下图:

 

从上图可以看出,卷积层是由一系列的卷积最大池化批量归一化等操作组成。

③ 提取序列特征

提取的特征序列中的向量是在特征图上从左到右按照顺序生成的,用于作为循环层的输入,每个特征向量表示了图像上一定宽度上的特征,默认的宽度是1,也就是单个像素。由于CRNN已将输入图像缩放到同样高度了,因此只需按照一定的宽度提取特征即可。如下图所示:

(2)循环层

循环层由一个双向LSTM循环神经网络构成,预测特征序列中的每一个特征向量的标签分布。

由于LSTM需要有个时间维度,在本模型中把序列的 width 当作LSTM 的时间 time steps。

其中,“Map-to-Sequence”自定义网络层主要是做循环层误差反馈,与特征序列的转换,作为卷积层和循环层之间连接的桥梁,从而将误差从循环层反馈到卷积层。

(3)转录层

转录层是将LSTM网络预测的特征序列的结果进行整合,转换为最终输出的结果。

在CRNN模型中双向LSTM网络层的最后连接上一个CTC模型,从而做到了端对端的识别。所谓CTC模型(Connectionist Temporal Classification,联接时间分类),主要用于解决输入数据与给定标签的对齐问题,可用于执行端到端的训练,输出不定长的序列结果

由于输入的自然场景的文字图像,由于字符间隔图像变形等问题,导致同个文字有不同的表现形式,但实际上都是同一个词,如下图:

 而引入CTC就是主要解决这个问题,通过CTC模型训练后,对结果中去掉间隔字符、去掉重复字符(如果同个字符连续出现,则表示只有1个字符,如果中间有间隔字符,则表示该字符出现多次),如下图所示:

 

 

以上就是文本识别模型CRNN的介绍,该模型既可用于识别英文、数字,也可用于识别中文。一般是跟CTPN结合一起使用,使用CTPN进行文字的检测,使用CRNN进行文字的识别。

本人使用CTPN+CRNN对中文识别出来的效果如下(隐去私密信息):

02aec1c0d763727819ec70a6ccc772a62d6.jpg

 

2015年,Baoguang Shi 等人发表了关于CRNN的经典论文《 An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition 》

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI生成曾小健

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值