&論文概述
獲取地址:https://arxiv.org/abs/1909.06720
&總結與個人觀點
本文提出Cascade RPN,雖然簡單但是在提高提高候選區域的質量以及目標檢測性能上很有效的網絡結構。Cascade RPN系統地解決由傳統的RPN啟發式地定義anchor以及將特征與anchor對齊產生的限制。一個簡單的使用two-stage Cascade RPN的實現在AR上比baseline高出13.4個點,超過了現有的候選區域的方法。當將其應用到Fast R-CNN以及Faster R-CNN時,Cascade RPN在檢測的mAP上對應提高3.1與3.5個百分點。
本文提出的Cascade RPN針對目前研究在改進RPN上遇到的問題,即anchor與特征的對齊問題作出修正,我認為本文最大的兩點在於Adaptive Convolution的提出以及Cascade RPN的結構使得其能夠直接使用上一個階段得到的特征。
&貢獻
1、提出了Adaptive convolution,使得其能夠解決Deformable convolution出現的特征對齊計算不便的問題;
2、使用Cascade RPN對Iterative RPN的結構做了一些修正,使得其能夠使用到上一階段中更多的特征信息。
&擬解決的問題
問題:由傳統RPN啟發式定義anchor以及將特征與anchor對齊過程中產生的限制。
分析:
每個anchor由其scale以及aspect ratio定義,為了得到足夠的正樣本,需要一系列的scale以及aspect ratio的anchor集合,因此設置合適的scale以及aspect ratio對目標檢測的性能至關重要,要求經過大量的調整。其中對齊原則被隱式定義為圖像特征與其參考框間的響應,因此RPN與R-CNN的輸入特征應當與被回歸的bbox很好地對齊。在R-CNN中通過RoIPool層來確保對齊,在RPN中被啟發式地確保:利用在特征圖上RPN統一的卷積核strde來對anchor box進行統一地初始化,而這種啟發式的方式也限制了檢測性能的提高。
之前有大量的研究試圖通過迭代地精煉以改善RPN,即iterative RPN。Anchor boxes作為回歸使用的參考框被統一地初始化,而目標的ground truth卻是任意地定位,因此RPN必須學習高偏差的回歸分布,如上圖中地(a)。如果這個回歸分布被完美地學習,則在stage 2中回歸分布接近於Dirac Delta分布;然而,在stage 1中這種高偏差分布往往很難被學習,需要在stage 2中做回歸。相比來說,stage 2的分布有着更低的偏差,因此能夠更簡單地學習,但是在Iterative RPN中卻並未成功。而這個失利的原因也能從(b)中得出結論,因為Iterative RPN改善的性能相比於RPN來說很小。同時從(c)來看,在stage 1后,anchor被回歸到更接近與ground truth,然而卻破壞了檢測中的對齊原則。
在本文中使用的Cascade RPN方法系統地解決了之前提到的問題:
1) 使用單個anchor,以及在定義正樣本區域時結合anchor-based以及anchor-free的評估標准來提高檢測性能,取代使用多尺度多縱橫比的anchors;
2) 基於在每個stage之后的應用於精煉的anchor的自適應卷積,在從多階段精煉收益的同時維持anchor boxes與特征之間的對齊。
&框架及主要方法
1、Main Structure
在上圖中,包含了多種RPN的結構圖,主要是用於從結構圖中展示Cascade RPN的不同之處。
2、Iterative RPN
Cascade RPN是在基於Iterative RPN對於RPN進行改良的過程中引發的問題進行處理的,因此,首先需要了解一下Iterative RPN的情況。
根據之前提到的問題,Iterative RPN(2b)能夠通過多次精煉來獲得更精准的定位,但是由於anchor的位置以及形狀在每次迭代之后都回發生變化,因此在anchor以及其表示的特征之間出現了誤匹配問題,即破壞了目標檢測中的對齊原則。
之后,為解決這個問題,也有研究使用了可變形卷積來學習特征空間的轉換(2c、2d),希望能夠習得anchor幾何形狀的對應變換,然而卻沒有明確的監督來學習特征變換,因此很難確定最終的性能提高究竟是來自於對對齊原則的規整還是依賴於可變形卷積自身帶來的益處。
3、Adaptive Convolution
針對於一般的卷積操作,取3×3的卷積核,在每次卷積計算中,輸出的特征結果y為:
其中R表示標准網格,R={(rx, ry)},在標准卷積中,R={(-1, -1), (-1, 0),..., (0, 1), (1, 1)},表示3×3卷積以及膨脹率為1的 位置變化。而在自適應卷積中,標准網格R被偏移區域O替換:
使用a表示anchor在特征圖中的映射。則偏移o可以解耦為center偏移以及shape偏移(具體如2e所示,中心偏移直接移動預定義anchor的中心,shape偏移相當於膨脹卷積的擴展):
其中,octr=(ax-px, ay-py),oshp通過anchor的shape以及卷積核的size進行定義,如取卷積核size為3×3,則:
上圖為自適應卷積與標准卷積、膨脹卷積以及可變形卷積的對比,通過上圖可以發現,可變形卷積只學習了每個位置的偏移,對於形狀的變化並不關注,因此最終還需要學習對應的anchor的形狀變化的轉換,而自適應卷積首先學習一個中心的偏移,在這個基礎上,再對每個點進行偏移變換,而此時的變化是由此時的anchor的尺寸決定的,即相當於進行了膨脹卷積的過程,只不過膨脹率是由anchor的尺寸決定,因此在anchor的取樣過程中就能夠保證anchor與其特征的對齊。
4、Cascade RPN
具體的Cascade RPN的結構圖可以參見(2e)。Cascade RPN依賴於自適應卷積使得特征與anchor對齊,在第一個階段,由於anchor的center偏移為0,此時的自適應卷積相當於膨脹卷積,因為特征的空間順序能夠被膨脹卷積保留下來,將第一階段的特征橋接到下一個階段中。
Cascade RPN的pipeline實現可根據上述算法得知,通過標黃的兩行可以看出,最初的A被設置為最初的anchor,在每次迭代過程中,使用上一次迭代得到的經過偏移后的anchor進行運算,最終的結果使用NMS進行處理。
其多任務損失的計算主要是對迭代時候的bbox回歸損失做了修正,每一次迭代使用不同的權重αт。
5、Experiment
1) 使用不同的候選區域提取方法在COCO 2017 val數據集中的實驗對比,當然拋開backbone的因素,Cascade RPN還是表現出了很高的性能,幾乎在每個AR上都能達到最好的效果。
2) 在Fast R-CNN與Faster R-CNN中使用文中提到的各種RPN相關的候選區域提取算法在COCO2017 test-dev數據集中的實驗對比。結果顯示,在整體上還是Cascade RPN占據優勢,但在AP50上並沒有表現出很好的性能。
3) 消融實驗1:分別測試了cascade RPN的各個部件對整體召回率的影響,從表格中可以明顯看出在每增加一個使用策略,整體的AR都在增長,直到使用了所有的方法,最終AR比起baseline在每個proposal region的數量上都提升了10個百分點以上。
4) 消融實驗2:測試alignment原則對整體AR的影響。從表中可以看出,使用了中心對齊以及形狀對齊都對基礎的AR有所增長,同時使用了兩個對齊策略的結果AR比起最初增長了接近10個百分點。說明alignment在anchor-based方法中起到很大作用。
5) 消融實驗3:使用不同的采樣策略對結果的影響。從表中可以看出通過anchor-based方法的整體AR高於anchor-free,在同時使用兩種方法在proposal region數量增多的時候效果會更好。
6) 消融實驗4:在不同階段上的整體AR對比。此時3階段使用IoU=0.75,從表中可以看出,在Proposal region較多的情況下,更多的階段會對AR產生正面影響,但對時間並不友好,折中時間以及AR的情況下,在使用1000proposals的情況下,選擇2階段會更好。
下面分別為2階段Cascade RPN使用過程中生成的候選區域:
&遇到的問題
在這篇論文中遇到的問題,是之前沒有補足的知識點,需要重溫這些小知識。
1、關於R-CNN的問題,文中提到在R-CNN中是通過RoI Pool層來保證回歸的bbox與輸入的對齊,RoI Pool是為了使得每個RoI都歸一到統一的尺度而已,如何實現對齊?
2、如何為每個點的像素計算objectness score?
&思考與啟發
如果在計算oshp的時候不直接使用anchor的wight、height,而是直接作為超參數通過網絡對其進行訓練是不是能體現更好的性能,反向通過oshp來得到anchor?待我想想...