目標檢測回歸損失函數(shù)總結
作者丨何杰文@知乎(已授權)
來源丨h(huán)ttps://zhuanlan.zhihu.com/p/422104433
編輯丨極市平臺
導讀
本文總結了6個目標檢測回歸損失函數(shù)的優(yōu)缺點以及對其公式的分析,
演進路線:Smooth L1->IoU->GIoU->DIoU->CIoU->EIOU Loss
Smooth L1 Loss
【動機】 Smooth L1 Loss完美的避開了L1和L2 Loss的缺點
L1 Loss的問題:損失函數(shù)對x的導數(shù)為常數(shù),在訓練后期,x很小時,如果learning rate 不變,損失函數(shù)會在穩(wěn)定值附近波動,很難收斂到更高的精度。
L2 Loss的問題:損失函數(shù)對x的導數(shù)在x值很大時,其導數(shù)也非常大,在訓練初期不穩(wěn)定。
【分析】
SmoothL1對x的導數(shù)為:
實際使用時:
其中表示真實框坐標,表示預測的框坐標,即分別求4個點的loss,然后相加作為Bounding Box Regression Loss。
三種loss的曲線圖如圖所示,可以看到Smooth L1相比L1的曲線更加的Smooth
【不足】 Smooth L1 Loss在計算目標檢測的 bbox loss時,都是獨立的求出4個點的 loss,然后相加得到最終的 bbox loss。這種做法的默認4個點是相互獨立的,與實際不符。舉個例子,當(x, y)為右下角時,w h其實只能取0。
IoU Loss(2016)
論文地址:https://arxiv.org/pdf/1608.01471.pdf
【動機】 針對smooth L1沒有考慮box四個坐標之間相關性的缺點,
【分析】 通過4個坐標點獨立回歸Building boxes的缺點:
檢測評價的方式是使用IoU,而實際回歸坐標框的時候是使用4個坐標點,如下圖所示,是不等價的;L1或者L2 Loss相同的框,其IoU 不是唯一的;
通過4個點回歸坐標框的方式是假設4個坐標點是相互獨立的,沒有考慮其相關性,實際4個坐標點具有一定的相關性;
基于L1和L2的距離的loss對于尺度不具有不變性;
圖(a)中的三組框具有相同的L2 Loss,但其IoU差異很大;圖(b)中的三組框具有相同的L1 Loss,但IoU 同樣差異很大,說明L1,L2這些Loss用于回歸任務時,不能等價于最后用于評測檢測的IoU.
Ious Loss公式
IoU Loss定義如下:
實際使用中簡化為:
【不足】
當預測框和目標框不相交,即 IoU(bbox1, bbox2)=0 時,不能反映兩個框距離的遠近,此時損失函數(shù)不可導,IoU Loss 無法優(yōu)化兩個框不相交的情況。
假設預測框和目標框的大小都確定,只要兩個框的相交值是確定的,其 IoU 值是相同時,IoU 值不能反映兩個框是如何相交的。
GIOU Loss(2019)
論文地址:https://arxiv.org/abs/1902.09630
代碼地址:https://github.com/generalized-iou/g-darknet
【動機】 解決IoU Loss沒有考慮兩個框是如何相交
【分析】
GIoU定義如下:
實際使用時:
GIoU 取值范圍為 [-1, 1],在兩框重合時取最大值1,在兩框無限遠的時候取最小值-1;
與 IoU 只關注重疊區(qū)域不同,GIoU不僅關注重疊區(qū)域,還關注其他的非重合區(qū)域,能更好的反映兩者的重合度。
【實驗】 GIoU Loss,在單階段檢測器YOLO v1漲了2個點,兩階段檢測器漲點相對較少(原因分析:RPN的box比較多,兩個框未相交的數(shù)量相對較少)
【不足】 當真實框完全包裹預測框的時候,IoU 和 GIoU 的值都一樣,此時 GIoU 退化為 IoU, 無法區(qū)分其相對位置關系。
DIoU Loss(2019)
論文地址:https://arxiv.org/pdf/1911.08287.pdf
代碼鏈接:https://github.com/Zzh-tju/DIoU
【動機】 解決GIoU Loss缺點當真實框完全包裹預測框的時候,IoU 和 GIoU 的值都一樣,引入距離
【分析】
基于IoU和GIoU存在的問題,作者提出了兩個問題:
第一:直接最小化預測框與目標框之間的歸一化距離是否可行,以達到更快的收斂速度。
第二:如何使回歸在與目標框有重疊甚至包含時更準確、更快。
好的目標框回歸損失應該考慮三個重要的幾何因素:重疊面積,中心點距離,長寬比。
針對問題一,作者提出了DIoU Loss,相對于GIoU Loss收斂速度更快,該Loss考慮了重疊面積和中心點距離,但沒有考慮到長寬比;
針對問題二,作者提出了CIoU Loss,其收斂的精度更高,以上三個因素都考慮到了。
DIoU Loss 的定義如下:
其中表示預測框和真實框中心點歐氏距離,c表示預測框和真實框最小外界矩形的對角線距離,如下圖所示:
綠色框為真實框,黑色框為預測框,灰色框為兩者的最小外界矩形框,d表示真實框和預測框的中心點距離,c表示最小外界矩形框的距離。
當2個框完全重合時,
當2個框不相交時:
【不足】 邊框回歸的三個重要幾何因素:重疊面積、中心點距離和長寬比,DIoU 沒有包含長寬比因素。
CIoU Loss(2019)
論文地址:https://arxiv.org/pdf/1911.08287.pdf
代碼地址:https://github.com/Zzh-tju/DIoU-darknet
【動機】 解決DIoU loss沒有包含長寬比因素的不足
【分析】
CIoU的懲罰項是在DIoU的懲罰項基礎上加了一個影響因子。
CIoU Loss定義為:
其中 ,
用于做trade-off的參數(shù)
【實驗】
上表中左邊是用5種不同Boudning Box Regression Loss Function的對比,右邊是以IoU和GIoU來計算的2種Evaluation的結果;GIoU相對IoU會有2.49點提升,DIoU相對IoU會有3.29點提升,CIoU會有大概5.67點提升,CIoU結合DIoU-NMS使用效果最好,大概會有5.91點提升。
【不足】 在CIoU的定義中,衡量長寬比過于復雜,從兩個方面減緩了收斂速度
EIoU Loss(2021)
論文地址:https://arxiv.org/pdf/2101.08158.pdf
【動機】 解決CIoU的定義中不足
【亮點】 引入了解決樣本不平衡問題的Focal Loss思想
【分析】
將CIoU的 取代為
EIoU Loss的定義為:
Focal-EIoU Loss的定義為:
focal loss可以理解為對損失加權,常見的分類focal loss為:
最后得到:
【實驗】 論文首先嘗試直接將EIoU帶入,但是效果不好,僅供思路參考,
總結:
好的目標框回歸損失應該考慮三個重要的幾何因素:重疊面積,中心點距離,長寬比, 對邊框間的物理描述愈發(fā)準確。
注意,使用時各種Loss算法的各個模塊之間的配合,例如IoU Loss與NMS算法的組合。
本文僅做學術分享,如有侵權,請聯(lián)系刪文。
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯(lián)系工作人員刪除。
led顯示器相關文章:led顯示器原理
色差儀相關文章:色差儀原理