如何使用Soft-NMS实现目标检测并提升准确率
用一行代碼提升目標(biāo)檢測準(zhǔn)確率
?
論文摘要
非最大抑制(Non-maximum suppression, NMS)是物體檢測流程中重要的組成部分。它首先基于物體檢測分?jǐn)?shù)產(chǎn)生檢測框,分?jǐn)?shù)最高的檢測框M被選中,其他與被選中檢測框有明顯重疊的檢測框被抑制。該過程被不斷遞歸的應(yīng)用于其余檢測框。根據(jù)算法的設(shè)計(jì),如果一個(gè)物體處于預(yù)設(shè)的重疊閾值之內(nèi),可能會(huì)導(dǎo)致檢測不到該待檢測物體。因此,我們提出了Soft-NMS算法,該連續(xù)函數(shù)對非最大檢測框的檢測分?jǐn)?shù)進(jìn)行衰減而非徹底移除。它僅需要對傳統(tǒng)的NMS算法進(jìn)行簡單的改動(dòng)且不增額外的參數(shù)。該Soft-NMS算法在標(biāo)準(zhǔn)數(shù)據(jù)集PASCAL VOC2007(較R-FCN和Faster-RCNN提升1.7%)和MS-COCO(較R-FCN提升1.3%,較Faster-RCNN提升1.1%)上均有提升。此外,Soft-NMS具有與傳統(tǒng)NMS相同的算法復(fù)雜度,使用高效。Soft-NMS也不需要額外的訓(xùn)練,并易于實(shí)現(xiàn),它可以輕松的被集成到任何物體檢測流程中。Soft-NMS的源代碼請參加Github: http://bit.ly/2nJLNMu.
NMS算法介紹
物體檢測是計(jì)算機(jī)視覺領(lǐng)域的一個(gè)經(jīng)典問題,它為特定類別的物體產(chǎn)生檢測邊框并對其分類打分。傳統(tǒng)的物體檢測流程常常采用多尺度滑動(dòng)窗口,根據(jù)每個(gè)物體類別的前景/背景分?jǐn)?shù)對每個(gè)窗口計(jì)算其特征。然而,相鄰窗口往往具有相關(guān)的分?jǐn)?shù),這會(huì)增加檢測結(jié)果的假陽性。為了避免這樣的問題,人們會(huì)采用非最大抑制的方法對檢測結(jié)果進(jìn)行后續(xù)處理來得到最終的檢測結(jié)果。目前為止,非最大抑制算法仍然是流行的物體檢測處理算法并能有效的降低檢測結(jié)果的假陽性。
在現(xiàn)有的物體檢測框架(如圖一所示)中,每一個(gè)檢測框均會(huì)產(chǎn)生檢測分?jǐn)?shù),那么對于圖片中的一個(gè)物體可能對應(yīng)多個(gè)檢測分?jǐn)?shù)。在這種情況下,除了最正確(檢測分?jǐn)?shù)最高)的一個(gè)檢測框,其余的檢測框均產(chǎn)生假陽性結(jié)果。非最大抑制算法針對特定物體類別分別設(shè)定重疊閾值來解決這個(gè)問題。
圖一采用NMS的物體檢測流程
傳統(tǒng)的非最大抑制算法首先在被檢測圖片中產(chǎn)生一系列的檢測框B以及對應(yīng)的分?jǐn)?shù)S。當(dāng)選中最大分?jǐn)?shù)的檢測框M,它被從集合B中移出并放入最終檢測結(jié)果集合D。于此同時(shí),集合B中任何與檢測框M的重疊部分大于重疊閾值Nt的檢測框也將隨之移除。非最大抑制算法中的最大問題就是它將相鄰檢測框的分?jǐn)?shù)均強(qiáng)制歸零。在這種情況下,如果一個(gè)真實(shí)物體在重疊區(qū)域出現(xiàn),則將導(dǎo)致對該物體的檢測失敗并降低了算法的平均檢測率(average precision, AP)。
換一種思路,如果我們只是通過一個(gè)基于與M重疊程度相關(guān)的函數(shù)來降低相鄰檢測框的分?jǐn)?shù)而非徹底剔除。雖然分?jǐn)?shù)被降低,但相鄰的檢測框仍在物體檢測的序列中。圖二中的實(shí)例可以說明這個(gè)問題。
圖二被檢測物體高度重疊時(shí),被遮擋物體在不同檢測算法下具有不同的檢測分?jǐn)?shù)
Soft-NMS可提升目標(biāo)檢測的平均準(zhǔn)確率
針對NMS存在的這個(gè)問題,我們提出了一種新的Soft-NMS算法(圖三),它只需改動(dòng)一行代碼即可有效改進(jìn)傳統(tǒng)貪心NMS算法。在該算法中,我們基于重疊部分的大小為相鄰檢測框設(shè)置一個(gè)衰減函數(shù)而非徹底將其分?jǐn)?shù)置為零。簡單來講,如果一個(gè)檢測框與M有大部分重疊,它會(huì)有很低的分?jǐn)?shù);而如果檢測框與M只有小部分重疊,那么它的原有檢測分?jǐn)?shù)不會(huì)受太大影響。在標(biāo)準(zhǔn)數(shù)據(jù)集PASCAL VOC 和 MS-COCO等標(biāo)準(zhǔn)數(shù)據(jù)集上,Soft-NMS對現(xiàn)有物體檢測算法在多個(gè)重疊物體檢測的平均準(zhǔn)確率有顯著的提升。同時(shí),Soft-NMS不需要額外的訓(xùn)練且易于實(shí)現(xiàn),因此,它很容易被集成到當(dāng)前的物體檢測流程中。
圖三 Soft-NMS偽代碼,僅需將NMS代碼(紅色框)替換為Soft-NMS代碼(綠色框)一步即可完成
傳統(tǒng)的NMS處理方法可以通過以下的分?jǐn)?shù)重置函數(shù)(Rescoring Function)來表達(dá):
在這個(gè)公式中, NMS采用了硬閾值來判斷相鄰檢測框是否保留。但是,換一種方法,假設(shè)我們對一個(gè)與M高度重疊的檢測框bi的檢測分?jǐn)?shù)進(jìn)行衰減,而非全部抑制。如果檢測框bi中包含不同于M中的物體,那么在檢測閾值比較低的情況下,該物體并不會(huì)錯(cuò)過檢測。但是,如果bi中并不包含任何物體,即使在衰減過后,bi的分?jǐn)?shù)仍然較高,它還是會(huì)產(chǎn)生一個(gè)假陽性的結(jié)果。因此,在使用NMS做物體檢測處理的時(shí)候,需要注意以下幾點(diǎn):
-
相鄰檢測框的檢測分?jǐn)?shù)應(yīng)該被降低,從而減少假陽性結(jié)果,但是,衰減后的分?jǐn)?shù)仍然應(yīng)該比明顯的假陽性結(jié)果要高。
-
通過較低的NMS重疊閾值來移除所有相鄰檢測框并不是最優(yōu)解,并且很容易導(dǎo)致錯(cuò)過被檢測物體,特別是在物體高度重疊的地方
-
當(dāng)NMS采用一個(gè)較高的重疊閾值時(shí),平均準(zhǔn)確率可能會(huì)相應(yīng)降低。
Soft-NMS中的分?jǐn)?shù)重置函數(shù)
通過衰減與檢測框M有重疊的相鄰檢測框的檢測分?jǐn)?shù)是對NMS算法的有效改進(jìn)。越是與M高度重疊的檢測框,越有可能出現(xiàn)假陽性結(jié)果,它們的分?jǐn)?shù)衰減應(yīng)該更嚴(yán)重。因此,我們對NMS原有的分?jǐn)?shù)重置函數(shù)做如下改進(jìn):
當(dāng)相鄰檢測框與M的重疊度超過重疊閾值Nt后,檢測框的檢測分?jǐn)?shù)呈線性衰減。在這種情況下,與M相鄰很近的檢測框衰減程度很大,而遠(yuǎn)離M的檢測框并不受影響。
但是,上述分?jǐn)?shù)重置函數(shù)并不是一個(gè)連續(xù)函數(shù),在重疊程度超過重疊閾值Nt時(shí),該分?jǐn)?shù)重置函數(shù)產(chǎn)生突變,從而可能導(dǎo)致檢測結(jié)果序列產(chǎn)生大的變動(dòng),因此我們更希望找到一個(gè)連續(xù)的分?jǐn)?shù)重置函數(shù)。它對沒有重疊的檢測框的原有檢測分?jǐn)?shù)不產(chǎn)生衰減,同時(shí)對高度重疊的檢測框產(chǎn)生大的衰減。綜合考慮這些因素,我們進(jìn)一步對soft-NMS中的分?jǐn)?shù)重置函數(shù)進(jìn)行了改進(jìn):
在圖三的Soft-NMS算法中,f(iou(M,bi))是基于檢測框重疊程度的權(quán)重函數(shù)。算法中每一步的復(fù)雜度為O(N),N為圖片中檢測框的數(shù)量。對于N個(gè)檢測框,Soft-NMS的算法復(fù)雜度為O(N2),與傳統(tǒng)的貪心NMS算法相同。由于分?jǐn)?shù)低于一個(gè)最小閾值的檢測框會(huì)被直接剔除,因此NMS并不需要對所有檢測框進(jìn)行操作,計(jì)算量并不龐大,也不會(huì)減慢當(dāng)前檢測器的運(yùn)行速度。
值得注意的是,soft-NMS也是一種貪心算法,并不能保證找到全局最優(yōu)的檢測框分?jǐn)?shù)重置。但是,soft-NMS算法是一種更加通用的非最大抑制算法,傳統(tǒng)的NMS算法可以看做是它的一個(gè)采用不連續(xù)二值權(quán)重函數(shù)的特例。除了以上這兩種分?jǐn)?shù)重置函數(shù),我們也可以考慮開發(fā)其他包含更多參數(shù)的分?jǐn)?shù)重置函數(shù),比如Gompertz函數(shù)等。但是它們在完成分?jǐn)?shù)重置的過程中增加了額外的參數(shù)。
實(shí)驗(yàn)數(shù)據(jù)分析
我們在兩個(gè)標(biāo)準(zhǔn)數(shù)據(jù)集PASCAL VOC 和MS-COCO上分別進(jìn)行實(shí)驗(yàn)。Pascal數(shù)據(jù)集有20種物體分類,MS-COCO數(shù)據(jù)集含有80種。我們在這里選擇VOC 2007 測試集來衡量算法的性能。同時(shí)在MS-COCO中一個(gè)包含5000張圖片的數(shù)據(jù)集上完成敏感度分析。此外,我們還在含有20288張圖片的MS-COCO集上展示了結(jié)果。為了檢驗(yàn)我們的算法,我們在兩種現(xiàn)有的檢測器faster-RCNN和R-FCN上完成實(shí)驗(yàn)。
在表一中,我們利用MS-COCO數(shù)據(jù)集,分別比較了R-FCN和Faster-RCNN算法在使用傳統(tǒng)NMS和soft-NMS的情況下的性能。我們在線性權(quán)重函數(shù)中的Nt為0.3,高斯權(quán)重函數(shù)中Nt為0.5。可以很明顯的看出,Soft-NMS在上述各種情況中均能提高算法性能,特別是在多物體重疊的情況下。例如,soft-NMS分別使R-FCN和faster-RCNN算法的平均準(zhǔn)確率提升了1.3%和1.1%,在MS-COCO數(shù)據(jù)集中產(chǎn)生了顯著的提升。值得強(qiáng)調(diào)的是,我們只需要對原有NMS算法做很小的改動(dòng)便可獲得如此的性能提升。同時(shí),我們也在PASCAL數(shù)據(jù)集上做了相同的實(shí)驗(yàn),在表二中,我們可以看到,使用Soft-NMS幫助Faster-RCNN和R-FCN的平均準(zhǔn)確率均提升了1.7%。在此之后的實(shí)驗(yàn),我們均采用高斯權(quán)重函數(shù)的soft-NMS。
在圖四所示的實(shí)驗(yàn)中,我們可以看到應(yīng)用soft-NMS的R-FCN算法在MS-COCO數(shù)據(jù)集每一類物體識別的準(zhǔn)確率均有提升。其中,例如斑馬,長頸鹿,綿羊,大象,馬等動(dòng)物類物體檢測均有3%到6%的準(zhǔn)確率提升。同時(shí),對于面包機(jī),球類,吹風(fēng)機(jī)等很少多個(gè)物體同時(shí)出現(xiàn)的類別的物體,平均檢測率提升不明顯。總的來說,Soft-NMS在不影響運(yùn)算速度的情況下,可以有效的提升物體檢測的成功率。
圖四應(yīng)用于R-FCN(左)和Faster-RCNN(右)的Soft-NMS算法分類準(zhǔn)確率提高
敏感度分析
由上述分析可知,使用Soft-NMS時(shí)需要設(shè)置參數(shù),使用傳統(tǒng)NMS需要設(shè)置參數(shù)Nt。為了對這些參數(shù)做敏感度分析,我們通過在MS-COCO數(shù)據(jù)上上不斷改變這些參數(shù)的值去觀察平均準(zhǔn)確率的變化。如圖五所示,對于兩種檢測器,平均準(zhǔn)確率(AP)均在0.3-0.6之間穩(wěn)定變化,然后在該范圍之外明顯降低。與傳統(tǒng)NMS相比,soft-NMS在0.1-0.7的參數(shù)變化范圍內(nèi)有更好的性能。在0.4-0.7的參數(shù)范圍內(nèi),使用soft-NMS的兩種檢測器的平均準(zhǔn)確率均比傳統(tǒng)NMS大約高1%。盡管在參數(shù)為0.6時(shí)soft-NMS具有更好的性能,但為了保證實(shí)驗(yàn)的一致性,我們均設(shè)置為0.5。
圖五 R-FCN算法對于參數(shù)(Soft-NMS)和Nt(NMS)的敏感度分析
Soft-NMS的定位效果比傳統(tǒng)NMS更精確
定位能力(LocalizationPerformance):單純適用平均準(zhǔn)確率很難表現(xiàn)出soft-NMS在物體檢測性能上的顯著提升。因此,我們需要在不同的重疊閾值下去計(jì)算傳統(tǒng)NMS和soft-NMS的平均準(zhǔn)確率。同時(shí),我們也在實(shí)驗(yàn)中不斷變化NMS和soft-NMS的參數(shù)值來對這兩種算法有更深入的了解。在表三中,隨著NMS重疊閾值Nt的提高,平均準(zhǔn)確率降低。盡管在高度重疊(高Ot)的環(huán)境下,高重疊閾值Nt有相對好的表現(xiàn),但是在低Ot環(huán)境下,高重疊閾值Nt導(dǎo)致平均準(zhǔn)確率AP大幅下降。而soft-NMS 具有不同的特性,在高度重疊(高Ot)環(huán)境下取得的好性能在低重疊環(huán)境下仍能保持。對于不同的參數(shù)設(shè)置,soft-NMS均能取得比傳統(tǒng)NMS更好的性能。同時(shí),高可以在高度重疊環(huán)境下取得更大的性能提升。因此,相比于傳統(tǒng)NMS,soft-NMS在物體檢測中具有更好的定位效果:
Soft-NMS、NMS的準(zhǔn)確度和檢索率對比
最后,我們來觀察在不同重疊閾值的下soft-NMS相對于NMS的性能提升。隨著重疊閾值和檢索率的提升,soft-NMS在準(zhǔn)確率上有更大的提升。這是因?yàn)閭鹘y(tǒng)NMS對所有重疊區(qū)域的檢測框檢測分?jǐn)?shù)均置零,從而錯(cuò)過了很多待識別物體并導(dǎo)致在高檢索率的情況下準(zhǔn)確率降低。Soft-NMS對相鄰區(qū)域內(nèi)的檢測框的分?jǐn)?shù)進(jìn)行調(diào)整而非徹底抑制,從而提高了高檢索率情況下的準(zhǔn)確率。與此同時(shí),由于在相鄰區(qū)域徹底抑制的NMS在較高重疊環(huán)境下更容易錯(cuò)過待檢測物體,soft-NMS在低檢索率時(shí)仍能對物體檢測性能有明顯提升。
圖六不同物體重疊程度(Ot)下準(zhǔn)確度vs 檢索率
定性分析
在圖七中,我們對COCO驗(yàn)證集中的數(shù)據(jù)進(jìn)行了定性分析。其中,我們采用R-FCN來檢測圖片中的物體,檢測閾值為0.45。Soft-NMS在假陽性結(jié)果與真實(shí)被檢測物體間有少量重疊時(shí)對檢測結(jié)果有明顯提升。以下圖中8號為例,NMS中使用的一個(gè)涵蓋多個(gè)人物的較寬的檢測框在soft-NMS中被有效抑制,因?yàn)樗c圖中多個(gè)分?jǐn)?shù)較高的檢測框均有少量重疊,它的檢測分?jǐn)?shù)在分?jǐn)?shù)重置函數(shù)的影響下會(huì)衰減很多,同樣的情形也在9號圖中出現(xiàn)。在1號的海灘場景中,soft-NMS使得女士包周圍的較大的檢測框被衰減到0.45以下,4號圖中的假陽性結(jié)果也同樣被有效抑制。同時(shí),在2,5,7,13號圖中的動(dòng)物檢測中,NMS對相鄰檢測框產(chǎn)生了過度抑制而soft-NMS通過衰減相鄰檢測框的檢測分?jǐn)?shù)來實(shí)現(xiàn)檢測到更多在閾值0.45以上的正確結(jié)果。
圖七實(shí)驗(yàn)結(jié)果定性分析,圖片對中左圖采用NMS算法,右圖采用Soft-NMS算法。藍(lán)線以上為檢測成功實(shí)例,以下為失敗實(shí)例。14號圖檢測物體為人,15號圖檢測物體為長椅,21號圖檢測物體為盆栽。
實(shí)驗(yàn)結(jié)論:Soft-NMS在目標(biāo)檢測中效率更高
本文提出了一種新的軟權(quán)重非最大抑制算法。它通過提供一個(gè)基于檢測框重疊程度和檢測分?jǐn)?shù)的函數(shù)來實(shí)現(xiàn)。作者在傳統(tǒng)貪心NMS算法的基礎(chǔ)上提出了兩種改進(jìn)函數(shù)并對其在兩個(gè)現(xiàn)有檢測數(shù)據(jù)集上進(jìn)行了驗(yàn)證。通過分析,基于檢測框重疊程度和檢測分?jǐn)?shù)的軟權(quán)重函數(shù)可以有效提升物體檢測的準(zhǔn)確率。今后的工作可以考慮從學(xué)習(xí)更復(fù)雜的參數(shù)或非參數(shù)方程的角度展開。此外,針對物體檢測的端到端的學(xué)習(xí)框架將是最理想的解決方案,它在生成檢測框時(shí)無需考慮非最大抑制以及其中的檢測分?jǐn)?shù)和檢測框位置等多種因素。
論文地址:https://arxiv.org/pdf/1704.04503.pdf
- Github項(xiàng)目:https://github.com/bharatsingh430/soft-nms --------------------- 本文來自 lanyuxuan100 的CSDN 博客 ,全文地址請點(diǎn)擊:https://blog.csdn.net/lanyuxuan100/article/details/78767818?utm_source=copy
總結(jié)
以上是生活随笔為你收集整理的如何使用Soft-NMS实现目标检测并提升准确率的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 转载+记录数据增广的八种常用方式
- 下一篇: 目标检测特殊层:ROI Align层详解