概述
目標(biāo)檢測(cè)損失函數(shù)的選擇在目標(biāo)檢測(cè)問(wèn)題建模中至關(guān)重要。通常,目標(biāo)檢測(cè)需要兩個(gè)損失函數(shù),一個(gè)用于對(duì)象分類,另一個(gè)用于邊界框回歸(BBR)。本文將重點(diǎn)介紹 IoU 損失函數(shù)(GIoU 損失、DIoU 損失和 CIoU 損失、ProbIoU)。首先來(lái)了解一下什么是最原始的IoU定義
什么是IOU(并交比)
對(duì)象檢測(cè)中的 mAP(平均精度)指標(biāo)是根據(jù) IoU(交集超過(guò)并集)進(jìn)行評(píng)估的。因此,BBR使用基于 IoU 的損失函數(shù)來(lái)實(shí)現(xiàn)計(jì)算mAP,mAP的典型計(jì)算公式與表示如下:
但是這種最原始的IoU并交比的損失計(jì)算方式是有缺陷的,如當(dāng)預(yù)測(cè)框與真實(shí)框沒(méi)有相交的時(shí)候,IoU損失就是0,這樣就導(dǎo)致了沒(méi)有梯度,導(dǎo)致訓(xùn)練的效果就會(huì)打折許多。
改進(jìn)之GIoU
于是有個(gè)聰明的人發(fā)現(xiàn),這樣可以稍微避免這種問(wèn)題的發(fā)生,就是把預(yù)測(cè)框與真實(shí)框(A與B)合起來(lái)求最小的外接矩形,就變成了如下:
對(duì)應(yīng)的GIoU的計(jì)算公式就改成了:
下圖是分別基于L2與L1損失相同的情況下,IoU跟GIoU有明顯的差異比較。
加入懲罰項(xiàng)因子以后,對(duì)于沒(méi)有重疊的預(yù)測(cè)也可以實(shí)現(xiàn)邊界框回歸了,從而改善了IoU的缺陷。論文給出的實(shí)驗(yàn)結(jié)果如下:
改進(jìn)之DIoU與CIoU
作者把IoU損失看成是一個(gè)通用的公式如下:
其中R是懲罰性因子,這樣R=0的時(shí)候就是普通的IoU損失,從而把IoU損失改進(jìn)看成是尋找好的懲罰性因子,然后作者通過(guò)一通神的思考以后給出了下面的懲罰性因子公式:
這樣 DIoU就出來(lái)
這樣是不是梯度會(huì)大一些,回歸起來(lái)會(huì)更猛一點(diǎn),效果會(huì)更好點(diǎn)。但是作者說(shuō)好的BBR應(yīng)該考慮三個(gè)指標(biāo)分別是重疊、中心位置距離、橫縱比,DIoU只考慮前面兩個(gè),還有最后一個(gè)還沒(méi)有考慮到,所以還可以改進(jìn),改進(jìn)之后才是完整的IoU損失(CIoU),然后就得到了另外一個(gè)懲罰性因子公式跟對(duì)應(yīng)的CIoU損失:
然后作者給出了實(shí)驗(yàn)結(jié)果:
說(shuō)明CIoU開(kāi)掛了,所以YOLOv8默認(rèn)就是CIoU。
ProbIoU
ProbIoU可以實(shí)現(xiàn)OBB旋轉(zhuǎn)對(duì)象映射到GBB、然后實(shí)現(xiàn)預(yù)測(cè)框與真實(shí)框的回歸IoU損失功能,然后基于協(xié)方差矩陣,計(jì)算巴氏距離以后,再基于BD實(shí)現(xiàn)損失計(jì)算
跟原始的IoU比較,有明顯的改善:
然后它自己說(shuō)靠譜,所以YOLOv8的旋轉(zhuǎn)對(duì)象檢測(cè)就采用了ProbIoU來(lái)做BBR。
審核編輯:劉清
-
MAP
+關(guān)注
關(guān)注
0文章
49瀏覽量
15144
原文標(biāo)題:對(duì)象檢測(cè)邊界框損失 – 從IOU到ProbIOU
文章出處:【微信號(hào):CVSCHOOL,微信公眾號(hào):OpenCV學(xué)堂】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論