標籤:input ons 包含 區分 font figure 直線 面積 樣本
BaiXiang——【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.
選用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對比
-
- 文本線產生
- MSER提取字元候選地區
- 在每個text block裡進行MSER提取(不要求MSER把所有字元都提取出來,允許漏檢和存在雜訊);
- 利用候選地區的面積、長寬比過濾大部分雜訊(僅在text block裡提取,雜訊不多,比較單一);
- projection方法估計直線方向
- 在text block裡找到最優的h和θ(可以確定一條直線),使得該直線穿過的component個數最多;
- 本方法的假設條件:第一,同一block中,所有文本線的方向一致;第二,文本線是近直線的;
-
-
- 候選文本線產生
- 對每個block裡的所有component進行聚類,聚類條件如下:
- 每個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%的點都算作正樣本點,其他點算作負樣本點、
- 非文本線雜訊過濾
- 創新點和貢獻
- 貢獻
- 用FCN產生文字/非文字的salient map;
- 利用局部(Component based )和全域(context of the text block ) 的資訊產生文本線;
- 用FCN得到字元的質心;
- idea的出發點
- FCN既然可以作像素級的標定,那麼可以用來得到每個像素屬於文字的機率(salient map),也可以用來得到每個像素是字元質心的機率(centroid map );
- 單個字元容易受背景幹擾,容易造成漏檢或者誤檢,而文字區塊相對於字元不但區分性更強(更容易與背景區分開),而且更穩定(一般比較完整)。因此,如果能把單個字元的資訊(局部,細節)與上下文資訊(文本線)結合起來,就能使檢測更加魯棒;
- 實驗結果
- 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。
論文閱讀(BaiXiang——【CVPR2016】Multi-Oriented Text Detection with Fully Convolutional Networks)