摘要
雖然低 IoU
閾值,如 0.5
,會產生噪聲檢測(noisy detections
),但是,隨著 IoU
閾值的增加,檢測效能往往會下降。造成這種情況的主要因素有兩個:1)由於在訓練過程中正樣本呈指數下降,過少的正樣本導致網路訓練期間過擬合。2)dismatch:檢測器在最優的 IoU
與輸入預測的 IoU
之間會產生mismatch
。由此,我們提出了多階段的目標檢測器結構:Cascade R-CNN
來解決 IoU
選擇的問題。它由一系列不斷增加 IoU
閾值的檢測器組成,可以逐步的更接近目標的預測。。檢測器是逐步訓練的,前一個檢測器輸出一個良好的資料分佈並作為輸入,用於訓練下一個更高質量的檢測器。逐步改進的重取樣保證了所有檢測器都有一組相同大小的正樣本,從而減少了過擬合問題。在 inference
階段使用級聯的檢測器結構可以合理的提高了 IOU
的閾值而不會出現 mismatch
問題。
1,介紹
Cascade RCNN
是作者Zhaowei Cai
於2018
年發表的論文Cascade R-CNN: Delving into High Quality Object Detection
.
目標檢測是一個複雜的問題,需要解決兩個主要任務。首先,檢測器必須解決識別問題,區分前景目標和背景目標,併為其分配匹配的類別標籤。其次,探測器必須解決定位問題,為不同的目標分配精確的 bounding box
。許多目標探測器都是基於兩階段網路框架 Faster R-CNN
的。雙階段檢測網路是一個多工學習問題,包括目標的分類和邊界迴歸。與物體識別不同的是,定義正/負樣本需要一個 IoU 閾值。通常使用的 IOU
閾值 u=0.5
,0.5
對 IOU
的設定是相當低的。檢測的目標經常包含很多噪聲,如圖 (a)所示。IOU 閾值取0.5,會有很多假的預測資訊也都包含在內,從而會產生很多錯誤的預測資訊。
1.1,Faster RCNN 回顧
先回顧下 Faster RCNN
的結構,下圖是 Faster RCNN
的結構圖。
training
階段和 inference
階段的不同在於,inference
階段不能對 proposala
進行取樣(因為不知道 gt
,自然無法計算 IoU
),所以 RPN
網路輸出的 300
RoIs
(Proposals
)會直接輸入到 RoI pooling
中,之後透過兩個全連線層分別進行類別分類和 bbox
迴歸。
值得注意的是,Faster RCNN
網路在 RPN
和 Fast RCNN
階段都需要計算 IoU
,用於判定 positive
和 negative
。前者是生成 256
個 Proposal
用於 RPN
網路訓練,後者是生成 128
個 RoIs
(可以理解為 RPN
網路最佳化後的 Proposals
)用於 Fast RCNN
訓練。
1.2,mismatch 問題
training
階段和 inference
階段,bbox
迴歸器的輸入 proposals
分佈是不一樣的,training
階段的輸入proposals
質量更高(被取樣過,IoU > threshold),inference
階段的輸入 proposals
質量相對較差(沒有被取樣過,可能包括很多 IoU < threshold 的),這就是論文中提到 mismatch
問題,這個問題是固有存在的,但通常 threshold
取 0.5
時,mismatch
問題還不會很嚴重。
2,實驗分析
2.1,改變IoU閾值對Detector效能的影響
從上圖可以看出:
- 同一個 detector 通常只會在一個小範圍的 IoU 閾值 內效能最好,比如 IoU 閾值為 0.5 的 detector,在輸入
proposal
和gt
的閾值為0.55-0.6
範圍內,其效能最好。閾值為 0.6 的 detector 則在 0.6~0.75 閾值範圍內效能最佳。 - 幾乎所有的檢測器輸出框的 IoU 都好於輸入 proposal 的 IoU(紅綠藍三條曲線都在灰色對角線上方)。
2.2,提高IoU閾值的影響
主要是分析對提高 IoU 閾值對 RPN 輸出 Proposal 數量的影響,實驗結果如下圖所示。
上圖縱座標表示 RPN
輸出 proposal 在各個 IoU 範圍內的數量。
-
第一張圖表示級聯結構的第一級,可以等同為沒有級聯結構的
RCNN
網路。從圖中可以看出,隨著 IoU 的增加,IoU 在 0.6,0.7 及以上範圍內的 proposal 數量越來越少。雖然這樣產生更高精度的 proposal,但是也帶來了兩個問題:- 過擬合。
- 更嚴重的
mismatch
問題。RCNN
結構本身就存在這個問題,IoU 閾值的提高又加劇了這個問題。
-
第二、三圖表示有級聯結構的
RCNN
,從圖中可以看出,隨著stage
的加深,相應區域的依然擁有大量的proposal
,因此不會出現嚴重的過擬合的現象。
2.3,和Iterative BBox比較
Iterative BBox
的 H
位置都是共享的,而且 3
個分支的 IoU
閾值都取 0.5
。Iterative BBox
存在兩個問題:
- 單一閾值
0.5
是無法對所有proposal
取得良好效果。 - 此外,
detector
會改變樣本的分佈,使用同一個共享的H
對檢測是有影響的。作者做了下面的實驗證明樣本分佈在各個stage
的變化。
紅色表示離群點。
- 從上圖可以看出,沒經過一次迴歸,樣本都會更靠近
gt
,即輸出的樣本分佈會逐漸變化,使用同一個閾值0.5
的條件下,後面兩個stage
就會有較多的離群點,使用共享的Head
網路權重是無法滿足輸入的變化的。 - 從上圖還可以看出,每個階段設定不同的 IoU 閾值,可以更好的去除離群點,從而適應不同的輸入
proposal
分佈。
3,網路結構
網路結構如下圖(d)
上圖中 (d) 和 (c) 很像,iterative bbox at inference
是在推斷時候對迴歸框進行後處理,即模型輸出預測結果後再多次處理,而 Cascade R-CNN
在訓練的時候就進行重新取樣,不同的 stage
的輸入資料分佈已經是不同的了。
簡單來說 cascade R-CNN 是由一系列的檢測模型組成,每個檢測模型都基於不同 IOU 閾值的正負樣本訓練得到,前一個檢測模型的輸出作為後一個檢測模型的輸入,因此是 stage by stage 的訓練方式,而且越往後的檢測模型,其界定正負樣本的 IOU 閾值是不斷上升的。
Cascade R-CNN 的幾個檢測網路(Head
網路)是基於不同的 IOU 閾值確定的正負樣本上訓練得到的。
作者在 COCO 資料集上做了對比實驗,達到了 state-of-the-art
精度。其中 backbone
為RsNet-101
的 Cascade RCNN
的 AP
達到了 42.8
。