深度學習目標檢測:RCNN
什么是目標檢測?目標檢測主要是明確從圖中看到了什么物體?他們在什么位置,傳統的目標檢測方法一般分為三個階段:首先在給定的影像上選擇一些候選的區域,然后對這些區域提取特征,最后使用訓練的分類器進行分類,
1. 區域選擇
這一步是為了對目標進行定位,傳統方法是采用窮舉策略,由于目標可能在圖片上的任意位置,而且大小不定,因此使用滑動視窗的策略對整幅影像進行遍歷,而且需要設定不同的長寬,這種策略雖然可以檢測到所有可能出現的位置,但是時間復雜度太高,產生的冗余視窗太多,嚴重影響后續特征的提取和分類速度的性能,
2. 特征提取
提取特征的好壞會直接影響到分類的準確性,但又由于目標的形態多樣性,提取一個魯棒的特征并不是一個簡單的事,這個階段常用的特征有SIFT(尺度不變特征變換,Scale-invariant feature transform)和HOG( 方向梯度直方圖特征,Histogram of Oriented Gradient)等,
3. 分類器
主要有SVM,Adaboost等綜上所述,傳統目標檢測存在兩個主要問題:一個是基于滑動視窗的區域選擇策略沒有針對性,時間復雜度高,視窗冗余;而是手工設計的特征對于多樣性沒有很好的魯棒性,
針對滑動視窗問題,region proposal(候選區域)是預先找出圖中目標可能出現的位置,這可以保證在選取較少視窗(幾千個甚至幾百個)的情況下保持較高的召回率,并且獲取的候選視窗要比滑動視窗的質量更高(滑動視窗固定長寬比),比較常用的region proposal演算法有selective search和edge boxes,針對特征選取,卷積神經網路(convolution neural network:CNN) 的特征比傳統手工特征效果更好,因此在2014年,RBG(Ross B.Girshick )使用Region proposal+CNN(RCNN)代替傳統目標檢測使用的滑動視窗+手工設計特征,設計了RCNN框架,使得目標檢測取得巨大突破,并開啟了基于深度學習的目標檢測熱潮,
RCNN的檢測流程:
RCNN主要分為3個大部分,第一部分產生候選區域,第二部分對每個候選區域使用CNN提取長度固定的特征;第三個部分使用一系列的SVM進行分類,
下面就是RCNN的整體檢測流程:

(1)首先輸入一張自然影像;
(2)使用Selective Search提取大約2000個候選區域(proposal);
(3)對每個候選區域的影像進行拉伸形變,使之成為固定大小的正方形影像,并將該影像輸入到CNN中提取特征;
(4)使用線性的SVM對提取的特征進行分類,
RCNN的檢測流程:
1.1 候選區域的產生
這里介紹的比較簡單,RCNN使用Selective Search演算法提取影像中的候選區域(因為我關注RCNN系列比較晚,直接應用的Faster RCNN,就沒有關注Selective Search演算法,這里也就不介紹了)
1.2 CNN特征提取
作者使用AlexNet對得到的候選區域的影像進行特征提取,最終生成的是一個4096維的特征向量,注意
AlexNet輸入的是227x227大小的影像,因此在輸入到AlexNet之前,作者把候選區域的影像首先進行了一小部分的邊緣擴展(16像素),然后進行了拉伸操作,使得輸入的候選區域影像滿足AlexNet的輸入要求(即227x227),
我在這里其實進行了一部分實驗,考慮怎樣使候選區域影像滿足AlexNet的輸入要求

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/293863.html
標籤:AI
