Object-Detection-Loss
Smooth L1 Loss
作用
- 當預測框與 ground truth 差別過大時,梯度值不至於過大;
- 當預測框與 ground truth 差別很小時,梯度值足夠小。
數學公式
損失函式對X的導數分別為:
- 方程 (4),當
x
增大時L2
損失對x
的導數也增大。這就導致訓練初期,預測值與 groud truth 差異過於大時,損失函式對預測值的梯度十分大,訓練不穩定。 - 方程 (5),
L1
對x
的導數為常數。這就導致訓練後期,預測值與 ground truth 差異很小時,L1
損失對預測值的導數的絕對值仍然為 1,而 learning rate 如果不變,損失函式將在穩定值附近波動,難以繼續收斂以達到更高精度。
優點
smoothL1
在 x
較小時,對 x
的梯度也會變小,而在 x
很大時,對 x
的梯度的絕對值達到上限 1,也不會太大以至於破壞網路引數。 smoothL1
完美地避開了 L1
和 L2
損失的缺陷。其函式影象如下:
缺點
- 上面的三種Loss用於計算目標檢測的Bounding Box Loss時,獨立的求出4個點的Loss,然後進行相加得到最終的Bounding Box Loss,這種做法的假設是4個點是相互獨立的,但實際上他們是有一定相關性
- 但是大多數選取最終的結果使用的都是IOU進行過濾,這兩者是不等價的,多個檢測框可能有相同大小的
smoothL1
Loss,但IOU可能差異很大,為了解決這個問題就引入了IOU LOSS。
IOU Loss
為了改變smoothL1 Loss
的缺陷, 提出了IOU Loss.
paper
https://www.docin.com/p1-2417843306.html
演算法介紹
優點
- IoU損失將位置資訊作為一個整體進行訓練,而L2損失卻把它們當作互相獨立的四個變數進行訓練,因此IoU損失能得到更為準確的訓練效果;
- 輸入任意樣本,IoU的值均介於[0, 1]之間,這種自然的歸一化損失使模型具有更強的處理多尺度影象的能力。
GIOU Loss
IoU Loss 有兩個缺陷:
- 預測框bbox和ground truth bbox如果沒有重疊,IOU就始終為0並且無法優化。也就是說損失函式失去了可導的性質。
- IOU無法分辨不同方式的對齊,例如方向不一致等,如下圖所示,可以看到三種方式擁有相同的IOU值,但空間卻完全不同
如上圖所示,三種不同相對位置的框擁有相同的IoU=0.33值,但是擁有不同的GIoU=0.33,0.24,-0.1。當框的對齊方向更好一些時GIoU的值會更高一些。
paper
https://www.docin.com/p-2417843307.html
演算法介紹
為了解決以上問題, 提出了GIOU
優點
- GIoU和IoU一樣,可以作為一種距離的衡量方式,
- GIoU具有尺度不變性
- 對於兩個矩形框A和B,0≤GIoU(A,B)≤IoU(A,B)≤1,當A->B時, 兩者相等,此時GIoU等於1, 當A 和B 不相交時, GIoU等於-1
- 在A,B沒有良好對齊時,會導致C的面積增大,從而使GIoU的值變小,而兩個矩形框不重合時,依然可以計算GIoU,一定程度上解決了IoU不適合作為損失函式的原因
DIOU And CIOU Loss
GIOU缺陷:
- 當目標框完全包裹預測框的時候,IoU和GIoU的值都一樣,此時GIoU退化為IoU, 無法區分其相對位置關係, 如下圖所示:
Paper
https://www.docin.com/p1-2417846189.html
演算法介紹
為了解決上述問題,作者提出了兩個問題:
- 直接最小化預測框與目標框之間的歸一化距離是否可行,以達到更快的收斂速度
- 如何使迴歸在與目標框有重疊甚至包含時更準確、更快。
並且指出好的目標迴歸損失應該考慮三個重要的幾何因素:重疊面積,中心點距離,長寬比。
針對問題一,作者提出了Distance-IoU Loss,相對於GIoU Loss收斂速度更快,該Loss考慮了重疊面積和中心點距離,但沒有考慮到長寬比;
針對問題二,作者提出了Complete-IoU Loss,其收斂的精度更高,且將以上三個因素都考慮到了。
通常基於IoU-based的loss可以定義為:
DIoU(Distance-IoU)
演算法
其中:\(\rho^2\) 代表的是歐式距離,其中\(b^2和b^{gt}\) 分別表示預測框與真實框的中心點, c表示預測框與真實框的對角線距離,如下圖所示:
優點
- 當兩個框完全重合時, \(L_{IoU} = L_{GIoU} = L_{DIoU} = 0\) ,當2個框不相交時\(L_{GIoU} = L_{DIoU}\)->2
- DIoU Loss可以直接優化2個框直接的距離,比GIoU Loss收斂速度更快
- 對於目標框包裹預測框的這種情況,DIoU Loss可以收斂的很快,而GIoU Loss此時退化為IoU Loss收斂速度較慢
CIOU Loss(Complete-IoU)
CIoU的懲罰項是在DIoU的懲罰項基礎上加了一個影響因子\(\alpha\nu\) ,這個因子把預測框長寬比擬合
其中 \(\alpha\) 是用於做trade-off的引數,定義為:
\(\nu\)是用來衡量長寬比一致性的引數,定義為:
演算法
優點
- 增強長寬比限制, 使得迴歸儘可能保持相似的長寬比,在完全包含的時候能夠更快的擬合真實框。
Reference:
https://zhuanlan.zhihu.com/p/104236411
https://www.zhihu.com/question/58200555