1. 程式人生 > >Faster Rcnn論文總結

Faster Rcnn論文總結

論文:《Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks》

一、 概述

  此論文是由業界大牛何凱明在2015年發表的一篇經典論文,目前最先進的目標檢測網路需要先用區域建議演算法推測目標位置,像SPPnet和Fast R-CNN這些網路已經減少了檢測網路的執行時間,這時計算區域建議就成了瓶頸問題。本文中,我們介紹一種區域建議網路(Region Proposal Network, RPN),它和檢測網路共享全圖的卷積特徵,使得區域建議幾乎不花時間。RPN是一個全卷積網路,在每個位置同時預測目標邊界和objectness得分。RPN是端到端訓練的,生成高質量區域建議框,用於Fast R-CNN來檢測。通過一種簡單的交替執行優化方法,RPN和Fast R-CNN可以在訓練時共享卷積特徵。
faster RCNN可以簡單地看做區域生成網路+fast RCNN的系統,用區域生成網路代替fast RCNN中的Selective Search方法。本篇論文著重解決了這個系統中的三個問題:
1. 如何設計區域生成網路
2. 如何訓練區域生成網路
3. 如何讓區域生成網路和fast RCNN網路共享特徵提取網路

二、 區域生成網路:結構

這裡寫圖片描述

 RPN的核心思想是使用卷積神經網路直接產生region proposal,使用的方法本質上就是滑動視窗。RPN網路結構圖如上所示(ZF模型:256維),假設給定600*1000的輸入影象,經過卷積操作得到最後一層的卷積feature map(大小約為40*60),最後一層卷積層共有256個feature map。
Region ProposalNetwork(RPN)
這裡寫圖片描述
 在這個特徵圖上使用3*3的卷積核(滑動視窗)與特徵圖進行卷積,那麼這個3*3的區域卷積後可以獲得一個256維的特徵向量。因為這個3*3的區域上,每一個特徵圖上得到一個個1維向量,256個特性圖即可得到256維特徵向量。
 3*3滑窗中心點位置,對應預測輸入影象3種尺度(128,256,512),3種長寬比(1:1,1:2,2:1)的regionproposal,這種對映的機制稱為anchor,產生了k=9個anchor。即每個3*3區域可以產生9個region proposal。所以對於這個40*60的feature map,總共有約20000(40*60*9)個anchor,也就是預測20000個region proposal。
 後邊接入到兩個全連線層,即cls layer和reglayer分別用於分類和邊框迴歸。clslayer包含2個元素,用於判別目標和非目標的估計概率。reglayer包含4個座標元素(x,y,w,h),用於確定目標位置。cls:正樣本,與真實區域重疊大於0.7,負樣本,與真實區域重疊小於0.3。reg:返回區域位置。
 最後根據region proposal得分高低,選取前300個region proposal,作為Fast R-CNN的輸入進行目標檢測。

三、 候選區域(anchor)

特徵可以看做一個尺度51*39的256通道影象,對於該影象的每一個位置,考慮9個可能的候選視窗:三種面積{1282,2562,5122}× 三種比例{1:1,1:2,2:1}。這些候選視窗稱為anchors。
下圖示出51*39個anchor中心,以及9種anchor示例。
     這裡寫圖片描述
關於anchor的問題:
這裡在詳細解釋一下:
(1) 首先按照尺度和長寬比生成9種anchor,這9個anchor的意思是conv5 feature map 3x3的滑窗對應原圖區域的大小.這9個anchor對於任意輸入的影象都是一樣的,所以只需要計算一次. 既然大小對應關係有了,下一步就是中心點對應關係。
(2) 對於每張輸入影象,根據影象大小計算conv5 3x3滑窗對應原圖的中心點. 有了中心點對應關係和大小對應關係,對映就顯而易見了。

四、 區域生成網路:訓練

1) 樣本
 考察訓練集中的每張影象:
a.  對每個標定的真值候選區域,與其重疊比例最大的anchor記為前景樣本 ;
b.  對a)剩餘的anchor,如果其與某個標定重疊比例大於0.7,記為前景樣本;如果其與任意一個標定的重疊比例都小於0.3,記為背景樣本 ;
c.  對a),b)剩餘的anchor,棄去不用;
d.  跨越影象邊界的anchor棄去不用;
2) 代價函式:
同時最小化兩種代價:
a. 分類誤差
b. 前景樣本的視窗位置偏差
3) 超引數:重點內容
 原始特徵提取網路使用ImageNet的分類樣本初始化,其餘新增層隨機初始化。每個mini-batch包含從一張影象中提取的256個anchor,前景背景樣本1:1。前60K迭代,學習率0.001,後20K迭代,學習率0.0001。 momentum設定為0.9,weight decay設定為0.0005。
五、 訓練4步階段:(共享特徵)

  • 使用在ImageNet上預訓練的模型初始化RPN網路引數,微調RPN網路;
  • 使用(1)中RPN網路提取region proposal訓練Fast R-CNN網路,也用ImageNet上預訓練的模型初始化該網路引數;(現在看來兩個網路相對獨立);
  • 使用(2)的Fast R-CNN網路重新初始化RPN, 固定卷積層進行微調,微調RPN網路;
  • 固定(2)中Fast R-CNN的卷積層,使用(3)中RPN提取的region proposal對Fast R-CNN網路進行微調;