ECCV 2018 目標檢測 | IoU-Net:將IoU的作用發揮到極致


常見的目標檢測算法缺少了定位效果的學習,IoU-Net提出IoU predictor、IoU-guided NMS和Optimization-based bounding box refinement,將IoU作為一個新分支融入到模型的學習和推理中,帶來了新的性能優化方法,值得學習和參考

論文: Acquisition of Localization Confidence for Accurate Object Detection

Introduction


  目前大部分的目標檢測算法主要是two-stage架構,將目標檢測轉化為多任務的學習:

  1. 預測foreground object proposals以及label
  2. 通過bndbox regression對識別的框進行精調
  3. 通過NMS對冗余的框進行過濾

  目標定位和識別是由兩個不同的分支進行的,對於一個預測的框,僅有分類置信度,沒有定位置信度,這會導致以下兩個問題:

  1. 由於缺失定位置信度,在做NMS時,只能以分類置信度作為指標,從圖a可以看出,候選框的IoU與分類的置信度並沒有正相關的關系
  2. 由於缺少定位置信度,bounding box regression變得難以解釋,如圖b所示,重復進行bounding box regression將可能導致定位精度降低

  基於以上的發現,作者提出了IoU-Net,預測當前框的IOU分數作為定位模塊的准則,從而從另一個角度解決之前提到的兩個問題:

  1. IoU是定位准確率的最佳標准,做NMS的時候使用預測的IOU而不是分類置信度,文中稱為 IoU-guided NMS
  2. 文中提出optimization-based bounding box refinement procedure的bndbox優化方法。在預測的時候,將預測的IoU作為優化的指標,通過Precise RoI Pooling
    layer使用梯度上升的方法對框進行回歸。實驗表明optimization-based的方法要比 regression-based的方法好,optimization-based的方法也能夠移植到其它CNN-based的detector

Delving into object localization


  目前的目標定位存在兩個問題,一個是分類置信度與定位置信度不一致,一個是非單調性的bounding box regression

Misaligned classification and localization accuracy

  目前的定位方法大都用NMS移除冗余的bndbox,在每輪迭代中,分類置信度較高的bndbox予以保留,這顯然是不合理的。近期有很多新的NMS變種出現,但最終仍然采用分類置信度作為標准。文中畫出了NMS前的IoU和分類置信度的散點圖,從圖2可以看出,文中提出的定位置信度與IoU有更強的相關性

  此外,文中對比了IoU-Guided NMS與傳統NMS的表現,從圖3可以看出,IoU-Guided NMS能保留更多高質量的框,特別是在Iou>0.9的時候

Non-monotonic bounding box regression

  bounding box regression
task的核心思想是通過網絡直接預測bndbox和gt之間的變換,大多數的detector對bndbox進行二次回歸來達到優化的目的。Cascade-RCNN指出,連續使用兩次以上的bounding box regression將不會帶來太大的收益,於是提出了multi-stage bounding box regression

  文中的在FPN和Cascade-RCNN框架下對比了多次Regression Based和多次Optimization Based的效果。如圖4,隨着迭代次數的增加,Optimization Based的AP曲線依然保持着單調性

IoU-Net


Learning to predict IoU

  如圖5,IoU predictor使用FPN的feature map進行每一個bnbbox的IoU的預測,但不會使用FPN的候選框進行訓練,而是人工對GT進行一系列的變換獲得新的候選框(去掉與GT重疊小與0.5的候選框)。IoU predictor能與大多數的RoI-based detector兼容,因為該模塊是相對獨立的。值得注意的是,文中提到為了更好的性能,IoU predictor是class-aware,即能預測出每個分類IoU

IoU-guided NMS

  IoU-Net使用預測的IoU來作為NMS中bndbox排序的標准,只保留冗余的box中IoU最高的

  文中給出了IoU-guided NMS的偽代碼,邏輯比較簡單,取出候選框中IoU分數最高的框$b_m$,在剩余的框中取出與$b_m$重疊大於$\Omega$的框$b_j$,將重疊的框中的最大的分類置信度以及$b_m$加入到輸出中,遍歷直到不再有候選框

Bounding box refinement as an optimization procedure

  bndbox的精調問題可以公式化地表示為$c^*$的優化問題

  在推理的時候,Regression-based的算法直接預測最優的$c^*$。然而 iterative bounding box regression是不穩定的,因此,文中提出了 optimization-based bounding box refinement
IoU-Net直接評估預測框與GT之間的IoU,Precise RoI Pooling layer使得IoU的梯度能夠回傳到box的坐標值上,因此可以利用梯度上升的方法來優化公式1

  如算法2,將IoU的預測作為優化的目標,迭代式的用計算出的梯度對預測框進行精調,使預測的IoU值接近1(即GT)。此外,預測的IoU能用於評價中間產生的所有bndbox的優劣
  在實現時,對於精調后的bndbox預測的IoU,若收益小於預期,甚至退化了,則提前結束該bndbox的精調。比較有趣的是,如第六行,算法會對回傳的梯度進行scale up操作,例如$\nabla_x *=width(b_j)$,文中解釋為這相當於box regression中對坐標進行log變換 (x/w, y/h, $\log_{10} w$, $\log_{10} h$)后再優化

Precise RoI Pooling

  前面提到optimization-based bounding box refinement的關鍵在於使用了Precise RoI Pooling layer,使得梯度得以回傳,文中列出幾種主要的Pooling層的比較

  • RoI Pooling

  對於經典的RoI Polling,若坐標信息為非整數則需要先進行量化成整數,變成具體的點,再計算bin內的響應值。這樣做會導致原來的RoI區域變形,結果不准確

  • RoI Align

  為了去除量化的影響,RoI Align從bin中采樣N=4個點($a_i$, $b_i$),每個采樣點都是用其最近的4個特征點進行雙線性插值所得,Pooling在采樣點上進行

  • PrRoI Pooling

  RoI Align雖然避免了量化的誤差,但N是預設的超參,不會根據bin的大小進行改變,在梯度回傳的時候,只有采樣過的點才能回傳梯度。Precise RoI Pooling不進行任何的量化和采樣,直接計算連續的特征圖內的二階積分

  首先定義特征圖上的任意的點的特征值$f(x, y)$可通過附近離散的點雙線性插值計算,$IC(x, y, i, j)=max(0,1-|x-i|) *max(0, 1-|y-j|)$是雙線性插值的因子,從公式可以看出限定了只使用$(x, y)$的最近四個點

  當需要計算bin的pooling時,直接使用二階積分進行計算,這里應該表達的是avg pooling,分母是bin的面積

  由於二階積分推理時使用$PrPool(Bin, F)$是連續可微的,因此可以求坐標的偏導數進行bndbox的精調,而RoI pooling layer和RoI align layer只能回傳feature map的梯度
  作者給出了PrPooling layer的代碼,用離散的點近似地做連續函數的積分。要注意的是,公式4計算的是bin坐標的偏導數,而不是RoI坐標的偏導數,所以在坐標梯度backward的最后,作者對bin的偏導進行了權重相加到RoI的梯度中。不過這個權重公式的意義筆者還沒看懂,了解的小伙伴可以留言交流下

Joint training

  IoU predictoe能夠整合到標准的FPN網絡中進行end-to-end的訓練,如圖5,IoU-Net使用ResNet-FPN作為主干,FPN提取RoI區域的不同維度特征,將原來的RoI Polling layer替換為Precise RoI Pooling layer,IoU predictor與R-CNN分支並行計算

  • 在訓練時,使用ImageNet預訓練的ResNet,其余的新層均使用0均值,標准差為0.01或0.001的高斯分布,IoU predictor使用smooth-L1進行訓練。圖片輸入為短邊800/長邊1200,分類與回歸分支獲取每張圖的512個bndbox,batch_size為16,總共進行160k次迭代,學習率初始為0.01,每120次迭代降低10倍,前10k輪以0.004的學習率進行warm up,weight decay為$le^{-4}$,momentum為0.9
  • 在推理時,先進行一輪bounding box regression作為坐標初始化,為了優化性能,第一次對所欲的bndbox進行IoU-guided NMS,挑選100個置信度最高的bndbox進行optimization-based algorithm,算法2中的$\lambda=0.5$,$\Omega_1=0.001$,$\Omega_2=-0.001$,$T=5$

Experiments


IoU-guided NMS

  論文對比了無NMS/Soft-NMS/IoU-NMS在不同網絡以及不同AP要求下的表現,在高AP,特別是$AP_{90}$上,表現較為突出

  論文統計了不同IoU閾值下的recall,進一步說明IoU-NMS能保留更多優質的框

Optimization-based bounding box refinement

  在不同的網絡上,Optimization-based bounding box refinement均有較不錯的表現,在$AP_{80}$ $AP_{90}$上的表現尤為明顯

Joint training

  論文通過不同的組合實驗,得出文中提出的創新點均有不錯的效果

  另外,比較意外的是,IoU-Net的速度並沒有下降很多,甚至比Cascade R-CNN還要快,這可能得益於bndbox在進行Optimization-based bounding box refinement前篩剩100個

Conclusion


  論文分析了當前的目標檢測算法存在的問題,並提出IoU predictor來預測定位置信度,從而進行更准確的bndbox精調以及NMS。另外,論文提出的 IoU-guided NMS和Optimization-based bounding box refinement從實驗看來,效果也是相當不錯的,而且IoU分支可以很方便地集成到別的網絡中,這是相當重要的

寫作不易,未經允許不得轉載~
更多內容請關注 知乎專欄/微信公眾號【曉飛的算法工程筆記】

work-life balance.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM