目標檢測--IoU,GIoU,DIoU和CIoU三種目標檢測loss


https://zhuanlan.zhihu.com/p/94799295
https://zhuanlan.zhihu.com/p/366744055
https://zhuanlan.zhihu.com/p/359982543

Iou

GIou



DIou



CIou




IoU:使用最廣泛的檢測框loss。

GIoU:2019年CVPR Generalized Intersection over Union: A Metric and A Loss for Bounding Box Regression

DIoU和CIoU:2020年AAAI Distance-IoU Loss: Faster and Better Learning for Bounding Box Regression
下面我們直接一句話總結一下這四種算法的優缺點:

  1. IoU算法是使用最廣泛的算法,大部分的檢測算法都是使用的這個算法。

  2. GIoU考慮到,當檢測框和真實框沒有出現重疊的時候IoU的loss都是一樣的,因此GIoU就加入了C檢測框(C檢測框是包含了檢測框和真實框的最小矩形框),這樣就可以解決檢測框和真實框沒有重疊的問題。但是當檢測框和真實框之間出現包含的現象的時候GIoU就和IoU loss是同樣的效果了。

  3. DIoU考慮到GIoU的缺點,也是增加了C檢測框,將真實框和預測框都包含了進來,但是DIoU計算的不是框之間的交並,而是計算的每個檢測框之間的歐氏距離,這樣就可以解決GIoU包含出現的問題。

  4. CIoU就是在DIoU的基礎上增加了檢測框尺度的loss,增加了長和寬的loss,這樣預測框就會更加的符合真實框。

這些只是我看的重點,詳細的還需要大家去閱讀論文看一下效果。

IOU

IOU可以作為距離,loss=1-IOU。但是當兩個物體不相交時無回傳梯度。 (缺陷)
IOU對尺度變化具有不變性,即不受兩個物體尺度大小的影響。
以A,B兩個box重合的情況為例,若boxes1=[[0,0,10,10],[0,0,5,5]],boxes2=[[0,0,10,10],[0,0,5,5]],此時IOU=[1,1]
IOU的缺點:
無法衡量兩框是相鄰還是甚遠
如下圖2所示,兩種情況下IOU均為0,(a)中兩框距離較近,(b)中兩框明顯距離要遠,但是僅從IOU數值上無法判斷兩者距離較近還是較遠(兩個物體不相交時無回傳梯度)
IOU不能反映兩個物體如何重疊(相交方式)。
如下圖3所示,兩種情況下的IOU均為0.1428,(a)中兩框要比(b)中的相交更整齊一些,但是IOU並沒有反映出這個特點。

為了解決這個問題,衍生出了GIOU


GIOU是為克服IOU的缺點同時充分利用優點而提出的

1.假設A為預測框,B為真實框,S是所有框的集合
2.不管A與B是否相交,C是包含A與B的最小框(包含A與B的最小凸閉合框),C也屬於S集合
3.首先計算IoU,A與B的交並比
4.再計算C框中沒有A與B的面積,比上C框面積;
5.IoU減去前面算出的比;得到GIoU
6.Note:本文提出的例子中A、B均是矩形框,但是也可以為其他的。比如:A、B為橢圓形,那么此時C將是包含A、B的最小橢圓形;或者A、B均是3D box也可。


GIoU最主要的作用:
(1)對於相交的框,IOU可以被反向傳播,即它可以直接用作優化的目標函數。但是非相交的,梯度將會為0,無法優化。此時使用GIoU可以完全避免此問題。所以可以作為目標函數
(2)可以分辨框的對齊方式


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM