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的候選框