本文解讀的是一篇發表於 AAAI 2019 的 paper,文章提出了一種 R-DAD 的方法來對 RCNN 系列的目標檢測方法進行改進。
研究動機
目前主流的目標檢測演算法分為 1 stage 和 2 stage 的,而 2 stage 的目標檢測方法以 Faster-RCNN 為代表是需要 RPN(Region Proposals Network)生成 RoI(Region of Interests,感興趣區域)的,文章認為正是因為被遮擋了的或者不精確的 Region Proposals 導致目標檢測演算法的不準確。
作者的想法動機其實很簡單,就是假如一輛車的左邊被人遮擋了,那麼這輛車的右邊帶來的資訊其實才是更可信的。基於這個想法,文章提出 R-DAD(Region Decomposition and Assembly Detector),即區域分解組裝檢測器,來改善生成的 Region Proposals。
R-DAD的網路結構
文章以 Faster-RCNN 的網路結構為例,修改成它提出的 R-DAD 結構:
R-DAD 網路架構主要分成兩個模組 MRP 和 RDA:
1. MRP(Multi-Scale Region Proposal)模組,用來改善 RPN 生成的 Region Proposals 的準確率。
MRP 表面意思就是生成多尺度的 Region Proposal,方法很簡單,就是使用傳統的 RPN 生成一些建議框,然後用不同的縮放因子(文章使用了 5 種縮放因子作為一組 s=[0.5,0.7,1,1.2,1.5])對生成出的建議框進行不同比例的縮小放大,從而提高 Region Proposals 的多樣性。
如圖一,生成了不同尺度的區域,有一些僅僅是區域性有一些是大於目標本身的,但是這也帶來了一個問題,就是原來的 Region Proposals 已經可以說是極大的數量了,再乘以五倍,想要網路能夠完全利用這些建議框是不切實際的,作者最後還新增了 RoI 的取樣層,對分數低的和跟 ground truth 重疊率低的進行了篩選。
由 MRP 網路生成的各種 Region Proposals 可以進一步適應目標之間因為空間變化所導致的特徵變化,提高結構的魯棒性。
2. RDA(Region Decomposition and Assembly)模組,作者也稱它為 mutil-region-based appearance model,即基於多區域的外觀模型,它可以同時描述一個物體的全域性外觀和區域性外觀,RDA 分為目標分解和目標區域整合的兩部分,目標分解如圖二所示,把一個目標分為上下左右四個方向的分解部分。
一般會先用線性插值兩倍上取樣之後再分解,後面作者給出了表格表示這樣效果更好。左右剛好是特徵圖的左右一半,上下也同理,都會送入 RAB 模組,RAB 模組如圖三所示:
▲ 圖3. RAB模組
其實就是下面這個函式:
其中 p 代表著上下左右的每一個部分或者組合後的部分如左-右 (l/r)、下-上 (b/u) 和 comb(l/r 與 b/u 的組合),*是卷積操作,f() 是 ReLU 單元。最後再取 max,是為了融合和的資訊,生成同樣大小的。
最後就是代表著全域性資訊的 scale 為 1 生成的 Region Proposals,一起送進 RAB 模組。這樣整個網路結構就可以做到既捕捉到區域性資訊的同時,也不丟失全域性資訊。
RAB 模組是一個類似 maxout 的單元,理論上它可以逼近任何連續的函式,所以我們使用 RAB 而不是直接使用 ReLU。這表明可以通過配置不同的分層地組合 RAB 模組來表示各種各樣的目標特徵。
損失函式
對每一個框 (box) d,我們都會通過 IoU 篩選出跟 GT (ground truth) 最匹配的 d*,如果 d 跟任何的 d* 的 IoU 超過 0.5,給予正標籤,若在 0.1 到 0.5 之間的,給予負標籤。R-DAD 的輸出層對每一個框 d 都有四個引數化座標和一個分類標籤。對於 box regression 來說,我們與以往目標檢測的引數化一致如下:
同理,是用來評估預測框和 GT 的差距的。
跟訓練 RPN 網路相似,R-DAD 也需要最小化分類損失和迴歸損失,如下:
實驗結果
文章中做了各種設定的組合,關於 MRP 裡縮放因子的組合、是否有 RDA 模組以及是否上取樣,得分如下表所示:
與 Faster-RCNN 對比,作者使用了 VOC07trainval 和 VOC12trainval 資料集訓練,再在 VOC07test 上測試,並且用了不同的特徵提取器(VGG、ZF、Res101),得分均比 Faster-RCNN 高。
在速度方面均比 Faster-RCNN 慢。
與沒有上下區域分解整合的 R-DAD 對比,有上下分解整合的誤判率低很多,因為它在複雜情形下被遮擋物體會更有選擇地相信得到的資訊。
R-DAD的優點
1. 文章提出因為我們最大化目標在橫向空間位置上區域性特徵的語義響應,與使用支援小區域的最大池化相比,在沒有深層次結構的情況下,我們可以改善特徵位置的空間不變性。我的理解就是作者取了上下左右四個方向的特徵模板,最後對四個方向進行了融合語義資訊,利用了橫向空間上的空間不變性,揭示了不同方向上的語義關係。
2. 在複雜場景下,如有目標物件被另一目標物件遮擋時,通過左右上下模板篩選出來的特徵是更符合真實場景的,這樣的 Region Proposals 也更加可信。
3. 同時描述了全域性特徵和區域性特徵的語義資訊,在 RAB 的組裝上具有很強的可操作性,通過配置分層式地組裝 RAB 模組,以及修改特徵模板,特徵的表達會更加靈活。
點評
這個區域分解整合的演算法令我覺得跟以前傳統的人臉識別演算法提取 Haar-like 特徵有點異曲同工之處,同樣都是把特徵圖分成上下兩部分,然後做特徵提取操作,都是定義了特定的特徵模板,這就很容易理解為什麼作者要做 multi scale 的操作了,因為在以前使用 Haar/SIFT/HoG 的時候,往往都需要使用 muti scale 來檢測。
但是 R-DAD 為什麼對特徵只分成上下各一半,左右各一半這種特徵模板,文章並沒有給出令人信服的理由。儘管如此,這也是一個對目標檢測的改進方向,通過 MRP 和 RDA 模組代替了之前的單純的 RPN 網路,而且在不使用 FPN (Feature Pyramid Networks) 的情況下取得了不錯的 mAP,這樣看來 R-DAD 是 2 stage 目標檢測系列的另一種技巧,綜合了橫向空間上的語義資訊。