論文閱讀(Xiang Bai——【CVPR2016】Multi-Oriented Text Detection with Fully Convolutional Networks)


 

Xiang Bai——【CVPR2016】Multi-Oriented Text Detection with Fully Convolutional Networks

 


 

目錄

  • 作者和相關鏈接
  • 方法概括
  • 方法細節
  • 創新點和貢獻
  • 實驗結果
  • 問題討論
  • 總結與收獲點

 


 

  • 作者和相關鏈接

 

  • 方法概括

    • Step 1——文本塊檢測: 先利用text-block FCN得到salient map,再對salient map進行連通分量分析得到text block;
    • Step 2——文本線形成: 對text-block利用MSER提取候選字符區域,利用候選字符區域估計整個block的方向,再結合候選字符的bounding box生成每個每條文本行;
    • Step 3——文本線過濾: 利用centroid FCN得到每條文本行中的字符的質心,利用質心過濾非文本行;

   以下為細化的每個步驟示例圖:

 Figure 1. The procedure of the proposed method. (a) An input image; (b) The salient map of the text regions predicted by the TextBlock FCN; (c) Text block generation;

(d) Candidate character component extraction; (e) Orientation estimation by component projection; (f) Text line candidates extraction; (g) The detection results of the proposed method.

  • 方法細節

    • text blcok 檢測

      • Text-block FCN的網絡結構

   選用VGG16的前5層卷積層,去掉后面的全連接層。在每個卷積層后都接上一個deconv操作(由1*1的卷積+上采樣構成)。再把5個deconv得到的maps用1*1的卷積進行 fusion,並經 過一個sigmoid層得到salient map。

  

 

      • Text-block FCN生成salient map的示例圖

                       從第1層到第5層的細節越來越少,global的信息越來越強。

      • 普通方法得到的的salient map和由text-block FCN得到的salient map對比

      • text block FCN用到的訓練圖

 

    • 文本線生成

      • MSER提取字符候選區域
        1. 在每個text block里進行MSER提取(不要求MSER把所有字符都提取出來,允許漏檢和存在噪聲);
        2. 利用候選區域的面積、長寬比過濾大部分噪聲(僅在text block里提取,噪聲不多,比較單一);
      • projection方法估計直線方向
        1. 在text block里找到最優的h和θ(可以確定一條直線),使得該直線穿過的component個數最多;
        2. 本方法的假設條件:第一,同一block中,所有文本線的方向一致;第二,文本線是近直線的;

 

      • 候選文本線生成
        1. 對每個block里的所有component進行聚類,聚類條件如下:
          •  

        2.  每個grouping生成bounding box
          • 沿着block(記為α)的方向θr(α)的方向畫一條直線l,該直線經過這個grouping中的所有component的中心(所有component中心中隨便取一個或者取中間那個?);
          • 將直線l與α的邊緣點的交點集合記為P(α是圖(b)中的所有白色點的集合),即如下圖中的最左邊和最右邊的兩個紅點。
            •  

            •  

          • 利用點集P和每個componet的bounding box生成整條文本線的bounding box(求並集)
            •  

  • 文本線噪聲過濾

    • character-centroid FCN獲得每條文本線中的所有可能存在的字符的質心
      • 模型結構:從text-block FCN的5層卷積→3層卷積(text-block FCN的縮小版)
      • 訓練樣本:距離字符中心(ground Truth中的字符中心?)距離小於字符高度的15%的點都算作正樣本點,其他點算作負樣本點、
    • 非文本線噪聲過濾
      • 質心概率的均值過濾
      • 幾何角度過濾(近直線)

 

  • 創新點和貢獻

    • 貢獻
      1. 用FCN生成文字/非文字的salient map;
      2. 利用局部(Component based )和全局(context of the text block ) 的信息生成文本線;
      3. 用FCN得到字符的質心;
    • idea的出發點
      1. FCN既然可以作像素級的標定,那么可以用來得到每個像素屬於文字的概率(salient map),也可以用來得到每個像素是字符質心的概率(centroid map );
      2. 單個字符容易受背景干擾,容易造成漏檢或者誤檢,而文本塊相對於字符不但區分性更強(更容易與背景區分開),而且更穩定(一般比較完整)。因此,如果能把單個字符的信息(局部,細節)與上下文信息(文本線)結合起來,就能使檢測更加魯棒;

 

  • 實驗結果

    • MSRA-TD500
    • ICDAR2015
    • ICDAR2013
    • 示例圖
    • 失敗的圖

 

 

  • 問題討論

    • 為什么FCN可以用來做文字?有什么好處?
      • FCN可以融合局部(字符)和全局信息(文本線);
      • FCN是端到端訓練;
      • FCN由於去掉了全連接層后在像素級的標定很快,而且文字本身也容易獲得像素級標定的訓練數據;
    • 為什么這篇文章的方法可以解決多方向的文字檢測問題?
      • 文章中決定文字方向的方法是text block(記為α)上利用MSER檢測候選字符,再在整個block上找到一條直線θr(α),使得經過的候選字符個數最多。由於直線θr(α)的兩個參數h和θ都沒有約束限制,因此可以檢測任意方向的文字;

    • deconv中1*1的卷積作用是什么?
      • 1*1的卷積得到的map大小和原圖是一樣的,所以作用一般有三個。一是為了把多通道的信息融合起來;二是為了升維或降維(把上一層的channel數變多或者變少);三是有時候1*1的卷積是在做pixel-wise的prediction。
    • deconv中上采樣的作用是是什么?
      • 因為每一層卷積得到的map大小是不同的,而且和原圖相比都更小,在fusion的時候要得到和原圖相同大小的map所以要進行上采樣。這個上采樣的核(參數)在FCN中是可以學習的,初始化的時候可以選擇用雙線性插值;
    •  得到的text block為什么不能直接看成是文本線,為什么還要單獨一步專門做文本線生成?
      • 第一,當多條文本線靠得比較近時,容易被一個block包含;第二,text block得到的區域范圍太粗糙,並沒有准確的文本位置;
    • 文本線方向估計的這個projection的算法實際是如何操作的?(遍歷h和θ?)
    • 在文本線過濾中得到的質心圖是一個概率圖,如下圖所示,是一團白色區域,而不是唯一的一個點,每個字符最終是由一個質心表示么?如何確定這個唯一的質心?(使用類似於meanshift,nms找到極值點?)

 

 

 

  • 總結與收獲點

    • 把text block(global)和character(local)的特點綜合起來,這個想法非常好,要把Faster RCNN與component的方法結合起來可以參考這篇文章的一些思想。
    • 這是第一個用FCN來做文字的文章,雖然准確率高,但是pixel wise還是比較慢的。文字和其他目標檢測不大一樣,太細了。需要找其他方法來檢測text block。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM