(2)OCR学习-CTC相关

一、CTC是什么?

CTC可以生成一个损失函数,用于在序列数据上进行监督式学习,不需要对齐输入数据及标签,经常连接在一个RNN网络的末端,训练端到端的语音和文本识别系统。(一句话总结就是当label长度小于input长度时,如何做损失函数。)原文

二、CTC过程

CTC网络的输入

 

CTC网络的输入是一个样本(图像)经过网络(一般是CNN+RNN)计算后生成的特征向量(特征序列)。

特征序列里各个向量是按序排布的,是从图像样本上从左到右的一个个小的区间映射过来的,可以设置区间的大小(宽度),宽度越小,获得的特征序列里的特征向量个数越多,极端情况下,可以设置区间宽度为1,这样就会生成width(图像宽度)个特征向量。

 

CTC网络的计算过程

 

CTC网络的计算是为了得到特征序列最可能对应的标签对象,对语音识别是一段话,对文本识别是一段文字。

1. 计算特征序列里N个特征向量分别对应的n个可能结果的概率。如果当前的特征向量的预测结果不在样本标签列表里,就置预测结果为blank空格或下划线。计算结果从一个N维的特征序列,得到一个N×n的预测序列。

2.  计算N×n的预测序列对应的所有可能的结果的概率,中间涉及到去除重复字母和blank的操作。
N×n个特征向量对应的所有可能结果有n的N次方个,涉及到组合学,计算所有可能概率的成本会很高,但是CTC运用了动态规划以大幅降低计算的复杂性。

 

CTC网络的输出

 

对识别过程,取出最大概率对应的结果作为识别结果输出;
对训练过程,取最大概率对应的结果跟真实标签之间的差异(计算编辑距离等方法),作为训练Loss,反向传输给前端网络。
 

CTC计算过程示意图:

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值