1. 程式人生 > >影象處理中的hard negative mining(難例挖掘)

影象處理中的hard negative mining(難例挖掘)

在目標檢測中我們會事先標記好ground_truth,接下來在圖片中隨機提取一系列sample,與ground_truth重疊率IoU超過一定閾值的(比如0.5),則認為它是positive sample,否則為negative sample,考慮到實際負樣本數>>正樣本數,我們為了避免network產生預測位負例的趨向,取正樣本數:負樣本數大約為1:3,顯而易見,用來訓練網路的負樣本為提取的負樣本的子集。

那麼負樣本中哪些是困難負樣本(hard negative)呢?困難負樣本是指哪些容易被網路預測為正樣本的proposal,即假陽性(false positive),如roi裡有二分之一個目標時,雖然它仍是負樣本,卻容易被判斷為正樣本,這塊roi即為hard negative,訓練hard negative對提升網路的分類效能具有極大幫助,因為它相當於一個錯題集。

如何判斷它為困難負樣本呢?也很簡單,我們先用初始樣本集(即第一幀隨機選擇的正負樣本)去訓練網路,再用訓練好的網路去預測負樣本集中剩餘的負樣本,選擇其中得分最高,即最容易被判斷為正樣本的負樣本為困難樣本,加入負樣本集中,重新訓練網路,迴圈往復,然後我們會發現:咦!我們的網路的分類效能越來越強了!假陽性負樣本與正樣本間也越來越相似了!(因為此時只有這些妖怪區域能迷惑我們的分類器了)。

完結!撒花!