1. 程式人生 > >Region-based Convolutional Networks for Accurate Object Detection and Segmentation----R-CNN論文筆記

Region-based Convolutional Networks for Accurate Object Detection and Segmentation----R-CNN論文筆記

一、為什麼提出R-CNN

目標檢測效能停滯不前,效能最好的整合方法又太複雜,所以作者提出了一個既能大幅提升效能,又更簡單的R-CNN。

二、R-CNN的框架

R-CNN

上面的框架圖清晰的給出了R-CNN的目標檢測流程:

1) 輸入測試影象

2) 利用selective search演算法在影象中提取2000個左右的region proposal。

3) 將每個region proposal變換(warp)成227x227的大小並輸入到CNN,將CNN的fc7層的輸出作為特徵。

4) 將每個region proposal提取到的CNN特徵輸入到SVM進行分類。

針對上面的框架給出幾點解釋:

  • 上面的框架圖是測試的流程圖,要進行測試我們首先要訓練好提取特徵的CNN模型,以及用於分類的SVM:使用在ImageNet上預訓練的模型(AlexNet/VGG16)進行微調得到用於特徵提取的CNN模型,然後利用CNN模型對訓練集提特徵訓練SVM。

  • 對每個region proposal縮放到同一尺度是因為CNN全連線層輸入需要保證維度固定。

  • 上圖少畫了一個過程——對於SVM分好類的region proposal做邊框迴歸(bounding-box regression),邊框迴歸是對region proposal進行糾正的線性迴歸演算法,為了讓region proposal提取到的視窗跟目標真實視窗更吻合。因為region proposal提取到的視窗不可能跟人手工標記那麼準,如果region proposal跟目標位置偏移較大,即便是分類正確了,但是由於IoU(region proposal與Ground Truth的視窗的交集比並集的比值)低於0.5,那麼相當於目標還是沒有檢測到。

三、R-CNN的優點

1)相對之前的演算法,目標檢測效能大幅提升。

四、R-CNN的缺點

1)訓練分為多個階段,步驟繁瑣: 微調網路+訓練SVM+訓練邊框迴歸器

2)速度慢: 使用GPU, VGG16模型處理一張影象需要47s。

3)訓練耗時,佔用磁碟空間大:5000張影象產生幾百G的特徵檔案

五、R-CNN的適用場合

  • 影象分類(image classification)
  • 目標檢測(object detection)