目標檢測算法中檢測框合併策略技術綜述

陳泰紅

研究方向:機器學習、圖像處理

物體檢測(Object Detection)的任務是找出圖像或視頻中的感興趣目標,同時實現輸出檢測目標的位置和類別,是機器視覺領域的核心問題之一,學術界已有將近二十年的研究歷史。隨着深度學習技術的火熱發展,目標檢測算法也從基於手工特徵的傳統算法轉向了基於深度神經網絡的檢測技術。從最初 2013 年提出的 R-CNN、OverFeat,到後面的 Fast/Faster R-CNN、SSD、YOLO 系列,以及Mask R-CNN、RefineDet、RFBNet等(圖 1,完整論文列表參見[1])。短短不到五年時間,基於深度學習的目標檢測技術,在網絡結構上,從 two stage 到 one stage,從 bottom-up only 到 Top-Down,從 single scale network 到 feature pyramid network,從面向 PC 端到面向移動端,都涌現出許多好的算法技術,這些算法在開放目標檢測數據集上的檢測效果和性能都很出色。

圖 1 目標檢測領域重要論文

物體檢測過程中有很多不確定因素,如圖像中物體數量不確定,物體有不同的外觀、形狀、姿態,加之物體成像時會有光照、遮擋等因素的干擾,導致檢測算法有一定的難度。進入深度學習時代以來,物體檢測發展主要集中在兩個方向:two stage算法如R-CNN系列和one stage算法如YOLO、SSD等。兩者的主要區別在於two stage算法需要先生成proposal(一個有可能包含待檢物體的預選框),然後進行細粒度的物體檢測。而one stage算法會直接在網絡中提取特徵來預測物體分類和位置。

two stage算法以及部分one stage算法(SSD系列),都需要對Region Proposal去重。比如經典的Faster RCNN算法會生產2000的Region Proposal,如果對所有的檢測檢測框進行分類和處理,會造成大量無效計算。使用某些算法對檢測框去重,是目標檢測領域的一個重要方向。

本文主要介紹在目標檢測中使用的檢測框去重,包括NMS,Soft-NMS,Softer-NMS,以及Relation Netwrok,ConvNMS,NMS Network,Yes-Net等,詳細講述NMS算法的演變和最新進展。

1、傳統NMS算法

1.1 NMS介紹

在目標檢測中,常會利用非極大值抑制算法(NMS,non maximum suppression)對生成的大量候選框進行後處理,去除冗餘的候選框,得到最佳檢測框,以加快目標檢測的效率。其本質思想是其思想是搜素局部最大值,抑制非極大值。非極大值抑制,在計算機視覺任務中得到了廣泛的應用,例如邊緣檢測、人臉檢測、目標檢測(DPM,YOLO,SSD,Faster R-CNN)等。即如圖 2所示實現效果,消除多餘的候選框,找到最佳的bbox。

圖 2 NMS消除冗餘候選框

以圖 2爲例,每個選出來的Bounding Box檢測框(既BBox)用(x,y,h,w, confidence score,Pdog,Pcat)表示,confidence score表示background和foreground的置信度得分,取值範圍[0,1]。Pdog,Pcat分佈代表類別是狗和貓的概率。如果是100類的目標檢測模型,BBox輸出向量爲5+100=105。

值得注意的是,RCNN有一句話的NMS介紹,Fast-RCNN無任何NMS的解釋,Faster有大量篇幅對NMS的效果分析。

1.2 NMS算法過程

NMS主要就是通過迭代的形式,不斷的以最大得分的框去與其他框做IoU操作,並過濾那些IoU較大(即交集較大)的框。如圖 3圖 4所示NMS的計算過程。

1、根據候選框的類別分類概率做排序,假如有4個 BBox ,其置信度A>B>C>D。

2、先標記最大概率矩形框A是算法要保留的BBox;

3、從最大概率矩形框A開始,分別判斷ABC與D的重疊度IOU(兩框的交併比)是否大於某個設定的閾值(0.5),假設D與A的重疊度超過閾值,那麼就捨棄D;

4、從剩下的矩形框BC中,選擇概率最大的B,標記爲保留,然後判讀C與B的重疊度,扔掉重疊度超過設定閾值的矩形框;

5、一直重複進行,標記完所有要保留下來的矩形框。

圖 3貓和狗兩類目標檢測

圖 4 NMS算法過程

如果是two stage算法,通常在選出BBox有BBox位置(x,y,h,w)和confidence score,沒有類別的概率。因爲程序是生成BBox,再將選擇的BBox的feature map做rescale (一般用ROI pooling),然後再用分類器分類。NMS一般只能在CPU計算,這也是two stage相對耗時的原因。

但如果是one stage作法,BBox有位置信息(x,y,h,w)、confidence score,以及類別概率,相對於two stage少了後面的rescale和分類程序,所以計算量相對少。

1.3 優缺點分析

NMS缺點:

1、NMS算法中的最大問題就是它將相鄰檢測框的分數均強制歸零(既將重疊部分大於重疊閾值Nt的檢測框移除)。在這種情況下,如果一個真實物體在重疊區域出現,則將導致對該物體的檢測失敗並降低了算法的平均檢測率(average precision, AP)。

2、NMS的閾值也不太容易確定,設置過小會出現誤刪,設置過高又容易增大誤檢。

3、NMS一般只能使用CPU計算,無法使用GPU計算。

2、Soft-NMS

這篇ICCV2017的文章,是NMS算法的改進,論文題目很霸氣:一行代碼改進目標檢測,既《Improving Object Detection With One Line of Code》[2]由UMIACS大學提出。

2.1 算法過程

NMS算法是略顯粗暴,因爲NMS直接將刪除所有IoU大於閾值的框。soft-NMS吸取了NMS的教訓,在算法執行過程中不是簡單的對IoU大於閾值的檢測框刪除,而是降低得分。算法流程同NMS相同,但是對原置信度得分使用函數運算,目標是降低置信度得分,其僞代碼如圖 5所示:

圖 5 soft僞代碼

bi爲待處理BBox框,B爲待處理BBox框集合,sibi框更新得分,Nt是NMS的閾值,D集合用來放最終的BBox,f是置信度得分的重置函數。 bi和M的IOU越大,bi的得分si就下降的越厲害。

經典的NMS算法將IOU大於閾值的窗口的得分全部置爲0,可表述如下:

論文置信度重置函數有兩種形式改進,一種是線性加權的:

一種是高斯加權的:

2.2 代碼實現

論文作者提供 R-FCN 和Faster-RCNN集成soft-NMS的代碼實現https://github.com/bharatsingh430/soft-nms。

其實最重要的改變在soft-nms/lib/nms/cpu_nms.pyx 81行到92行:

圖 6 soft-NMS主要代碼實現

可以明顯看到soft-NMS最重要是更新weight變量的值。採用線性加權時,更新爲1-ov,高斯加權時引入sigma參數,而原始NMS算法時,直接取0或1。

2.3 性能分析

圖 7 soft僞代碼

論文中對比實驗中數據集採用VOC 2007,COCO,基礎模型包括R-FCN,Faster-RCNN可以看到性能的變化。但是個人覺得在圖 7(原論文中圖4)顯示δ全範圍取值均對AP有明顯提升,證明soft-NMS不是依靠猜測某些超參數纔有效。

2.4 優缺點分析

soft-NMS優點:

1、Soft-NMS可以很方便地引入到object detection算法中,不需要重新訓練原有的模型、代碼容易實現,不增加計算量(計算量相比整個object detection算法可忽略)。並且很容易集成到目前所有使用NMS的目標檢測算法。

2、soft-NMS在訓練中採用傳統的NMS方法,僅在推斷代碼中實現soft-NMS。作者應該做過對比試驗,在訓練過程中採用soft-NMS沒有顯著提高。

3、NMS是Soft-NMS特殊形式,當得分重置函數採用二值化函數時,Soft-NMS和NMS是相同的。soft-NMS算法是一種更加通用的非最大抑制算法。

soft-NMS缺點:

soft-NMS也是一種貪心算法,並不能保證找到全局最優的檢測框分數重置。除了以上這兩種分數重置函數,我們也可以考慮開發其他包含更多參數的分數重置函數,比如Gompertz函數等。但是它們在完成分數重置的過程中增加了額外的參數。

3、Softer-NMS

卡內基梅隆大學與曠視科技的研究人員提出了一種新的非極大抑制算法Softer-NMS[3],其方法是在Soft-NMS和NMS基礎上改進,也算是一脈相承。論文不是簡單的更改CNN結構或調整參數,引入高斯分佈,狄拉克delta分佈,KL 散度等數學知識,建議首先閱讀維基百科/百度百科對相應的概念做基本瞭解。

3.1 算法思想

論文的motivation來自於NMS時用到的score僅僅是分類置信度得分,不能反映Bounding box的定位精準度,既分類置信度和定位置信非正相關的。NMS只能解決分類置信度和定位置信度都很高的,但是對其它三種類型:“分類置信度低-定位置信度低”,“分類置信度高-定位置信度低”,“分類置信度低-定位置信度高“都無法解決。

圖 8 分類置信度和定位置信度

論文首先假設Bounding box的是高斯分佈,round truth bounding box是狄拉克delta分佈(既標準方差爲0的高斯分佈極限)。

KL 散度用來衡量兩個概率分佈的非對稱性度量,KL散度越接近0代表兩個概率分佈越相似。

論文提出的KL loss,即爲最小化Bounding box regression loss,既Bounding box的高斯分佈和ground truth的狄拉克delta分佈的KL散度。直觀上解釋,KL Loss使得Bounding box預測呈高斯分佈,且與ground truth相近。而將包圍框預測的標準差看作置信度。

論文提出的Softer-NMS,基於soft-NMS,對預測標註方差範圍內的候選框加權平均,使得高定位置信度的bounding box具有較高的分類置信度。

3.2 網絡結構與算法實現

圖 9 R-CNN和Softer-NMS異同

如所示Softer-NMS網絡結構,與R-CNN不同的是引入absolute value layer(圖中AbsVal),實現標註方差的預測。

論文假設Bounding box爲高斯分佈:

ground truth符合delta分佈:

KL散度可以表示爲:

推倒過程詳見原論文,重點看看作者推倒的KL loss:

是不是和L1正則化很像?是不是預測的Bounding box與ground truth的曼哈頓距離的一維表示?

圖 10 Softer-NMS實現過程

如圖 10所示Softer-NMS的實現過程,其實很簡單,預測的四個頂點座標,分別對IoU>Nt的預測加權平均計算,得到新的4個座標點。第i個box的x1計算公式如下(j表示所有IoU>Nt的box):

考慮特殊情況,可以認爲是預測座標點之間求平均值。

3.3 代碼分析

softerNMS的開源代碼在https://github.com/yihui-he/softerNMS。

在softer-NMS/detectron/core/test.py有Softer-NMS(配置cfg.STD_NMS), Soft-NMS(配置cfg.TEST.SOFT_NMS.ENABLED)以及NMS的實現。

在softer-NMS/detectron/utils/py_cpu_nms.py文件有Softer-NMS的具體實現,加權求平均在47-48行代碼實現:

3.4 性能分析

圖 11對比交叉實驗

圖 12 softer-NMS效果對比

論文的實驗過程,實驗結果可以參考原論文的第四節Experiments。

作者測試了在MS-COCO數據庫上的推斷延遲,發現Softer-NMS只是輕微增加了一點時間,可以忽略不計。

如圖 12所示,論文對預測的座標4個座標點具有平均化的效果,使得各個box幾乎完全重合。

3.5 優缺點分析

1、個人認爲論文提出的KL loss就是曼哈頓距離,但是通過KL散度去證明,讓數學不太好的同學不明覺厲。

2、論文提出的Softer-NMS,本質是對預測的檢測框加權求平均,爲什麼要這樣,以及爲什麼讓box高度重疊?個人認爲Softer-NMS的理論沒有在應該什麼的地方深入。

4、IoU-guided NMS

IoU-Net是曠視的另外一篇論文[4],是ECCV2018接收並做口頭報告(清華和北大的學生在曠視實習時完成提交),和Softer-NMS一樣,基於 CNN 的目標檢測方法存在的分類置信度和定位置信度不匹配的問題。

4.1 算法思想

傳統的NMS算法缺失定位置信度,帶來了兩個缺點:

(1)在抑制重複檢測時,由於定位置信度的缺失,分類分數通常被用作給檢測框排名的指標。

(2)缺乏定位置信度使得被廣泛使用的邊界框迴歸方法缺少可解釋性或可預測性。

論文提出的IoU-Net,通過預測檢測框和ground truth的IOU實現:

1、IOU-guided NMS,也就是在NMS階段引入定位得分(localization confidence)作爲排序指標而不是採用傳統的分類得分。

2、提出基於優化的bbox refinement替換傳統的regression-based方法,提高了迴歸部分的可解釋性。論文同時還提出了Precise ROI Pooling(PrROI Pooling),通過積分方式計算ROI特徵,使得前向計算的誤差進一步降低,同時反向傳播時基於連續輸入值計算梯度使得反向傳播連續可導,相比之下ROI Pooling和ROI Align由於採用量化或幾個點插值方式求ROI特徵,不可避免地帶來一些噪聲,而且在反向求導時只對特定輸入回傳梯度。

4.2 模型框架

圖 13 IoU模型架構

如圖 13所示IoU-Net 的完整架構,使用使用了 ResNet-FPN作爲骨幹網絡。輸入圖像首先輸入一個 FPN 骨幹網絡,經過RPN和PrRoI 池化層,特徵分別傳送到 IoU 預測器和分類迴歸分支(虛線框表示標註的IoU-Net實現)。

IoU-Net模型整體上是在FPN網絡中嵌入了IOU預測支路,IOU預測支路的監督信息就是ground truth和預測框的IOU值,該支路在結構設計上和FPN網絡原有的迴歸和分類支路類似,另外將ROI pooling替換成PrROI pooling(precise ROI Pooling)。這裏虛線框圈起來的部分表示standalone IOU-Net,在後續驗證optimation-based bbox refinement算法優勢時會將這部分結構應用在已有算法的預測結果上,相當於用IoU的監督信息對預測框做進一步的refinement。

4.3 IoU-guided NMS

如圖 15所示分類置信度和定位置信度,分別和IOU with ground truth可視化分析,從(a)可以直觀看出IOU值和分類得分之間沒有明顯的正相關,但是從(b)可以看出IOU值和迴歸得分之間有明顯的正相關,除了直觀上看以外,作者還計算了兩張圖各自的皮爾遜相關係數(Pearson correlation coefficient),分別是(a):0.217,(b):0.617,這也符合直觀的視覺感受。這說明用分類得分作爲依據判斷一個預測框是否準確預測對ground truth是不合理的。因此作者提出了IoU-guided NMS,也就是NMS操作以預測的IOU爲依據而不是傳統的以預測框的分類得分爲依據來解決這個問題。

圖 14 分類置信度、定位置信度和IOU with ground truth相關性

圖 15 IOU-guided NMS算法流程

IOU-guided NMS 和NMS和主要的不同點在於用predicted IoU(localization confidence)來做排序。B表示檢測框集合,S是分類置信度函數(CNN實現),I是定位置信度函數,Ωnms是NMS閾值。

選擇當前定位置信度最高的box ,記爲bm,和其他box計算IOU,當大於閾值Ωnms時,取這些box最大的classification confidence,記爲s,那麼就<bm,s>爲當前迭代的結果。簡單總結一下,就是將當前擁有最高IoU得分的bbox爲聚類中心,然後去找聚類中最高的classification confidence作爲聚類中心的classification confidence。

截止發稿日IoU-Net還未公佈源碼,論文復現有一定難度。

4.4 PrRoI Pooling

論文提出Precise RoI Pooling(PrRoI Pooling)用於bounding box修訂。相比RoI Pooling,RoI Align,都是基於ROI座標和特徵圖進行特徵提取的過程,但是計算方式不同,如圖 16所示。

RoI Pooling:在Fast R-CNN首先提出,將特徵圖上的RoI劃分成固定數目的網格區域(如7*7),對每個網格區域的邊界點座標(算出來可能是非整數)進行量化後再對各區域網格執行池化操作。

RoI Align:在Mask RCNN首先提出,對特徵圖上RoI被劃分後的各網格區域選取固定數目的等間隔採樣點,根據採樣點鄰近特徵值利用雙線性插值計算採樣點的特徵值,然後對採樣點的特徵值進行池化操作

區別:RoI Pooling是對劃分後的各網格區域進行池化,計算區域網格邊界點座標的時候存在量化誤差;RoI Align採用對網格區域採樣的方式進行池化,且使用了插值計算採樣點的特徵值,要更精確。

PrROI Pooling:PrROI Pooling採用積分方式計算每個bin的值。這種計算方式和ROI Align最大的區別在於計算一個bin的值時不僅僅考慮該bin中4個插值點的均值,而是將bin中的插值看作是連續的,這樣就可以通過對該bin中所有插值點求積分得到該bin所包圍點的總和,最後除以面積就得到該bin的值,因此結果更加準確。

個人認爲PrROI Pooling是爲了在bbox refinement過程方便導數計算。

圖 16 Pool方式對比

4.5 bbox refinement

圖 17 bbox refinement算法過程

bbox refinement是IoU-Net最難理解的部分。因爲沒有論文的源代碼,這裏僅對算法過程進行說明。在第六行可以看到bbox bj的更改是通過梯度上升的方式更新定位得分,而停止停止條件是Ω1(提前停止閾值)和Ω2(定位方差),故bbox refinement本質上是個無監督的優化算法,不斷優化detected box的位置實現。

4.6 性能分析

IoU-Net 可與目標檢測框架一起並行地端到端優化。論文將 IoU-Net添加到網絡中有助於網絡學習更具判別性的特徵,這能分別將 ResNet50-FPN 和 ResNet101-FPN 的整體 AP 提升 0.6% 和 0.4%。IoU 引導式 NMS 和邊界框修正還能進一步提升表現。論文使用 ResNet101-FPN 得到了 40.6% 的 AP,相比而言基準爲 38.5%,提升了 2.1%。IoU-Net的推理速度在顯著提升檢測水平基礎上實現推理速度無明顯差異。

圖 18 IoU-Net在MS-COCO最終實驗

4.7 優缺點分析

1、如圖 18所示,IoU-Net的AP提升收益來自於AP70- AP90,在低閾值的時候表現一般。在圖 14也可以觀察到,在低閾值,定位置信度和IoU with ground truth非正相關。

2、IoU-Net網絡架構清晰明瞭,但是在bounding box優化時不是很清晰。

3、IoU-Net利用定位置信度提出了IoU-Guided NMS及基於優化的bounding box的新算法, MS-COCO 實驗結果表明了該方法的有效性和實際應用潛力。

5、其它去重算法

本章簡要介紹基於NMS算法的其他創新點。

5.1 Relation Network

Relation Network(CVPR 2018 oral)是由MSRA提出。

當下主流的目標檢測的方法還是對各個物體進行單獨的檢測,本文基於Attention,提出了一種object relation module,通過引入不同物體之間的外觀和geometry特徵做interaction,實現對物體之間relation的建模,提高檢測效果,並且將關係模塊運用在duplicate remove中,進行可學習的NMS(提出了一種特別的代替NMS的去重模塊,可以避免NMS需要手動設置參數的問題),實現了第一個完全end-to-end的目標檢測系統。

圖 19 Relation Networks網絡架構

這篇文章對關係的建模還有改進的空間,學出來的所謂“關係”並不清晰,(論文最後聲明:our understanding of how relation module works is preliminary and left as future work.欲知後事如何,且聽下回分解),更像是把Attention強行套入目標檢測系統中。不過可學習的nms是很大的創新。

5.2 ConvNMS

其主要考慮IoU閾值設定得高一些,則可能抑制得不夠充分,而將IoU閾值設定得低一些,又可能多個ture positive被merge到一起。ConvNMS[6]其設計一個卷積網絡組合具有不同overlap閾值的greedyNMS結果,通過學習的方法來獲得最佳的輸出。

5.3 NMS Network

考慮目標間具有高遮擋的密集場景,其提出一個新的網絡架構來執行NMS。經分析,檢測器對於每個目標僅產生一個檢測結果有兩個關鍵點是必要的,一是一個loss懲罰double detections以告訴檢測器我們對於每個目標僅需一個檢測結果,二是相鄰檢測結果的joint processing以使得檢測器具有必要的信息來分辨一個目標是否被多次檢測。論文提出Gnet[7],基於CNN實現NMS網絡。

5.4 Yes-Net

不同於NMS,其主要有兩個缺點,一是閾值必須人工設定,而在固定閾值下選擇所有目標的輸出邊框是很難的,二是當檢測器利用NMS時其假設輸出邊框都是獨立的,但這些邊框很可能是共享一些邏輯關係的。因此Yes-Net考慮利用RNN作爲濾波器以得到最好的檢測邊框[8],其能提升檢測器泛化能力。

以上僅爲個人閱讀論文以及項目實踐過程中的理解,總結和一些思考,觀點難免偏差,望讀者以懷疑的態度閱讀,歡迎交流指正。

參考文獻

[1] https://github.com/hoya012/deep_learning_object_detection

[2] Bodla N, Singh B, Chellappa R, et al. Soft-nms—improving object detection with one line of code[C]//Computer Vision (ICCV), 2017 IEEE International Conference on. IEEE, 2017: 5562-5570.

[3] He Y, Zhang X, Savvides M, et al. Softer-NMS: Rethinking Bounding Box Regression for Accurate Object Detection[J]. arXiv preprint arXiv:1809.08545, 2018.

[4] Borui Jiang, Ruixuan Luo,et al. Acquisition of Localization Confidence for Accurate Object Detection. arXiv preprint arXiv: 1807.11590, 2018.

[5] Han Hu, Jiayuan Gu,Zheng Zhang,et al.Relation Networks for Object Detection. arXiv preprint arXiv: 1711.11575, 2017.

[6] Jan Hosang, Rodrigo Benenson, Bernt Schiele.A Convnet for Non-maximum Suppression. arXiv preprint arXiv: 1511.06437, 2015.

[7] J. H. Hosang, R. Benenson, and B. Schiele. Learning nonmaximum suppression. In CVPR, pages 6469–6477, 2017

[8] Liangzhuang Ma,Xin Kan,Qianjiang Xiao.An effective Detector Based on Global Information. arXiv preprint arXiv:1706.09180.2017.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章