前言:
在目標檢測的任務中,一樣的損失函數可能有不同的IOU值,如下圖(L2作為損失函數)

上圖三張圖有一樣的L2距離,但是IoU值卻完全不同。坐標表示方法為(x1,y1,x2,y2)。
下圖為L1距離。坐標表示方法為(x,y,w,h),x,y為中心點坐標。

科普一下L1與L2距離,明白的請跳過:

IOU有它的優點也有它的缺點:
優點:
IOU作為距離時(比如:作為損失函數時L=1−IOU),是一個度量。它包含了作為度量的非負性,不確定性對稱性和三角不等性等所有屬性。
IoU有尺度不變性,也就是說任意兩個方框A和B的相似性與他們的空間尺度大小無關。
缺點:
1.如果兩個目標沒有重疊,IoU將會為0,此時兩個方框距離無論遠近,IOU都無法體現,如果IoU用作於損失函數,梯度為0,無法優化。
2.IoU無法區分兩個對象之間不同的對齊方式。更確切地講,不同方向上有相同交叉級別的兩個重疊對象的IoU會完全相等。如下圖

於是GIOU應運而生:
對於任意的A、B框,首先找到一個能夠包住它們的最小方框C。然后計算C \ (A ∪ B) 的面積與C的面積的比值,注:C \ (A ∪ B) 的面積為C的面積減去A∪B的面積。再用A、B的IoU值減去這個比值得到GIoU。


GIoU作為度量時的性能:GIoU作為距離時,L=1−GIoU,具有非負性,不確定性,對稱性以及三角不等性,尺度不變性。
GIoU始終是IoU的下限,即GIoU(A,B) <= IoU(A,B)。當A,B形狀相似,並且接近時,GIoU(A,B)接近=IoU(A,B)
其范圍是-1 ≤ GIoU(A,B) ≤ 1。A,B完全重合時,GIoU(A,B) = IoU(A,B) = 1。(A∪B)/C→0 時,也就是A∪B的面積相對於C框很小很小時,GIoU收斂於-1。
GIoU考慮到了 IoU 沒有考慮到的非重疊區域,能夠反應出 A,B 重疊的方式。

IoU和GIoU做為邊框損失函數時的算法流程:


————————————————————————————————————————
本文基於CSDN博主「景唯acr」的博文進行了知識擴展以及增刪操作
原文鏈接:https://blog.csdn.net/weixin_41735859/article/details/89288493
