CVPR2019目標檢測方法進展綜述
SIGAI特約作者
陳泰紅
研究方向:機器學習、圖像處理
目標檢測是很多計算機視覺應用的基礎,比如實例分割、人體關鍵點提取、人臉識別等,它結合了目標分類和定位兩個任務。現代大多數目標檢測器的框架是 two-stage,其中目標檢測被定義為一個多任務學習問題:1)區分前景物體框與背景並為它們分配適當的類別標簽;2)回歸一組系數使得最大化檢測框和目標框之間的交並比(IoU)或其它指標。最后,通過一個 NMS 過程移除冗余的邊界框(對同一目標的重復檢測)。
本文首先綜述近年來二維目標檢測的優化方向,之后介紹CVPR2019目標檢測最新進展,包括優化IoU的GIoU,優化anchor設計的GA-RPN,以及single-stage detection的FSAF。
二維目標檢測的優化方向
二維目標檢測實現和優化方向包括backbone、IoU、損失函數、NMS、anchor、one shot learning/zero shot learning等。
1基於目標檢測的backbone和特征提取
目標檢測的backbone一般基於ImageNet預訓練的圖像分類網絡。圖像分類問題只關注分類和感受視野,不用關注物體定位,但是目標檢測領域同時很關注空間信息。如果下采樣過多,會導致最后的feature map很小,小目標很容易漏掉。很多基礎架構網絡,比如ResNet、Xception、DenseNet、FPN、DetNet、R-CNN,PANet、等神經網絡提取圖像的上下文信息,不斷在特征提取方向優化。
2基於優化的算法
包括UnitBox,IoU-Net[1],曠視科技ECCV2018有一篇論文是引入IoU-Net,其能預測檢測到的邊界框和它們對應的真實目標框之間的 IoU,使得該網絡能像其分類模塊一樣,對檢測框的定位精確程度有所掌握,神經網絡在Backbone引入IoU-Net做邊界修訂。
3基於優化損失函數的方法
包括L1和L2,Focal loss等。
4基於優化NMS的方法
包括Soft-NMS,Softer-NMS,以及Relation Netwrok,ConvNMS,NMS Network,Yes-Net等,詳細可參看本人一篇筆記《目標檢測算法中檢測框合並策略技術綜述》[2]。
5、基於Anchor生成的算法,比如Sliding window、Region Proposal Network (RPN) 、CornerNet、meta-anchor等。
6、one-shot learning以及zero shot learning都屬於遷移學習領域,主要研究的是網絡少樣本精准分類問題,單樣本學習能力。CVPR2019有一篇基於one-shot learning[7],值得關注。
GIoU
Motavation
在目標檢測的評價體系中,有一個參數叫做 IoU (Intersection over Union),簡單來講就是模型產生的目標窗口和原來標記窗口的交疊率。具體我們可以簡單的理解為: 即檢測結果(DetectionResult)與 Ground Truth 的交集比上它們的並集,即為檢測的准確率 IoU :
loU=DetectionResult⋂GroundTruthDetectionResult⋃GroundTruthloU= \frac{DetectionResult\bigcap GroundTruth}{DetectionResult\bigcup GroundTruth}loU=DetectionResult⋃GroundTruthDetectionResult⋂GroundTruth
IoU 是目標檢測領域最重要的評價尺度之一,特性是對尺度不敏感,主要判斷檢測框的重合程度。但是對於CNN而言,沒有方向信息,無法反饋神經網絡的邊界回歸框應該如何調整。既直接用IoU作為損失函數會出現兩個問題:
- 如果兩個框沒有相交,根據定義,IoU=0,不能反映兩者的距離大小(重合度)。同時因為loss=0,沒有梯度回傳,無法進行學習訓練。
- IoU無法精確的反映兩者的重合度大小。如圖 1所示,IoU的變化無法反饋定位框的重合度和調整方向。
針對IoU上述兩個缺點,本文提出一個新的指標generalized IoU[3](GIoU)如圖 2所示。
損失函數設計
GIoU的定義很簡單,就是先計算兩個框的最小閉包區域面積,再計算IoU,再計算閉包區域中不屬於兩個框的區域占閉包區域的比重,最后用IoU減去這個比重得到GIoU。GIoU有如下5個特點:
- 與IoU相似,GIoU也是一種距離度量,滿足損失函數的基本要求
- GIoU對scale不敏感
- GIoU是IoU的下界,在兩個框無線重合的情況下,IoU=GIoU
- IoU取值[0,1],但GIoU有對稱區間,取值范圍[-1,1]。在兩者重合的時候取最大值1,在兩者無交集且無限遠的時候取最小值-1,因此GIoU是一個非常好的距離度量指標。
- 與IoU只關注重疊區域不同,GIoU不僅關注重疊區域,還關注其他的非重合區域,能更好的反映兩者的重合度。


圖 2 GIoU計算過程
優缺點分析
GIoU loss可以替換掉大多數目標檢測算法中bounding box regression,本文選取了Faster R-CNN、Mask R-CNN和YOLO v3 三個方法驗證GIoU loss的效果。可以看出YOLOv3在COCO數據集有明顯優勢,但在其他模型下優勢不明顯,作者也指出了Faster rcnn和mask rcnn效果不明顯的原因是anchor很密,比如 Faster rcnn 2k個Anchor Boxes,各種類型覆蓋應有盡有,不僅僅是根據IoU和NMS挑選合適的檢測框,而且需要對檢測框進行有方向的修訂。
總體來說,文章的motivation比較好,指出用L1、L2作為regression損失函數的缺點,以及用直接指標IoU作為損失函數的缺陷性,提出新的metric來代替L1、L2損失函數,從而提升regression效果,想法簡單粗暴,但相比state-of-art沒有明顯的性能優勢。
GA-RPN
GA-RPN[4]是香港中文大學,商湯和亞馬遜聯合提出,在COCO Challenge 2018 檢測任務的冠軍方法中,在極高的 baseline 上漲了1個點。
GA-RPN(Guided Anchoring)是一種新的anchor 生成方法,即通過圖像特征來指導anchor 的生成。通過CNN預測 anchor 的位置和形狀,生成稀疏而且形狀任意的 anchor,並且設計Feature Adaption 模塊來修正特征圖使之與 anchor精確匹配。GA-RPN相比RPN減少90%的anchor,並且提高9.1%的召回率,將其用於不同的物體檢測器Fast R-CNN, Faster R-CNN and RetinaNet,分別提高 檢測mAP 2.2%,2.7% ,1.2%。
Motavation
Anchor 是目標檢測中的一個重要概念,通常是人為設計的一組框,作為分類(classification)和框回歸(bounding box regression)的基准框。基於無論是單階段(single-stage)檢測器還是兩階段(two-stage)檢測器,都廣泛地使用了 anchor。
常見的生成 anchor 的方式是滑窗(sliding window)和RPN(region proposal network),two-stage 基於RPN首先定義 k 個特定尺度(scale)和長寬比(aspect ratio)的 anchor,single-stage 使用sliding window在特征圖上以一定的步長滑動。這種方式在 Faster R-CNN,SSD,RetinaNet 等經典檢測方法中被廣泛使用。
基於RPN和sliding window的anchor生成方式有兩個的缺點:(1)anchor的尺度和長寬比需要預先定義,針對不同類型的檢測任務需要調整這些超參數,預先定義好的 anchor 形狀不一定能滿足極端大小或者長寬比懸殊的物體。(2)為了保證召回率,需要生成密集的anchor,引入過多負樣本同時影響模型的速率。
在一般拍攝圖像中,一般檢測目標是不均勻分布且稀疏的。檢測目標的尺度和圖像內容、位置和幾何形狀相關。基於圖像的先驗知識,論文提出稀疏的anchor生成方式:首先生成可能包含目標的子區域中心位置,然后在圖像不同位置確定尺度和長寬比,既稀疏,形狀根據位置可變的 anchor。
論文提出了anchor的設計兩個要求:
alignment,為了用卷積特征作為anchor的表示,anchor的中心需要和特征圖的像素中心比較好地對齊;
consistency,不同位置(不同卷積層)對應的anchor的形狀和大小應該一致。
- 1
- 2
網絡架構
CornerNet模型預測目標邊界框的左上角和右下角一對頂點,既使用單一卷積模型生成熱點圖和連接矢量,而論文提出的GA-RPN,直接預測anchor 的位置和形狀(長寬)。生成anchor過程可以分解為兩個步驟,anchor 位置預測和形狀預測。
如圖 3所示GA-RPN,其backbone基於FPN,而Guided anchoring生成anchor。Guided anchoring包括兩個並行的分支:anchor Generation分別預測 anchor 位置和形狀,然后結合在一起得到 anchor。Feature Adaption 模塊進行 anchor 特征的調整,得到新的特征圖提供之后的預測(anchor 的分類和回歸)使用。

1、位置預測
位置預測分支的目標是預測那些區域應該作為中心點來生成 anchor,是一個二分類問題,預測是不是物體的中心。
FPN特征圖經過位置預測子網絡 生成位置得分圖。 由1x1卷積和sigmoid激活函數組成。更深的卷積網絡可以實現更精確的位置信息,但是1x1卷積實現效率和精確度的平衡。通過位置得分圖閾值的過濾,可以舍棄90%的anchor同時保持較高的召回率。
我們將整個 feature map 的區域分為物體中心區域,外圍區域和忽略區域,大概思路就是將 ground truth 框的中心一小塊對應在 feature map 上的區域標為物體中心區域,在訓練的時候作為正樣本,其余區域按照離中心的距離標為忽略或者負樣本。通過位置預測,我們可以篩選出一小部分區域作為 anchor 的候選中心點位置,使得 anchor 數量大大降低。在 inference 的時候,預測完位置之后,我們可以采用 masked conv 替代普通的 conv,只在有 anchor 的地方進行計算,可以進行加速。
2、形狀預測
針對每個檢測出的中心點,設計一個最佳的anchor box。最佳anchor box的定義為:與預測的候選中心點的鄰近ground truth box產生最大IOU的anchor box。
形狀預測分支的目標是給定 anchor 中心點,預測最佳的長和寬,這是一個回歸問題。論文直接使用 IoU 作為監督,來學習 w 和 h。無法直接計算w 和 h,而計算 IoU 又是可導的操作,所有使用基於bounded IoU Loss網絡優化使得 IoU 最大。
作者認為,直接預測anchor box的寬高的話,范圍太廣不易學習,故將寬高值使用指數及比例縮放(ω=σ⋅s⋅edw,h=σ⋅s⋅hdw)\left ( \omega =\sigma \cdot s\cdot e^{dw},h=\sigma \cdot s\cdot h^{dw} \right )(ω=σ⋅s⋅edw,h=σ⋅s⋅hdw)進行壓縮,將搜索范圍從[0,1000]壓縮至[-1,1]。
3、Feature Adaption
由於每個位置的anchor形狀不一樣,所以不能直接利用F_I進行1x1的卷積預測每個anchor的結果,而應該對feature map進行adaption,也就是大一點的anchor對應的感受野應該大一點,小一點的anchor對應的感受野應該小一點,於是作者想到用可變形卷積的思想。先對每個位置預測一個卷積的offset(1x1卷積,輸入為shape prediction),然后根據該offset field進行3x3的可變形卷積就完成了對feature map的adaption。通過這樣的操作,達到了讓 feature 的有效范圍和 anchor 形狀更加接近的目的,同一個 conv 的不同位置也可以代表不同形狀大小的 anchor 了。
優缺點分析
優點:
1、論文提出anchor設計的兩個准則:alignment 和 consistency,指導基於anchor優化的方向。采用位置預測和形狀預測兩個分支,不需要像FPN預先設置尺度和長寬比,同時使用可變形卷積對feature map調整,生成高質量低密度的proposal,提高IoU的閾值進行訓練。
2、提出了一種新的anchor策略,用於產生稀疏的任意形狀的anchor;
3、論文提出的GA-RPN可以完全替代RPN,在Fast R-CNN, Faster R-CNN and RetinaNet等模型基礎上提高目標檢測模型的精度。
缺點:
1、論文假設圖像中的目標是稀疏的。如果是稠密圖像,比如車站或廣場的擁擠人群,檢測效果有待檢驗。
2、每一個點只產生一個anchor,那么對於那些目標中心重合,即一個點需要負責檢測兩個目標,似乎無法處理。
3、采用deformable卷積會相對地降低速度,同時根據DCN v2的分析,在deformable卷積中加入可調節的機制可能會更好。
FSAF
論文來自於CMU,基於single-stage提出的FSAF模型[6],在COCO目標檢測數據集實現single-stage state-of-the-art,44.6% mAP,且推斷延時沒有增加。
Motivation
物體的多尺度信息一直是目標檢測的難點和痛點。CNN的低層的特征語義信息比較少,但是目標位置准確;高層的特征語義信息比較豐富,但是目標位置比較粗略。Feature Pyramid Network(FPN)它利用多級的feature map去預測不同尺度大小的物體,其中高層特征帶有高級語義信息和較大的感受野,適合檢測大物體,淺層特征帶有低級的細節語義信息和較小的感受野,適合檢測小物體。FPN逐步融合深層特和淺層特征,使得逐步增加淺層的特征的高級語義信息來提高特征表達能力,提升檢測效果,已經成為目標檢測領域的標配。
但是FPN有一個隱藏條件:如何選擇合適feature map負責檢測物體。在GA-RPN提出兩個原則,1.alignment,為了用卷積特征作為anchor的表示,anchor的中心需要和特征圖的像素中心比較好地對齊;2.consistency,不同位置(不同卷積層)對應的anchor的形狀和大小應該一致。two-stage通過各種pool(Faster R-CNN使用RoI pooling,Mask R-CNN使用RoIAlign)實現特征圖的對齊,而single-stage一般通過anchor size的方式選擇合適的anchor。
如圖 4所示,60x60大小的car和50x50大小的car被分在了不同feature map,50x50和40x40的被分在了同一級feature map,無法證明feature level選擇的問題。

論文提出的FSAF模塊就是為了解決特征圖選擇和重疊anchor選擇,既FSAF模塊讓每個anchor instance自動的選擇最合適的feature。
網絡架構

文章提出的FSAF以RetinaNet為主要結構,添加一個FSAF分支圖 5和原來的class subnet、regression subnet並行,可以不改變原有結構的基礎上實現。在class subnet分支添加3x3卷積層(K個濾波器),得到WxHxK的特征圖,預測K類目標所屬類別的概率。regression subnet分支添加3x3卷積層(4個濾波器),得到WxHx4的特征圖,預測回歸框的偏移量。
FSAF還可以集成到其他single-stage模型中,比如SSD、DSSD等。
FSAF的設計就是為了達到自動選擇最佳Feature的目的,如圖 6所示,最佳Feature是由各個feature level共同決定。

在訓練過程,每個anchor通過FPN各卷積層,經過anchor-free計算focal loss和IoU loss,最佳的pyramid level通過最小化focal loss和IoU loss實現。
在推斷時,直接選擇高置信度的特征金字塔的level即可實現。
論文提出的FSAF模型在COCO數據集實現single-stage state-of-the-art,44.6% mAP,且推斷時延沒有增加,詳細實驗數據可參看原論文。
優缺點分析
1、論文提出的anchor-free,是說不在根據anchor size提取特征,而是根據FSAF模塊自動選擇合適的feature,既anchor (instance) size成為了一個無關的變量。不是說不在使用anchor的方式。
2、FSAF可以集成到其他single-stage模型中,比如SSD、DSSD等。
以上僅為個人閱讀論文后的理解、總結和思考。觀點難免偏差,望讀者以懷疑批判態度閱讀,歡迎交流指正。
參考文獻
[1]B. Jiang, R. Luo, J. Mao, T. Xiao, and Y. Jiang. Acquisition of localization confidence for accurate object detection.In Proceedings, European Conference on Computer Vision (ECCV) workshops, 2018.
[2]目標檢測算法中檢測框合並策略技術綜述.https://zhuanlan.zhihu.com/p/48169867
[3] Hamid Rezatofighi,Nathan Tsoi1 JunYoung Gwak, Amir Sadeghian, Ian Reid, Silvio Savarese. Generalized Intersection over Union: A Metric and A Loss for Bounding Box Regression. In Proc. of the IEEE Conference on Computer Vision andPattern Recognition (CVPR), 2019.
[4] Jiaqi Wang, Kai Chen,Shuo Yang, Chen Change Loy,Dahua Lin. Region Proposal by Guided Anchoring. In Proc. of the IEEE Conference on Computer Vision andPattern Recognition (CVPR), 2019.
[5]CornerNet:目標檢測算法新思路.https://zhuanlan.zhihu.com/p/41825737
[6] Chenchen Zhu,Yihui He,Marios Savvides.Feature Selective Anchor-Free Module for Single-Shot Object Detection. In Proc. of the IEEE Conference on Computer Vision andPattern Recognition (CVPR), 2019.
[7]Leonid Karlinsky, Joseph Shtok, Sivan Harary.RepMet: Representative-based metric learning for classification and few-shot object detection. In Proc. of the IEEE Conference on Computer Vision andPattern Recognition (CVPR), 2019.
[8]Peiliang Li, Xiaozhi Chen, Shaojie Shen. Stereo R-CNN based 3D Object Detection for Autonomous Driving. In Proc. of the IEEE Conference on Computer Vision andPattern Recognition (CVPR), 2019.
