天天看點

EAST解讀 —— An Efficient and Accurate Scene Text Detector

文章目錄

    • 簡述
      • 現有工作問題
      • 資料集
    • 網絡結構
      • 特征提取層
      • 特征合并層
      • 結果輸出層
    • 标簽生成
    • 損失函數
      • 文本分割Loss
      • RBOX邊界偏移Loss
      • RBOX偏移角度損失
      • QUAD偏移Loss
    • Locality-Aware NMS
    • 實驗結果
    • References

簡述

EAST是曠視科技CVPR 2017年的一篇場景文本檢測算法,其特點有:結構簡單,速度快,端到端等,Github上有很好的複現代碼,是一種實用性很強的文本檢測算法。

  • paper:https://arxiv.org/abs/1704.03155
  • code(tesorflow):https://github.com/argman/EAST
  • code(pytorch):https://github.com/songdejia/EAST

EAST的名字取自“Efficient and Accurate Scene Text”,其可以用來檢測任意大小,任意方向(水準和傾斜)的文本。其主要實作思路為:FCN網絡 + Locality-Aware NMS。該算法抛棄了很多不必要的中間步驟,實作了端到端的訓練和優化:FCN直接進行預測和回歸,除了“Thresholding&NMS”外無其他後處理環節(如候選區域聚合和單詞分割等)。

現有工作問題

EAST解讀 —— An Efficient and Accurate Scene Text Detector

如上圖,本文總結了現有一些方法的工作流(a-d),大多數由多個階段組成,而且一些結構産生中間結果,并不是端到端的,是以這些現有方法大多數速度不快,并且也沒辦法達到很好的精度(Sub-optimal)。本文設計了一種兩階段場景文本檢測模型EAST(e),其主要貢獻有:

  1. 提出一種基于FCN的模型EAST,該模型隻需要兩階段(全卷積網絡和NMS),就可以完成場景文本檢測的任務,全程端到端結構;
  2. 該架構具有很好的靈活性,能夠生成水準矩形框(Axis-align Bounding Box, AABB),旋轉矩形框(Rotated Box, RBOX)和任意四邊形(Quadrangle, QUAD)幾種預測。
  3. 文章在ICDAR2015,COCO-Text,MSRA-TD500上測試,效果達到了State-of-the-art,在ICDAR2015上的F-score值達到0.7820,超出現有方法許多。

資料集

目前場景文本檢測有衆多資料集,不同語言,場景,拍攝裝置等,比較著名的有以下幾個資料集:

  • ICDAR 2015
  • COCO-Text
  • MSRA-TD500

這幾個資料集都是比較常用的,使用1)旋轉矩形框2)任意四邊标注,但是也有一些資料集擁有更加靈活的标注,如曲線形狀文字等,可以用于更加精細的算法:

  • Total-Text
  • SCUT-CTW1500

網絡結構

EAST的網路結構如下:

EAST解讀 —— An Efficient and Accurate Scene Text Detector

這裡簡單把EAST的整個網絡結構分為三個層:特征提取層、特征合并層、結果輸出層。

特征提取層

EAST主要基于U-Net,其主幹網絡Encoder使用PVANet或者VGG,使用PVANet的主要原因是增加感受野(相對于VGG來說),使其有利于檢測長文本。關于U-Net,大家可自行搜尋查閱。

特征合并層

利用U-shape的思想逐漸合并不同尺度的特征圖,目的是解決文本行尺度變換劇烈的問題。具體做法請參考EAST的網絡結構圖或查閱U-Net的資料。

在特征合并部分,逐漸之前得到的不同大小的feature map,在每一個合并階段,從上一個階段來的特征圖最先進行unpooling,來增大特征圖的大小,然後與目前特征圖concate(就是通道數串聯)。然後,利用一個 1 ∗ 1 1*1 1∗1的卷積層減少通道數并減少計算量,接着是一個 3 ∗ 3 3*3 3∗3的卷積層将資訊融合,最終産生本合并階段的結果。在最後一個合并階段之後,利用一個 3 ∗ 3 3*3 3∗3卷積層産生最終的合并部分的特征圖,并将其輸入到輸出層。其計算公式如下:

EAST解讀 —— An Efficient and Accurate Scene Text Detector

結果輸出層

再來說一下輸出層的幾個特征圖(score map + geometry map),上圖最右邊藍色部分:

  • 對于檢測形狀為RBOX,則輸出包含文本得分(score map)和文本形狀(AABB boundingbox 和rotate angle),也就是一起有6個輸出,這裡AABB分别表示相對于top, right, bottom, left邊的偏移。
  • 對于檢測形狀為QUAD,則輸出包含文本得分(score map)和文本形狀(8個相對于corner vertices的偏移),也就是一起有9個輸出,其中QUAD有8個,分别為 ( Δ x i , Δ y i ) , i ⊂ [ 1 , 2 , 3 , 4 ] (\varDelta x_i, \varDelta y_i), i\subset[1,2,3,4] (Δxi​,Δyi​),i⊂[1,2,3,4]。

注:RBOX和QUAD二者選一,一般RBOX的效果會略好。

下表中闡明了每個通道的作用:(AABB部分沒有在圖中畫出來,其實AABB就是RBOX的 θ = 0 \theta=0 θ=0的情況)

EAST解讀 —— An Efficient and Accurate Scene Text Detector

标簽生成

接下來解釋具體每一個通道的标簽(GT)的生成方法,我們以RBOX為例,以下是RBOX的學習目标生成過程:

EAST解讀 —— An Efficient and Accurate Scene Text Detector
  1. 對于任意四邊形标注,向内縮小一些(文中用的0.3倍)并生成分割Mask(如圖b)。
  2. 對于每個在Mask中的點(注意隻考慮positive pixel!!),産生4個回歸坐标,分别為該點到AABB(axis-aligned bounding box)四條邊的距離偏移(d1, d2, d3, d4)。
  3. 對于每個在Mask中的點(還是隻考慮positive pixel!!),産生一個矩形框旋轉角度 θ \theta θ。

如果是任意四邊形目标,8個坐标分别是任意四邊形的四個頂點到該點的距離偏移。

注意:label的四點标注要求按順時針方向給出,參見ICDAR 2015的資料标注方式即可。

損失函數

文章對于不同的子任務使用不同的損失函數,對于RBOX來說,主要任務包括文字置信度分類(得到score map),邊框偏移回歸(geometry map)以及角度偏移回歸( θ \theta θ map)。

網絡的總損失函數為:

EAST解讀 —— An Efficient and Accurate Scene Text Detector

文本分割Loss

不同于常見目标檢測網絡應對樣本不平衡的方法,如均衡采樣,OHEM等。EAST算法采用了類平衡交叉熵來解決類别不平衡的問題。(文中說采用OHEM等會帶來部分stage不可導和需要調更多超參的問題,這會讓模型會更複雜)

對于文字置信度回歸(生成score map的loss),文章使用了類别權重的Cross Entropy來計算,如下:

EAST解讀 —— An Efficient and Accurate Scene Text Detector

其中使用β權重,權重由正負例比例決定,比例越小,權重越大。但是在具體實戰中,一般采用dice loss,因為它的收斂速度會比類平衡交叉熵快。

RBOX邊界偏移Loss

對于RBOX而言,邊界偏移Loss使用了IoU損失:(文本在自然場景中的尺寸變化極大,直接使用L1或者L2損失去回歸文本區域将導緻損失偏差更傾向于檢測大文本。是以論文在RBOX回歸時(AABB部分)采用IoU損失,在QUAD回歸時采用尺度歸一化的smoothed-L1損失,以此來保證幾何形狀的回歸損失是尺度不變的。)

EAST解讀 —— An Efficient and Accurate Scene Text Detector

RBOX偏移角度損失

RBOX還有一個角度,這裡使用餘弦loss:

EAST解讀 —— An Efficient and Accurate Scene Text Detector

以上公式中hat均表示預測,”*“均表示GT。是以:

EAST解讀 —— An Efficient and Accurate Scene Text Detector

文中 λ θ \lambda_\theta λθ​被設定為了10。

QUAD偏移Loss

對于任意四邊形QUAD而言,邊界loss則使用了SmoothL1Loss作為損失函數:

EAST解讀 —— An Efficient and Accurate Scene Text Detector

其中使用 N Q ∗ N_Q{^*} NQ​∗作為歸一化參數,表示該四邊形的最短邊的長度:

EAST解讀 —— An Efficient and Accurate Scene Text Detector

Locality-Aware NMS

局部感覺NMS,為了減少時間複雜度。

其基于假設:基于相鄰像素點的候選框是高度相關的。是以可以先對這些候選框進行逐漸合并,再做正常NMS。

使用以上的訓練結束以後,對于每一個點,如果他的score值大于一定門檻值,我們就可以認為這個點在某個文字的内部,然後取其偏移,角度等就可以計算出該框所在的位置,大小等。 這麼多框,自然是需要做一些去重操作,傳統的NMS對于每一個Box都會和其餘的所有box計算IoU,這樣做的框數量非常大,是以O(n2)的速度接受不了。但是基于以上的方法(EAST)預測出來的框其實是比較有特點的:鄰近的像素生成的框重合度都很高,但是不是同一個文本生成的檢測框,重合度都很小,是以本文提出先按行“合并”四邊形,最後再把剩下的四邊形用原始的NMS篩選,這樣可以大大降低NMS的時候計算IoU的數量,即Locality-Aware NMS:(局部感覺NMS)

EAST解讀 —— An Efficient and Accurate Scene Text Detector

實驗結果

文本在ICDAR2015資料集上做了一些實驗,對比其他方法,本文提升較大:

EAST解讀 —— An Efficient and Accurate Scene Text Detector

有問題歡迎交流!

done~

References

  • https://arxiv.org/abs/1704.03155
  • https://zhuanlan.zhihu.com/p/37504120
  • http://blog.prince2015.club/2018/12/16/EAST/
  • https://zhuanlan.zhihu.com/p/44364958
  • https://blog.csdn.net/Lancher_Mo/article/details/77937499
  • https://blog.csdn.net/attitude_yu/article/details/80724187

繼續閱讀