天天看點

文本檢測算法----DB、DBNet1. 摘要2. 算法3. 實驗4. 結論

多種文本檢測算法性能對比及算法介紹

(https://blog.csdn.net/qq_39707285/article/details/108754444)

Real-time Scene Text Detection with Differentiable Binarization

  • 1. 摘要
    • 1.1 存在的問題
    • 1.2 創新點
    • 1.3 取得的成績
  • 2. 算法
    • 2.1 二值化
      • 2.1.1 标準二值化
      • 2.1.2 可微二值化 Differentiable binarization(DB)
    • 2.2 自适應門檻值
    • 2.3 可變形卷積Deformable convolution
    • 2.4 标簽的生成
    • 2.5 損失函數
  • 3. 實驗
    • 3.1 資料集
    • 3.2 訓練、測試細節
      • 3.2.1 訓練細節
      • 3.2.2 測試細節
    • 3.3 測試結果
  • 4. 結論

1. 摘要

1.1 存在的問題

最近,對于曲形文本的檢測任務,基于分割的算法比基于回歸的算法表現更好,但之前基于分割的算法,都需要進行手動設計二值化的後處理算法,将分割生成的機率圖轉換為文本的包圍框。

1.2 創新點

提出了 Differentiable Binarization (DB),它可以在分割網絡中執行二值化過程,可以自适應地設定二值化門檻值,不僅簡化了後處理,而且提高了文本檢測的性能。

1.3 取得的成績

在5個基準資料集上取得了最佳準确性和速度,代碼位址:DB

2. 算法

文本檢測算法----DB、DBNet1. 摘要2. 算法3. 實驗4. 結論

整體的網絡結構如圖3所示,首先輸入圖檔經過特征金字塔backbone,接着,金字塔特征上采樣到同一尺寸 F F F,然後,特征圖 F F F用來同時預測機率圖 P P P和門檻值圖 T T T,由 F F F和 T T T計算後近似得到二值圖 B ^ \hat B B^。

在訓練階段,對機率圖、門檻值圖和近似二值圖進行監督,其中機率圖和近似二值圖共用一個監督。在推理過程中,通過一個box公式化子產品,可以很容易地從近似二值圖或機率圖中得到文本包圍框。

2.1 二值化

2.1.1 标準二值化

通常的分割網絡,輸出特征圖 P ⊂ R H × W P \subset R^{H×W} P⊂RH×W,H和W是特征圖的高和寬,像素值為1代表是文本區域,像素值為其他則表示不是文本區域,通常這類二值化處理過程可以描述為:

文本檢測算法----DB、DBNet1. 摘要2. 算法3. 實驗4. 結論

t t t代表門檻值, i , j i,j i,j代表坐标。

2.1.2 可微二值化 Differentiable binarization(DB)

公式1是不可微的,随意沒法直接用于訓練,本文提出可微的二值化函數,如下:

文本檢測算法----DB、DBNet1. 摘要2. 算法3. 實驗4. 結論

B ^ \hat B B^就是近似二值圖, T T T代表從網絡中學習得到的自适應門檻值, k k k是放大因子,通常設定 k k k為50,這個近似的二值化函數的表現類似于标準的二值化函數,如圖4所示,但是因為可微,是以可以直接用于網絡訓練,基于自适應門檻值的可微二值化不僅可以幫助區分文本區域和背景,而且可以将連接配接緊密的文本執行個體分離出來。

文本檢測算法----DB、DBNet1. 摘要2. 算法3. 實驗4. 結論

DB提高了性能表現可以從梯度的反向傳播中證明,假如使用二值交叉熵損失函數,定義

f ( x ) = 1 1 + e − k x f(x)={1 \over {1+e^-kx}} f(x)=1+e−kx1​ 作為DB函數, x = P i , j − T i , j x={P_i,j}-{T_i,j} x=Pi​,j−Ti​,j, l + l_+ l+​表示正樣本的 l o s s loss loss, l − l_- l−​表示負樣本的 l o s s loss loss:

文本檢測算法----DB、DBNet1. 摘要2. 算法3. 實驗4. 結論

求導得到:

文本檢測算法----DB、DBNet1. 摘要2. 算法3. 實驗4. 結論

l + l_+ l+​和 l − l_- l−​在圖4中也有表示,從以上可以得到

  1. 梯度由放大因子k增大
  2. 梯度放大對大多數錯誤預測區域都有顯著影響(x < 0 for L+; x > 0 for L- ),進而有助于優化,并有助于産生更佳的預測結果,另外因為, x = P i , j − T i , j x={P_i,j}-{T_i,j} x=Pi​,j−Ti​,j,是以 P P P的梯度在前景和背景之間被 T T T影響

2.2 自适應門檻值

文本檢測算法----DB、DBNet1. 摘要2. 算法3. 實驗4. 結論
文本檢測算法----DB、DBNet1. 摘要2. 算法3. 實驗4. 結論

門檻值map使用流程如圖2所示,使用門檻值map和不适用門檻值map的效果對比如圖6所示,從圖6©中可以看到,即使沒用帶監督的門檻值map,門檻值map也會突出顯示文本邊界區域,這說明邊界型門檻值map對最終結果是有利的。是以,本文在門檻值map上選擇監督訓練,已達到更好的表現

文本檢測算法----DB、DBNet1. 摘要2. 算法3. 實驗4. 結論

2.3 可變形卷積Deformable convolution

可變形卷積可以提供模型一個靈活的感受野,這對于不同縱橫比的文本很有利,本文應用可變形卷積,使用3×3卷積核在ResNet-18或者ResNet-50的conv3,conv4,conv5層。

2.4 标簽的生成

文本檢測算法----DB、DBNet1. 摘要2. 算法3. 實驗4. 結論

機率圖的标簽生成方式類似于PSENet(可參考了解PSENet)。

給定一張圖檔,文本區域标注的多邊形可以描述為:

文本檢測算法----DB、DBNet1. 摘要2. 算法3. 實驗4. 結論

n n n是每個文本框的标注點總數,在不同資料中可能不同(ICDAR2015中是4,CTW1500中是16),然後使用Vatti裁剪算法1收縮 G G G到 G s G_s Gs​,從原始多邊形的周長L和面積A計算收縮的偏移量D計算方式為:

文本檢測算法----DB、DBNet1. 摘要2. 算法3. 實驗4. 結論

r r r代表收縮比例,一般設定為0.4.

門檻值map的标簽生成方式與其類似,首先使用相同的偏移量 D D D,對文本多邊形 G G G進行膨脹,然後将 G s G_s Gs​和 G d G_d Gd​之間的間隙作為文本區域的邊界,通過計算到 G G G中最近的片段的距離來生成門檻值map的标簽(意思就是,門檻值map附近一定距離的标簽是1,其他的都為0)

2.5 損失函數

損失函數為機率map的loss、二值map的loss和門檻值map的loss之和,

文本檢測算法----DB、DBNet1. 摘要2. 算法3. 實驗4. 結論

L s L_s Ls​是機率map的loss, L b L_b Lb​是二值map的loss,, α \alpha α和 β \beta β分别設定為1.0和10,對于 L s L_s Ls​和 L b L_b Lb​使用二值交叉熵loss(BCE),為了解決正負樣本不均衡問題,使用hard negative mining。

文本檢測算法----DB、DBNet1. 摘要2. 算法3. 實驗4. 結論

S l S_l Sl​設計樣本集,其中正陽樣本和負樣本比例是1:3.

L t L_t Lt​計算方式為擴充文本多邊形 G d G_d Gd​内預測結果和标簽之間的 L 1 L1 L1距離之和:

文本檢測算法----DB、DBNet1. 摘要2. 算法3. 實驗4. 結論

R d R_d Rd​是在膨脹 G d G_d Gd​内像素的索引, y ∗ y^* y∗是門檻值map的标簽。

在模型預測的時候,可以使用機率map或近似二進制map來生成文本邊界框,他倆産生的結果幾乎相同。為了提高效率,使用機率map而去除門檻值map分支。

box處理分三個步驟:

  1. 機率map或者近似二值map先使用一個固定的門檻值(0.2)進行二值化處理,得到二值化圖
  2. 從二值圖中得到連通區域(即收縮文本區域);
  3. 同樣用Vatti裁剪算法1,使用偏移量 D ‘ D^` D‘去膨脹連通區域, D ‘ D^` D‘計算方式為:
    文本檢測算法----DB、DBNet1. 摘要2. 算法3. 實驗4. 結論

A ‘ A^` A‘是收縮區域面積, L ‘ L^` L‘是收縮區域周長, r ‘ r^` r‘設定為1.5。

3. 實驗

3.1 資料集

  1. SynthText:從8k個背景圖中生成了800k張圖檔,這些資料用來預訓練模型
  2. MLT-2017:多語言資料集,包含9種語言,有7200張訓練集,1800張驗證集,和9000張測試集,本文使用訓練集和驗證集來微調網絡
  3. ICDAR 2015
  4. MSRA-TD500
  5. CTW1500
  6. Total-Text

3.2 訓練、測試細節

3.2.1 訓練細節

所有的模型,現在SynthText進行預訓練100k次疊代。然後微調真是資料樣本1200個epochs,batch size設定為16,學習率設定為 ( 1 − i t e r m a x _ i t e r ) p o w e r (1 - {iter \over max\_iter})^{power} (1−max_iteriter​)power,初始學習率為0.007, p o w e r power power為0.9,權重書劍0.0001,momentum為0.9。

資料增強:

  1. 随機角度旋轉(-10°-10°)
  2. 随機裁剪
  3. 随機翻轉

    所有的圖檔都resize到640×640

3.2.2 測試細節

通過為每個資料集設定适當的高度來輸入圖像。推理速度在批大小為1的情況下進行測試,在單個線程中使用單個1080ti GPU。推理時間成本包括模型前向時間成本和後處理時間成本。後處理時間成本約為推理時間的30%。

3.3 測試結果

文本檢測算法----DB、DBNet1. 摘要2. 算法3. 實驗4. 結論
文本檢測算法----DB、DBNet1. 摘要2. 算法3. 實驗4. 結論
文本檢測算法----DB、DBNet1. 摘要2. 算法3. 實驗4. 結論
文本檢測算法----DB、DBNet1. 摘要2. 算法3. 實驗4. 結論
文本檢測算法----DB、DBNet1. 摘要2. 算法3. 實驗4. 結論

4. 結論

本文提出了一個新的架構來檢測任意形狀的場景文本,包括在分割網絡中提出的可微二值化過程 (DB),實驗證明,該方法(ResNet-50主幹網)在五個标準場景文本基準測試中,在速度和準确性方面一直優于目前最先進的方法。特别的,即使使用輕量級主幹網(ResNet-18),該方法也可以在所有測試資料集上以實時推理速度獲得具有競争力的性能。

  1. Bala R. Vatti. A generic solution to polygon clipping[J]. Communications of the ACM, 1992. ↩︎ ↩︎

繼續閱讀