1. 程式人生 > >深度影象檢測演算法總結與對比(1)

深度影象檢測演算法總結與對比(1)

1. R-CNN:Rich feature hierarchies for accurate object detection and semantic segmentation

技術路線:selective search + CNN + SVMs

Step1:候選框提取(selective search)

訓練:給定一張圖片,利用seletive search方法從中提取出2000個候選框。由於候選框大小不一,考慮到後續CNN要求輸入的圖片大小統一,將2000個候選框全部resize到227*227解析度(為了避免影象扭曲嚴重,中間可以採取一些技巧減少影象扭曲)。

測試:給定一張圖片,利用seletive search方法從中提取出2000個候選框。由於候選框大小不一,考慮到後續CNN要求輸入的圖片大小統一,將2000個候選框全部resize到227*227解析度(為了避免影象扭曲嚴重,中間可以採取一些技巧減少影象扭曲)。

Step2:特徵提取(CNN)

訓練:提取特徵的CNN模型需要預先訓練得到。訓練CNN模型時,對訓練資料標定要求比較寬鬆,即SS方法提取的proposal只包含部分目標區域時,我們也將該proposal標定為特定物體類別。這樣做的主要原因在於,CNN訓練需要大規模的資料,如果標定要求極其嚴格(即只有完全包含目標區域且不屬於目標的區域不能超過一個小的閾值),那麼用於CNN訓練的樣本數量會很少。因此,寬鬆標定條件下訓練得到的CNN模型只能用於特徵提取。

測試:得到統一解析度227*227的proposal後,帶入訓練得到的CNN模型,最後一個全連線層的輸出結果---4096*1維度向量即用於最終測試的特徵。

Step3:分類器(SVMs)

訓練:對於所有proposal進行嚴格的標定(可以這樣理解,當且僅當一個候選框完全包含ground truth區域且不屬於ground truth部分不超過e.g,候選框區域的5%時認為該候選框標定結果為目標,否則位背景),然後將所有proposal經過CNN處理得到的特徵和SVM新標定結果輸入到SVMs分類器進行訓練得到分類器預測模型。

測試:對於一副測試影象,提取得到的2000個proposal經過CNN特徵提取後輸入到SVM分類器預測模型中,可以給出特定類別評分結果。

結果生成:得到SVMs對於所有Proposal的評分結果,將一些分數較低的proposal去掉後,剩下的proposal中會出現候選框相交的情況。採用非極大值抑制技術,對於相交的兩個框或若干個框,找到最能代表最終檢測結果的候選框(非極大值抑制方法可以參考:http://blog.csdn.net/pb09013037/article/details/45477591)


R-CNN需要對SS提取得到的每個proposal進行一次前向CNN實現特徵提取,因此計算量很大,無法實時。此外,由於全連線層的存在,需要嚴格保證輸入的proposal最終resize到相同尺度大小,這在一定程度造成影象畸變,影響最終結果。 

 

 

 

1. R-CNN:Rich feature hierarchies for accurate object detection and semantic segmentation

技術路線:selective search + CNN + SVMs

Step1:候選框提取(selective search)

訓練:給定一張圖片,利用seletive search方法從中提取出2000個候選框。由於候選框大小不一,考慮到後續CNN要求輸入的圖片大小統一,將2000個候選框全部resize到227*227解析度(為了避免影象扭曲嚴重,中間可以採取一些技巧減少影象扭曲)。

測試:給定一張圖片,利用seletive search方法從中提取出2000個候選框。由於候選框大小不一,考慮到後續CNN要求輸入的圖片大小統一,將2000個候選框全部resize到227*227解析度(為了避免影象扭曲嚴重,中間可以採取一些技巧減少影象扭曲)。

Step2:特徵提取(CNN)

訓練:提取特徵的CNN模型需要預先訓練得到。訓練CNN模型時,對訓練資料標定要求比較寬鬆,即SS方法提取的proposal只包含部分目標區域時,我們也將該proposal標定為特定物體類別。這樣做的主要原因在於,CNN訓練需要大規模的資料,如果標定要求極其嚴格(即只有完全包含目標區域且不屬於目標的區域不能超過一個小的閾值),那麼用於CNN訓練的樣本數量會很少。因此,寬鬆標定條件下訓練得到的CNN模型只能用於特徵提取。

測試:得到統一解析度227*227的proposal後,帶入訓練得到的CNN模型,最後一個全連線層的輸出結果---4096*1維度向量即用於最終測試的特徵。

Step3:分類器(SVMs)

訓練:對於所有proposal進行嚴格的標定(可以這樣理解,當且僅當一個候選框完全包含ground truth區域且不屬於ground truth部分不超過e.g,候選框區域的5%時認為該候選框標定結果為目標,否則位背景),然後將所有proposal經過CNN處理得到的特徵和SVM新標定結果輸入到SVMs分類器進行訓練得到分類器預測模型。

測試:對於一副測試影象,提取得到的2000個proposal經過CNN特徵提取後輸入到SVM分類器預測模型中,可以給出特定類別評分結果。

結果生成:得到SVMs對於所有Proposal的評分結果,將一些分數較低的proposal去掉後,剩下的proposal中會出現候選框相交的情況。採用非極大值抑制技術,對於相交的兩個框或若干個框,找到最能代表最終檢測結果的候選框(非極大值抑制方法可以參考:http://blog.csdn.net/pb09013037/article/details/45477591)


R-CNN需要對SS提取得到的每個proposal進行一次前向CNN實現特徵提取,因此計算量很大,無法實時。此外,由於全連線層的存在,需要嚴格保證輸入的proposal最終resize到相同尺度大小,這在一定程度造成影象畸變,影響最終結果。