2-D CTC Loss
Posted 爆米花好美啊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2-D CTC Loss相关的知识,希望对你有一定的参考价值。
2D-CTC for Scene Text Recognition,1-D CTC Loss参考CTC Loss和Focal CTC Loss
Motivation
普通的CTC仅支持1-d,但是文字识别不像语音识别,很多时候文字不是水平的,如果强行“压”到1d,对识别影响很大,如下图所示
Review 1-D CTC
首先对alphabeta进行扩充,加入blank符号,然后定义一个映射规则: blank之间的相同字符可以去重
计算loss时,对每个gt label字符间加入blank
然后计算
但是如果穷举能够经过映射规则变换到apple字符串的话,计算量太大。其实可以将apple分开进行映射,其实是互不干扰的,这时可以用动态规划重复利用子问题答案,参考博客
2-D CTC
2d比1d多了个高度,不仅可以左右跳还可以上下跳。
左右跳是有固定的规则
而上下跳我们可以利用一个网络进行学习,上面第一个输出是wh各个位置的概率输出向量,而下面第二个输出是各个位置在h方向上跳动的概率,由于最后一列不用跳,因此输出是(w-1) h * h
每个位置在h方向跳动的概率和为1
同样在计算2-D CTC loss时依然可以用到动态规划,只是在多了个h方向(将原来的某一个点(一个概率值),换成某一条竖线,变成h个概率值乘以跳转概率的和)
备注
本文为了简便,在预测上下跳动概率时,假设同一列位置上,他们跳动到该列其他点上概率分布相同(好像attention呀,就是预测该列上出现文字的地方),该转移概率输出为(w-1) * h
作者说两者效果差不多
实验
解释下Vanill CTC + Attention,即网络结构和输出和2D-CTC一样,然后利用2d转移概率图乘以输出的概率图,最后在h方向求和以利用1d ctc
对比结果2d-ctc还是最好的
点评
个人认为这个应该是1.5d ctc,解决的是弯曲的一行文字,而不是真正的2d即多行文字
以上是关于2-D CTC Loss的主要内容,如果未能解决你的问题,请参考以下文章