R2CNN模型——用於文字目標檢測的模型

oosnow發表於2021-12-04

引言

R2CNN全稱Rotational Region CNN,是一個針對斜框文字檢測的CNN模型,原型是Faster R-CNN,paper中的模型主要針對文字檢測,調整後也可用於航拍影像的檢測中去。在ICDAR資料集上進行benchmark。

相關工作

paper中介紹了很多相關的針對斜框型別的文字目標識別所使用的模型,例如TextBoxes(端到端的單個神經網路實現)、DeepText(使用Inception-RPN生成候選框,然後對每個候選框進行文字檢測的打分:即判別其是否是文字的概率,我的看法是可能是Faster R-CNN在文字目標識別中的魔改,但沒閱讀過相關論文不下定論)、FCRN(全卷積迴歸網路利用合成影像訓練模型)。以上的模型都是針對水平框的。

接著還介紹了幾種其他實現思路的模型,如CTPN(檢測固定寬度的垂直框,使用BLSTM捕捉順序資訊,然後連結垂直框以獲得最終檢測框)、FCN(使用text block FCN檢測文字塊,使用MSER檢測多種朝向的文字候選,最後進行候選文字的分類)、RRPN(基於Faster R-CNN,使用傾斜角來描述多種朝向的候選框,這個在DOTA資料集那篇文章中有介紹具體的表達方法)、SegLink(通過檢測段然後對段進行連線,在任意長度的文字檢測中這種模型表現很好)、EAST(加快檢測速度)、DMPNet(用於生成更加貼合的文字框)、Deep direct regression(用於多種朝向的文字檢測)。

作者模型的目標是檢測出任意朝向的文字,類似於RRPN的目標,但實現思路有所不同。(作者認為RPN在生成候選文字方面表現很好,所以模型的設計思路是基於RPN生成的候選文字資訊來生成文字候選框,而不是類似原始的Faster R-CNN將兩個目標分離開來)。

問題描述

有趣的是,本文作者使用了一種不同於\((x_1, y_1, x_2, y_2, x_3, y_3, x_4, y_4)\)\((x_1, y_1, x_2, y_2, \theta)\)的候選框表達方式,而是使用了\((x_1, y_1, x_2, y_2, h)\)

其中四個點的表達方式所表達出來的框當然是最精確的,但是四個點的迴歸使得任務很難。而使用\(\theta\)角的表達方式會出現\(90^0\)\(-90^0\)的歧義問題。所以作者使用了第三種表達方式:首先選定初始點,然後選定其順時針方向的下一個點,最後使用矩形的高度來表達出候選框,這種方法也能達到不錯的效果。

模型方法

R2CNN模型的略圖如下所示,RPN用於生成文字候選框(這時的候選框是水平的),然後對於每一個候選框,經過ROI池化層生成三種大小的特徵圖(7X7、11X3、3X11),經過兩個全連線層生成最終的結果(三種結果:文字和非文字的得分情況、水平框預測和斜框預測),然後使用NMS演算法得到最後的結果。

  1. RPN

    使用RPN生成水平預測框是合理的。因為總是有一些物體本身就是水平的或者豎直的,再或者可以被證明使用水平框識別它是很好的選擇(原論文中的說法)。而且由於較小的文字場景更多,所以R2CNN將Faster R-CNN中的RPN設定的三種anchor的尺寸增加了一種,即將(8,16,32)改為(4,8,16,32)。

  2. 多尺度的ROIPoolings

    從Faster R-CNN的7X7尺寸特徵圖,改為了三種尺寸(7X7,11X3,3X11)。其中3X11用於檢測縱橫比更大的文字型別,11X3用於檢測縱橫比更小的文字型別。

  3. 結果預測

    文字檢測是一個多工模型,最後生成的三種結果:text/non-text scores, axis-aligned boxes and inclined minimum area boxes。

    之所以要加入水平框的預測結果,是因為理想和實際實驗中證明加入水平框的預測損失可以改善模型的效能。(考慮這一點是因為水平框和最終要預測的斜框是有一定關係的,可以作為斜框的一種強特徵來看)。

  4. NMS(非最大抑制)

    通過NMS對水平框和斜框進行最後的篩選,最後得出的一個結果如下圖所示。可以看出斜框在這種場景下相比水平框有很大的優勢。

  5. 損失計算

    paper中的損失計算公式如下:

    \[L(p,t,v,v^*,u,u^*) = L_{cls}(p,t) + \lambda_1t\sum_{i\in{x,y,w,h}}L_{reg}(v_i, v_{i}^{*}) + \lambda_2t\sum_{i\in{x,y,w,h}}L_{reg}(u_i, u_{i}^{*}) \]

    其中第一項就是判別是否為文字的損失,輸出類別只有兩種(是否為文字),第二項為水平框的迴歸損失,第三項為斜框的迴歸損失。\(\lambda_1\)\(\lambda_2\)為可調整的係數,用以控制各部分損失之間的比例關係。

    其中對於候選框的兩部分損失的計算,均採用SmoothL1的方式。即:

    \[L_{reg}(w, w^*) = smooth_{L1}(w - w^*)\\ smooth_{L1}(x) = \left\{ \begin{aligned} 0.5x^2 \qquad if\quad|x| < 1\\ |x| - 0.5\qquad otherwise \end{aligned} \right. \]

實驗部分

  1. 實現細節

    • 訓練資料包括2000張聚焦場景文字影像和1000張附帶場景文字影像,選用訓練資料時僅僅選用了容易識別的資料樣本,即不包括識別不出來具體文字內容或識別為”XXX“的資料。
    • 訓練資料時將每個資料進行旋轉以得到單張影像的多個輸入樣例,實驗中採用了13中旋轉角(-90, -75, -60, -45, -30, -15, 0, 15, 30, 45, 60, 75, 90),共計39000張影像。
    • 訓練細節:共進行20w次迭代,學習率在迭代期間動態調整(每經過5w次迭代就將學習率翻倍)。正則化項設定為0.0005, momentums設定為0.9。輸入影像的尺寸為:高720、寬1280。
  2. 效能表現

    實驗中使用了精確率、召回率、F-score和時間作為模型的評估量。

    通過對比基線模型Faster R-CNN以及調整自己模型的幾個超引數,來對比模型之間的效果。其中在ICDAR 2015資料集上的效果對比如下圖所示:
    R2CNN模型——用於文字目標檢測的模型

    從表中可以看出,其中調整的超引數包括候選框大小(Anchor scales)、候選框的損失的比例係數(Axis-aligned box and incline box)、池化後的大小(Pooled sizes)、是否使用斜框NMS(Inclined NMS)、測試圖的最短邊大小範圍(Test scales)

  3. 與其他模型之間的對比

    在ICDAR 2015上達到了SOTA,在ICDAR 2013上與CTPN不相上下。

  4. 模型可以擴充套件用於YOLO和SSD

相關文章