【商湯泰坦公開課】超大規模目標檢測任務的挑戰與進展
導讀
與傳統的學術目標檢測任務不同,真實場景下的超大規模視覺檢測任務往往面臨著嚴重的長尾效應和目標多標簽分類的情況,大規模視覺檢測任務的檢測器設計與優化也一直是計算機視覺領域的重要研究點。COCO Challenge及OpenImage Object Detection Challenge等目標檢測競賽強有力地驅動著檢測算法的創新。
2020年5月28日,商湯泰坦公開課第011期、CVPR 2020論文解讀第三期的線上課程,圍繞2篇CVPR 2020錄用論文,由商湯的兩位研究員分享了團隊在Detection方面最新的研究工作,小助手已為大家做了圖文整理,快來一睹為快吧~
Part 1 Detection領域綜述
Part 2 商湯Detection團隊相關研究進展
● 超大規模真實世界目標檢測的多標簽和不均衡的現象的解決方案
● Revisiting the Sibling Head in Object Detector
Part 3 Q&A問答
Part 4 答疑交流
課程PPT及視頻回放獲取方式見文末提示~
Part 1 Detection領域綜述
目標檢測的任務定義如下:給定圖片,對于圖片中的每一個物體實例,我們需要找到它的位置并返回一個最小的矩形框住該物體,同時進行類別上的識別。由于返回結果由框和類別得分組成,所以質量評估也同時要對預測框和得分質量進行評估。預測框質量評估一般由IOU指標來計算,即給定Ground-Truth框和預測框,通過計算它們的交并比來判斷是否正確,因此檢測任務中的TP和FP的定義就很明確了。
一般來說給定IOU閾值和分類閾值,當IOU和分類得分同時大于閾值的時候,且對應的GT框沒有被匹配過,通常可以認為它是一個TP,反之為FP。然而,IOU閾值可以事先確定,但得分閾值是很難確定的,不同方法和不同得分分布也會產生影響。為了解決這個問題,Researcher們設計了目標檢測上非常經典的一個指標mAP,即PR曲線的面積,通常做法是在PR曲線上取11個點,那么每一個recall下都會得到precision,整個面積就是最后mAP的性能指標。
隨著目標檢測領域的發展,大家開始越來越關注框的質量,于是提出了AP@IOU這一評價指標。例如COCO數據集所使用的指標就是AP@IOU0.5到IOU0.95,這種指標的表達形式為每個IOU下的mAP的均值,因此對于框的質量即IOU十分敏感。工業界所使用的指標又有所不同,是FPPI(False Positive Per Image Recall)下的漏檢率和召回率。舉個例子,FPPI@0.01代表每100張圖片產生一個FP時能召回多少TP。
下圖展示的是目標檢測領域的發展脈絡圖。最初是利用手工設計的一些特征加簡單的ML算法進行檢測,到DPM靈活運用這些特征進行目標檢測,再到深度目標檢測,這個領域開始逐漸成熟。
由于時間原因,本次課程簡要地挑選部分的文章和一些視角,來給大家介紹一下目標檢測最新的進展。
第一個Topic是關于如何改善目標檢測的框圖質量。為什么會在2017~2019領域內的很多人嘗試做這樣一件事呢?原因是當時的學術背景集中在用COCO指標來評價方法,而COCO所用的指標對IOU十分敏感。比如,一個高IOU下的召回能夠在評價指標時可以抵上多個低IOU下的召回。在這樣的指標下去做改善框圖質量是提高指標收益最高的幾個方向之一。
具體來說,理想的檢測結果的形式是IOU越高的框,正確分類的得分也應該越高。為了達到這一目標,我們能夠把它分解成兩種做法。第一種做法是給定一個得分固定的預測框,那么我們希望它的框越來越準,最后性能指標就會越來越高。第二種做法是給定比較準的預測框,我們希望其得分越來越高,那么TP就能夠排在更多FP前,對指標十分有利。下圖所示的是經典的兩個算法。
另一個經典的子方向是探索如何在目標檢測中提升有效感受野。這里不得不提deformable系列算法。這一系列算法提出了deformable convolution,能在3×3卷積時事先預測采樣點的offset,然后用偏移過的采樣點去采樣輸入,顯著地改變了網絡的神經元的感受野,性能上帶來了飛躍式的提升。
圖3 Effective Receptive Fields(ERF)
對于更深入理解檢測任務中的有效感受野及DCN系列算法的有效性,我們進行了各種剖析性的分析,發現了一些有意思的事實。
比如我們可視化res50網絡最后一層的一個神經元關于它輸入的神經連接強度的分布圖。橫軸代表的是輸入相對于輸出神經元的相對像素的位置,縱軸代表連接強度。所謂連接強度就是輸入跟輸出上每有一個channel,每有一條連接的邊,我們就認為它是1,把這些邊求和即表示為連接強度。從圖3可以看出,分類里所用的網絡結構的理論感受野雖然很大,但連接稠密的區域實際上是很小的。
圖4 Density of connnections of last layers of R50 on the input map
Deformable convolution能有效地改善感受野,于是我們在R50上對其進行了一些實驗。DCN的做法是對其輸入采樣的9個點各自預測h和w方向的一個offset進行采樣。我們把它分解成多個子結構offset,分別是中心位置的偏移和每一個點在h和w方向的dilation以及它最后的local偏移。我們發現每個點只預測dilation的兩維數據就能得到3.2的提升,由此意識到dilation是deformable中相對關鍵的一步。
圖5 Delve into DCN
我們又做了一個有意思的實驗,就是我們把res50中的dilation-1換成2或3,發現連接強度的分布圖產生了一個顯著的變化。比如說它中間被壓得越來越平,但是兩邊拖得越來越寬。因此我們得到了兩個結論,dilation能顯著地改變神經網絡的有效感受野,其次,DCN中真正起作用的部分是通過改變dilation增大了有效感受野。
但是很遺憾deformable有一個小的缺點,這個缺點導致它在工業界的應用比較少:它是很難部署的,且對很多硬件不是很友好,很多加速庫難以對其進行優化。究其原因,可以認為有這樣幾個因素:1. 同樣的feature map上不同的點的dilation不一樣。2. 同一個feature map的同一個點,當輸入不同的時候,dilation也是不一樣的。3. 預測的offset都是分數形式,在前傳的時候涉及雙線性差值。
如果我們希望能在工業上廣泛使用,只有做到全局、靜態且整數的dilation才可以。于是有了我們組ICCV 2019的工作,將DCN變成一個實際應用中可部署的網絡。
圖6 POD: Scale-Sensitive Practical Object Detection
我們設計了一個global dilation學習器,為神經網絡的每個convolution學到靜態的global dilation。其次,把空間上的插值替換成channel上的插值,在保證連接強度幾乎一致的情況下做到了只用整形dilation就代替了浮點數dilation,拋棄了帶來額外耗時的雙線性差值操作。我們的方法可以對多種多樣的現成網絡結構進行調整,取得性能上的顯著提升,并保證網絡是完全可部署的。
NAS也是在目標檢測里比較火熱的一個角度。有越來越多的人嘗試在目標檢測中去使用NAS。例如efficientNet,提出了一種網絡從小到大的scale up的一種方式。NAS-fpn則是在Neck的基礎上用采樣的方式去搜索。SpineNet提出不顯式考慮backbone和Neck而把它們融為一體,看做一個單輸入多輸出的黑盒。
圖7 NAS in Object Detection
Part 2 論文解讀
1 超大規模真實世界目標檢測的多標簽和不均衡的現象的解決方案
首先總結這種超大規模的目標檢測的特點:它的類別非常多,場景也是非常復雜且多樣的,同時標注質量很成問題,很容易會出現標注缺失;另一個現象是真實場景下,物體很容易出現語義上的重疊;最后,一個大規模各種數據庫都會有的就是長尾效應。我們從中間抽象出兩個主要的矛盾來解決,一個就是類別分布問題,第二個就是長尾問題。
傳統做法是使用softmax。當只進行單標簽分類的時候并沒有什么問題,但是當使用多標簽的時候,對每一個正確的類別的得分,都希望它趨近于1的。但是使用傳統的softmax在遇到多個正標簽的時候,會互相產生壓制,會發現其梯度會希望其趨向于m/1,也就是當網絡預測產生了一個接近1的得分的時候,它損失函數的梯度更新反而會使得這個得分變小。
圖8 Pain Point with Multi-Label Object Detection
本工作對softmax進行了修改,有效地改善了這個問題。我們首先對顯式多標簽的情況進行優化,保證從logits計算得分時,多個顯式標簽不互相影響,其次我們對于隱式多標簽情況根據類別間的依賴關系,使用rij弱化了彼此之間的競爭關系。舉例,一個目標實例是玩具車,類別上同時有玩具和有車的標簽,在計算這個玩具的得分的時候,車的分數就在分母上被屏蔽掉了,這兩者之間就不會產生互相壓制了。
圖9 A Solution: Concurrent Softmax
在數據庫上長尾效應是非常嚴重的,可能會有上百萬或者上千萬個框,但實際上整個數據庫里像高壓鍋這一類可能只有十幾個框。所謂的soft balance實際上就是把non-balance和class-ware balance進行平滑。我們的網絡先用non balance的方式先訓練,再用soft balance方式去finetune,這兩種方式結合在一起對性能有很大的提升。
論文地址:https://arxiv.org/abs/2005.08455
2 Revisiting the Sibling Head in Object Detector
學術上使用的benchmark與實際應用有一定的區別,實際的應用中會面臨到更多的挑戰,比如說要面對的object的類別會更多,同時它的分布可能會有長尾分布,可能會有更嚴重的遮擋,甚至于更復雜的背景。想要把這些挑戰進行統一,就需要更接近于實際的更大規模的數據,OpenImage這樣的數據是目前在學術的標準場景下能拿到的更接近于現實應用的數據。在這樣的大規模數據集下就出現了很多的挑戰,也是很多之前算法的痛點問題。
回顧一下分類任務和檢測任務它們的區別。對于分類任務來講,我們可以理解為它是一個single task的任務,它的目標就是給出一張圖,需要去預測這張圖里的類別。而對于檢測任務來講,在預測物體的類別的同時,還需要去回歸出來物體所在的具體位置。可以理解為這是一個多任務學習的過程。不同的task之間的優化目標是不一致的,這就造成了這兩個不同的優化目標之間,在共同訓練的時候會帶來一定的沖突。
圖10 The challenges of large-scale visual detection task
更進一步,分類任務需要的信息跟回歸任務也是有所區別的。比如說對于分類任務,可能只需要關注當前圖像里語義信息更豐富的地方,就能判斷出當前物體的類別。而對于回歸任務來講,需要更精確的去看到這個物體的邊界信息,才能得到一個更準確的邊界框。
在這樣的沖突背景下,本工作通過實驗驗證了這個現象。我們發現對于分類任務來講,它更關注的是物體語義信息更豐富的地方。而對于回歸任務來講,其更關注的是更邊界的地方。
這樣的背景下,我們很自然地去想到要去減少這一沖突。一個直接的想法就是要把兩個task從輸入和特征提取上都進行解耦。解耦之后就很自然的得到下面的優化過程。
首先,對于分類任務和回歸任務要用不同的proposal,會根據原始的P去衍生出兩個任務適用的候選區:Pc、Pr。我們希望的是Pc能夠幫助分類任務來更多的關注到信息與信息豐富的地方,而Pr能夠去幫助回歸任務,來更多的關注到物體邊界信息所在的地方。
其次,需要從特征提取進行解耦,針對于分類任務的設置成Fc,針對于回歸任務的設置成Fr。在這樣很明確的優化條件設計下,我們就可以把這一思想嵌入到Faster-RCNN的head里。
圖11 TSD (Task-aware spatial disentanglement)
如何由原始P得到Pc和Pr呢?實際上這里也可以直接用一種非常簡單的偏移量方式。通過原始P計算delta c的偏移量,把它變到Pc。通過delta r的偏移量,把它變到對于回歸任務比較友好的Pr。對于偏移量的生成,實際上可以通過三層的Fc這樣一個非常小的單元來進行實現,它帶來的參數量消耗非常小。更進一步,為了能夠保證得到更好的Pc以及Pr,我們又進一步加了漸進約束:PC,它用來約束的生成的Pc和Pr是優于原始P的。
在得到整套的設計之后,也可以跟其他相關的研究去分析。首先是比如經典的IOU net,double head以及Cascade RCNN,它們的做法實際上都是為了能夠讓檢測變得更好,讓回歸更準確。
圖12 TSD (Task-aware spatial disentanglement)
我們的方法與這些方法最大的區別就是TSD不僅是在這兩個不同的task之間進行了特征提取的解耦,同時它對于兩個不同的任務的輸入上也進行了區分,也就是說在輸入上就最大限度地讓兩個任務分別各自去尋找最適合自己的那一部分信息。這里是最大的區別,也能夠有效地讓兩個task之間的conflict減少,從而得到更好的性能提升。
圖13 Experiments
更進一步來說,TSD算法與當前的這些方法都是具備一定的互補性的,也就是說他們是可以有效的直接用TSD這樣一個head去替換掉這些方法里的head,來進行即插即用的使用。
為了更方便的表示,本工作把TSD做成一個即插即用的head去代替傳統的head,在不同的backbone都進行了實驗,可以發現從小模型到更大一些的模型,它都能夠比較有效穩定的在額外的計算的cost不超過10%的情況下,帶來一個3~4個點的穩定提升。為了驗證它在不同的數據,不同規模的數據集之間的有效性,我們在更大規模的數據集上進行了實驗。可以看到在大規模的數據集下,在不同的backbone上,它仍然可以穩定帶來3~4個點的提升。
圖14 Experiments
最后再來分析一下,前邊通過Pc和Pr針對不同任務提取各自適合的區域,最終使分類和回歸精度同步提升。在不同的IOU的測試標準下,驗證了它性能的提升幅度,可以發現當IOU限制得越嚴格,例如到0.9的幅度下漲點更明顯,它能夠在不同標準下把檢測器的性能回歸得更加準確。最后我們也在標準的數據集上跟一些SOTA方法進行了對比,并且backbone性能越強,TSD帶來的提升也會更高,提升也是非常穩定的。
圖15 Experiments
本工作發現在Faster-RCNN的head里,由于它的multi-task機制,不同task優化目標有區別,所以造成這兩個task之間有一定的沖突。因此我們很自然的想到從輸入和特征提取上去解耦這兩個task,提出了TSD算法。同時為了保證TSD能夠對于解耦學習的更好,也進一步加入了PC約束,能夠讓保證TSD能夠穩定有效的去提升不同的backbone的性能。
論文地址:https://arxiv.org/pdf/2003.07540.pdf
Part 3 Q&A
Q:Dilated改的是conv6中3*3卷積的膨脹率嗎?
A:事實上任何一個conv都更改了膨脹率。我們會設計一個網絡學習每一個conv最適合的膨脹率,所以會給所有conv都加上學習器,如果結果跟1接近,就不會去使用該conv,而保留偏差值超過0.1的conv。
Q:如何定義超大規模?
A:首先在數量上要達到百萬或千萬級別,同時類別也要達到很大的規模。
Q:Pc和Pr是通過學習到一個偏移量來進行區分嗎?那兩者的數據分布是否不太會發生本質上的變化?
A:設計時考慮到了先驗信息,對于分類任務,我們更多關注的是一個物體分類的置信度高低;對于回歸任務,考慮的是準確框的準確度,有規則的形狀。在設計時Pc和Pr都是通過學習到偏移量來設計的,Pc的偏移量是不受約束的,proposal的每個位置都可以有一個偏移量,導致得到的信息提取的過程是不規則的位置。Pr使用了統一的偏移量,要求偏移后的proposal還是規則的形狀,方便回歸任務的學習。數據分布的會有一定的變化,分類任務更多關注到信息更豐富的地方,而回歸任務關注到邊界。
Q:TSD PC機制會使原始頭效果會受到抑制么?
A:PC loss時對原始頭沒有影響,在整套訓練下來效果不會有變化,會與baseline保持一樣的性能。
Q:目標檢測的時候,如何平衡COCO數據集中的小目標和大目標的檢測?
A:它們的不平衡體現在幾個方面:首先采樣就無法達到平衡,小尺度的feature map和大物體的正負比例不同;小目標匹配的anchor數很少;大尺度可以獲得很多參數和計算量,但小尺度無法獲得;小尺度的權重需要同時適應上層的問題,也需要解決自己的問題。可以從這四分方面的不平衡上予以考慮。
「商湯泰坦公開課」公眾號后臺回復“011”,即可獲取相應的課程資料哦!
-
11月2日,為期七天的計算機視覺頂會ICCV 2019落幕。商湯科技以57篇論文(11篇Oral),13項冠軍的成績創造新“高度”(詳見文章《商湯科技57篇論文入選ICCV 2019,13項競賽奪冠》),讓世界見證商湯研究技術積累的“厚度”,在大會現場也能切身感受商湯AI+行業應用落地的“廣度”2019-11-03
-
近日,由阿里巴巴集團、商湯科技及香港科技園公司攜手成立的香港人工智能及數據實驗室(HKAI Lab)在香港科學園正式開幕。商湯科技創始人、香港中文大學教授湯曉鷗、阿里巴巴集團首席技術官張建鋒和香港科技園公司行政總裁黃克強分別發表了講話,祝愿HKAI Lab能夠助力香港初創人工智能企業生態發展。2018-10-18