AAAI 2020 | DIoU和CIoU:IoU在目標檢測中的正確打開方式

2020-02-10   AI科技評論

作者 | 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. [商湯] 新弱監督目標檢測框架