論文題目:Real-time Scene Text Detection with Differentiable Binarization
文獻地址:https://arxiv.org/abs/1911.08947
源碼地址:https://github.com/MhLiao/DB (Pytorch版)
近年,由於基於分割的方法對各種形狀(彎曲、豎直、多方向)的場景文本檢測更加精確,因此,基於分割的方法在場景文本檢測領域很流行。
基於分割的場景文本檢測即把分割方法產生的概率圖(熱力圖)轉化為邊界框和文字區域,其中會包含二值化的后處理過程。二值化的過程非常關鍵,常規二值化操作通過設定固定的閾值,然而固定的閾值難以適應復雜多變的檢測場景。本文作者提出了一種可微分的二值化操作,通過將二值化操作插入到分割網絡中進行組合優化,從而實現閾值在熱力圖各處的自適應。

DB在場景文本檢測上的效果


作者在5個標准數據集上進行對比實驗,其中包括2個彎曲文本數據集,1個多方向文本數據集,2個多語言數據集:
- 彎曲文本數據集:Total-Text dataset && CTW1500

- 多方向文本數據集: ICDAR 2015

- 多語言數據集 : MSRA-TD500 && MLT-2017

場景文本檢測的現狀
近年,由於場景文字識別有着廣泛的實際應用價值,比如圖像/視頻理解,視覺搜索,自動駕駛,盲文輔助等。
作為場景文字識別的一個核心組件,場景文字檢測(scene text detection)的目的在於定位每一個文字實例的邊界框和區域,但這並非易事,因為,文字常常有着不同的大小和形狀,比如水平,多方向和彎曲。
得益於像素級別的預測結果,基於分割的場景文字檢測方法可以描述不同形狀的文字,因而最近流行開來。但是,大多數基於分割的方法需要復雜的后處理,把像素級別的預測結果分類為已檢測的文字實例,導致推理的時間成本相當高。
下圖是傳統pipeline和本文提出pipeline的區別,傳統的pipeline使用固定的閾值對於分割后的熱力圖進行二值化處理;而本文提出的pipeline會將二值化操作嵌入到分割網絡中進行組合優化,如下圖紅線,會生成與熱力圖對應的閾值圖,通過二者的結合生成最終的二值化操作。

作者總結了本文提出的DB模塊具備顯著的優勢:
- 本文方法連續在水平、多方向和彎曲文字在內的 5 個基准數據集上獲得更加性能;
- 本文方法比先前的方法速度更快;
- 在使用輕量級 backbone 時,DB 表現相當好;
- 由於可以在推理階段刪除DB而不犧牲性能,因此測試不會產生額外的內存/時間成本。就像BN操作在網絡中的作用。
方法
如下圖方法結構圖所示,首先,圖片通過特征金字塔結構的backbone,通過上采樣的方式將特征金字塔的輸出變換為同一尺寸,並級聯(cascade)產生特征F;然后,通過特征圖F預測概率圖(P)和閾值圖(T);最后,通過概率圖P和閾值圖T生成近似的二值圖(B)。
在訓練階段,監督被應用在閾值圖、概率圖和近似的二值圖上,其中后兩者共享同一個監督;在推理階段,則可以從后兩者輕松獲取邊界框。

可微分二值化
下式表示了傳統二值化操作的方法,其中P表示概率圖,t表示划分閾值。通過固定的閾值對網絡輸出的概率圖進行划分。
由於這種二值化方式是不可微分的,因此它無法在訓練階段隨着分割網絡被優化。

因此,作者提出了一個approximate step function,用於將二值化操作融合於分割網絡中。如下式所示,建立了概率圖P和閾值圖T與二值化圖之間的關系,使得二值化的計算可微,從而可以滿足梯度反向傳播的條件。

其中,k為放大因子,依經驗設定為50.
帶有自適應閾值的可微分二值化不僅有助於把文字區域與背景區分開,而且還能把相近的實例分離開來。
自適應閾值
在可微分二值化中,將閾值圖、概率圖建立可微的關系生成二值圖實際上已經解決了閾值自適應的問題。
而下圖顯示的是閾值圖T在有、無監督下的表現。
即使沒有監督的閾值圖,閾值圖也能突出文本邊界區域。這表明像邊界一樣的閾值圖有利於最終的結果。因此,作者在閾值圖上應用邊界監督來更好地指導。

上圖中,圖a為原圖,圖b為概率圖,圖c為無監督的閾值圖,圖d為有監督的閾值圖。
標簽的生成

對於概率圖標簽的生成,作者受到了PSENet的啟發。給定一張文字圖像,其文本區域的每個多邊形由一組線段描述:

其中,n表示頂點的數量。
通過 Vatti clipping 算法 (Vati 1992)縮小多邊形。收縮偏移量D可以通過周長L和面積A計算:

其中,r是收縮因子,依經驗設置為0.4.
優化
損失函數是通過概率圖損失Ls - 二值圖損失Lb - 閾值圖Lt構成的帶有權重的損失。

其中,α,β分別設置為1.0和10.
Ls和Lb使用二值交叉熵損失函數:

其中,Sl表示正負樣本比例為1:3的樣本集。
Lt使用L1距離損失函數。

番外篇
另外百度paddlehub中開源的中文OCR識別可以支持中英文、數字組合識別,豎排文字識別,長文本識別等場景。其使用的模型便是基於本篇介紹的模型Differentiable Binarization ,外加CRNN。
CRNN是卷積遞歸神經網絡,是DCNN和RNN的組合,專門用於識別圖像中的序列是對象。與CTC loss配合使用,進行文字識別,可以直接從文本詞級或行級的標注中學習,不需要詳細的字符級的標注。參考論文:An end-to-end trainable neural network for image-based sequence recognition and its application to scene text recognition
基本結構如下:

基於百度paddle中提供的接口可以實現下面的效果:


