論文:Acquisition of Localization Confidence for Accurate Object Detection
https://arxiv.org/abs/1807.11590
代碼:https://github.com/vacancy/PreciseRoIPooling
1 問題提出
目標檢測一般分爲兩個過程,一是對proposal進行分類獲取目標的類別信息,二是對proposal進行迴歸以得到目標的位置信息,最後對獲取的檢測結果根據IOU進行NMS處理得到最終的檢測結果。但是由於兩個缺陷,造成了檢測效果不夠準確:
- 由於模型訓練過程中並未記錄各檢測框的定位置信度,進行NMS處理時一般以分類的置信度爲基準對各檢測框進行排序,但是很多情況下,分類置信度和定位置信度是不一致的,分類準確度高的檢測框定位置信度可能較小,這樣的初步檢測結果經過NMS處理後,雖然保留了分類準確度更高的檢測框,但定位精度不夠理想,如下圖所示:
上圖左圖橫軸爲檢測框和ground-truth box之間的IOU,縱軸爲各檢測框的分類置信度,從圖上可以看出兩者之間並不存在對應關係,分類置信度高的框其IOU可能較小。作者認爲出現這樣問題的原因是,訓練過程中將和ground-truth box之間IOU大於設定閾值的proposal都設置爲了正樣本,這樣的樣本分類置信度爲1,但IOU可能還是較小,使用這樣的樣本訓練的模型的預測結果就會造成將和ground-truth box之間IOU較小的框預測的分類置信度較大。
如上圖所示,作者進一步統計了和真實目標框之間不同IOU的檢測框的數量,No-NMS表示未進行NMS處理前的原始檢測框,可以看出對於和真實目標IOU大於0.9的檢測框,NMS處理會把檢測框的數量減少一半以上,而其他IOU更小的框被刪除的數量卻相對較小,最終也就造成了IOU較大的框被刪除了,留下了IOU較小的框,定位精度較差。
針對上述問題,作者提出了推理過程中使用IOU作爲檢測框的定位置信度,然後基於IOU進行NMS處理提升定位精度。
2. bounding-box迴歸是學習proposal和真實框之間的偏移以提升目標的定位精度,很多算法爲了進一步提升定位精度使用了多次bounding-box迴歸的迭代,但迭代的bounding box迴歸有可能會造成檢測框的精度退化,如下圖所示:
上圖所示的bounding-box迴歸的迭代次數和檢測效果之間的非線性關係和定位精度的不確信使得難以取得最優的目標定位效果。
針對這個問題,作者提出了基於優化的bounding box修正,在迭代過程中持續優化定位精度。
2 IOU-Net
針對第一節提出的兩個問題,作者設計了IOU-Net,在檢測過程中預測每一個檢測框和真實框之間的IOU。
IOU-Net的整體框架如下圖所示:
2.1 網絡結構
如上圖所示,IOU-Net從FPN中獲取各區域的特徵,然後經過precise ROI pooling層得到輸出特徵,然後將該特徵送入一個兩層的全連接層預測該區域和真實目標框之間的IOU。
2.2 訓練數據
訓練檢測網絡時的訓練數據不是來自於RPN產生的proposal,而是通過對訓練集的ground-truth bounding box進行隨機變換得到的,變換後的bounding box集合中和真實框IOU大於0.5的框用於IOU-Net的訓練。按照作者的說法,這種數據增廣方式增強了IOU-Net的效果和魯棒性。
2.3 IOU-guided NMS
IOU-guided NMS是以各檢測框的IOU爲基準進行排序,選取IOU最大的檢測框,將何其IOU大於設定閾值的檢測框刪除掉。但是如果框將框刪除掉了,則設置框i的分類置信度爲,也就是說和同一個真實目標框匹配的多個檢測框,經過NMS處理後,保留的框的分類置信度爲所有匹配上的檢測框中的最大值。
2.4 將bounding-box修正作爲一個優化過程處理
bounding box修正過程可以表示爲查找最優解的過程:
表示檢測框;
表示真實框;
transform表示以c爲參數的變換函數;
crit表示兩個bounding box距離的度量標準,Faster RCNN中使用的是對數域的smoothL1,Unitbox中使用的是;
基於迴歸的算法直接使用前向網絡來估計最優解,但如fig4所示,並不是迭代次數越多,檢測效果越好。作者提出基於優化的bounding-box修正方法,使用IOU-Net作爲一個高魯棒性的定位準確性(IOU)估計器。
作者提出的Precise ROI Pooling層,使得可以計算IOU相對於bounding box座標的梯度,從而可以通過梯度上升法找到式1的最優解。具體的計算算法如下圖所示:
在上面的算法中,作者將預測框和真實框之間的IOU作爲優化目標,計算IOU相對於各座標點的梯度,然後使用梯度上升法計算得到最優解,從而得到了和真實目標具有最大IOU的檢測框。
precise ROI Pooling:
作者提出了precise ROI Pooling,簡稱爲PreROI Pooling,用於將各不同尺寸的ROI對應的feature map特徵池化到固定的尺寸。前面已經有了ROI Pooling和ROI Align兩種方法,ROI池化要根據各ROI對應的feature map的特徵位置量化爲整數值,然後根據輸出的尺寸自適應決定池化核的大小,然後再進行最大池化得到最終結果。因爲ROI池化中引入了量化誤差,所以後續Mask R-CNN中提出了ROI Align,先根據整數位置的feature map值通過插值計算出非整數位置的feature值,然後再進行分組池化操作,ROI Align消除了量化誤差。
作者提出的PreROI池化操作同樣是先通過插值獲取非整數位置的feature值,然後再通過積分計算每一個bin的值,這樣得到的池化值對各座標位置是連續的,可以計算池化結果相對於座標點的梯度值。
插值得到各小數位置的特徵值:
爲插值係數。然後對於每個bin,假設其左上角座標爲,右下角座標爲,PreROI池化的計算過程爲:
PreROI池化結果對位置的偏導數爲:
同樣也可以求得PreROI池化結果對其他位置的偏導數。
2.5 訓練細節
IOU預測器可以整合進標準的FPN處理過程進行端到端的訓練和推理,如Fig5所示,就是以ResNet-FPN爲骨幹網絡的IOU-Net。FPN獲取了圖像的不同尺度的特徵,PreROI池化層用於對ROI的特徵進行池化處理,池化後的特徵送入不同的分支分別預測分類得分、bounding box迴歸結果和IOU。
作者使用了在ImageNet上預訓練的ResNet模型,所有新的網絡層都使用零均值、標準差爲0.01或0.001的高斯分佈進行初始化,IOU預測器使用smoothl1損失函數,IOU label進行了歸一化處理,取值範圍爲[-1,1]。
輸入圖像縮放到短邊爲800或者長邊爲1200,訓練過程中,對每一個圖像保留來自於RPN的512個ROI,訓練時batchsize爲16,訓練過程按照學習率爲0.01進行了160k次迭代,其中120k次迭代之後學習了衰減爲原來的0.1倍。訓練過程中,初始的10k次迭代以初始學習率爲0.004進行學習率warmup。權重衰減是1e-4,動量是0.9.
推理過程中,首先使用bounding box迴歸獲取初步的目標位置,在所有的檢測框上應用IOU-guided NMS,然後用基於優化的算法修正分類置信度最高的100個檢測框得到最終的檢測結果。基於優化的位置修正算法的超參數爲:。
3 實驗
IOU-NMS的效果優於Soft-NMS,尤其是在下的提升最大。
基於優化的bounding-box修正進一步改善了檢測框的定位效果。
使用了IOU-Net,效果有提升,時間開銷增加不大。
4 總結
本文首先分析了目標檢測中分類置信度和定位置信度之間的不一致,提出了直接使用網絡預測檢測框和真實框之間的IOU作爲定位置信度,然後基於IOU-NMS防止定位更準確的檢測框在NMS過程中被一致。另外,針對bounding-box迴歸的迭代過程中對迭代次數和檢測準確率之間的非線性變換關係,作者提出了基於優化的bounding-box修正算法,使用preroi池化層計算IOU相對於各座標點的梯度,使用梯度上升法求解IOU最大時對應的最優座標位置。實驗效果證明了作者兩項改進的有效性,在增加少量時間開銷的情況下提升了目標檢測的精度。