現在來更加了解準確度這件事吧!
在前面有講過 IoU ,它是用來跟標準框比較的準則,當它的值(0~1)大於設定的臨界值,偵測到目標物件的機率就較高;相反的,如果 IoU 低於臨界值,那筆資料就有可能被捨棄。
接著再認識 GIoU、DIoU 和 CIoU!
考慮到檢測框和 ground truth 沒有出現重疊的時候,IoU 的 loss 都是一樣的,因此 GIoU 就加入了 C檢測框,這樣就可以解決檢測框和真實框沒有重疊的問題。但是當檢測框和 ground truth 之間出現包含
的現象的時候 GIoU 就和 IoU loss 是同樣的效果了!
C 檢測框是包含了檢測框和 ground truth 的最小矩形框
DIoU 考慮到 GIoU 的缺點,也是增加了 C 檢測框,將 groud truth 和預測框都包含進來,但是 DIoU 計算的不是框之間的交集,而是計算的每個檢測框之間的"歐氏距離",這樣就可以解決 GIoU 出現的問題。
歐式距離:是最易於理解的一種距離計算方法,源自 n 維空間中兩點間的距離公式。
DIoU 利用計算兩個中心點的距離達到加速收斂的效果,但尚未解決能夠更好重疊的這個問題。
在論文中,預測 bbox 的三個重要因素為:重疊面積、中心點距離、長寬比。
IoU 考慮了重疊區域,GIoU 解決了非重疊時的收斂問題,DIoU 則是考慮了重疊區域和中心點距離,所以 CIoU 就基於 DIoU 多考量一個長寬比
。
CIoU 的 loss 函數定義如下,跟 DIoU 相比多增加一個 αv,α 是用來平衡比例的權重參數,而 v 是用來度量長寬比的相似度。
這就是 IoU 一路進化到 CIoU 的過程!