一文詳解不帶Anchors和NMS的目標(biāo)檢測(cè)
前言:
目標(biāo)檢測(cè)是計(jì)算機(jī)視覺(jué)中的一項(xiàng)傳統(tǒng)任務(wù)。自2015年以來(lái),人們傾向于使用現(xiàn)代深度學(xué)習(xí)技術(shù)來(lái)提高目標(biāo)檢測(cè)的性能。雖然模型的準(zhǔn)確性越來(lái)越高,但模型的復(fù)雜性也增加了,主要是由于在訓(xùn)練和NMS后處理過(guò)程中的各種動(dòng)態(tài)標(biāo)記。這種復(fù)雜性不僅使目標(biāo)檢測(cè)模型的實(shí)現(xiàn)更加困難,而且也阻礙了它從端到端風(fēng)格的模型設(shè)計(jì)。
本文來(lái)源于公眾號(hào)CV技術(shù)指南的技術(shù)總結(jié)系列。
更多內(nèi)容請(qǐng)關(guān)注公眾號(hào)CV技術(shù)指南,專注于計(jì)算機(jī)視覺(jué)的技術(shù)總結(jié),最新技術(shù)跟蹤。
早期方法 (2015-2019)
自2015年以來(lái),人們提出了各種深度學(xué)習(xí)中的目標(biāo)檢測(cè)方法,給該領(lǐng)域帶來(lái)了巨大的影響。這些方法主要分為一階段方法和兩階段方法兩類。其一般處理過(guò)程包括:
1.使用CNN主干提取深度特征圖
2.為特征映射的每個(gè)像素生成各種錨點(diǎn)
3.計(jì)算錨點(diǎn)和ground truth之間的IoU,選擇其中的一部分進(jìn)行訓(xùn)練
4.使用回歸(IoU和L1)和分類(框內(nèi)的對(duì)象類)的loss對(duì)模型進(jìn)行訓(xùn)練
5.使用非極大值抑制(NMS)對(duì)推理結(jié)果進(jìn)行過(guò)程后處理,以刪除重復(fù)的預(yù)測(cè)框
在上述一般過(guò)程中,one-stage和two-stages方法的唯一區(qū)別是在訓(xùn)練過(guò)程中是否為region proposal動(dòng)態(tài)標(biāo)記anchors。例如,在Faster-RCNN中,根據(jù)錨和ground truth之間的IoU給anchors作正或負(fù)的標(biāo)記。如果IoU足夠大,比如0.7,錨給正標(biāo)簽,否則如果IoU足夠小,比如0.3,給出負(fù)標(biāo)簽。因此,在推理期間,只將正錨定用于目標(biāo)檢測(cè)處理。這種技術(shù)在原論文中被稱為區(qū)域建議網(wǎng)絡(luò)(RPN)。
在像SSD、YOLO和RetinaNet這樣的one-stage方法中,不存在RPN,以便在推理過(guò)程中處理所有的錨點(diǎn)。分類置信度的閾值用于過(guò)濾大多數(shù)錨,而只有具有高分類可能性的錨被保留用于最終的后處理。
在訓(xùn)練過(guò)程中,錨的數(shù)量非常巨大。在two-stages的方法中,RPN幫助集中關(guān)注正錨點(diǎn),這節(jié)省了計(jì)算時(shí)間和資源。然而,RPN是復(fù)雜的,訓(xùn)練它也需要時(shí)間和資源。在one-stage的方法中,盡管必須處理所有的錨點(diǎn),但總的計(jì)算時(shí)間仍然更小。
由于two-stages方法的復(fù)雜性和速度較低,人們傾向于開(kāi)發(fā)出更容易實(shí)現(xiàn)、更有效的新的one-stage方法。
什么是NMS以及為什么需要它
在上述早期的方法中,錨被用來(lái)與ground truth相匹配。因此,可能會(huì)發(fā)生多對(duì)一的匹配:幾個(gè)錨與一個(gè)ground truth相匹配。如上所述,在一階段和兩階段的方法中,幾種不同的錨可能與同一個(gè)ground truth有較大的IoU。在推理過(guò)程中,它們也可以回歸到具有高分類置信度的同一對(duì)象。因此,刪除重復(fù)anchor,NMS后處理是必要的。
NMS處理過(guò)程:
1.預(yù)測(cè)的anchors根據(jù)分類置信度進(jìn)行排序
2.選擇最大置信度的anchor
3.刪除所有與所選anchor的IoU大于預(yù)定義閾值的其它anchor
4.從1開(kāi)始重復(fù),直到不存在anchors
在推理結(jié)果中,許多與許多目標(biāo)對(duì)應(yīng)的anchor被混合在一起。一旦以置信度進(jìn)行排序,可能會(huì)發(fā)生以下情況:
其中為兩個(gè)對(duì)象A和B預(yù)測(cè)三個(gè)anchor。三個(gè)anchor的編號(hào)為1、2、3,分類置信度分別為0.8、0.75、0.7。在這里,為同一對(duì)象A預(yù)測(cè)兩個(gè)anchor,因此應(yīng)該移除一個(gè)具有較低可信度的anchor。在這種情況下,去除anchor 2,anchor 1和3用于最終預(yù)測(cè)。
為什么會(huì)發(fā)生這種情況?回想一下訓(xùn)練過(guò)程中的多對(duì)一匹配:anchor 1和2同時(shí)與對(duì)象A匹配,計(jì)算損失并反向傳播梯度,告訴模型anchor 1和2都是對(duì)象A的有效候選對(duì)象。然后這個(gè)模型只是預(yù)測(cè)它被訓(xùn)練成什么。
因此,如果我們將多對(duì)一修改為一對(duì)一,并且在訓(xùn)練過(guò)程中只使用一個(gè)anchor來(lái)匹配一個(gè)ground truth,推理結(jié)果會(huì)有所不同嗎?回想一下,在多對(duì)一范式中,對(duì)于一個(gè)對(duì)象,會(huì)選擇具有大IoU的anchor來(lái)與它進(jìn)行匹配。想想一對(duì)一的范式,其中只選擇IoU最高的anchor進(jìn)行匹配,而所有其他anchors都是負(fù)的,并與背景匹配。我們是否可以得到一個(gè)模型,它能夠以一對(duì)一的匹配風(fēng)格直接預(yù)測(cè)所有對(duì)象的所有anchor,而不需要NMS后處理?
最近的新方法(2019-2020)
幸運(yùn)的是,上述問(wèn)題的答案是肯定的。最近,人們一直在開(kāi)發(fā)新的one-stage方法,使目標(biāo)檢測(cè)比以前更容易。主要思想有兩方面:
1.不要使用anchor,而使用每像素預(yù)測(cè)
2.不要使用NMS后處理,改為使用一對(duì)一的訓(xùn)練
人們不會(huì)使用根據(jù)空間比例和對(duì)象大小而變化的anchors,而是傾向于通過(guò)使用語(yǔ)義分割等每像素的預(yù)測(cè)來(lái)降低復(fù)雜性。一種典型的方法是FCOS,其中最終特征圖中的每個(gè)像素都用一個(gè)對(duì)象框進(jìn)行預(yù)測(cè),使其成為一個(gè)完全卷積網(wǎng)絡(luò)(FCN)。用于目標(biāo)檢測(cè)的FCN不僅簡(jiǎn)化了任務(wù)本身,而且還將其與語(yǔ)義分割、關(guān)鍵點(diǎn)檢測(cè)等其他FCN任務(wù)結(jié)合起來(lái),用于多任務(wù)的應(yīng)用。
我們可以看到,對(duì)于ground truth框內(nèi)的每個(gè)像素,都可以分配一個(gè)標(biāo)簽:(l、r、t、b),表示ground truth框向左、右、上、下邊界的像素之間的距離。因此,訓(xùn)練仍然是多對(duì)一的,NMS后處理仍然需要得到最終的預(yù)測(cè)結(jié)果。雖然FCOS簡(jiǎn)化了目標(biāo)檢測(cè)并性能良好,但它仍然不是端到端的。
為了使目標(biāo)檢測(cè)任務(wù)端到端,人們必須有不同的思考。自2020年以來(lái),隨著transformer的普及,人們傾向于用Vision Transformer進(jìn)行目標(biāo)檢測(cè),結(jié)果也很好。一個(gè)典型的方法是DETR,本文將不會(huì)討論它。我將在這里討論的是另一個(gè)并行的工作:OneNet,它將FCOS擴(kuò)展為用于目標(biāo)檢測(cè)的端到端FCN。
如上所述,為什么NMS是必要的主要原因是在訓(xùn)練中使用了多對(duì)一范式。為了使它端到端沒(méi)有NMS,應(yīng)該使用一對(duì)一的訓(xùn)練范式來(lái)代替。
回想一下,在早期的方法中,預(yù)測(cè)和ground truth是匹配的,它們之間只有幾何損失(IoU和L1)用于反向傳播。因此,為了增加訓(xùn)練數(shù)據(jù)的方差,需要多對(duì)一匹配,因?yàn)榭梢哉业皆S多幾何損失相似的候選對(duì)象,并匹配相應(yīng)的ground truth。這個(gè)候選框并不是唯一的。另一方面,如果我們堅(jiān)持使用幾何損失最低的候選模型進(jìn)行一對(duì)一匹配,該模型可能會(huì)過(guò)擬合,并且根本不具備很好的泛化能力。
OneNet的作者認(rèn)識(shí)到了這個(gè)問(wèn)題,并使用了兩種損失:幾何損失和分類損失,以將候選框與ground truth相匹配。
與幾何損失不同,分類損失對(duì)相應(yīng)的ground truth是唯一的。例如,在目標(biāo)的高級(jí)深度特征圖中,我們可以找到一個(gè)最能表示目標(biāo)類的唯一像素。雖然許多像素的幾何損失與相應(yīng)的ground truth相似的幾何損失,但最佳分類損失的像素是唯一的。因此,我們可以將這兩種損失結(jié)合起來(lái),得到訓(xùn)練中唯一一個(gè)綜合損失最低的候選框。
如原論文所述,只有具有最小損失的候選框才能匹配相應(yīng)的目標(biāo),其他目標(biāo)都是負(fù)的,并與背景匹配。
預(yù)測(cè)結(jié)果比較
多對(duì)一的結(jié)果
一對(duì)一的結(jié)果
第一行是早期多對(duì)一模型的預(yù)測(cè)結(jié)果,而第二行是一對(duì)一模型(OneNet)的預(yù)測(cè)結(jié)果。我們可以清楚地看到,許多冗余的預(yù)測(cè)框存在于多個(gè)一對(duì)一的結(jié)果中,而它們則在一對(duì)一的結(jié)果中消失。
討論
利用一對(duì)一的訓(xùn)練范式,OneNet首先實(shí)現(xiàn)了端到端的目標(biāo)檢測(cè)。這一進(jìn)展被認(rèn)為是對(duì)損失和模型優(yōu)化的深刻理解,這也有助于提高深度學(xué)習(xí)的可解釋性。
發(fā)表評(píng)論
請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字
最新活動(dòng)更多
-
即日-11.13立即報(bào)名>>> 【在線會(huì)議】多物理場(chǎng)仿真助跑新能源汽車
-
11月28日立即報(bào)名>>> 2024工程師系列—工業(yè)電子技術(shù)在線會(huì)議
-
12月19日立即報(bào)名>> 【線下會(huì)議】OFweek 2024(第九屆)物聯(lián)網(wǎng)產(chǎn)業(yè)大會(huì)
-
即日-12.26火熱報(bào)名中>> OFweek2024中國(guó)智造CIO在線峰會(huì)
-
即日-2025.8.1立即下載>> 《2024智能制造產(chǎn)業(yè)高端化、智能化、綠色化發(fā)展藍(lán)皮書》
-
精彩回顧立即查看>> 【限時(shí)免費(fèi)下載】TE暖通空調(diào)系統(tǒng)高效可靠的組件解決方案
推薦專題
- 1 【一周車話】沒(méi)有方向盤和踏板的車,你敢坐嗎?
- 2 特斯拉發(fā)布無(wú)人駕駛車,還未迎來(lái)“Chatgpt時(shí)刻”
- 3 特斯拉股價(jià)大跌15%:Robotaxi離落地還差一個(gè)蘿卜快跑
- 4 馬斯克給的“驚喜”夠嗎?
- 5 打完“價(jià)格戰(zhàn)”,大模型還要比什么?
- 6 馬斯克致敬“國(guó)產(chǎn)蘿卜”?
- 7 神經(jīng)網(wǎng)絡(luò),誰(shuí)是盈利最強(qiáng)企業(yè)?
- 8 比蘋果偉大100倍!真正改寫人類歷史的智能產(chǎn)品降臨
- 9 諾獎(jiǎng)進(jìn)入“AI時(shí)代”,人類何去何從?
- 10 Open AI融資后成萬(wàn)億獨(dú)角獸,AI人才之爭(zhēng)開(kāi)啟
- 高級(jí)軟件工程師 廣東省/深圳市
- 自動(dòng)化高級(jí)工程師 廣東省/深圳市
- 光器件研發(fā)工程師 福建省/福州市
- 銷售總監(jiān)(光器件) 北京市/海淀區(qū)
- 激光器高級(jí)銷售經(jīng)理 上海市/虹口區(qū)
- 光器件物理工程師 北京市/海淀區(qū)
- 激光研發(fā)工程師 北京市/昌平區(qū)
- 技術(shù)專家 廣東省/江門市
- 封裝工程師 北京市/海淀區(qū)
- 結(jié)構(gòu)工程師 廣東省/深圳市