OCR

前言

    最简单的Lenet网络使用的是多层卷积+softmax,存在不足:输入图像是分割好的单个字符,更理想的形式是将分割与识别组合为端到端的网络。且使用softmax的机制意味着分割后子图的数量决定了输出字符串的长度。

    当前OCR的问题在于对倾斜文本、弯曲文本、二维文本的识别效果不佳,且在ASTER方法中,预测时会出现某个字识别错误后后面全错的问题。

CTC

CNN+RNN+CTC(CRNN+CTC)

CTC:联结主义时间分类

OCR_第1张图片

简单来说,CNN获取特征图,对特征图按列切分,输入BLSTM网路提取文字序列特征,BLSTM网路的输出尺寸为识别的最长字符串长度,使用空白字符blank机制(增加空字符‘-)、β变换(去冗余)及CTC损失,实现不定长文本的识别。

同一目标输出,可由多条不同路径经β变换获得

OCR_第2张图片

CTC的训练目的为输入图像x,输出目标字符串的概率最大p(l |x)

CTC借用了HMM的“向前—向后”(forward-backward)算法来计算 p(l |x),涉及前向递推概率和、反向递推概率和。目标输出CAT,某一条正确的路径,t时刻为A,则t-1时刻只能为C、A或-,t+1时刻只能为A、T、-,式中求积代表某条子路径的概率,求和代表多条子路径的概率和。

OCR_第3张图片

CTC损失为负的最大似然,预测结果正确率越高,损失越小。

OCR_第4张图片

前向推断时,可采取前缀搜索算法解码(输出序列的每一步中选择最可能的单词)或约束解码算法(束搜索:在每一步中,每个候选序列都被扩展为所有可能的后续步骤。每个候选步骤的分数通过概率相乘得到。选择具有最大概率的k个序列,并删去其他候选项,然后重复该过程直到序列结束。)

参考文献:

https://zhuanlan.zhihu.com/p/43534801

Attention

CNN+Seq2Seq+Attention

“在Seq2Seq结构中,编码器Encoder把所有的输入序列都编码成一个统一的语义向量Context,然后再由解码器Decoder解码。在解码器Decoder解码的过程中,不断地将前一个时刻的输出作为后一个时刻的输入,循环解码,直到输出停止符为止。”

 

OCR_第5张图片

复用编码器前几个隐藏层状态(类似残差网络的思想),提高信息利用率,当输出较长时更为明显,解决语义向量Context长度限制问题。由于w不同,形成了一种对编码器不同输入对应的注意力机制(权重越大注意力越强)。与前一个状态拼接在一起形成一个新的向量输入到隐藏层计算结果。

OCR_第6张图片

缺陷:前一时刻作为会作为后一个时刻的输入,因此,前一时刻的输出错误会导致下一时刻的输出错误,影响训练,为了解决这个问题,提出了Scheduled Sampling(即在训练中xt按照一定概率选择输入y(t-1)或t-1时刻对应的真实值,即标签.,既能加快训练速度,也能提高训练精度。

参考文献:

https://zhuanlan.zhihu.com/p/51383402

ASTER

将字符区域矫正后识别,ASTER = 矫正网络 + Attention

Localization Network:检测控制点

Grid Generator:生成映射关系,传统方法,非DL

Sampler V:在原图中采样,生成矫正后图像

OCR_第7张图片

缺陷:矫正网络能力有限,若矫正不佳,影响图像质量,更不利于识别。

参考文献:

https://blog.csdn.net/weixin_30457065/article/details/97851173

ACE

将图像分割为多个子区域后(子区域数量与特征图尺寸有关),识别子区域的字符。

OCR_第8张图片

ACE用了近似计算的思想,如标签为CATCAT,按照CTC的思想,输出目标为第一个字符为C,第二个为A。。。,按照CTC的思路,目标物2个C,2个A,2个T。

缺陷:特征图的尺寸限制了所能预测的字符串的长度。最长目标字符串长度越长,输入网络的图像需要越大,而对于中英文及标点而言,宽度不同,这个网络对于真实的文本,需要的输入非常大。

参考文献:

https://blog.csdn.net/CHEN666CONG/article/details/94392249

MASKTEXTSPOTTER


在整张图像上检测单个字符,并拼接起来

RPN:候选区域网络,生成候选文本区域
ROI Align: 提取候选区域特征
Fast R-CNN : 生成更准确的回归框
Mask branch:全局文本分割 +字符分割 

OCR_第9张图片

 

OCR_第10张图片

缺陷:

1)标注量剧增

2)对于英文和数字来说,类别只有26*2+10,如果用来提取中文,类别暴增,每个字符训练一个通道不太现实

3)CTW和totaltext数据集的图像旋转不会太厉害,对旋转角度超过90的估计不好处理

参考文献:

https://blog.csdn.net/qq_14845119/article/details/81505673

你可能感兴趣的:(ML,DL)