二階段目標檢測網路-Cascade RCNN 詳解

嵌入式視覺發表於2022-12-20

摘要

雖然低 IoU 閾值,如 0.5,會產生噪聲檢測(noisy detections),但是,隨著 IoU 閾值的增加,檢測效能往往會下降。造成這種情況的主要因素有兩個:1)由於在訓練過程中正樣本呈指數下降,過少的正樣本導致網路訓練期間過擬合。2)dismatch:檢測器在最優的 IoU 與輸入預測的 IoU 之間會產生mismatch。由此,我們提出了多階段的目標檢測器結構:Cascade R-CNN 來解決 IoU 選擇的問題。它由一系列不斷增加 IoU 閾值的檢測器組成,可以逐步的更接近目標的預測。。檢測器是逐步訓練的,前一個檢測器輸出一個良好的資料分佈並作為輸入,用於訓練下一個更高質量的檢測器。逐步改進的重取樣保證了所有檢測器都有一組相同大小的正樣本,從而減少了過擬合問題。在 inference 階段使用級聯的檢測器結構可以合理的提高了 IOU 的閾值而不會出現 mismatch 問題。

1,介紹

Cascade RCNN 是作者 Zhaowei Cai2018 年發表的論文 Cascade R-CNN: Delving into High Quality Object Detection.

目標檢測是一個複雜的問題,需要解決兩個主要任務。首先,檢測器必須解決識別問題,區分前景目標和背景目標,併為其分配匹配的類別標籤。其次,探測器必須解決定位問題,為不同的目標分配精確的 bounding box。許多目標探測器都是基於兩階段網路框架 Faster R-CNN 的。雙階段檢測網路是一個多工學習問題,包括目標的分類和邊界迴歸。與物體識別不同的是,定義正/負樣本需要一個 IoU 閾值。通常使用的 IOU 閾值 u=0.50.5IOU 的設定是相當低的。檢測的目標經常包含很多噪聲,如圖 (a)所示。IOU 閾值取0.5,會有很多假的預測資訊也都包含在內,從而會產生很多錯誤的預測資訊。

Figure1

1.1,Faster RCNN 回顧

先回顧下 Faster RCNN 的結構,下圖是 Faster RCNN 的結構圖。

Faster-rcnn網路結構圖

training 階段和 inference 階段的不同在於,inference 階段不能對 proposala 進行取樣(因為不知道 gt,自然無法計算 IoU),所以 RPN 網路輸出的 300 RoIs(Proposals)會直接輸入到 RoI pooling 中,之後透過兩個全連線層分別進行類別分類和 bbox 迴歸。

值得注意的是,Faster RCNN 網路在 RPNFast RCNN 階段都需要計算 IoU,用於判定 positivenegative。前者是生成 256Proposal 用於 RPN 網路訓練,後者是生成 128RoIs(可以理解為 RPN 網路最佳化後的 Proposals)用於 Fast RCNN 訓練。

1.2,mismatch 問題

training 階段和 inference 階段,bbox 迴歸器的輸入 proposals 分佈是不一樣的,training 階段的輸入proposals 質量更高(被取樣過,IoU > threshold),inference 階段的輸入 proposals 質量相對較差(沒有被取樣過,可能包括很多 IoU < threshold 的),這就是論文中提到 mismatch 問題,這個問題是固有存在的,但通常 threshold0.5 時,mismatch 問題還不會很嚴重。

2,實驗分析

2.1,改變IoU閾值對Detector效能的影響

提升IOU閾值對檢測器效能的影響

從上圖可以看出:

  • 同一個 detector 通常只會在一個小範圍的 IoU 閾值 內效能最好,比如 IoU 閾值為 0.5 的 detector,在輸入 proposalgt 的閾值為 0.55-0.6 範圍內,其效能最好。閾值為 0.6 的 detector 則在 0.6~0.75 閾值範圍內效能最佳。
  • 幾乎所有的檢測器輸出框的 IoU 都好於輸入 proposal 的 IoU(紅綠藍三條曲線都在灰色對角線上方)。

2.2,提高IoU閾值的影響

主要是分析對提高 IoU 閾值對 RPN 輸出 Proposal 數量的影響,實驗結果如下圖所示。

提高IoU閾值的影響

上圖縱座標表示 RPN 輸出 proposal 在各個 IoU 範圍內的數量。

  • 第一張圖表示級聯結構的第一級,可以等同為沒有級聯結構的 RCNN 網路。從圖中可以看出,隨著 IoU 的增加,IoU 在 0.6,0.7 及以上範圍內的 proposal 數量越來越少。雖然這樣產生更高精度的 proposal,但是也帶來了兩個問題:

    • 過擬合
    • 更嚴重的 mismatch 問題RCNN 結構本身就存在這個問題,IoU 閾值的提高又加劇了這個問題。
  • 第二、三圖表示有級聯結構的 RCNN,從圖中可以看出,隨著 stage 的加深,相應區域的依然擁有大量的 proposal,因此不會出現嚴重的過擬合的現象。

2.3,和Iterative BBox比較

Iterative BBoxH 位置都是共享的,而且 3 個分支的 IoU 閾值都取 0.5Iterative BBox 存在兩個問題:

  • 單一閾值 0.5 是無法對所有 proposal 取得良好效果。
  • 此外,detector 會改變樣本的分佈,使用同一個共享的 H 對檢測是有影響的。作者做了下面的實驗證明樣本分佈在各個stage 的變化。

Figure2

紅色表示離群點。

  • 從上圖可以看出,沒經過一次迴歸,樣本都會更靠近 gt,即輸出的樣本分佈會逐漸變化,使用同一個閾值 0.5 的條件下,後面兩個 stage 就會有較多的離群點,使用共享的 Head 網路權重是無法滿足輸入的變化的。
  • 從上圖還可以看出,每個階段設定不同的 IoU 閾值,可以更好的去除離群點,從而適應不同的輸入 proposal 分佈。

3,網路結構

網路結構如下圖(d)

cascade_rcnn和其他框架的網路結構簡略圖

上圖中 (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 精度。其中 backboneRsNet-101Cascade RCNNAP 達到了 42.8

對比實驗結果

參考資料

相關文章