原文http://blog.csdn.net/shenxiaolu1984/article/details/51066975
Girshick, Ross, et al. “Rich feature hierarchies for accurate object detection and semantic segmentation.” PRoceedings of the IEEE conference on computer vision and pattern recognition. 2014.目錄(?)[+]
思想問題Region CNN(RCNN)可以說是利用深度學習進行目標檢測的開山之作。作者Ross Girshick多次在PASCAL VOC的目標檢測競賽中折桂,2010年更帶領團隊獲得終身成就獎,如今供職于Facebook旗下的FAIR。 這篇文章思路簡潔,在DPM方法多年平臺期后,效果提高顯著。包括本文在內的一系列目標檢測算法:RCNN, Fast RCNN, Faster RCNN代表當下目標檢測的前沿水平,在github都給出了基于Caffe的源碼。
本文解決了目標檢測中的兩個關鍵問題。
經典的目標檢測算法使用滑動窗法依次判斷所有可能的區域。本文則預先提取一系列較可能是物體的候選區域,之后僅在這些候選區域上提取特征,進行判斷。
經典的目標檢測算法在區域中提取人工設定的特征(Haar,HOG)。本文則需要訓練深度網絡進行特征提取。可供使用的有兩個數據庫: 一個較大的識別庫(ImageNet ILSVC 2012):標定每張圖片中物體的類別。一千萬圖像,1000類。 一個較小的檢測庫(PASCAL VOC 2007):標定每張圖片中,物體的類別和位置。一萬圖像,20類。 本文使用識別庫進行預訓練,而后用檢測庫調優參數。最后在檢測庫上評測。
RCNN算法分為4個步驟 - 一張圖像生成1K~2K個候選區域 - 對每個候選區域,使用深度網絡提取特征 - 特征送入每一類的SVM 分類器,判別是否屬于該類 - 使用回歸器精細修正候選框位置 
使用了Selective Search1方法從一張圖像生成約2000-3000個候選區域。基本思路如下: - 使用一種過分割手段,將圖像分割成小區域 - 查看現有小區域,合并可能性最高的兩個區域。重復直到整張圖像合并成一個區域位置 - 輸出所有曾經存在過的區域,所謂候選區域
候選區域生成和后續步驟相對獨立,實際可以使用任意算法進行。
優先合并以下四種區域: - 顏色(顏色直方圖)相近的 - 紋理(梯度直方圖)相近的 - 合并后總面積小的 - 合并后,總面積在其BBOX中所占比例大的
第三條,保證合并操作的尺度較為均勻,避免一個大區域陸續“吃掉”其他小區域。
例:設有區域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-gh -> abcdefgh。
第四條,保證合并后形狀規則。
例:左圖適于合并,右圖不適于合并。 
上述四條規則只涉及區域的顏色直方圖、紋理直方圖、面積和位置。合并后的區域特征可以直接由子區域特征計算而來,速度較快。
為盡可能不遺漏候選區域,上述操作在多個顏色空間中同時進行(RGB,HSV,Lab等)。在一個顏色空間中,使用上述四條規則的不同組合進行合并。所有顏色空間與所有規則的全部結果,在去除重復后,都作為候選區域輸出。
作者提供了Selective Search的源碼,內含較多.p文件和.mex文件,難以細查具體實現。
使用深度網絡提取特征之前,首先把候選區域歸一化成同一尺寸227×227。 此處有一些細節可做變化:外擴的尺寸大小,形變時是否保持原比例,對框外區域直接截取還是補灰。會輕微影響性能。
網絡結構 基本借鑒Hinton 2012年在Image Net上的分類網絡2,略作簡化3。
此網絡提取的特征為4096維,之后送入一個4096->1000的全連接(fc)層進行分類。 學習率0.01。
訓練數據 使用ILVCR 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的候選框。
論文發表的2014年,DPM已經進入瓶頸期,即使使用復雜的特征和結構得到的提升也十分有限。本文將深度學習引入檢測領域,一舉將PASCAL VOC上的檢測率從35.1%提升到53.7%。 本文的前兩個步驟(候選區域提取+特征提取)與待檢測類別無關,可以在不同類之間共用。這兩步在GPU上約需13秒。 同時檢測多類時,需要倍增的只有后兩步驟(判別+精修),都是簡單的線性運算,速度很快。這兩步對于100K類別只需10秒。
以本論文為基礎,后續的fast RCNN4(參看這篇博客)和faster RCNN5(參看這篇博客)在速度上有突飛猛進的發展,基本解決了PASCAL VOC上的目標檢測問題。
新聞熱點
疑難解答