【目標檢測】RCNN算法詳解

RCNN文章出處:Girshick, Ross, et al. "Rich feature hierarchies for accurate object detection and semantic segmentation" 

Region CNN(RCNN)是利用深度學習進行目標檢測的方法,比較先進。

文章主要解決了目標檢測中的兩個關鍵問題:速度和訓練集

第一個關鍵問題:速度

經典的目標檢測算法使用滑動窗法依次判斷所有可能的區域,文章則預先提取一系列較可能是物體的候選區域,之後僅在這些候選區域上提取特徵,進行判斷。

第二個關鍵問題:訓練集

經典的目標檢測算法在區域中提取人工設定的特徵(Haar,HOG--該特徵具體其它篇章裏會整理),本文則需要訓練深度網絡進行特徵提取。可以使用的兩個數據庫:

一個是較大的識別庫(ImageNet ILSVC 2012):標定每張圖片中物體的類別,一千萬張圖像,1000類。

一個是較小的檢測庫(PASCAL VOC 2007):標定每張圖片中,物體的類別和位置,一萬張圖像,20類。

文章使用識別庫進行預訓練,然後使用檢測庫調優參數,最後在檢測庫上評測。

RCNN算法分爲四步驟:

1. 一張圖像生成1k - 2k個候選區域

2. 對每個候選區域,使用深度網絡提取特徵

3. 特徵送入每一類的SVM分類器,判別是否屬於該類

4. 使用迴歸器精細修正候選框位置


每一步如何實現?

1. 候選區域生成

使用了Selective Search方法從一張圖像生成約2000-3000個候選區域,基本思路如下:

1. 使用一種過分割手段,將圖像分割成小區域

2. 查看現有小區域,合併可能性最高的兩個區域,重複直到整張圖像合併成一個區域位置

3. 輸出所有曾經存在過的區域,所謂候選區域

ps:候選區域生成和其它步驟相對獨立,實際可以使用任意算法進行

2. 合併規則

優先合併以下四種區域:

1. 顏色(顏色直方圖)相近的

2. 紋理(梯度直方圖)相近的

3. 合併後總面積小的

4. 合併後,總面積在其BBOX中所佔比例大的

上述3,保證合併操作的尺度較爲均勻,避免一個大區域陸續“吃掉”其它小區域。例如:設有區域a - b - c - d - e - f - g - h,較好的合併方式是:ab - cd - ef - gh, abcd - efgh, abcdefgh,不好的合併方式是:ab - c - d - e - f - g - h, abcd - e - f -g -h, abcdef - g - h, abcdefgh.

上述4,保證合併後的形狀規則

上述四條規則只涉及區域的顏色直方圖、紋理直方圖、面積和位置。合併後的區域特徵可以直接由子區域特徵計算而來,速度較快。

2.1 多樣化與後處理

爲了儘可能不遺漏候選區域,上述操作存在多個顏色空間中同時進行(RGB,HSV,Lab等),在一個顏色空間中,使用上述四條規則的不同組合進行合併,所有顏色空間與所有規則的全部結果,在去除重複後,都作爲候選區域輸出。

3. 特徵提取

預處理

使用深度網絡提取特徵之前,首先把候選區域歸一化成同一尺寸227*227.

此處有一些細節可做變化:外擴的尺寸大小,形變時是否保持原比例,對框外區域直接截取還是補灰,會輕微影響性能。

預訓練

網絡結構基本借鑑Hinton 2012年在Image Net上的分類網絡2,簡化後是3


此網絡提取的特徵爲4096維,之後送入一個4096 -> 1000的全連接(fc)層進行分類。

學習率0.01

訓練數據

使用ILSVCR 2012的全部數據進行訓練,輸入一張圖片,輸出1000維的類別標號

調優訓練

網絡結構

同樣使用上述網絡後,最後一層換成4096 -> 21的全連接網絡。學習率0.001,每一個batch包含32個正樣本(屬於20類)和96個背景。

訓練數據

使用PASCAL VOC 2007的訓練集,輸入一張圖片,輸出21維的類別標號,表示20類+背景

考察一個候選框和當前圖像上所有標定框重疊面積最大的一個。如果比例大於0.5,則認爲此候選框爲此標定的類別;否則認爲此候選框爲背景。

類別判定

分類器

對每一類目標,使用一個線性SVM二類分類器進行判別,輸入爲深度網絡輸出的4096維特徵,輸出是否屬於此類。

由於副樣本很多,使用hard negative mining方法。

正樣本

本類的真值標定框

負樣本

考察每一個候選框,如果和本類所有標定框的重疊都小於0.3,認定其爲負樣本。

位置精修

目標檢測問題的衡量標準是重疊面積:許多看似準確的檢測結果,往往因爲候選框不夠準確,重疊面積很小,所以需要一個位置精修步驟。

迴歸器

對每一類目標,使用一個線性脊迴歸器進行精修,正則項=10000.

輸入爲深度網絡pool5層的4096維特徵,輸出爲xy方向的縮放和平移。

訓練樣本

判定爲本類的候選框中,和真值重疊面積大於0.6的候選框





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章