新演算法 | 基於DIou改進的YOLOv3目標檢測
- 2020 年 3 月 10 日
- 筆記
新框架
作者定義了本文提出的基於DIoU、CIoU損失函數如下:
其中
表示預測框
和
間的懲罰項。
Distance-IoU Loss
論文提出了能減少兩個box中心點間的距離的懲罰項,
和
分別表示
和
的中心點。
是歐氏距離,
是最小包圍兩個bbox的框的對角線長度,Loss完整公式定義如下:
因此DIoU中對anchor框和目標框之間的歸一化距離進行了建模。直觀的展示如下圖所示:

DIoU loss的懲罰項能夠直接最小化中心點間的距離,而GIoU loss意在減少外界包圍框的面積 DIoU loss保留了IoU loss和GIoU loss的一些優點:
- DIoU loss與尺寸無關的,不會大尺寸產生大的loss,小尺寸產生小的loss那樣;
- 類似於GIoU loss,DIoU loss能夠為無交集的bbox提供梯度方向;
- 當bbox完全重合時,
,當bbox很遠時,
。
在模擬實驗中,發現DIoU loss也有一些獨有的特點:
- DIoU loss可以直接最小化兩個目標框的距離,因此比GIoU loss收斂快得多;
- 對於包含兩個框在水平方向和垂直方向上這種情況,DIoU損失可以使回歸非常快,而GIoU損失幾乎退化為IoU損失;
- DIoU還可以替換普通的IoU評價策略,應用於NMS中,使得NMS得到的結果更加合理和有效。
Complete IoU loss
DIoU Loss 只是考慮了邊界框的重疊面積和
與
中心點距離,然而anchor框和目標框之間的w,h比的一致性也是極其重要的。基於此,作者提出了Complete-IoU Loss。其損失函數定義如下:

上述損失函數為CIoU的損失,通過公式可以很直觀的看出,CIoU比DIoU多出了
和
這兩個參數。其中
是權重函數。v用來衡量anchor框和目標框之間的長寬比的相似性。
由
定義可以看出來,損失函數會更加傾向於往重疊區域增多方向優化:
最後,CIoU loss的梯度類似於DIoU loss,但還要考慮
的梯度。w,h取值範圍[0,1]的情況下,
的值通常很小,會導致梯度爆炸,因此在實現時將
替換成1。
Non-Maximum Suppression using DIoU
在原始的NMS中,IoU指標用於抑制多餘的檢測框,但由於僅考慮了重疊區域,經常會造成錯誤的抑制,特別是在bbox包含的情況下。因此,可以使用DIoU作為NMS的標準,不僅考慮重疊區域,還考慮了中心點距離。(基於DIoU作為NMS標準,雖然多了距離這個維度去考慮問題,但和NMS面對的同樣的情況是當兩個不同的目標本身就靠的很近的時候還是會造成錯誤的抑制)
其中
是分類置信度,
為NMS閾值,
為最高置信度的框。DIoU-NMS傾向於中心點距離較遠的box存在不同的對象,而且僅需改幾行程式碼,DIoU-NMS就能夠很簡單地集成到目標檢測演算法中。

實驗結果

在YOLOv3上進行實驗對比,DIoU loss和CIoU的效果都很顯著,mAP分別提升3.29%和5.67%,而AP75則分別提升6.40%和8.43%,而使用DIoU-NMS則能進一步提升,幅度達到5.91%和9.88%
SSD on PASCAL VOC

基於IoU指標,在SSD-FPN上進行實驗對比,因為本身模型已經精度很好了,DIoU loss和CIoU的效果不是很顯著,但仍有提升。mAP分別提升0.59%和0.84%,而AP75則分別提升1.77%和2.59%,而使用DIoU-NMS則能進一步提升效果。
Faster R-CNN on MS COCO


在Faster R-CNN ResNet-50-FPN上,由於Faster R-CNN本身提供的bbox品質都比較高,因此,GIoU的優化都很小,但此時DIoU和CIoU則表現了不錯的優化效果。注意到,CIoU在小物體上的性能都有所下降,可能由於長寬比對小物體的檢測貢獻不大,因為此時中心點距離比aspect ratio更重要。

上圖對GIoU和CIoU的結果進行了可視化,可以看到,在中大型物體檢測上,CIoU的結果比GIoU要準確。
Discussion on DIoU-NMS

DIoU-NMS能夠更好地引導bbox的消除

最後作者進行了比較實驗,原NMS和DIoU-NMS分別移植到了yolov3和ssd模型,同時使用CIou loss。在閾值的範圍內比較了原始NMS和DIoU-NMS
[0.43,0.48]。從圖9中可以看出,對於每個閾值,DIoU-NMS都優於原始NMS。此外,值得注意的是,即使是最糟糕的DIoU-NMS也是要優於最優的原始NMS。

總結
論文提出了兩種新的IoU-based損失函數,DIoU loss和CIoU loss:DIoU loss最小化bbox間的中心點距離,從而使得函數快速收斂;CIoU loss則在DIoU loss的基礎上加入長寬比的考量,能夠進一步地快速收斂和提升性能。另外論文提出DIoU-NMS來代替原生的NMS,充分地利用IoU的特性進行優化,從實驗結果來看,效果也是很好的。
論文地址:https://arxiv.org/pdf/1911.08287.pdf

