OCR技术专题系列一:CTC原理简介

举报
一笑倾城 发表于 2020/05/08 18:06:01 2020/05/08
【摘要】 CTC原理的简单介绍,包括CTC的基础概念、基本操作和目标函数。着重讲述在数学上如何根据网络概率矩阵计算标签序列的概率。

1.1       基础概念和操作

基础概念:预测概率矩阵、标签序列和对齐序列

基础操作:序列到序列操作(β)、对齐序列概率的计算

1.1.1    预测概率矩阵

OCR识别问题为例,预测概率矩阵就是识别网络对输入的文本图片预测的概率矩阵。如图1-1所示,概率矩阵宽度为T,高度表示字符数。其中blank表示一个特征字符——无预测。

概率矩阵有两点特征:(1)每个时间点(每一列)的概率分布之和为1;(2)大部分时间点blank的概率最高。

1-1 预测概率矩阵

 

1.1.2    标签序列

标签序列即Ground-TruthGT)序列,也就是模型训练时的监督信息。

 

1.1.3    对齐序列

对齐序列是CTC中一个非常重要的概念,是预测概率矩阵和标签序列的中间桥梁。(具体的例子可以查看图1-2

对齐序列有如下特性:

  • 序列字符的数目和预测概率矩阵的宽度T一致

  • 对齐序列可以通过β操作映射为标签序列(β操作会在下文涉及)

 

1.1.4    序列到序列操作(β

操作由两部分过程构成,分别是“去重”和“去blank”操作。在图1-2中,我们给出两个简单的例子来说明操作过程。假设我们有对齐序列“_____观观___期期 ___”(其中下划线表示blank),在去重之后,我们就可以得到“_____ __”,注意到下划线(也即blank)也是需要去重的。最后,我们再去除下划线就可以得到最后的结果——“备受观众期待”。

有人可能思考,如果标签序列中存在重复字符,去重操作会不会影响最终的结果,答案是不会。因为重复字符只需要有blank隔开就可以了,如图1-2“天天向上”的例子所示。

注:对齐序列是根据标签序列(GT序列)生成的,一个标签序列可以有多条对齐序列。

1-2 β操作过程

 

1.1.5   对齐序列概率的计算

1.1.3节中,我们描述了对齐序列的一个特性——序列字符数目和预测概率矩阵宽度T一样。这是因为对齐序列中的第t个字符就取自概率矩阵第t列中的字符。

例如,在图1-3中的对齐序列的第6个字符“观”,如果我们想获得它的概率,那么就需要去概率矩阵的第6列找到对应的“观”字的概率,例如,图里面就是0.789(图里面使用了省略号,所以不是严格的第6列)。同理,我们可以获得对齐序列里面每个字符的概率。那么对齐序列的概率就呼之欲出——就是全部字符概率的累乘。

1-3 对齐序列概率计算过程

 

1.2       CTC目标函数

CTC目标函数的关键点在于计算标签序列的概率,因为CTC目标函数可以直接由标签序列概率的负对数表示。

根据全概率公式,标签序列的概率可以转化为全部对齐序列的概率之和,如图1-4第一个等号所示。在1.1.5节中,我们已经知道如何基于概率矩阵计算对齐序列的概率,所以我们就可以展开得到标签序列的概率和概率矩阵元素之间的数学关系——如图1-4第二个等号所示。自此,网络模型输出的概率矩阵到标签序列的概率之间的关系就完整地建立起来了,求取梯度自然也不是障碍。

1-4 CTC目标函数

       最后,读者可能会有疑问:对齐序列的数量非常之多,如何有效地找到对应的对齐序列并高效地计算标签序列的概率呢?CTC的作者Alex Grave在论文中提出前向-后向算法来简化计算过程,完全等价于上述公式,但计算复杂度非常低。大家可以通过阅读原作“Connectionist temporal classification: labelling unsegmented sequence data with recurrent neural networks”来进行更深一步的学习。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。