DB算法分析《Real-time Scene Text Detection with Differentiable Binarization》

 

算法架構圖:

算法分析

  • 總覽,主要包含三個部分:

    • backbone提取特徵(特徵金字塔)
    • 特徵金字塔被上採樣到相同尺度構建一個特徵圖F
    • 使用F來預測概率圖P和閾值圖T,並通過P和T來生成二值圖B
  • 一些細節:

    • 預設的圖片大小【640,640】
    • 在訓練階段:P、T、B都會進行loss計算,並bp,其中P、B會使用相同的標籤
    • 在推理階段,P、B都可以被用於計算bbox
    • DB模塊的優勢:
      • 幫助區分非常近的模塊
      • 自己的理解其實就是對邊界做了加強學習,讓邊界更準了,同時免去了複雜的後處理,連通區域的計算其實就在裏面了
    • 閾值圖T的學習可以監督或者非監督,監督效果更好
    • 閾值圖T的用法是,用於對P的二值化
    • 關於DB模塊
      • 損失函數,及其導數:

 

  • deformable conv:可形變的卷積,提供可形變感受野,對大寬高比有效果
  • 標註生成:基於PSEnet標註的生成規則。收縮和擴展的長度計算公式(6),其中收縮和擴展之間的像素爲T的正樣本,其餘爲負樣本

 

 

  • 損失函數:
    • loss計算方式這裏,其實就是交叉熵,因爲x受T影響,bp到P時,可以理解爲P會影響最終的結果,同時P也可以被學習
    • 其中阿爾法爲1.0,貝塔爲10,Ls、Lb爲負採樣交叉熵損失,採樣比1:3;Lt爲平滑後的L1損失,只計算Gd內部的像素(可能是爲了避免樣本不平衡的問題,類似於負採樣)

 

 

  • 在推理階段,使用P或者B生成bbox差不多
  • box生成規則:
    • 首先使用閾值進行二值化(預設0.2)
    • 通過二值化後的map尋找連接區域(對應標註的Gs,收縮圖)

 

  • 通過公式(10)反推文本區域:

  • 訓練細節:
    • 所有的模型先使用Synthtext與訓練10w個iter
    • 然後finetuning 各自數據集1200epoch,類別totaltext1500個訓練集的話,標註數據2k個應該足夠了
    • lr設置方面:
      • 初始化0.007
      • 每個iter改變一次:lr= (1 − iter/maxiter )^power,power=0.9,maxter=epoch*(iterperepoch),decay=0.0001,moment=0.9
    • 數據增強方面:
      • -10-10隨機旋轉
      • 隨機裁剪
      • 隨機偏移
      • all resize 640*640
    • 預測階段,等比例
  • 缺陷:
    • 重疊文本無法處理
       

模型效果(附帶數據說明)

 

 

1)彎曲文本:

2、多方向文本

3、多語言

4、中英文

發佈了23 篇原創文章 · 獲贊 18 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章