原論文標題:Acquisition of Localization Confidence for Accurate Object Detection算法
1. 前言網絡
Megvii在ECCV 2018上的一篇oral,思路很是清奇,提出了Localization Confidence(定位置信度)這一律念,直接學習預測框與gt框的IoU,用於取代nms中的score。同時,提出了一個基於優化的bbox refinement方法。這些創新能夠輕易地嵌入到現有的目標檢測系統中。我的感受,目標檢測這一研究方向最近新挖了不少坑,彷彿繼kaiming的一系列大做以後煥發了第二春。除這篇文章外,再簡單推薦三篇其餘文章:app
這是我對這幾篇文章粗淺的認識,有時間的話再來補筆記,關於這些文章的細節,也歡迎留言探討。閒話再也不扯,正式開始分析這篇文章。ide
2. Motivation學習
直接上圖說明問題。測試
在傳統的nms中,先根據分類的confidence對每一個預測bbox進行排序,confidence最大的bbox必然留下來,計算其餘bbox和這個bbox的iou,大於閾值的bbox直接去掉。這是一種貪心算法,很粗暴,也會形成不少問題,好比以前不少文章都提到在crowd的環境中貪心會形成不少問題。可是這篇文章對nms的過程進行了深刻思考,提出了另外一個問題。nms算法其實有一個重要假設,分類confidence越大,與gt bbox的iou也就越大,想一想就有問題!如Fig. 1(a),黃框是gt,紅框和綠框是FPN的預測bbox。紅框的cls conf都比綠框高,然而與gt的iou並不比綠框高,問題很是嚴重,譬如最左邊那隻鳥,若是在評價算法中把iou閾值設成0.7,那就算這隻鳥沒有檢到!簡直血虧!因此,nms的confidence應該專門設計一個指標,也就是loc conf。只要有了這個東西,從新設計nms就是很容易的事情了,並且這個東西確定還能夠搞不少別的事情。優化
缺失定位confidence的另外一個問題是bbox迴歸的可解釋性較差。做者舉了個例子,在Cascade RCNN(CVPR 2018 spotlight,直接搜索標題就能查到)中提出了bbox迭代迴歸的非單調問題,如圖Fig 1(b),若是屢次使用(同一個)bbox迴歸器,定位精度反而會降低。(文章中此處所說的input bbox是指RPN或selective search獲得的前景bbox)ui
3. 深刻思考object loc設計
這一節對物體定位中的兩個關鍵缺陷做探討:(1)cls conf與loc acc的misalignment問題。(我就不加說明地直接用縮寫了,應該都能看懂,若是有疑問能夠直接向我提)(2)bbox迴歸的不單調問題。實驗用標準的FPN在COCO trainval35k上訓練做爲baseline,在minival上測試。blog
解釋一下圖(a),橫座標是nms以前的預測bbox與各自匹配上的gt bbox的iou,縱座標是預測bbox的cls conf,能夠看到它們的相關性不夠大,定量來看,二者的Pearson相關係數僅爲0.217。其實這個問題我在第二節分析過了,如此弱的相關係數直接證實了nms的基本假設是有問題的,至少在COCO上有問題。圖(b)縱座標換成了loc conf,是做者提出的改進,具體作法下面再說,能夠看到改進後相關係數達到了0.617。
再看這張圖,Cascade R-CNN就是用了多個迴歸器進行迭代bbox迴歸,能夠看出,基於迭代迴歸的方法,在必定的迭代次數以後AP都會被傷害,而使用做者提出的基於優化的方法,AP不會降低,至少是隨着迭代次數單調不減的。
3. IoU-Net
重點開始,先擺上算法結構圖。
結構很清楚,跟FPN不一樣的地方有兩個,一是RoI pooling改爲了PrRoI pooling,這應該是曠廠內部的一個工做;而是除了cls和reg頭,加上了IoU頭,結構也是三層全鏈接。文章專門設計了IoU頭的訓練方法,這個我就不寫了。圖中的Jittered RoIs就是爲這個訓練準備的。IoU頭徹底能夠和其餘部分聯合端到端訓練。
獲得預測的IoU以後,就能夠作IoU-guided的nms,具體方法前面已經說了好幾遍了,只是把排序的key換成了預測的IoU而已。另外加了一個小trick,一旦在nms過程當中box i「吞併」了box j,那麼box i的cls conf取i和j之大者。也就是說若是有一堆框去預測同一個gt box,那麼cls conf取其中最大的一個。(這個說法是我本身加的,不夠嚴謹,不過這樣理解基本沒問題)
另外一個重要創新是基於優化的bbox refinement,
(未完待續)