[18.09] CA-FCN
引入新的維度
Scene Text Recognition from Two-Dimensional Perspective
CRNN 和後續的改進研究在場景文字辨識領域在近幾年佔據了主導地位,想要創新並不容易。
這篇論文的作者選擇撇開過去的研究,從二維的角度重新思考場景文字辨識的問題。
定義問題
過去的研究,像是 CRNN 等,都選擇把輸入影像壓縮成一維的時序資料,這樣的做法在規則文字的辨識上效果不錯,但對於高度彎曲的文字則是存在一定的困難。
如上圖,在左圖 (a) 中是一張包含了高度彎曲文字的影像,如果我們把圖像壓縮成一維的時序資料,你可以觀察到每個時序會引入大量的背景雜訊(因為文字彎曲的關係),這樣的背景雜訊會對文字辨識造成干擾。
此外,由於文字彎曲,每個時序(Column)可能會同時涵蓋多個文字,這樣表示模型必須從疊加的文字特徵中找出正確的文字,這顯然不是一件容易的事。
作者認為,將影像壓縮成一維時序資料的做法,對於高度彎曲的文字辨識並不適用,因此提出了一個新的方法:
- 將影像保持二維的形式,並在二維的空間中進行文字辨識。
引入新的維度還帶來更多的好處:就是不需要考慮時序的資訊了!
我們可以完成使用卷積網路來完成整個辨識過程。
解決問題
模型架構
作者提出的模型架構如上圖。
這裡引入 FCN 的概念,利用全卷積網路的概念,我們可以預先定義幾個文字類別,模型會對輸入影像的每個像素點進行分類,這樣一來,就將文字辨識的問題轉換成一個「像素級的分類問題」。
上圖中的「藍色」區塊,作者選用 VGG 作為 Backbone,取出 1/2, 1/4, 1/8 的特徵圖。
跟著「藍色」區塊向上看,這些特徵圖用來預測文字區域圖,每個解析度都會有對應的預測結果,這個分支會在訓練時進行監督。
得到預測結果後,就是「文字區域注意力」圖,接著作者把這張圖乘上原始的特徵圖,就能得到「加權後」的文字區域特徵。
加權的算法為:
這裡的 是加權後的特徵圖, 是原始的特徵圖, 是文字區域注意力圖。
這些特徵圖一路進行上採樣,最後輸出 C 個通道的文字特徵圖。
這裡的 C 個通道,就是我們預先定義的文字類別數量。
上圖中的紅色線條表示這裡使用「可變形卷積」取代了原本的卷積操作,作者預期這樣可以更好地捕捉文字的特徵。
下圖中,左圖是一般卷積的感受野,右圖是可變形卷積的感受野,可以看到可變形卷積的感受野有更大的彈性,能夠更精確的鎖定文字特徵。
訓練資料設計
製 作訓練資料分為幾個步驟,作者首先準備帶有「字元級」標註的訓練資料,然後根據這些標註繪製成文字區域二值圖,也就是上圖的 (b)。
設 為原始的文字邊界框,這可以表示為覆蓋文字的最小軸對齊矩形框。
實際的文字區域標註 可以依照以下公式計算:
其中, 為文字區域的縮放比例。
這裡縮小文字區域的原因是:若不縮小,鄰近的文字區域容易互相重疊,縮小的過程可以減少文字形成的難度。
在具體實作中,作者將 設為 0.5 用於注意力監督,並設為 0.25 用於最終輸出監督。
損失函數
損失函數是字元預測損失函數 和字元注意力損失函數 的加權總和:
其中, 代表階段的索引, 經驗上設為 1.0。
CA-FCN 的最終輸出形狀為 ,其中 和 分別是輸入圖片的高度和寬度, 是包含字元類別和背景在內的類別數。
假設 是輸出圖中的一個元素,,,; 表示對應的類別標籤。
預測損失可以按照以下公式計算:
其中,