1. 程式人生 > 實用技巧 >Object-Detection-Loss

Object-Detection-Loss

目錄

Smooth L1 Loss

作用

  1. 當預測框與 ground truth 差別過大時,梯度值不至於過大;
  2. 當預測框與 ground truth 差別很小時,梯度值足夠小。

數學公式


損失函式對X的導數分別為:

  1. 方程 (4),當x增大時 L2 損失對x的導數也增大。這就導致訓練初期,預測值與 groud truth 差異過於大時,損失函式對預測值的梯度十分大,訓練不穩定。
  2. 方程 (5),L1x 的導數為常數。這就導致訓練後期,預測值與 ground truth 差異很小時, L1 損失對預測值的導數的絕對值仍然為 1,而 learning rate 如果不變,損失函式將在穩定值附近波動,難以繼續收斂以達到更高精度。

優點

smoothL1x 較小時,對 x 的梯度也會變小,而在 x 很大時,對 x 的梯度的絕對值達到上限 1,也不會太大以至於破壞網路引數。 smoothL1 完美地避開了 L1 L2 損失的缺陷。其函式影象如下:

缺點

  1. 上面的三種Loss用於計算目標檢測的Bounding Box Loss時,獨立的求出4個點的Loss,然後進行相加得到最終的Bounding Box Loss,這種做法的假設是4個點是相互獨立的,但實際上他們是有一定相關性
  2. 但是大多數選取最終的結果使用的都是IOU進行過濾,這兩者是不等價的,多個檢測框可能有相同大小的smoothL1 Loss,但IOU可能差異很大,為了解決這個問題就引入了IOU LOSS。

IOU Loss

為了改變smoothL1 Loss 的缺陷, 提出了IOU Loss.

paper

https://www.docin.com/p1-2417843306.html

演算法介紹


優點

  1. IoU損失將位置資訊作為一個整體進行訓練,而L2損失卻把它們當作互相獨立的四個變數進行訓練,因此IoU損失能得到更為準確的訓練效果;
  2. 輸入任意樣本,IoU的值均介於[0, 1]之間,這種自然的歸一化損失使模型具有更強的處理多尺度影象的能力。

GIOU Loss

IoU Loss 有兩個缺陷:

  1. 預測框bbox和ground truth bbox如果沒有重疊,IOU就始終為0並且無法優化。也就是說損失函式失去了可導的性質。
  2. IOU無法分辨不同方式的對齊,例如方向不一致等,如下圖所示,可以看到三種方式擁有相同的IOU值,但空間卻完全不同

    如上圖所示,三種不同相對位置的框擁有相同的IoU=0.33值,但是擁有不同的GIoU=0.33,0.24,-0.1。當框的對齊方向更好一些時GIoU的值會更高一些。

paper

https://www.docin.com/p-2417843307.html

演算法介紹

為了解決以上問題, 提出了GIOU

優點

  1. GIoU和IoU一樣,可以作為一種距離的衡量方式,
  2. GIoU具有尺度不變性
  3. 對於兩個矩形框A和B,0≤GIoU(A,B)≤IoU(A,B)≤1,當A->B時, 兩者相等,此時GIoU等於1, 當A 和B 不相交時, GIoU等於-1
  4. 在A,B沒有良好對齊時,會導致C的面積增大,從而使GIoU的值變小,而兩個矩形框不重合時,依然可以計算GIoU,一定程度上解決了IoU不適合作為損失函式的原因

DIOU And CIOU Loss

GIOU缺陷:

  1. 當目標框完全包裹預測框的時候,IoU和GIoU的值都一樣,此時GIoU退化為IoU, 無法區分其相對位置關係, 如下圖所示:

Paper

https://www.docin.com/p1-2417846189.html

演算法介紹

為了解決上述問題,作者提出了兩個問題:

  1. 直接最小化預測框與目標框之間的歸一化距離是否可行,以達到更快的收斂速度
  2. 如何使迴歸在與目標框有重疊甚至包含時更準確、更快。

並且指出好的目標迴歸損失應該考慮三個重要的幾何因素:重疊面積,中心點距離,長寬比
針對問題一,作者提出了Distance-IoU Loss,相對於GIoU Loss收斂速度更快,該Loss考慮了重疊面積和中心點距離,但沒有考慮到長寬比;
針對問題二,作者提出了Complete-IoU Loss,其收斂的精度更高,且將以上三個因素都考慮到了。

通常基於IoU-based的loss可以定義為:

DIoU(Distance-IoU)

演算法


其中:\(\rho^2\) 代表的是歐式距離,其中\(b^2和b^{gt}\) 分別表示預測框與真實框的中心點, c表示預測框與真實框的對角線距離,如下圖所示:

優點

  1. 當兩個框完全重合時, \(L_{IoU} = L_{GIoU} = L_{DIoU} = 0\) ,當2個框不相交時\(L_{GIoU} = L_{DIoU}\)->2
  2. DIoU Loss可以直接優化2個框直接的距離,比GIoU Loss收斂速度更快
  3. 對於目標框包裹預測框的這種情況,DIoU Loss可以收斂的很快,而GIoU Loss此時退化為IoU Loss收斂速度較慢

CIOU Loss(Complete-IoU)

CIoU的懲罰項是在DIoU的懲罰項基礎上加了一個影響因子\(\alpha\nu\) ,這個因子把預測框長寬比擬合

其中 \(\alpha\) 是用於做trade-off的引數,定義為:

\(\nu\)是用來衡量長寬比一致性的引數,定義為:

演算法

優點

  1. 增強長寬比限制, 使得迴歸儘可能保持相似的長寬比,在完全包含的時候能夠更快的擬合真實框。

Reference:

https://zhuanlan.zhihu.com/p/104236411
https://www.zhihu.com/question/58200555