CTC的直观理解(Connectionist Temporal Classification连接时序分类),单行文本时序分类识别的端到端方法

把基于概率的自动化叫做AI是否有些可笑? — David 9

原文:An Intuitive Explanation of Connectionist Temporal Classification

聊到CTC(Connectionist Temporal Classification),很多人的第一反应是ctc擅长单行验证码识别:

两组谷歌验证码示例

是的,ctc可以提高单行文本识别鲁棒性(不同长度不同位置 )。今天David 9分享的这篇文章用几个重点直观的见解把ctc讲的简洁易懂,所以在这里就和大家一起补一补ctc 。

首先ctc算不上一个框架,更像是连接在神经网络后的一个归纳字符连接性的操作

来自:https://towardsdatascience.com/intuitively-understanding-connectionist-temporal-classification-3797e43a86c

cnn提取图像像素特征,rnn提取图像时序特征,而ctc归纳字符间的连接特性。

那么CTC有什么好处?

因手写字符的随机性,人工可以标注字符出现的像素范围,但是太过麻烦,ctc可以告诉我们哪些像素范围对应的字符

手写字符的单行像素标注, 来自:https://towardsdatascience.com/intuitively-understanding-connectionist-temporal-classification-3797e43a86c

如上图标注“t”的位置出现t字符,标注o的区域出现o字符。是的就是这样简单,ctc会总结出上述标注规律,不用人工标注,你所要做的只是提供loss函数做模型训练。

CTC是如何工作的?

ctc的编码有一个地方需要注意即是对重复字符的处理,如上述例子中的“to”,  如果真实字符串是“too”,而编码时也为“to”,就会和真实字符串“to”混淆。

所以在重复字符处要引入一个占位符号“-” 。下面是一些例子:

来自:https://towardsdatascience.com/intuitively-understanding-connectionist-temporal-classification-3797e43a86c

然后,ctc会计算loss ,从而找到最可能的像素区域对应的字符。事实上,这里loss的计算本质是对概率的归纳:

来自:https://towardsdatascience.com/intuitively-understanding-connectionist-temporal-classification-3797e43a86c

如上图,对于最简单的时序为2的(t0t1)的字符识别,可能的字符为“a”,“b”和“-”,颜色越深代表概率越高。

对于真实字符为空即“”的概率为0.6*0.6=0.36

而真实字符为“a”的概率不只是”aa” 即0.4*0.4 , 实时上,“aa”, “a-“和“-a”都是代表“a”,所以,“a”的概率为:

0.4*0.4 + 0.4 * 0.6 + 0.6*0.4 = 0.16+0.24+0.24 = 0.64

所以“a”的概率比空“”的概率高!通过对概率的计算,就可以对之前的神经网络进行方向传播更新。

最后,ctc的解码也是根据概率获得最高的那条路径:

来自: https://towardsdatascience.com/intuitively-understanding-connectionist-temporal-classification-3797e43a86c

当然,我们讨论到现在,CTC的适用范围还只是单行文本,对于多行如双行的黄牌识别就可能需要介入一些分行算法(line segmentation algorithms 参考【2】)的集成:

来自:http://blog.sina.com.cn/s/blog_13ead40120102wsxh.html

对于多行复杂的文本也是一样的:

来自谷歌图片

 

参考文献:

  1. https://towardsdatascience.com/intuitively-understanding-connectionist-temporal-classification-3797e43a86c
  2. Joint Line Segmentation and Transcription for End-to-End Handwritten Paragraph Recognition

本文采用署名 – 非商业性使用 – 禁止演绎 3.0 中国大陆许可协议进行许可。著作权属于“David 9的博客”原创,如需转载,请联系微信: david9ml,或邮箱:yanchao727@gmail.com

或直接扫二维码:

发布者

David 9

David 9

邮箱:yanchao727@gmail.com 微信: david9ml

发表评论

电子邮件地址不会被公开。 必填项已用*标注