我是靠谱客的博主 舒适故事,最近开发中收集的这篇文章主要介绍CTC的直观理解(Connectionist Temporal Classification连接时序分类),单行文本时序分类识别的端到端方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

CTC(Connectionist Temporal Classification), ctc擅长单行验证码识别:

两组谷歌验证码示例在这里插入图片描述

ctc可以提高单行文本识别鲁棒性(不同长度不同位置 )。本文用几个重点直观的见解把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.40.4 + 0.4 * 0.6 + 0.60.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

最后

以上就是舒适故事为你收集整理的CTC的直观理解(Connectionist Temporal Classification连接时序分类),单行文本时序分类识别的端到端方法的全部内容,希望文章能够帮你解决CTC的直观理解(Connectionist Temporal Classification连接时序分类),单行文本时序分类识别的端到端方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部