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即多行文字

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章