1. 程式人生 > 其它 >R-CNN

R-CNN

R-CNN

目標檢測+深度學習開山之作

CVPR'14

paper:Rich feature hierarchies for accurate object detection and semantic segmentation

亮點

  • 使用selection search(region proposal)生成候選框
  • 使用AlexNet提取特徵
  • 使用SVM對CNN提取的特徵進行分類
  • 使用Bounding box迴歸出更加精確的框

網路結構

整個流程

  • 輸入一張圖片(任意大小)
  • 在影象上應用selection search方法得到2000個候選框
  • 對候選框進行裁剪、縮放得到227*227大小的影象塊
  • 使用預訓練好的AlexNet作為特徵提取器
  • 使用訓練好的SVM作為分類器
  • 使用NMS除去重複的框
  • 使用訓練好的bounding box 迴歸修正候選框

Selection Search

劃分為小塊,對相鄰的塊計算影象相似度,合併相似的塊,重複這個過程,最後得到候選框。

指標包括顏色、紋理、區域大小和區域的合適度

影象處理

填充後再裁剪

裁剪後再填充

直接縮放到目標尺寸

論文對比發現直接縮放到目標尺寸+在影象周圍填充16個畫素(基於上下文)效果比較好。(也可以根據原始影象的畫素決定填充的畫素數)

特徵提取

使用fine-tune,保留AlexNet前五層。AlexNet在大型的資料集上訓練。

fune-tune

分類器

使用SVM*預測種類數量個分類器。

NMS

非極大抑制

按照得分排序,除去和最大得分框IOU大於閾值的框,不斷篩選。

預測框修正

附錄C

輸入\((G, P)\)\(G\)是GT bounding box,\(P\)是predict bounding box。

\(P\)除去了那些和任何GT都不沾邊的框,這些框拿來訓練沒意義。

\(t^i_*\)是由\(G\)\(P\)計算得到的,包括中心點偏移量和長寬的縮放比例。

hard negative mining

hard negative mining

主要由樣本量引起。

方法:把難以訓練的樣本放入訓練集中進行訓練。

在文中特徵提取部分和分類器部分使用有點區別,fine-tunning階段是由於CNN對小樣本容易過擬合,需要大量訓練資料,故對IoU限制寬鬆: IoU>0.5的建議框為正樣本,否則為負樣本; SVM這種機制是由於其適用於小樣本訓練,故對樣本IoU限制嚴格:Ground Truth為正樣本,與Ground Truth相交IoU<0.3的建議框為負樣本。

缺點

select search只能在CPU上處理,速度慢

每次輸入2000+個候選框,有大量的重複計算,速度很慢

特徵提取、分類、邊框迴歸是三個部分分別訓練

需要額外的儲存空間