目標檢測框回歸問題


本文轉自知乎,作者mileistone,已獲作者授權轉載,請勿二次轉載。

https://zhuanlan.zhihu.com/p/330613654

目標檢測模型訓練的時候有兩個任務,框分類(框里是什么)和框回歸(框在哪),本文主要講第二點。

框回歸可以分為兩大類,基於x,y,w,h的回歸(比如Faster R-CNN、YOLO、RetinaNet里框回歸的loss),基於IoU的回歸(比如IoU loss、GIoU loss、DIoU loss、CIoU loss)。

基於x,y,w,h的回歸

基於x,y,w,h的回歸,可以細分為x、y(GT框的中心)的回歸和w、h的回歸。

w、h的回歸

Faster R-CNN、YOLO、RetinaNet的w、h回歸方式大體相同。假設 、  為擬合目標,  、  為網絡預測值,  為GT框的寬,  為樣本對應anchor框的寬,  為GT框的寬,  為GT框對應的anchor框的高,  為  、  、  等。




其中通過anchor的歸一化和取log,可以一定程度增加  和  對框scale的invariance。

x、y的回歸

x、y的回歸方式可以分為兩類,一類以YOLO為代表,一類以Faster R-CNN和RetinaNet為代表。后者x、y的回歸方式與它們對w、h的回歸方式相同,不再贅述。

YOLO中x、y的回歸方式比較奇特。假設  、  為擬合目標,  、  為網絡預測值,  為對應head輸出feature map的寬,  為對應head輸出feature map的高。

 為GT框中心的x坐標,  為GT框中心的y坐標,  為GT框匹配上的grid cell的x坐標,  為GT框匹配上的grid cell的y坐標,x坐標的范圍縮放到化到  ,y坐標的范圍縮放到到  。




對scale進行reweight

關於x、y、w、h的回歸,YOLO還會對不同scale的框回歸loss進行reweight,減小大scale的框回歸loss,增大小scale的框回歸loss,Fatser R-CNN和RetinaNet沒這么做。總體而言,YOLO里很多操作都是比較特立獨行的,不過在論文里講得很少,只有看作者的C代碼實現才能發現。

基於IoU的回歸

IoU loss有兩個所謂的優點,一個是“Given the choice between optimizing a metric itself vs. a surrogate loss function, the optimal choice is the metric itself”,另一個是IoU loss對框的scale具有invariance特性,大家覺得這個對於框回歸而言非常必要。

IoU loss關注預測框與GT框的IoU,而其他基於IoU loss的變體,關注的點除了IoU 之外還有:

1、預測框與GT框並集占據預測框與GT框最小包絡框的比例(越大越好);

2、歸一化(以預測框和GT框最小包絡框的對角線為分母)的預測框中心與GT框中心距離(越小越好);

3、預測框長寬比與GT框長寬比的相似程度(越大越好)。

GIoU loss關注了1,DIoU loss關注了2,CIoU loss關注了2和3。

GIoU loss緩解了IoU loss在預測框和GT框之間IoU為0,梯度為0的問題。實驗中GIoU收斂比較慢,DIoU緩解了GIoU這個問題;CIoU基於DIoU,添加了一個關於長寬比的懲罰項。

一些想法

1、the optimal choice is the metric itself?

將IoU作為loss是不是真的如論文中所說“Given the choice between optimizing a metric itself vs. a surrogate loss function, the optimal choice is the metric itself”。

這句話很對,但是IoU只是整體metric(比如mAP)中的一部分,這一個部分達成了“optimizing a metric itself”,問題是局部最優不一定能達到全局最優,這個問題導致IoU loss提出來之后,后續大家打了一個接一個的補丁(比如GIoU、DIoU、CIoU),甚至PP-YOLO發現把基於x、y、w、h的回歸和基於IoU的回歸結合起來效果更好。

事情並不如IoU提出來的時候想的那么美好。

相信后面還會有更多的補丁。一個問題在於無論是IoU也好,還是后面提出來的其他懲罰項也好,既緩解了一部分問題,也帶來了新的問題;另一個問題是,整體地“optimizing a metric itself”這個命題聽起來很美好,但是基本不可實現:想象很美好,現實很骨感。

后面我們大概率會從不同角度提出更多的懲罰項,這里會帶來一個問題,當懲罰項越來越多的時候,如何平衡各個懲罰項loss,進而如何平衡框回歸與框分類loss,里面會涉及到很多超參。

2、對框scale的invariance特性

框回歸問題中,對框scale具有invariance是否一定是優點呢?我想不盡然,因為不同scale的框之間可能存在不平衡,在這種條件下,對框scale具有invariance可能不一定是最好的,我們可能需要做一些reweight。

3、anchor free

這里我們沒提到anchor free的目標檢測框回歸計算方式,但是思路是類似的,基於上述的思路,可以很自然地想到anchor free目標檢測器里框回歸會如何設計。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM