摘要
2012年之前, 目标檢測算法性能已經進入平台期。性能好的算法都是內建算法(綁定底層特征和高層context)。在這篇文章中,作者提出了 R-CNN (Regions with CNN features)。
算法介紹
1. R-CNN方法包含三個子產品:
1)産生類别無關的候選區域;
2)利用CNN(卷積神經網絡)提取固定長度的特征;
3)學習linear SVM的集合,每個linear SVM對應一個類别分類器。
a) 生成候選區域(region proposals)
許多文章提供了這類方法,例如:objectness, selective search, 等等。作者使用了selective search。
b) 特征提取
作者使用caffe在每個候選區域提取4096維特征。作者在實作的時候,使用了AlexNet提取特征。
因為AlexNet的輸入圖像大小是227*227RGB圖像。輸入的候選區域必須轉換為227*227。作者采用了最簡單的轉換方法。不管候選區域的尺寸和方向率,直接将圖像轉為227*227。
在轉換之前,作者将圖像的邊緣像素進行了填充。填充的基本條件是,填充的邊緣在變換後的圖像上是16像素。
2.R-CNN測試
在測試的時候,1)運作selective search提取2000個候選區域。2)轉換每個候選區域為227*227的RGB圖像,然後送給AlexNet,提取4096維特征。3)4096維特征送給linear SVM分類器,為每個類别打一個分數。
得到了所有的打分區域,然後使用非最大抑制 拒絕掉一些低分值的區域。
3.運作時間分析
存在兩個屬性使計算更加有效率。
1)所有類的特征是共享的。
2)CNN提取的特征向量是低維的(僅僅4096)
計算region proposals和特征的時間被分攤給所有類别,是以計算效率非常高。
4.R-CNN訓練
1)監督預訓練
首先使用ImageNet(圖像級别的标注,沒有标定每個目标的位置)訓練一個CNN網絡。
2)Fine-tuning微調
使用warped regions proposals進行微調,并且1000類的分類層,修改為21類
(20個類别,加上1個背景)。
3)類别分類器
使用Linear SVM訓練類别分類器。Linear SVM的輸入是4096維特征。
4.評估
end