目標檢測-Training with Online Hard Example Mining

1.解決的問題

圖像分類和目標檢測是計算視覺領域的兩個基礎任務,Region-based ConvNet將目標檢測問題轉化為圖像分類問題,使得目標檢測領域出現了巨大的技術突破,同時也引入了難以處理的heuristics和hyperparameters問題。OHEM(Online Hard Example Mining)算法的思想很簡單:在訓練數據集中往往存在大量的簡單樣本(easy examples)和少量的困難樣本(hard examples),easy examples對於模型的訓練貢獻較小,hard examples更加有助於提升模型訓練的效率和效果,OHEM算法將hard examples自動化的篩選出來運用到模型訓練中去,從而獲得較好的模型效果。

在RCNN、Fast RCNN算法中,訓練集標註數據和背景數據之間存在極大的不平衡狀況(負樣本數量遠遠大於正樣本數量, 即背景數據大於標註數據)。在sliding-window object detectors(如deformable parts model,DPM)中,負正樣本比例大約在10000:1;在object-proposal-based detectors中,負正樣本比例大約在70:1。如何處理樣本類別不平衡,並且得到更快的訓練速度和更高的訓練精度是一個技術領域的一個開放問題。

但是處理樣本不均衡的問題不是一個新的挑戰,20年前就存在一個標準的解決方法叫bootstrapping或者hard negative mining,該方法的核心思想如下:

Their key idea was to gradually grow, or bootstrap, the set of background examples by selecting those examples for which the detector triggers a false alarm. This strategy leads to an iterative training algorithm that alternates between updating the detection model given the current set of examples, and then using the updated model to find new false positives to add to the bootstrapped training set.

Bootstrapping的方法廣泛用於目標檢測領域,經常用於訓練目標檢測的SVM,也成功應用於淺層神經網絡、boosted決策樹等。甚至基於深度神經網絡的R-CNN和 SPPnet也採用hard negative mining訓練的SVM。

然而目前最新的Object Detector(比如Fast R-CNN以及變體)並沒有使用Bootstrapping,可能的原因是將Bootstrapping技術轉換為純在線學習算法是困難的,尤其是在幾百萬個樣本中進行SGD訓練深度卷積網絡的情況下。Bootstrapping有時需要固定模型尋找新樣本,有時需要固定樣本訓練模型,SGD訓練深度卷積網絡需要幾十萬次SGD迭代,在迭代中固定模型會極大的減慢訓練速度。

本文中提出了一種在線的bootstrapping算法online hard example mining(OHEM)用來訓練基於深度神經網絡的目標檢測模型。本文將OHEM應用於Fast RCNN,得到以下收益:

1) 移除了幾個region-based ConvNets常用的heuristics和hyperparameters;

2) 穩定、顯著的提升了目標檢測的mAP;

3) 數據集越大,數據難度越大,效果提升越明顯。如MS COCO數據集;

OHEM結合其它目標檢測改進策略(比如multiscale testing、iterative bounding-box regression等),OHEM在PASCAL VOC 2007和PASCAL VOC 2012上分別給出了78.9% and 76.3%的mAP。

2.Fast RCNN OverView

如下圖所示,Fast RCNN分為兩部分:Convolutional Network和ROI Network。Convolutional Network由許多Convolution Layer和Max Pooling Layer組成;ROI Network由一個RoI Pooling Layer、多個Fully Connected Layer和兩個Loss Layer組成。

在inference過程中,對Input Image使用Convolutional Network得到Feature Map;RoI-pooling層將每一個Object Proposal投影到Feature Map,然後提一個fixed-length的Feature Vector,將Feature Vector輸入給FC Layer,最終得到兩個輸入結果:1)softmax,所有類別和背景的概率分佈;2) bounding-box重定位的迴歸座標。

有許多原因使得我們把Fast RCNN作為base object detector:

1)Fast RCNN是一個快速的端到端的系統;

2)Conv and RoI兩個網絡的基礎設置也廣泛應用於其它detectors(比如SPPnet、MR-CNN);

3) FRCN允許Trainning整個Conv Network,而SPPnet、MR-CNN需要fix Conv Network;

4)SPPnet和MR-CNN需要緩存RoI network輸出的Feature,用來訓練SVM分類器;FRCN使用ROI Network本身來訓練期望的分類器,後文會證明在統一系統中使用SVM分類器是沒必要的。

目標檢測-Training with Online Hard Example Mining

2.1 Fast RCNN Training

FRCN採用SGD(stochastic gradient descent)的方法進行訓練。每個ROI的loss是classification log loss和localization loss和總和。classification log loss用於鼓勵準確預測目標的類別;localization loss用於預測精確的bounding box位置。

在訓練過程中,對於每一個mini-batch,首先從Dataset中選取N副圖片,每一幅圖片選取B/N個ROI,在實踐中,N=2,B=128。ROI採樣過程使用了許多heuristics,本文的重要貢獻是去除一些heuristicshyperparameters

Foreground RoIs:與Ground Truth Bounding Box的IOU>0.5的ROI被標記為Foreground;這是PASCAL VOC目標檢測基準數據集的評估標準,相同的標準也用在R-CNN、SPPnet、MR-CNN等模型中SVM的hard mining,本文也同樣使用該標準設置。

Background RoIs:與Ground Truth Bounding Box的IOU介於[bg_lo, 0.5]的ROI被標記為Background;在FRCN和SPPnet中,bg_lo=0.1。儘管這個heuristic可以提升Object檢測精度,但是它是次優的,因為它忽略了一些低頻、重要的、困難的背景區域。本文中的方法移除了該heuristic。

Balancing fg-bg RoIs:為了解決數據分類不平衡的問題,在每個mini-batch中,通過對background patches進行隨機採樣balance foreground-to-background ratio來保證Foreground RoIs的比率大於25%。foreground-to-background ratio是Fast RCNN中的一個重要的heuristic,移除或者修改foreground-to-background ratio,都會導致Fast RCNN的精度下降約3%。使用本論文中的方法,可以移除該heuristic,並且不會帶來網絡精度的下降。

3.Online Hard Example Mining Approach

原始的hard example mining algorithm流程如下:

a) for some period of time a fixed model is used to find new examples to add to the active training set;

b) then, for some period of time the model is trained on the fixed active training set;

在SVM-based object detectors(如R-CNN、SPPnet)中,Hard Example Mining算法的流程如下:

a) 篩選圖像到active training set直到達到閾值上限;

b) 在active training set上訓練SVM直至收斂;

a)和b)重複交替進行,直至active training set包含所有的support vectors。由於篩選樣本數據的過程並不會更新模型,因此整個過程降低了模型的訓練速度。

OHEM(online hard example mining)的過程如下:

1.針對input image運用卷積神經網絡,得到Feature Map;

2.ROI Network使用Feature Map和所有的ROI作為輸入,所有ROI經過RoI Pooling、FC Layer、Loss Computation得到Loss值;

3.對所有的ROI按照Loss排序,然後選擇前B/N個樣本作為Hard Example;由於只選擇了一部分ROI更新模型,反向傳播的成本也相對降低了;

通常情況下,Overlap較大的ROI的Loss也比較相似,它們往往是同一個Object,所以論文中採用NMS(non-maximum suppresison)移除Overlap較大的ROI:選取Loss最大的ROI,然後剔除所有與選擇區域Overlap>0.7的ROI。

OHEM的過程不需要設置fg-bg比率,因為任何一個類別被遺漏,它的Loss就會不斷增加,然後該類別被採樣的概率就越大。

3.1 實現細節

目標檢測-Training with Online Hard Example Mining

OHEM的實現方法很多,一種最直接的方式就是修改Loss Layer實現Hard Example Selection。Loss Layer計算所有ROI的Loss值,按照Loss排序選取Hard ROI,然後將Non-hard Example的Loss設置為0。這種方法的缺陷在於雖然Loss=0的Example對於模型更新沒有任何作用,ROI Network仍然需要對所有的ROI進行內存分配和反向傳播。

為了解決上述問題,論文中提出了兩份ROI Network,其中一份是Readonly的。在一次的SGD迭代中,Readonly RoI Network只負責前向傳播,計算所有ROI的Loss(如上圖綠色箭頭所示)。Hard RoI Sampling模塊負責選擇Hard Example,然後作為另一個ROI Network的輸入,進行前向反向傳播和梯度更新(如紅色箭頭所示)。

記Input image數量為N,Readonly ROI Network的輸入ROI的數量為R,有效的ROI數量為|R|,Hard Example的數量為B。論文中,N=2,|R|≈4000,B=128。

4.online hard example mining實驗分析

4.1 PASCAL VOC07數據集上的測試效果:

目標檢測-Training with Online Hard Example Mining

表中1~2行: Standard Fast R-CNN with bg_lo=0.1的效果;

表中3~4行: 為了驗證heuristic的重要性,設置bg_lo =0,結果表明,VGGM模型的mAP降低2.4個點,VGG16模型mAP幾乎保持不變;

表中11~13行: Fast R-CNN with OHEM相對於Standard Fast R-CNN with bg_lo=0.1的mAP提升了2.4個點,相對於Standard Fast R-CNN with bg_lo=0的mAP提升4.8個點。表明OHEM消除了heuristic的影響。

N=1時,單張圖片的ROI可能相關性較大;當N=2時,由於相關性問題,可能引發梯度不穩定和收斂減緩的問題。5~6行可以看出當N=2時,Standard Fast R-CNN的mAP降低了約1個點;而Fast R-CNN with OHEM幾乎沒有收到影響。

OHEM選擇Hard Example作為訓練樣本,但是如果用所有的Examples作為訓練樣本時,是否會因為Easy Examples的Loss較小,對梯度的貢獻較少,從而使得Training過程自動聚焦在Hard Examples上。6~7行表明即使經過精心的參數調整,採用所有Example訓練的效果仍比OHEM低1個點以上。

目標檢測-Training with Online Hard Example Mining

上圖表明,OHEM方法在所有的方法中獲得的Taining Loss最小。

4.2 PASCAL VOC and MS COCO數據集上的測試效果

目標檢測-Training with Online Hard Example Mining
目標檢測-Training with Online Hard Example Mining
目標檢測-Training with Online Hard Example Mining

4.3 Multi-scale與Iterative bounding-box regression

目標檢測-Training with Online Hard Example Mining

OHEM結合Multi-scale和Iterative bounding-box reg策略,在VOC07數據集上得到了State-Of-Art的75.1%的結果。

儘管論文中一直在使用Fast R-CNN,但是OHEM可以用來Train任何Region-Based的卷積網絡檢測算法。

更多文章見微信公眾號: 「半杯茶的小酒杯」


分享到:


相關文章: