【深度学习】一种关注于重要样本的目标检测方法!
作者:宋志龍,浙江工業大學,Datawhale成員
在目標檢測中訓練模型時,樣本間往往有差異性,不能被簡單地同等對待。這次介紹的論文提出了一種重要樣本的關注機制,在訓練過程中幫助模型分辨哪些是重要的樣本,從而優化整個訓練過程。
論文標題:Prime Sample Attention in Object Detection
論文鏈接:https://arxiv.org/pdf/1904.04821.pdf
背景
論文是基于anchor的目標檢測中正負樣本采樣的。首先來一起回顧下整個過程。
以經典two-stage目標檢測網絡Faster-rcnn為例,如圖所示,過程大致為:
圖片輸入經過backbone得到feature_map,
然后經過RPN網絡得到proposal,
再將proposal進行1:3的正負樣本的采樣,
將采樣后的正負樣本送入rcnn階段進行分類和回歸。
圖中藍框區域就是本文要研究的內容:
問題分析
在這樣一個正負樣本采樣階段,目前主流的算法都是怎么做的?
Faster-rcnn,將采樣后的正負樣本直接送入rcnn階段進行分類和回歸;
ohem,將loss大的proposal視為難例,在采樣的時候優先采樣這些樣本;
focal_loss,通過兩個超參數調節不同難易程度樣本的loss。
還有很多別的關于正負樣本采樣的研究,這里不一一列舉,但是目前來看,大部分關于這部分的優化,都是想要去優化難例樣本,也就是說,一個proposal在訓練的時候貢獻的loss越大,越需要去優化,但是這樣真的是對的嗎?或者說,對于模型來說,這些難例樣本真的是最重要的嗎?
這里我們舉一個例子,看一下本文認為什么是重要的樣本,如下圖所示:
左圖:白色虛線表示ground truth,紅色框表示本文認為的重要樣本(prime sample),藍框為難例樣本。
右圖:不同采樣策略下模型的PR曲線,random表示平等對待各個樣本,hard表示重點關注難例樣本,prima表示重點關注重要樣本。
可以看到,基于prime sample的采樣策略能夠更好地提升檢測器的性能,原因是什么呢?
我們以左圖為例,對于左圖來說,對于這樣一個檢測結果,往往我們希望去優化藍框,因為它的loss更大,這是可以理解的。
但是對于這樣一個圖片,已經有更好的紅框了,其實是沒有必要去優化藍框的,因為最終藍框只要比紅框得分低,它就會被后處理NMS干掉,從而不對檢測指標有貢獻,因此,此時,與其去優化藍框,不如進一步優化紅框,使其更加精確。換句話說,紅框才是更重要的。
重新審視mAP
以COCO計算mAP的過程為例,大致分為以下四步:
以間隔0.05對在0.5~0.95內采樣iou閾值
在每個iou閾值下,計算PR曲線,得到AP值
將所有iou閾值下的AP值平均得到mAP(m--mean iou)
所有類別的mAP進行平均得到總的mAP(m--mean ?class)
接下來我們看一下,從mAP的指標上來看,哪些正負樣本是更重要的?
1. 正樣本
文章中說,對于單一gt bbox來說,與其重疊的所有預測邊界框中,具有最高IoU的bbox最為重要。以圖左邊這個目標為例:
對于白色虛線gt來說,預測邊界框有bbox A, bbox B,bbox C,那么bbox C是最重要的,其原因在于它和gt的IOU是最高的,倘若不考慮每個框的置信度以及NMS的影響,當計算AP50的時候,ABC都可以被認為檢測到gt。
但是當計算AP70的時候,只有C表示檢測到了gt,而此時A、B雖然表示沒有檢測到gt,但是有C檢測到了,就不影響recall了,所以C是直接影響召回的,因此它是最重要的。
對于多目標gt bbox來說,在所有針對不同對象的IoU最高bbox中(圖中bbox C和bbox D),具有更高IoU的bbox(圖中bbox D)更為重要。以圖中兩個目標為例:
依舊類比單目標的思路,這里假設要計算AP50,那么兩個目標分別被C和D很好的檢測到,但是要計算AP90,就只有D貢獻recall了,要計算AP95,那整張圖的mAP直接到0,也就是說,隨著mAP計算過程中IOU閾值的增大,最后還是靠D一直在頂著,因此它是最重要的。
2. 負樣本
以圖為例,負樣本是沒有IOU的概念的,只有置信度得分,在nms之后,每一簇負樣本中(藍色的一簇,紅色的一簇)分數最高的被保留下來,因為它們背景區域被檢測為某類別正樣本的負樣本,所以被預測為某類別分數越高代表其錯的越厲害,也就是越重要。越重要也就是越需要重點關注去優化,但是與優化正樣本不一樣,對負樣本的優化是希望高分數能夠降下來。
PISA算法
基于以上內容,我們再來看一下PISA這篇論文是怎么做的,其實主要內容上面已經說了,就是為了得到高的mAP,分析出哪些正負樣本對mAP指標的提高是最重要的。因此,下面主要就涉及兩方面內容,第一,如何去找重要的樣本?第二,對重要程度不同的樣本分別做什么操作?
一、查找重要樣本--HLR
(1)IOU-HLR,對正樣本進行分層排序
排序的過程圖中表示地比較清楚,總結一下就是,對于單一目標附近的樣本(ABC, DE),首先根據IOU在組內排序(CAB,DE),然后對不同類別同一順位的樣本排序(DC, AE, B),最后將排序后的樣本重新組合。這么做既考慮了組內重要性,又考慮了組間重要性。
這里有一個簡單的小實驗,簡單驗證了本方法的有效性:
圖中展示的是,不同IOU閾值下的PR曲線,top5/top25表示按照IOU-HLR排序方法排序后得到的top5/top25的重要樣本。兩點結論,第一,關注重要樣本,的確能提升AP。第二,關注重要樣本,對高IOU閾值下的AP增益更大。
(2)Score-HLR,對負樣本進行分層排序
這個過程跟正樣本差不多,不同的是正樣本依據的是IOU,負樣本依據的是Score,都能跟前面的分析照應。
二、算法實現
1. ISR
在對所有樣本重要性進行排序之后,怎么跟訓練過程聯系起來呢?
這里采用的方法叫做ISR(Importance-based Sample Reweighting),即基于樣本重要性重新賦予權重。
分為以下幾個步驟:
(1) 首先將每個類別的樣本分組(N個前景類別+1個背景類別),n_max表示在每個類別中樣本數最多的數目,在每個組內對正樣本進行IoU-HLR操作,對負樣本進行Score-HLR操作,得到重要性排序。
然后按照公式(1)將重要性排序進行線性變換,r_i表示某樣本排序后的次序,r_i越小表示排序越靠前,可以看到r_i越小,u_i越大。
(2)再按照公式(2)將u和每個樣本的權重w建立聯系,為不同重要性的樣本賦予不同的權重,其中β和γ是超參數。
(3)最后將重新賦值的權重應用到分類損失的計算上。
其中i表示正樣本,j表示負樣本,這里為了保證應用ISR之后不改變總的loss值,對ISR之后的每個樣本的權重進行了歸一化。
2. CARL
在為不同的樣本根據重要性排序結果賦予不同權重之后,本來進而提出了CARL(Classification-Aware Regression Loss),來解決分類和回歸不一致的問題,也就是有時候回歸的好,但是分類分數差之類的問題。因為我們計算mAP的時候,不僅需要高的IOU閾值,更要高的分類置信度,畢竟NMS會首先保留下來分數最好的檢測結果。
其做法如公式(4)所示,就是將分類置信度p_i引入到回歸損失中,經過推倒可以證明,回歸損失L(d_i, ^d_i)和L_carl對p_i的倒數是正相關的,回歸損失較大的樣本的分類分數會被抑制,這樣讓樣本的回歸結果指導分類分支,加強分類和回歸的一致性。
實驗結果
1. PISA應用在不同檢測器時,在COCO和VOC測試集上帶來的增益。
可以看到,基本都有漲點,尤其是對高IOU閾值下的AP指標(AP75)漲點較多。
2. 消融實驗
表3中,R表示平等對待所有樣本,H表示關注難例樣本,P表示關注主要樣本。
表4中,ISP-R/ISR-N分別表示為正/負樣本基于重要性重新賦予權重。CARL指分類和回歸分支聯合調優的應用。
3. 超參數搜索實驗
表5為公式(2)和公式(4)的超參數搜索實驗結果。
4.ISR對樣本分數的影響
橫坐標表示樣本的重要性順序,縱坐標表示樣本分數。
可以看到,ISR-P能夠提升重要性排名靠前的正樣本的分數,且抑制重要性排名靠后的樣本的分數。
ISR-N也的確能夠抑制負樣本的分數,且重要性排名越靠前,其分數被抑制的越多。
5. CARL對樣本分數的影響
圖8展示了應用CARL之后,不同IOU下樣本分數均值的變化,可以看到,CARL能夠提升高IOU下重要樣本得分,低IOU閾值下樣本得分會被抑制,也就是說,有了更好的,不那么好的就可以考慮丟了呀。
6. 可視化結果
從可視化結果可以看到,PISA能夠使模型更關注于重要樣本的優化,使得檢測結果中有更少的假陽,且真陽的分數更高。
以上解讀僅代表個人觀點,水平有限,歡迎交流~
論文下載:https://arxiv.org/pdf/1904.04821.pdf
解讀視頻:https://www.bilibili.com/video/BV1664y1b7qf
學習交流:后臺回復“210717”可進群交流
本文來自由周郴蓮負責的Datawhale論文分享項目「Whalepaper」,NLP、CV、Res…每周一起解讀論文!
Whalepaper介紹及加入方式:https://datawhale.feishu.cn/docs/doccnAbq5hJPaVB645IztpFPdld
往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯溫州大學《機器學習課程》視頻 本站qq群851320808,加入微信群請掃碼:總結
以上是生活随笔為你收集整理的【深度学习】一种关注于重要样本的目标检测方法!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【深度学习】Transformer长大了
- 下一篇: 谷歌Chrome浏览器正式上新Andro