目標檢測中的分類和定位衝突問題

點擊上方“3D視覺工坊”,選擇“星標”

乾貨第一時間送達

作者:steven Li | 來源:知乎

https://zhuanlan.zhihu.com/p/150339896

本文僅做學術分享,如有侵權,請聯繫刪除。

Object detection就是在回答where和what問題,對應的是定位和分類兩個任務。拿大家耳熟能詳的Faster RCNN爲例,在RoI Pooling之後,通過兩個shared fc layers得到1024-dim的feature vector,再送入兩個sibling head,一個用於分類,另一個用於定位。

Faster RCNN結構

其實,分類和定位這兩個task,對feature有着不同的要求,存在一定的衝突。這個特徵衝突問題,有大佬在《目標檢測中的特徵衝突與不對齊問題》中已經很好地分析了。我再結合CVPR20的幾篇工作,簡述一下。

一. 特徵衝突問題

在Faster RCNN中,可以從三個角度來分析分類和定位任務之間的衝突問題。

1.1 分類和定位對特徵的要求

分類要求特徵具有平移和尺度不變性(invariance),不管object在圖片中是什麼位置,是什麼類別就是什麼類別,學到的feature,不會因爲尺度、旋轉和位置等變換髮生改變。而定位是一個position-sensitive的任務,object所在的位置不同,尺度不同,學到的feature肯定是不一樣的。舉一個例子,下圖是RPN產生的兩個Proposals,對於分類任務,它們都應該分類成person,應該產生相同的分類特徵  ;但是對於定位任務,它們應該預測出不同的offset,所以應該有不同的定位特徵  。

RPN產生的proposals

從這個角度考慮,送入兩個sibling head的1024-dim feature vector,最好是不共享的。

1.2 分類和定位的sensitive map不同

根據文章TSD[1]的motivation,分類的sensitive區域是物體的salient areas,也就是最具有判別性的地方;而定位任務的sensitive區域是在物體的邊緣區域。簡而言之,這兩個task響應的區域是不同的。

TSD的motivation

1.3 fc層不適合做localization

根據文章Double-Head[2]的分析,fc層具有spatially sensitive的特性,因爲fc層對不同的輸入元素,會連有不同的參數,所以更適合於,從part feature來分類出整個object。而conv層具有參數共享的特性,對輸入的所有元素,用相同的conv kernel去卷積,這樣卷積得到的feature,有更強的spatial correlation,更容易區分出哪些是pixel是object,哪些pixel是background.

二. 已有工作

下面簡述一下CVPR20的三篇文章,都是在Faster RCNN的基礎上,將分類和定位這兩個任務解耦,但是具體解耦的方法又各有千秋。

2.1 Double-Head

印象裏,這個工作在arxiv上掛了一些時日了。在這個工作中,給了很多insight,分析出了fc層比較spatially sensitive,更適合做分類;而conv層有更強的spatial correlation,更適合做定位,所以在RoI Pooling之後,沒有再用shared fc layers,而是直接分出了兩個分支,一個分支是接了2個fc層,用於分類;另一個是接了5個residual block,用於定位,結構圖如下。這種用fc做分類,conv做定位的操作,在Grid RCNN中也被用到。

文章中,作者對兩個task是否共享參數,以及每個task是使用fc還是conv,基本都做了一遍實驗,結果見下表。此外,文章還嘗試了unfocused task,也會帶來一些性能提升,具體見文章。

2.2 Task-aware Spatial Disentanglement

商湯的Task-aware spatial disentanglement (TSD),分析了分類和定位這兩個task對特徵空間的敏感區域是不同的。分類對salient areas比較敏感,而定位對物體邊緣比較敏感,所以這兩個task需要解耦。解耦的方法和Double-Head不一樣,在RoI Pooling之前就把兩個分支解耦開了,每一個分支有各自的RoI Pooling。根據任務驅動的方式,兩個分支對proposal進行了不同的特徵變換,從而得到task-aware features,再分別送入分類和定位分支。對分類任務,使用Deformable RoI Pooling,對每一個grid都學了一個offset,是point-wise的變換,最終得到proposal的discriminative features,更適合於分類;而對於定位任務,採用了proposal-wise變換,從proposal的feature中,學到整個proposal的offset,從而修正proposal的位置,使得proposal覆蓋的區域是更適合定位的,如覆蓋更多的物體邊緣區域。根據分類和定位這兩個task的具體需要,對proposal進行了相應的特徵變換,從而使得輸入每個task的特徵都是最優的。

2.3 D2Det

D2Det[3]受到Grid RCNN的啓發,將分類和定位解耦,用全連接做分類,用全卷積結構來做定位,也是在RoI Pooling之前就將兩個task解耦。文章發現Grid RCNN做定位的時候,只能在proposal內檢測關鍵點,對於large scale object,有時候proposal不能覆蓋住整個物體,所以這種在proposal內檢測關鍵點的方法,會受到proposal region的約束,不是很有效。基於這個發現,作者提出了dense local regression,對proposal內的每個feature point,都回歸一個box,是一種dense prediction;然後對所有迴歸出來的box取平均,得到最終的box結果。這種迴歸座標的方式,和檢測關鍵點相比,就不會受到proposal region的約束,迴歸的座標可以在proposal外面,所以比Grid RCNN的檢測關鍵點的方式有效。對於分類這個分支,也是通過Deformable RoI Pooling的方式,找到更加discriminative的features來進行分類。

上面三個工作都是在two-stage detector上做的,從RPN得到proposal之後,根據分類和定位兩個任務的具體需求,對proposal做了相應的變換。在one-stage detector上,應該也同樣存在兩個task衝突的問題,目前我還沒看到相關工作,歡迎補充。

參考

  1. ^https://arxiv.org/abs/2003.07540

  2. ^https://arxiv.org/abs/1904.06493

  3. ^http://openaccess.thecvf.com/content_CVPR_2020/html/Cao_D2Det_Towards_High_Quality_Object_Detection_and_Instance_Segmentation_CVPR_2020_paper.html

推薦閱讀

重磅!3DCVer-學術論文寫作投稿 交流羣已成立

掃碼添加小助手微信,可申請加入3D視覺工坊-學術論文寫作與投稿 微信交流羣,旨在交流頂會、頂刊、SCI、EI等寫作與投稿事宜。

同時也可申請加入我們的細分方向交流羣,目前主要有3D視覺CV&深度學習SLAM三維重建點雲後處理自動駕駛、CV入門、三維測量、VR/AR、3D人臉識別、醫療影像、缺陷檢測、行人重識別、目標跟蹤、視覺產品落地、視覺競賽、車牌識別、硬件選型、學術交流、求職交流等微信羣,請掃描下面微信號加羣,備註:”研究方向+學校/公司+暱稱“,例如:”3D視覺 + 上海交大 + 靜靜“。請按照格式備註,否則不予通過。添加成功後會根據研究方向邀請進去相關微信羣。原創投稿也請聯繫。

▲長按加微信羣或投稿

▲長按關注公衆號

3D視覺從入門到精通知識星球:針對3D視覺領域的知識點彙總、入門進階學習路線、最新paper分享、疑問解答四個方面進行深耕,更有各類大廠的算法工程人員進行技術指導。與此同時,星球將聯合知名企業發佈3D視覺相關算法開發崗位以及項目對接信息,打造成集技術與就業爲一體的鐵桿粉絲聚集區,近1000+星球成員爲創造更好的AI世界共同進步,知識星球入口:

學習3D視覺核心技術,掃描查看介紹,3天內無條件退款

 圈裏有高質量教程資料、可答疑解惑、助你高效解決問題

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