DBNet::基於可微分二值化的實時場景文本檢測(論文解析)
1、簡介
作者:Minghui Liao1 , Zhaoyi Wan2 , Cong Yao 2, Kai Chen3,4, Xiang Bai1
- 1Huazhong University of Science and Technology,
- 2Megvii,
- 3Shanghai Jiao Tong University,
- 4Onlyou Tech.
開源項目地址: https://github.com/MhLiao/DB
2、摘要
近年來,基於分割的方法在場景文本檢測中得到了廣泛的應用,因為分割結果能夠更准確地描述曲線文本等各種形狀的場景文本。然而,二值化的后處理對於基於分割的檢測是必不可少的,它將由分割方法產生的概率圖轉換成文本的邊界框/區域。本文提出了一個可微二值化(DB)模塊,可以在分割網絡中進行二值化處理。分割網絡使用DB優化,可以自適應地設置二值化的閾值,這不僅簡化了后處理,同時也提高了文本檢測的性能。基於一個簡單的分割網絡,我們在五個基准數據集上驗證了DB的性能提升,在檢測精度和速度方面都取得了SOTA的結果。特別是對於輕量級主干網,DB的性能改進非常顯著,因此我們可以在檢測精度和效率之間尋找一個理想的折衷方案。具體來說,通過ResNet-18 backbone,我們的detector在MSRA-TD500數據集上實現了82.8的F-measure,每秒62幀。代碼位於:https://github.com/MhLiao/DB。
3、背景介紹
近年來,基於場景圖像的文本閱讀在圖像/視頻理解、視覺搜索、自動駕駛、盲輔助等方面有着廣泛的實際應用,成為一個活躍的研究領域。
作為場景文本閱讀的一個重要組成部分,場景文本檢測是一項具有挑戰性的任務,因為場景文本通常具有不同的尺度和形狀,包括水平文本、多向文本和曲線文本。基於分割的場景文本檢測由於能夠描述各種形狀的文本,得益於其像素級的預測結果,近年來受到了廣泛的關注。然而,大多數基於分割的方法需要復雜的后處理來將像素級的預測結果分組到檢測到的文本實例中,從而導致推理過程中相當大的時間開銷。以兩種最新的場景文本檢測方法為例:PSENet(Wang et al.2019a)提出了漸進尺度擴展的后處理方法,以提高檢測精度;Pixel embedding in(Tian et al.2019)基於分割結果對像素進行聚類,它必須計算像素之間的特征距離。
現有的檢測方法大多采用類似的后處理方式,如下圖所示(藍色箭頭后):首先設置固定的閾值,將分割網絡產生的概率圖轉換為二值圖像;然后,一些啟發式技術(如像素聚類)用於將像素分組到文本實例中。或者,我們的方法(在圖中的紅色箭頭之后)旨在將二值化操作插入到分割網絡中以進行聯合優化。通過這種方法,可以自適應地預測圖像中每個位置的閾值,從而能夠完全區分像素的前景和背景。然而,標准的二值化函數是不可微的,我們提出了一種二值化的近似函數,稱為可微二值化(DB),它與分割網絡一起訓練時是完全可微的。
本文的主要貢獻是提出了可微的DB模塊,使得CNN中的端到端二值化過程可以訓練。通過將一個簡單的語義分割網絡與所提出的DB模塊相結合,提出了一種魯棒性強、速度快的場景文本檢測器。從使用DB模塊的性能評估中,我們發現我們的檢測器比以前最先進的基於分割的方法有幾個突出的優點:
- 我們的方法在五個場景文本基准數據集(包括水平文本、多向文本和曲線文本)上都取得了較好的性能。
- 我們的方法比以前的方法執行得快得多,因為DB可以提供一個高度健壯的二值化映射,大大簡化了后處理。
- 當使用輕量級backbone時,DB工作得相當好,這顯著提高了ResNet-18 backbone的檢測性能。
- 由於DB可以在推理階段刪除而不犧牲性能,因此測試不需要額外的內存/時間開銷。🌟
小結:DB分支是區別於Seg分支的,它預測了實例的邊界,與分割的特征圖融合得到真實的實例區域,這里使用DB分支完成了邊界的后處理工作!
4、相關工作
目前的場景文本檢測方法大致可以分為兩類:基於回歸的方法和基於分割的方法。
基於回歸的方法是一系列直接回歸文本實例邊界框的模型。TextBoxes(Liao et al.2017)基於SSD(Liu et al.2016)修改了用於文本檢測的anchors和卷積核的尺度。TextBoxes++(Liao、Shi和Bai 2018)和DMPNet(Liu和Jin 2017)應用四邊形回歸來檢測多方向文本。SSTD(He等人2017a)提出了一種注意機制來大致識別文本區域。RRD(Liao et al.2018)通過使用旋轉不變特征進行分類,使用旋轉敏感特征進行回歸,將分類和回歸解耦,以更好地處理面向多個方向的長文本實例。EAST(Zhou et al.2017)和DeepReg(He et al.2017b)是anchor-free方法,對多方向文本實例應用像素級回歸。SegLink(Shi、Bai和Belongie 2017)回歸了段邊界框並預測了它們的鏈接,以處理長文本實例。DeRPN(Xie et al.2019b)提出了一種維度分解區域建議網絡來處理場景文本檢測中的尺度問題。基於回歸的方法通常有簡單的后處理算法(例如非極大值抑制)。然而,它們大多局限於表示不規則形狀(如曲線形狀)的精確邊界框。
基於分割的方法通常結合像素級預測和后處理算法得到BBox。(Zhang et al.2016)通過語義分割和基於MSER的算法檢測多方向文本。在(Xue,Lu,and Zhan 2018)中使用文本邊界來分割文本實例,Mask TextSpotter(Lyu et al.2018a;Liao et al.2019)以基於Mask R-CNN的實例分割方式檢測任意形狀的文本實例。PSENet(Wang et al.2019a)提出了通過分割具有不同尺度內核的文本實例來進行漸進尺度擴展。在(Tian et al.2019)中提出了像素嵌入來對分割結果中的像素進行聚類。PSENet(Wang et al.2019a)和SAE(Tian et al.2019)對分割結果提出了新的后處理算法,從而降低了推理速度。相反,我們的方法專注於在不損失推理速度的前提下,通過將二值化過程納入訓練周期來改善分割結果。
快速的場景文本檢測方法既注重准確性,又注重推理速度。TextBoxes(Liao et al.2017)、TextBoxes++(Liao,Shi,and Bai 2018)、SegLink(Shi,Bai,and Belongie 2017)和RRD(Liao et al.2018)通過遵循SSD的檢測架構實現了快速文本檢測(Liu et al.2016)。EAST(Zhou et al.2017)提議應用PVANet(Kim et al.2016)來提高其速度。它們大多不能處理曲線等不規則形狀的文本實例。與以往的快速場景文本檢測方法相比,DB方法不僅檢測速度快,而且可以檢測任意形狀的文本實例。
5、方法
DB的框架如下圖所示:
-
將輸入圖片傳給特征金字塔backbone(FPN);
-
其次,將金字塔特征上采樣到相同的尺度,並級聯生成特征 F (con-cat后的 \(\frac{1}{4}\) 特征圖);
-
然后利用特征F預測概率圖(P)和閾值圖(T);
-
然后由特征圖F與閾值圖T得到近似二值特征圖\(\hat{B}\) ;
注,作者在這里說\(\hat{B}\)是由 F 和 T 得到,那么概率圖P呢?不都是經過pred操作算子嗎!實際上應該是由 P 和 T 得到的;
閾值圖由F到T是經過了較為復雜的運算之后得到的!其中包含一個\(3 \times 3\) 的卷積與兩個步長為2的反卷積 deconvolutional(pred操作).
-
由 \(\hat{B}\) 、輸入圖片得到邊框與實例。
在訓練期間,對概率圖、閾值圖和近似二值圖進行監督,其中概率圖和近似二值圖具有相同的監督(人工標注的label)。在推理過程中,通過一個邊框模型,可以方便地從近似二元映射或概率映射中得到邊界框。
5.1 標准二值化
對於給定的一個概率特征圖 \(P\in R^{H \times W}\) ,生成標准的二值化特征圖一般采用如下的公式:
其中:\(t\) 是預定義的閾值,\((i,j)\) 標識特征圖中的坐標。
5.2 可微二值化🌟
標准二值化是階梯函數,“不可導”,或者其導函數無意義。因此DB作者提出了可微分的二值化函數:
\(k\) 表示放大系數。根據經驗,\(k\) 設置為50。如下圖所示,可微二值化函數與標准函數取值非常接近,但是它是可微分的,負標簽損失 \(l_{-}\) 與正標簽損失 \(l_{+}\) 的導函數見下圖的(c)、(b)。

采用自適應閾值的可微二值化方法,不僅有助於區分文本區域和背景,而且可以分離緊密連接的文本實例。
DB提高性能的原因可以用梯度的反向傳播來解釋。以二元交叉熵損失為例。我們定義DB函數為:
正標簽損失 \(l_{+}\) 與負標簽損失 \(l_{-}\) :
這里的損失是要取對數似然函數的,所以有
基於上面的函數可以獲取其導函數:
這兩個導函數函數圖像見上圖(b)、(c)。從微分可以看出:(1)梯度被放大因子 \(k\) 放大;(2)梯度的放大對於大多數錯誤預測的區域是更顯著的(對於\(l_{+},x<0\);對於\(l_{-},x>0\)),從而有利於優化,有助於產生更顯著的預測。此外,因為 \(x=P_{i,j}-T_{i,j}\) 時,\(P\) 的梯度受T的影響並在前景和背景之間重新放縮。
5.3 閾值自適應
閾值圖 T 從外觀上與(Xue、Lu和Zhan 2018)中的文本邊界圖相似。然而,閾值特征圖T的動機和用法與文本邊界映射不同。下圖顯示了有/無監控的閾值圖。閾值特征圖將突出顯示文本邊界區域,即使沒有對閾值特征圖的監督label。這表明了邊界的閾值特征圖有利於最終的結果。因此,我們在閾值圖上應用邊界式監督以獲得更好的指導。在實驗部分,我們討論了閾值特征圖的消融研究。對於用法,(Xue、Lu和Zhan 2018)中的文本邊界圖用於拆分文本實例,而我們的閾值圖用作二值化的閾值。
5.4 Deformable convolution 可變形卷積
可變形卷積(Dai et al.2017;Zhu et al.2019)可以為模型提供靈活的感受野,這對於極端縱橫比的文本實例尤其有利 (源論文中山羊都可以自適應感受野區域)。隨后(Zhu等人,2019年),調制可變形卷積被應用於ResNet-18或ResNet-50主干中階段conv3、conv4和conv5的所有 \(3\times3\) 卷積層(He等人,2016a)。
5.5 標簽生成
標簽生成。文本多邊形的注釋以紅線顯示。收縮和擴張的多邊形分別以藍線和綠線顯示。
概率圖的標簽生成受到PSENet的啟發(Wang等人,2019a)。給定一個文本圖像,其文本區域的每個多邊形由一組線段描述:
其中,\(n\) 是頂點的數量,在不同的數據集中可能不同,例如,ICDAR 2015數據集為4(Karatzas et al.2015),CTW1500數據集為16(Liu et al.2019a)。然后通過使用Vatti裁剪算法(Vati 1992)將多邊形 \(G\) 收縮為 \(Gs\)來生成正面積。收縮的偏移量D由原始多邊形的周長\(L\)和面積\(A\)計算得出:
其中\(r\)是收縮率,根據經驗設置為0.4。
通過類似的過程,我們可以為閾值特征圖生成標簽。首先將文本多邊形\(G\)以相同的偏移量\(D\)展開到\(Gd\)。我們將\(Gs\)和\(Gd\)之間的間隔作為文本區域的邊界,通過計算到\(G\)中最近片段的距離來生成閾值特征圖的標簽。
5.6 Optimization
損失函數由三部分損失加權構成:
其中:
- \(L_{s}\) 是概率特征圖的損失;
- \(L_{b}\) 是二值化特征圖 \(\hat{B}\) 的損失;
- \(L_{t}\) 是閾值特征圖 \(T\) 的損失;
- \(\alpha,\beta\) 的取值分別設置為1.0和10。
對於 \(L_{s}\)、\(L_{b}\) 都使用二元交叉熵損失,為了平衡正負樣本,對負樣本進行采樣。
其中,\(S_{l}\) 是正負樣本的采樣比率。
\(L_{t}\)計算為擴展文本多邊形 \(Gd\) 內預測和標簽之間的\(L1\)距離之和:
其中 \(R_{d}\) 是擴張多邊形區域的像素的下標;\(y^{*}\) 是值域特征圖的標簽。
在推理階段,我們可以使用概率特征圖或近似二值特征圖來生成文本邊界框,從而得到幾乎相同的結果。為了提高效率,我們使用概率圖,移除閾值分支。框的形成過程包括三個步驟:
(1)首先對概率圖/近似二值圖用一個恆定的閾值(0.2)進行二值化,得到二值圖;
(2)從二值圖中得到連通區域(收縮文本區域);
(3)縮小的區域用Vatti裁剪算法(Vati 1992)的偏移量 \({D}'\) 進行擴張。偏移量 \({D}'\) 的計算公式為:
其中,\({A}'\) 是縮小區域的面積;\({L}'\) 是縮小區域的周長;\({r}'\) 根據經驗設置為1.5。
小結:在項目中關於損失函數的計算label主要有:
原圖:

-
(1) GT: 真實實例的區域內縮mask,如:
-
(2) Mask: 作者說是忽略掩碼,即值為1的像素是對loss沒用貢獻的點
這有張圖:“
” -
(3) thresh_map: 閾值邊界圖,即擴張圖減去內縮圖做平滑處理后的特征
-
(4) thresh_mask: 真實實例的擴張mask。
這里的label 帶入到loss函數中,除Mask無法給出合理的解釋,其他都可以有合理的說明。且在上面的Mask中,出現全是白色?目前還不知道是什么問題,准備過兩個用DB的項目測試一下。
6、實驗
6.1 基准數據集
SynthText (Gupta、Vedaldi和Zisserman 2016)是一個合成數據集,由800k個圖像組成。這些圖像是由8k背景圖像合成的。此數據集僅用於對模型進行預訓練。
MLT-2017 dataset 數據集是一個多語言數據集。它包括9種語言,代表6種不同的腳本。在這個數據集中有7200個訓練圖像,1800個驗證圖像和9000個測試圖像。我們在微調期間同時使用訓練集和驗證集。
ICDAR 2015 數據集(Karatzas et al.2015)由1000張訓練圖像和500張測試圖像組成,由谷歌拍攝,分辨率為720×1280。文本實例在單詞級別進行標記。
MSRA-TD500 數據集(Yao et al.2012)是一種多語言數據集包括英文和中文。有300個訓練圖像和200個測試圖像。文本實例在文本行級別中進行標記。按照之前的方法(Zhou et al.2017;Lyu et al.2018b;Long et al.2018),我們從HUST-TR400(Yao、Bai和Liu,2014)中額外添加了400張訓練圖像。
CTW1500 數據集CTW1500(Liu et al.2019a)是一個關注曲線文本的數據集。它由1000幅訓練圖像和500幅測試圖像組成。文本實例在文本行級別進行注釋。
Total-Text 數據集Total-Text(Chng and Chan 2017)是一個包含各種形狀的文本的數據集,包括水平、多向和彎曲的文本。它們是1255個訓練圖像和300個測試圖像。文本實例在單詞級別進行標記。
6.2 實施細則
對於所有模型,我們首先使用SynthText數據集對它們進行100k次迭代的預訓練。然后,我們在相應的真實數據集上進行1200個epochs的模型微調。訓練批大小設置為16。我們使用動態多學習率策略,其中當前迭代的學習率等於初始學習率乘以:
🌟學習率初始化為:0.007;power初始化為0.9;權值衰減系數(\(L_{2}\) 正則)設置為:0.0001;動量設置為:0.9 。
訓練數據的數據擴充包括:
(1)角度范圍為(-10°,10°)的隨機旋轉;
(2)隨機裁剪;
(3)隨機翻轉。
為了提高訓練效率,所有處理后的圖像都重新調整為640×640。
在推理階段,我們保持測試圖像的縱橫比,並通過為每個數據集設置合適的高度來重新調整輸入圖像的大小。推理速度在批處理大小為1的情況下進行測試,在單個線程中使用單個1080ti GPU。推理時間成本由模型的前處理時間成本和后處理時間成本組成。后處理時間約占推理時間的30%。
6.3 消融實驗
我們對MSRA-TD500數據集和CTW1500數據集進行了燒蝕研究,以證明我們提出的可微二值化、可變形卷積和不同主干的有效性。詳細的實驗結果見下表:
關於是否支持至於特征圖的消融實驗結構如下:(MLT-2017 數據集)
在MSRA-TD500數據集上,ResNet-50模型比ResNet-18高2.1個點;在 CTW1500 上高 2.4 個點, 但是時間開銷增大了一倍!
與之前的模型進行比較:
我們在五個標准基准上比較了我們提出的方法,包括兩個曲線文本基准、一個面向多個方向的文本基准和兩個面向長文本行的多語言基准。
Total-Text的檢測結果。括號中的值表示輸入圖像的高度。“*”表示使用多個尺度進行測試。“MTS”和“PSE”是Mask TextSpotter和PSENet的縮寫。
CTW1500檢測結果。帶“*”的方法來自(Liu等人,2019a)。括號中的值表示輸入圖像的高度。
我們在兩個曲線文本基准(Total-Text和CTW1500)上證明了該方法的形狀魯棒性。如上面的表格所示,我們的方法在准確度和速度上都達到了最先進的水平。具體來說,“DB-ResNet-50”在Total-Text和CTW1500數據集上的性能比以前最先進的方法分別高出1.1%和1.2%。“DB-ResNet-50”的運行速度比以前所有的方法都快,使用ResNet-18主干網可以進一步提高速度,性能下降很小。與最近基於分段的檢測器(Wang et al.2019a)相比,“DB-ResNet-50(800)”的速度快了8.2倍,“DB-ResNet-18(800)”的速度快了12.8倍。
ICDAR 2015多方向文本檢測
ICDAR 2015數據集的檢測結果。括號中的值表示輸入圖像的高度。“TB”和“PSE”是textboxs++和PSENet的縮寫。
多語言文本檢測
該方法對多語言文本檢測具有較強的魯棒性。如選項卡所示。6和標簽。7、“DB-ResNet-50”在准確度和速度上均優於以往的方法。在MSRA-TD500和MLT-2017數據集上,“DB-ResNet-50”的准確度分別比之前最先進的方法高1.9%和3.8%。就速度而言,“DB-ResNet-50”比MSRA-TD500數據集上先前的最快方法(Liao et al.2018)快3.2倍。使用輕量級主干,“DB-ResNet-18(736)”與之前最先進的方法(Liu等人,2018年)(82.8 vs 83.0)相比,實現了相對准確度,並且在MSRA-TD500上以62 FPS的速度運行,比之前最快的方法(Liao等人,2018年)快6.2倍。通過減小輸入大小,可以將速度進一步加速到82 FPS(“ResNet-18(512)”)。
MSRA-TD500數據集的檢測結果。括號中的值表示輸入圖像的高度。
MLT-2017數據集的檢測結果。帶“*”的方法收集自(Lyu等人,2018b)。在我們的方法中,MLT-2017數據集中的圖像被重新調整為768×1024。“PSE”是PSENet的縮寫。
7、本方法局限性
該方法的一個局限性是不能處理“文本在文本中”的情況,即一個文本實例在另一個文本實例中。雖然縮小文本區域對於文本實例不在另一個文本實例的中心區域的情況是有幫助的,但是當文本實例正好位於另一個文本實例的中心區域時,縮小文本區域是失敗的。這是基於分割的場景文本檢測器的一個常見限制。
8、總結
在本文中,我們提出了一個新的框架,用於檢測任意形狀的場景文本,其中包括在分割網絡中提出的可微二值化處理(DB)。實驗證明,我們的方法(ResNet-50主干網)在速度和准確度方面,在五個標准場景文本基准測試上始終優於最先進的方法。特別是,即使使用輕量級主干網(ResNet-18),我們的方法也可以在所有測試數據集上以實時推理速度獲得有競爭力的性能。在將來,我們有興趣擴展我們的端到端文本定位方法。
完!
