1、Character Region Awareness for Text Detection(CVPR2019)
(https://arxiv.org/pdf/1904.01941.pdf)
參考論文:
1、https://blog.csdn.net/qian99/article/details/90740430 (講的很好,複習必看)
2、https://www.jianshu.com/p/cda1289671ca
CRAFT:核心思想(分割)
提出單字分割以及單字間分割的方法,類似分割版本的seglink
- 提出如何利用char level合成資料得到真實資料的char box 标注的弱監督方法
上圖是訓練資料的label的生成示意圖。首先看左邊,有了一個字元級的标注(圖2的紅框, Character Boxes),這個字元的四個點(圖1綠邊)構成一個四邊形,做對角線,構成兩個三角形(圖1藍邊),取三角形的中心,兩個框之間就有四個點,構成了一個新的邊框,這個邊框就是用來表示兩個字元之間的連接配接的label的(Affinity Boxes)。圖3是根據Box生成Label的過程,先生成一個2D的高斯圖,通過透視變換,映射成與box相同的形狀,最後粘到對應的背景上。
Region Score表示該點是文字中心的機率,Affinity Score可以認為是該點是兩個字之間的中心的機率。
上圖是整個弱監督學習的架構。首先,我們有兩種資料,一種是合成資料,這些資料的标注是準确的,另一種是真實資料,這些資料的标注是文本行等級的,合成資料就正常的訓練。真實資料訓練分以下幾步:
1、根據真實資料的标簽,将文本行crop出來。
2、跑網絡,得到結果圖。
3、根據網絡輸出的圖,分割出單個文字。
4、根據上一步的結果,生成label。
實際上,這些label并不一定準确,是以用這些資料訓練,并不一定能使模型訓得更好,尤其是一開始模型并不夠準的時候。是以,論文中利用了一個已有的标注結果來給出一個置信度,那就是利用文本長度。簡單來說,如果文本長度與模型跑出來的結果是一樣的,那就認為置信度高,否則置信度比較低(置信度直接乘到loss上)。
還缺少的?
如何加入loss中?
為了防止在弱監督方式下産生的錯誤label帶偏網絡,該論文提出了一個評價方式:
仔細看這個公式:如果預測得到的Lc(w) 與 L(w) 長度相同,分子min() = 0, Sconf = 1,置信度最高。
如果Lc(w) = 0,分子min() = L(w), Sconf = 0,置信度最低。就是說:預測長度和真實長度差距越大,置信度越低。
Loss實際上就是采用二範數,前面乘以Sc(p) ,這個了解為這個loss的可信度是多少,跟上一步預測得到的預測長度有關,預測長度和實際長度(gt)差異越小, loss前面系數越大,梯度會更好優化這個結果。