在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

    
    
    <address id="vxupu"><td id="vxupu"></td></address>

      <pre id="vxupu"><small id="vxupu"></small></pre>
      <dfn id="vxupu"></dfn>
      <div id="vxupu"><small id="vxupu"></small></div>
    1. 博客專欄

      EEPW首頁 > 博客 > 目標(biāo)檢測:Nms-Free時代

      目標(biāo)檢測:Nms-Free時代

      發(fā)布人:計算機(jī)視覺工坊 時間:2022-01-16 來源:工程師 發(fā)布文章

      作者丨半日閑心@知乎(已授權(quán))

      來源丨h(huán)ttps://zhuanlan.zhihu.com/p/453773468

      編輯丨極市平臺

      導(dǎo)讀

      過去,無需nms的目標(biāo)檢測,很美很純粹,但幾乎沒人想過應(yīng)用到業(yè)務(wù)上。然而經(jīng)過近些年的發(fā)展,性能甚至超過了nms-base。站在2021年的尾巴,回顧nms-free的發(fā)展,期待2022有更好的發(fā)展。 

      本文脈絡(luò)

      什么是nms,為什么需要nms

      什么是nms-free,有啥好處?

      nms-free的發(fā)展歷程

      nms-free的現(xiàn)狀與未來

      什么是nms,為什么需要nms

      nms是檸檬樹的簡稱,懂得都懂,不懂請退出吧。nms原理請自行搜索。為啥需要檸檬樹呢?

      因為CNN做預(yù)測的時候,往往會對同一個目標(biāo)產(chǎn)生多個proposal,因此需要nms過濾掉多余的預(yù)測框。

      產(chǎn)生duplicate bbox的原因有CNN自身結(jié)構(gòu)的原因,有時候feature map上很難決定相鄰的兩個特征點誰表示目標(biāo)誰表示背景。尤其在一些目標(biāo)邊緣比較模糊的時候,如下圖。另一方面,既然會產(chǎn)生duplicate bbox,還不如擁抱duplicate,通過規(guī)則讓一個目標(biāo)匹配多個proposal來增加正樣本數(shù)量,使訓(xùn)練的前景與背景更加均衡,最后理直氣壯用nms過濾就好了。Bounding Box Regression with Uncertainty for Accurate Object Detection. CVPR2019

      1.jpg

      圖片來源:Bounding Box Regression with Uncertainty for Accurate Object Detection. CVPR2019[1]

      此處統(tǒng)一術(shù)語。模型輸出的框是候選框(proposal)。proposal會預(yù)測一個目標(biāo)稱為instance。人工標(biāo)注的框為GT。訓(xùn)練階段,如何讓具體哪個proposal與哪個GT匹配的策略稱為label assign,上面提到一個GT只跟一個proposal匹配稱為one-to-one(o2o),一個GT匹配多個proposal的方法稱為many-to-one(m2o)。

      so,要想實現(xiàn)nms-free,label assign必須是one-to-one的。

      什么是nms-free,有啥好處?

      nms-free就是不需要nms的目標(biāo)檢測,甚至可以認(rèn)為沒有后處理的目標(biāo)檢測。優(yōu)勢1.整體框架簡潔,更少超參數(shù)。2.目標(biāo)之間重疊嚴(yán)重的話就無法用了。

      但目前的主流依然存在nms,足以說明nms的優(yōu)勢大于劣勢。很多場景的目標(biāo)檢測,目標(biāo)是稀疏的,此時many-to-one + nms組合簡直不要太爽。

      2.jpg

      出現(xiàn)重疊怎么辦?忽略就行,出現(xiàn)概率很低啦。教育甲方不能這樣玩。甲方要退錢了?RotateAnchor[2]改一波。

      3.jpg

      Nice。甲方說不可描述場景依然漏檢,還發(fā)來了圖片[色迷迷]。

      4.jpg

      此時,nms黨不慌不忙的掏出了《Detection in Crowded Scenes: One Proposal, Multiple Predictions》[3]。每個proposal預(yù)測K個instance,意思是該proposal預(yù)測的地方可能有K個instance高度重疊。上圖K>=2即可。

      是不是有點類似anchor-base一個特征點有k個anchor,但anchor形狀差異很大,人工匹配規(guī)則也無法解決高度重疊場景。一個proposal預(yù)測k個instance可看作對anchor做了修改。匹配的規(guī)則也做了修改:

      5.png

      b_i是第i個proposal,L_cls和L_reg分別是label交叉熵和bbox回歸的loss。L(b_i)可以看作是EMDLoss(推土機(jī)距離),距離最小就是匹配方案。

      由于一個proposal包含了多個instance,所以nms也做了相應(yīng)的修改,稱為set-nms,出自同一個proposal的k個instance必然非同一目標(biāo),iou再高也不能干掉。

      6.jpg

      等等,nms-base好像沒啥毛病了,增加后處理算啥毛病。標(biāo)題起錯了,”who care nms-free”。

      有一說一,nms使檢測算法不夠直觀、簡單,更像tradeoff的行為[挽尊]。nms-free簡單的結(jié)構(gòu),降低了det學(xué)習(xí)的門檻。

      nms-free的發(fā)展歷程

      此處挑比較有意思的論文介紹。如有遺漏或指正,歡迎留言。

      《End-to-end people detection in crowded scenes》CVPR2016[4]

      在Faster-rcnn、YOLOv1問世的2015年,這篇LSTM跨界搞目標(biāo)檢測的論文顯得有些默默無聞。

      該論文的主要思路是CNN作為enconder,LSTM作為decoder,把目標(biāo)檢測看成序列一個instance一個instance輸出,每個instance包含置信度和bbox,當(dāng)輸出的置信度<0.5,則看作停止符停止往下預(yù)測。

      那如何訓(xùn)練?label assign如何做?由于LSTM decoder的機(jī)制,instance按順序輸出,而GT無順序。作者嘗試了讓GT按照從左到右等不同規(guī)則排序,并與排序的instance做匹配。

      最后作者使用更好的策略,把instances與GTs匹配看成二分圖匹配問題,并通過匈牙利算法確定最佳的匹配。具體算法自行搜索。簡單的解析是:instance與GT做one-to-one匹配并求instance與GT的IoU,統(tǒng)計IoU之和。不同的匹配方案,IoU之和不同。通過匈牙利算法找到IoU之和最大的匹配方案,也就是本論文的最終方案。此算法后來幾乎成了nms-free做label assign的標(biāo)準(zhǔn)解法。

      《Relation Networks for Object Detection》CVPR2018[5]

      作者借鑒了隔壁NLP的《attention is all your need》的思想,在backbone里面融合self-attention,思路是每個proposal通過attention了解圖片中存在什么proposal,從而知道自身處于什么場景,提升準(zhǔn)確率。例如一個屏幕,在沙發(fā)旁邊是電視,在鍵盤旁邊是顯示器。如今沒人會懷疑self-attention在cv的作用。

      7.jpg

      另外,論文提出了Duplicate removal network(DRN)代替nms,實現(xiàn)端到端訓(xùn)練。參考下圖,DRN的思路是匹配到同一個GT的proposal,只取iou最大的,其他都是duplicate。DRN模塊里面有個attention,讓匹配到同一個GT的proposal只有iou最大的那個s1是1,其余是0。score是前景置信度,0-1之間,這里做了rank embed,根據(jù)score的大小降序排序,賦值范圍是[1,N]。

      8.jpg

      《End-to-End Object Detection with Transformers》ECCV2020[6]

      鼎鼎大名的DETR,借鑒了隔壁NLP的transformer,跟上文提到的《End-to-end people detection in crowded scenes》基于一樣的方式,基本就是把LSTM部分改成了transformer。由于transformer同時輸出結(jié)果的特性,作者默認(rèn)DETR固定輸出100個預(yù)測結(jié)果,如果沒有那么多目標(biāo),則多出來的預(yù)測結(jié)果為空。同樣通過匈牙利算法做label assignment。

      后面基于transformer的XXDert/SwinXX不一一介紹了。coco的最高記錄不斷被刷新,可見transformer之強(qiáng)悍。

      《Pix2seq: A Language Modeling Framework for Object Detection》[7]

      此處不得不提pix2seq,已經(jīng)不是借鑒隔壁NLP了,是把det套在NLP上。把GT的類別,坐標(biāo)都看作詞匯,一個一個輸出。把bbox的位置離散化成“詞匯表”,例如x方向的位置,離散成600個詞匯,每個詞匯表示圖片中x方向的特定位置。Loss函數(shù)統(tǒng)一只用交叉熵。

      表現(xiàn)雖然一般,但更加表明了序列模型的通用性,不同屬性構(gòu)造成序列進(jìn)行預(yù)測。

      上面幾篇論文都是從NLP借鑒過來,LSTM - attention - transformer。他們都有一個特點,backbone能捕獲全局特征,one-to-one做label assign沒有任何違和感。而CNN這邊many-to-one的label assign做了這么多年,看到transformer搞det效果不錯,結(jié)構(gòu)還優(yōu)雅。也做了類似的嘗試。

      《End-to-End Object Detection with Fully Convolutional Network》CVPR2021[8]

      從標(biāo)題就看出對DETR的致敬,簡稱DeFCN。many2one的匹配策略是無法擺脫nms的關(guān)鍵,只有采用one2one的匹配策略才能擺脫nms。

      9.jpg

      POTO(Prediction-aware One-To-One)的label assign與DETR設(shè)計幾乎一樣。

      10.png11.png

      Π是所有預(yù)測instance與GT的one2one匹配方案的集合,Π_hat是這個集合里面是Q之和最大的方案。Spatial prior是GT外接框所對應(yīng)的feature map區(qū)域=1,其他區(qū)域=0,人為的限定了匹配的proposal必須在GT框內(nèi)找。classification是預(yù)測類別的交叉熵,regression是定位的iou值。α是超參數(shù)。通過匈牙利算法找到最佳的Π_h。

      然而融合spatial prior、classification、regression做label assignment并不是本論文的首次提出,AutoAssign就曾融合多種信息做many2one的label assign,效果讓人十分驚艷。

      作者意識到卷積網(wǎng)絡(luò)結(jié)構(gòu)天然更適合many2one,因為one2one的匹配讓feature map變得sharp,激活的feature與其四周有明顯的變化,不然容易出現(xiàn)duplicated predictions,顯然attention結(jié)構(gòu)更加擅長。針對CNN不夠sharp,作者提出了3D Max Filtering(3DMF),通過max pooling抑制周圍Q得分也很高的proposal。

      另外one2one帶來更少的正樣本使更難收斂,作者增加了一個one-to-many auxiliary loss(Aux Loss)。

      類似基于FCN的nms-free的工作還有OneNet[9],PSS[10]這里不展開介紹了。

      nms-free的現(xiàn)狀與未來

      nms-free已經(jīng)不單單只有結(jié)構(gòu)簡單,精度也追上來了。det的工程研發(fā)變得越來越簡單。從結(jié)構(gòu)上,類似模板匹配的CNN,天然不適用于one2one的匹配方法,本文介紹了RelationNet和DeFCN對此問題的兩個解決方案。基于Transformer的模型天然沒有這樣的問題。沒有后處理的det未來,也許FCN已經(jīng)支撐不起來了,也許未來更多是CNN + transformer/MLP/XX的方法,CNN慢慢成為特征提取或者篩選的手段。

      考慮工程落地,transformer頻繁reshape對一些硬件不太友好。純CNN的模型結(jié)構(gòu)依然是首選,而純CNN的det,nms還是很難被取代。

      參考

      ^Bounding Box Regression with Uncertainty for Accurate Object Detection. CVPR2019 https://readpaper.com/paper/2962677013

      ^Arbitrary-Oriented Scene Text Detection via Rotation Proposals https://readpaper.com/paper/3106228955

      ^Detection in Crowded Scenes: One Proposal, Multiple Predictions .CVPR2020 https://readpaper.com/paper/3035323039

      ^End-to-end people detection in crowded scenes. CVPR2016 https://readpaper.com/paper/607748843

      ^Relation Networks for Object Detection. CVPR2018 https://readpaper.com/paper/2964080601

      ^End-to-End Object Detection with Transformers. ECCV2020 https://readpaper.com/paper/3096609285

      ^Pix2seq: A Language Modeling Framework for Object Detection https://readpaper.com/paper/3199245537

      ^End-to-End Object Detection with Fully Convolutional Network. CVPR2021 https://readpaper.com/paper/3111272232

      ^What Makes for End-to-End Object Detection?. ICML2021 https://readpaper.com/paper/3179092682

      ^Object Detection Made Simpler by Eliminating Heuristic NMS https://readpaper.com/paper/3125728987

      本文僅做學(xué)術(shù)分享,如有侵權(quán),請聯(lián)系刪文。

      *博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。



      關(guān)鍵詞: AI

      相關(guān)推薦

      技術(shù)專區(qū)

      關(guān)閉