文字识别 CRNN-白翔

pytorch代码(只针对英文)
https://blog.csdn.net/u013102349/article/details/79515147

中文翻译
架构包括三部分:1) 卷积层,从输入图像中提取特征序列;2) 循环层,预测每一帧的标签分布(每帧预测);3) 转录层,将每一帧的预测变为最终的标签序列。

CNN:
特征序列的每一个特征向量在特征图上按列从左到右生成。这意味着第i个特征向量是所有特征图第i列的连接。在我们的设置中每列的宽度固定为单个像素。
特征图的每列对应于原始图像的一个矩形区域(称为感受野),并且这些矩形区域与特征图上从左到右的相应列具有相同的顺序。
 

RNN:
循环层预测特征序列x=x1,...,xT中每一帧xt的标签分布yt(概率分布,即yt是一个向量,元素是对应标签的概率)。
首先,RNN具有很强的捕获序列内上下文信息的能力。例如,通过对比字符高度更容易识别“il”而不是分别识别它们中的每一个。
其次,RNN可以将误差差值反向传播到其输入,即卷积层,从而允许我们在统一的网络中共同训练循环层和卷积层。
第三,RNN能够从头到尾对任意长度的序列进行操作。

在基于图像的序列中,两个方向的上下文是相互有用且互补的。将两个LSTM,一个向前和一个向后组合到一个双向LSTM中。
可以堆叠多个双向LSTM,得到深双向LSTM。深层结构允许比浅层抽象更高层次的抽象。

创建一个称为“Map-to-Sequence”的自定义网络层,作为卷积层和循环层之间的桥梁。

转录:
转录是根据每帧预测的标签分布找到具有最高概率的标签序列。
输入是序列y=y1,...,yT,其中T是序列长度。这里,每个yt在集合L上的概率分布,其中L包含了任务中的所有标签(例如,所有英文字符),以及由-表示的“空白”标签(blank)。
B将π映射到l上,首先删除重复的标签,然后删除blank。例如,B将“–hh-e-l-ll-oo–”(π)(-表示blank)映射到“hello”(l)。

数据集包含8百万训练图像及其对应的实际单词。
https://blog.csdn.net/quincuntial/article/details/77679463

CTC
https://blog.csdn.net/dongfang1984/article/details/77586945
 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

WX Chen

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

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

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

打赏作者

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

抵扣说明:

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

余额充值