從L1 loss到EIoU loss,目標檢測邊框回歸的損失函數一覽


從L1 loss到EIoU loss,目標檢測邊框回歸的損失函數一覽

smilehan 我愛計算機視覺 昨天

圖片

 

本文轉載自知乎,已獲作者授權轉載。

鏈接:https://zhuanlan.zhihu.com/p/342991797

 

目標檢測任務的損失函數由Classificition Loss和BBox Regeression Loss兩部分構成。本文介紹目標檢測任務中近幾年來Bounding Box Regression Loss Function的演進過程。

其演進路線是 Smooth L1 Loss 圖片 IoU Loss 圖片 GIoU Loss 圖片 DIoU Loss 圖片 CIoU Loss 圖片 EIoU Loss,本文按照此路線進行講解。

 

L1/L2 Loss

 

L1/L2 Loss 的定義

此前回歸一般采用 圖片 Loss,定義如下:

圖片

L1/L2 Loss 的缺點

但是這兩者存在一些缺點:

  • L1 Loss 對 x 的導數為常數,由於 x 代表真實值與預測值的差值,故在訓練后期,x 很小時,如果學習率不變,損失函數會在穩定值附近波動,難以收斂到更高精度;

  • L2 Loss 在 x 值很大時,其導數非常大,故在訓練初期不穩定。

 

Smooth L1 Loss

 

Smooth L1 Loss 的定義

針對 圖片 Loss 存在的缺點,修正后得到 圖片 [1]

圖片

圖片 在 x 較小時為 L2 Loss,在 x 較大時為 L1 Loss,揚長避短。應用在目標檢測的邊框回歸中,位置損失如下所示:

圖片

其中 圖片 表示 bbox 位置的真實值, 圖片 表示 bbox 位置回歸的預測值。

Smooth L1 Loss 的缺點

 

  • 圖片 在計算目標檢測的 bbox loss時,都是獨立的求出4個點的 loss,然后相加得到最終的 bbox loss。這種做法的默認4個點是相互獨立的,與實際不符。舉個例子,當(x, y)為右下角時,w h其實只能取0;

  • 目標檢測的評價 bbox 的指標是 IoU,IoU 與 圖片 的變化不匹配。

 

IoU Loss

 

IoU Loss 的定義

針對 圖片 Loss 的缺點,IoU Loss[2]如下:

圖片

實現時甚至簡化為:

圖片

IoU 計算讓 x, y, w, h 相互關聯,同時具備了尺度不變性,克服了 圖片 Loss 的缺點。

IoU Loss 的缺點

當然 IoU Loss 也並不完美:

  • 當預測框和目標框不相交,即 IoU(bbox1, bbox2)=0 時,不能反映兩個框距離的遠近,此時損失函數不可導,IoU Loss 無法優化兩個框不相交的情況。

  • 假設預測框和目標框的大小都確定,只要兩個框的相交值是確定的,其 IoU 值是相同時,IoU 值不能反映兩個框是如何相交的,如圖所示:

圖片
灰色框為真實框,虛線框為預測框。這兩者情況的IoU相同,但是這兩個框的匹配狀態不一樣。我們認為右邊框匹配的好一點,因為它匹配的角度更好。故下文定義了GIoU。

 

GIoU Loss

 

GIoU 的定義

承接上一小節提到的情況,IoU 不能區分一些相交的情況,故論文[3]提出GIoU作為度量指標。

圖片

GIoU 的實現方式如上式,其中 C 為 A 和 B 的外接矩形。用 C 減去 A 和 B 的並集除以 C 得到一個數值,然后再用 A 和 B 的 IoU 減去這個數值即可得到 GIoU 的值。可以看出:

  • GIoU 取值范圍為 [-1, 1],在兩框重合時取最大值1,在兩框無限遠的時候取最小值-1;

  • 與 IoU 只關注重疊區域不同,GIoU不僅關注重疊區域,還關注其他的非重合區域,能更好的反映兩者的重合度。

 

GIoU Loss 的定義

定義了 GIoU 之后,按照 IoU Loss 的思路定義 GIoU Loss:

圖片

GIoU Loss 的缺點

當目標框完全包裹預測框的時候,IoU 和 GIoU 的值都一樣,此時 GIoU 退化為 IoU, 無法區分其相對位置關系。

圖片
灰色框為真實框,綠色為預測框,上圖三種情況GIoU均相同,但是我們認為中間的預測框應該由於另外兩個框。

 

DIoU Loss

 

DIoU 的定義

針對 IoU和GIoU 的缺點,論文[4]總結提出了邊框回歸的三個重要幾何因素:重疊面積、中心點距離和長寬比,提出 DIoU和CIoU,本節先介紹 DIoU。

首先,論文[^ 4]總結了 IoU-based loss 的范式:

圖片

圖片 表示預測框與真實框的懲罰項,將懲罰項設置為:

圖片

其中 圖片 表示框的中心點, 圖片 表示歐氏距離,c 表示最小外接矩形的對角線距離,故 DIoU 如下所示:

圖片

DIoU 就是在 IoU 基礎上加入中心點歸一化距離,所以可以更好地表達兩個框的距離。同時,文章利用 DIoU 距離,設計了 DIoU-nms。

DIoU Loss 的定義

根據范式,DIoU Loss:

圖片

DIoU Loss 的缺點

邊框回歸的三個重要幾何因素:重疊面積、中心點距離和長寬比,DIoU 沒有包含長寬比因素。

 

CIoU Loss

 

CIoU 的定義

CIoU[^ 4] 在 DIoU 的基礎上,增加了長寬比影響因子 圖片 ,合並到懲罰項:

圖片

其中 v 用於衡量長寬比的一致性, 圖片 用於平衡 v 的值,設為:

圖片

CIoU Loss 的定義

圖片

v的導數:

圖片

 

CIoU Loss 的缺點

在CIoU的定義中,衡量長寬比的$v$過於復雜,從兩個方面減緩了收斂速度:

  • 長寬比不能取代單獨的長寬,比如 圖片 都會導致v=0;

  • 從v的導數可以得到 圖片 ,這說明 圖片 和 圖片 在優化中意義相反。

 

EIoU Loss

 

EIoU 的定義

論文[5]用 圖片 取代圖片 即可。

EIoU Loss的定義

圖片

Focal-EIoU Loss的定義

focal loss可以理解為對損失加權,常見的分類focal loss為 圖片 。本文首先嘗試直接將EIoU帶入,但是效果不好,最后得到:

圖片

 

Conclusion

 

總的來看,我認為目標檢測邊框回歸的損失函數設計應當遵循以下原則:

 

  • 應該按照邊框的物理含義定義邊框間的距離,以設計損失函數。從 圖片 到 圖片 ,對邊框間距離的物理描述愈發准確。

  • 注意算法各個模塊之間的配合,比如 DIoU 與 DIoU-nms 組合才能達到更好的效果。

 

參考資料:

[1]^Girshick R. Fast r-cnn[C]//Proceedings of the IEEE international conference on computer vision. 2015: 1440-1448.

[2]^Yu J, Jiang Y, Wang Z, et al. Unitbox: An advanced object detection network[C]//Proceedings of the 24th ACM international conference on Multimedia. 2016: 516-520.

[3]^Rezatofighi H, Tsoi N, Gwak J Y, et al. Generalized intersection over union: A metric and a loss for bounding box regression[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2019: 658-666.

[4]^Zheng Z, Wang P, Liu W, et al. Distance-IoU Loss: Faster and Better Learning for Bounding Box Regression[J]. arXiv preprint arXiv:1911.08287, 2019.

[5]^Focal and Efficient IOU Loss for Accurate Bounding Box Regression

END


免責聲明!

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



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