GFocal_loss簡單總結
文章的主題很突出,針對一階段目標檢測領域的兩個現存的表示問題進行分析,並提出合理的解決方案
問題1:
用法不一致,訓練時分類與回歸的head各自分開訓練各自的,但是在推理的時候因為NMS的score,又把分類分數和框質量的分數相乘,或許會有一定的gap
對象不一致,訓練分類時采用focal loss使用了負樣本+正樣本,但框相關的僅僅使用正樣本來訓練,這樣會產生一種情況,即預測的框中存在負樣本,這種類型在訓練時未參與框質量的評估,但分數可能較高,甚至超過一些正樣本,這樣對結果會有影響
問題2:
框分布的表示問題,通常采用的dirac delta分布比較嚴格,后續的高斯分布也比較模糊,無法靈活的建模復雜場景下(例如下圖大象的遮擋)真實框的分布。
問題1的解決方案:
聯合分類分數和框質量分數,采用QFL(魔改版的Focal loss)。
式中σ為預測結果,y為標簽,β為超參
作者原話:從物理上來講,我們依然還是保留分類的向量,但是對應類別位置的置信度的物理含義不再是分類的score,而是改為質量預測的score
問題2的解決方案:
使用通用分布表示框的分布,並使用積分形式表示,可以內嵌到(smooth l1 loss、iou loss等中);
由dirac delta分布轉為通用分布的形式:
原dirac delta:
現general : 離散化后
常見分布的各種指標對比如下表格:
注意的地方是推理目標,原先是x,現在是P(x)x的積分形式,具體實現時並把連續回歸形式變為離散回歸形式(使用softmax實現)
因同一目標的通用分布有很多中表示形式,如圖,
為了盡快的擬合到真實分布,使用DFL(希望網絡快速聚焦到鄰近區域的分布中)
積分區域為y0到yn,y為標簽點,yi以及yi+1為靠近真是位置的左右鄰近,Si為softmax后的結果。
后續
把兩個結合起來形成GFL:
最終檢測任務的損失函數如下:
由QFL、DFL以及bbox的giou loss,加上權重組成。