作者 | VincentLee
編輯 | Camel
本文來源於微信公眾號:曉飛的算法工程筆記
本文對發表於 AAAI 2020 的論文《Distance-IoU Loss: Faster and Better Learning for Bounding Box Regression》進行解讀。
論文地址:https://arxiv.org/abs/1911.08287
代碼地址:https://github.com/Zzh-tju/DIoU
論文提出了IoU-based的DIoU loss和CIoU loss,以及建議使用DIoU-NMS替換經典的NMS方法,充分地利用IoU的特性進行優化。並且方法能夠簡單地遷移到現有的算法中帶來性能的提升,實驗在YOLOv3上提升了5.91mAP,值得學習。
一、簡介
1、IoU
IoU是目標檢測裡面很重要的一個指標,通過預測的框和GT間的交集與並集的比例進行計算,經常用於評價bbox的優劣 。但一般對bbox的精調都採用L2範數,而一些研究表明這不是最優化IoU的方法,因此出現了IoU loss。
2、IoU loss
IoU loss顧名思義就是直接通過IoU計算梯度進行回歸,論文提到IoU loss的無法避免的缺點:當兩個box無交集時,IoU=0,很近的無交集框和很遠的無交集框的輸出一樣,這樣就失去了梯度方向,無法優化。IoU loss的實現形式有很多種,除公式2外,還有UnitBox的交叉熵形式和IoUNet的Smooth-L1形式。
這裡論文主要討論的類似YOLO的檢測網絡,按照GT是否在cell判斷當前bbox是否需要回歸,所以可能存在無交集的情況。而一般的two stage網絡,在bbox regress的時候都會卡,不會對無交集的框進行回歸。
3、GIoU loss
GIou loss在IoU loss的基礎上增加一個懲罰項,為包圍預測框和的最小區域大小,當bbox的距離越大時,懲罰項將越大。
儘管GIoU解決了IoU的梯度問題,但他仍然存在幾個限制:
圖 1、邊界框回歸步驟GIoU損失(第一行)和DIoU損失(第二行)。綠色和黑色分別表示target框和anchor框。藍色和紅色分別表示GIoU損失和DIoU損失的預測框。GIoU損失一般會增加預測框的大小,使其與target框重疊,而DIoU損失則直接使中心點的歸一化距離最小化。
如圖1所示,在訓練過程中,GIoU傾向於先增大bbox的大小來增大與GT的交集,然後通過公式3的IoU項引導最大化bbox的重疊區域。
圖 2、在這種情況下,GIoU的loss會退化為IoU的loss,而DIoU的loss仍然可以區分。綠色和紅色分別表示目標框和預測框。
如圖2中的包含情況,GIoU會退化成IoU。
由於很大程度依賴IoU項,GIoU需要更多的疊代次數來收斂,特別是水平和垂直的bbox(後面會分析)。一般地,GIoU loss不能很好地收斂SOTA算法,反而造成不好的結果。
4、DIoU
綜合上面的分析,論文提出Distance-IoU(DIoU) loss,簡單地在IoU loss基礎上添加一個懲罰項,該懲罰項用於最小化兩個bbox的中心點距離。如圖1所示,DIoU收斂速度和效果都很好,而且DIoU能夠用於NMS的計算中,不僅考慮了重疊區域,還考慮了中心點距離。另外,論文考慮bbox的三要素,重疊區域,中心點距離和長寬比,進一步提出了Complete IoU(CIoU) loss,收斂更快,效果更好。
二、對 IoU Loss 和GIoU Loss 的分析
為了全面地分析IoU loss和GIoU的性能,論文進行了模擬實驗,模擬不同的距離、尺寸和長寬比的bbox的回歸情況。
1、Simulation Experiment
圖 3、Simulation Experiment
如圖3所示,實驗選擇7個不同長寬比(1:4, 1:3, 1:2, 1:1, 2:1, 3:1, 4:1)的單元box(area=1)作為GT,單元框的中心點固定在(7, 7),而實驗共包含5000 x 7 x 7個bbox,且分布是均勻的:
Distance:在中心點半徑3的範圍內均勻分布5000中心點,每個點帶上7種scales和7種長寬比;
Scale:每個中心點的尺寸分別為0.5, 0.67, 0.75, 1, 1.33, 1.5, 2 ;
Aspect ratio:每個中心點的長寬比為1:4, 1:3, 1:2, 1:1, 2:1, 3:1, 4:1。
給定一個loss函數,可以通過梯度下降來模擬bbox優化的過程。對於預測的bbox,為階段的結果,為對的梯度,使用來加速收斂。bbox的優化評價使用-norm,共訓練200輪,error曲線如圖3b所示
2、Limitations of IoU and GIoU Losses
圖 4
論文將5000個中心點上的bbox在最後階段的total error進行了可視化。IoU loss只對與target box有交集的bbox有效,因為無交集的bbox的為0。而GIoU由於增加了懲罰函數,盆地區域明顯增大,但是垂直和水平的區域依然保持著高錯誤率,這是由於GIoU的懲罰項經常很小甚至為0,導致訓練需要更多的疊代來收斂。
三、方法
一般而言,IoU-based loss可以定義為公式5,是預測box和的懲罰項。
1、Distance-IoU Loss
論文提出了能減少兩個box中心點間的距離的懲罰項,和分別表示和的中心點。是歐氏距離,是最小包圍兩個bbox的框的對角線長度。
DIoU loss的完全定義如公式7。
圖 5
DIoU loss的懲罰項能夠直接最小化中心點間的距離,而GIoU loss意在減少外界包圍框的面積 DIoU loss保留了IoU loss和GIoU loss的一些屬性:
DIoU loss依然是尺寸無關的,不會大尺寸產生大的loss,小尺寸產生小的loss那樣;
類似於GIoU loss,DIoU loss能夠為無交集的bbox提供梯度方向;
當bbox完全重合時,,當bbox很遠時,
在模擬實驗中,發現DIoU loss也有一些獨有的屬性:
如圖1和圖3所示,DIoU loss能夠直接最小化bbox的中心點距離。因此,他的收斂很快;
在包含的情況下,或垂直和水平的情況下,DIoU loss的收斂非常快,而GIoU loss則幾乎退化成了IoU loss。
2、Complete IoU loss
論文考慮到bbox回歸三要素中的長寬比還沒被考慮到計算中,因此,進一步在DIoU的基礎上提出了CIoU。其懲罰項如公式8,其中是權重函數,而用來度量長寬比的相似性。
完整的損失函數定義如公式10。
α 的定義如公式11,重疊區域能夠控制權重的大小。
最後,CIoU loss的梯度類似於DIoU loss,但還要考慮的梯度。在長寬在的情況下,的值通常很小,會導致梯度爆炸,因此在實現時將替換成1。
3、Non-Maximum Suppression using DIoU
在原始的NMS中,IoU指標用於抑制多餘的檢測框,但由於僅考慮了重疊區域,經常會造成錯誤的抑制,特別是在bbox包含的情況下。因此,可以使用DIoU作為NMS的標準,不僅考慮重疊區域,還考慮了中心點距離。
其中是分類置信度,為NMS閾值,為最高置信度的框。DIoU-NMS傾向於中心點距離較遠的box存在不同的對象,而且僅需改幾行代碼,DIoU-NMS就能夠很簡單地集成到目標檢測算法中。
四、實驗結果
1、YOLO v3 on PASCAL VOC
在YOLOv3上進行實驗對比,DIoU loss和CIoU的效果都很顯著,mAP分別提升3.29%和5.67%,而AP75則分別提升6.40%和8.43%,而使用DIoU-NMS則能進一步提升,幅度達到5.91%和9.88%。
2、SSD on PASCAL VOC
在SSD-FPN上進行實驗對比,因為本身模型已經精度很好了,DIoU loss和CIoU的效果不是很顯著,但仍有提升。mAP分別提升0.59%和0.84%,而AP75則分別提升1.77%和2.59%,而使用DIoU-NMS則能進一步提升效果。
3、Faster R-CNN on MS COCO
在Faster R-CNN ResNet-50-FPN上,由於Faster R-CNN本身提供的bbox質量都比較高(即在圖4的盆地),因此,GIoU的優化都很小,但此時DIoU和CIoU則表現了不錯的優化效果。注意到,CIoU在小物體上的性能都有所下降,可能由於長寬比對小物體的檢測貢獻不大,因為此時中心點比長寬比重要。
圖 6
圖6對GIoU和CIoU的結果進行了可視化,可以看到,在中大型物體檢測上,CIoU的結果比GIoU要準確。
4、Discussion on DIoU-NMS
圖 7
如圖7所示,DIoU-NMS能夠更好地引導bbox的消除。
圖 8
為了進一步驗證DIoU-NMS的效果,進行了對比實驗。如圖8所示,DIoU-NMS的整體性能都比原生的NMS效果要好。
五、總結
論文提出了兩種新的IoU-based損失函數,DIoU loss和CIoU loss:DIoU loss最小化bbox間的中心點距離,從而使得函數快速收斂;CIoU loss則在DIoU loss的基礎上加入長寬比的考量,能夠進一步地快速收斂和提升性能。另外論文提出DIoU-NMS來代替原生的NMS,充分地利用IoU的特性進行優化,從實驗結果來看,效果也是很好的。
AAAI 2020 報道:
新型冠狀病毒疫情下,AAAI2020 還去開會嗎?
美國拒絕入境,AAAI2020現場參會告吹,論文如何分享?
AAAI 最佳論文公布
AAAI 2020 論文集:AAAI 2020 論文解讀會 @ 望京(附PPT下載)
AAAI 2020上的NLP有哪些研究風向?
微軟 6 篇精選 AAAI 2020 論文
AAAI 2020 論文解讀系列:
01. [中科院自動化所] 通過識別和翻譯交互打造更優的語音翻譯模型
02. [中科院自動化所] 全新視角,探究「目標檢測」與「實例分割」的互惠關係
03. [北理工] 新角度看雙線性池化,冗餘、突發性問題本質源於哪裡?
04. [復旦大學] 利用場景圖針對圖像序列進行故事生成
05. [騰訊 AI Lab] 2100場王者榮耀,1v1勝率99.8%,騰訊絕悟 AI 技術解讀
06. [復旦大學] 多任務學習,如何設計一個更好的參數共享機制?
07. [清華大學] 話到嘴邊卻忘了?這個模型能幫你 | 多通道反向詞典模型
08. [北航等] DualVD:一種視覺對話新框架
09. [清華大學] 藉助BabelNet構建多語言義原知識庫
10. [微軟亞研] 溝壑易填:端到端語音翻譯中預訓練和微調的銜接方法
11. [微軟亞研] 時間可以是二維的嗎?基於二維時間圖的視頻內容片段檢測
12. [清華大學] 用於少次關係學習的神經網絡雪球機制
13. [中科院自動化所] 通過解糾纏模型探測語義和語法的大腦表征機制
14. [中科院自動化所] 多模態基準指導的生成式多模態自動文摘
15. [南京大學] 利用多頭注意力機制生成多樣性翻譯
16. [UCSB 王威廉組] 零樣本學習,來擴充知識圖譜(視頻解讀)
17. [上海交大] 基於圖像查詢的視頻檢索,代碼已開源!
18. [奧盧大學] 基於 NAS 的 GCN 網絡設計(視頻解讀)
19. [中科大] 智能教育系統中的神經認知診斷,從數據中學習交互函數
20. [北京大學] 圖卷積中的多階段自監督學習算法
21. [清華大學] 全新模型,對話生成更流暢、更具個性化(視頻解讀,附PPT)
22. [華南理工] 面向文本識別的去耦注意力網絡
23. [自動化所] 基於對抗視覺特徵殘差的零樣本學習方法
24. [計算所] 引入評估模塊,提升機器翻譯流暢度和忠實度(已開源)
25. [北大&上交大] 姿態輔助下的多相機協作實現主動目標追蹤
26. [快手] 重新審視圖像美學評估 & 尋找精彩片段聚焦點
27. [計算所&微信AI] 改進訓練目標,提升非自回歸模型翻譯質量(已開源)
28. [中科院&雲從科技]:雙視圖分類,利用多個弱標籤提高分類性能
29. [中山大學] 基於樹狀結構策略的漸進強化學習
30. [東北大學] 基於聯合表示的神經機器翻譯(視頻解讀)
31. [計算所]引入評估模塊,提升機器翻譯流暢度和忠實度(視頻解讀)
32. [清華大學]用於少次關係學習的神經網絡雪球機制(視頻解讀)
33. [計算所]非自回歸機器翻譯,基於n元組的訓練目標(視頻解讀)
34. [清華大學] 司法考試數據集(視頻解讀,附下載連結)
35. [自動化所] 弱監督語義分割(視頻解讀)
36. [自動化所] 稀疏二值神經網絡,不需要任何技巧,取得SOTA精度(視頻解讀)
45. [商湯] 新弱監督目標檢測框架
文章來源: https://twgreatdaily.com/zh-cn/GcnELXABgx9BqZZIw23j.html