RCNN、Faster-RCNN、Faster-RCNN
算法模型專欄開始,力爭用最通俗的說法來解釋,參考各類資料暫時刪去了損失函數(shù)的計算以及比較繁瑣難懂的概念,如有錯誤理解之處望指出!
首先給定幾個概念,不熟悉卷積基本概念的暫且看下:
基礎(chǔ)概念:
先來個全彩GoogleNet/Inception模型
解釋下1*1卷積的作用:
增加非線性:相當(dāng)于全連接層,加入激活函數(shù)后使得網(wǎng)絡(luò)復(fù)雜性增加
特征降維:控制卷積核數(shù)量達到通道數(shù)大小放縮
空洞卷積:又稱擴張卷積,引入擴張率,更大的感受野。通常用在目標(biāo)分割中小物體的識別。
轉(zhuǎn)置卷積:卷積逆過程,又稱為反卷積,小圖片放大為大圖。
全卷積網(wǎng)絡(luò)(FCN):一個設(shè)計好的網(wǎng)絡(luò)可以輸入任意大小的圖片。
交并比IOU = 兩個物體交集/兩個物體并集
mAP:平均準(zhǔn)確率均值,準(zhǔn)確率與召回率曲線圖
非極大值抑制(NMS):如字面意思
RCNN:
下面正式介紹RCNN模型:
RCNN有兩種方法獲取候選區(qū)域:
基于區(qū)域生成(Region Proposal)方法,selective search就是其中的一種,簡稱SS算法。
滑動窗口方法,傳統(tǒng)圖像檢測使用的。
SS算法步驟:
1.計算機區(qū)域集R的每個相鄰區(qū)域的相似度S={s1,s2,s3...},相似度包括圖片的顏色、尺寸、紋理等。
while S != 0?? //只要S不為空集就一直循環(huán)
2.找出相似度最高的2個區(qū)域,合并為Rt,添加到R中
3.從S中一處與步驟2中有關(guān)的子集
4.重新計算Rt與所有子集相似度
算法流程:
1.選取一個model(VGG等后續(xù)介紹)
2.去掉最后一個全連接層,分類從1000種變?yōu)镹+1,微調(diào)(final-tuning)
3.pool5后為FC6層,對每一個候選區(qū)域去進行特征提取,計算區(qū)域大小,一次向前運算(注意是每一個候選區(qū)域進行一次!),
第五個池化層,也就是pool5的 輸出(候選框提取到的特征)保存到主硬盤中。
4.開始訓(xùn)練,pool5輸出的特征訓(xùn)練SVM分類器,用來二分類判斷候選框里的物體類別。
(二分類就是解決是否、有無物體的問題,輸出1代表是/有,0為否/無)。進行測試:每個類別對應(yīng)一個SVM,判斷是否屬于這個類別。
(SVM分類器后續(xù)文章詳細(xì)說明)
5.依然是pool5輸出的特征旋律一個回歸器(dx,dy,dw,dh),回歸器用來調(diào)整候選框位置。
dx、dy代表候選框水平和垂直位移,dw、dh代表寬高縮放
模型結(jié)構(gòu)如下圖:
Bbox reg預(yù)測候選框位置,SVM判斷種類。值得注意的是Bbox reg在神經(jīng)網(wǎng)絡(luò)之外。
RCNN的缺點:2k個候選區(qū)域都要經(jīng)過一次CNN,即上述的算法流程第三步,這會導(dǎo)致運行速度慢,由此出現(xiàn)Spp-Net,在RCNN的基礎(chǔ)上改進,原圖只要做一次CNN操作就可以得到候選區(qū)域的特征。下面介紹具體的改進方法——特征映射。
特征映射:輸入圖片的某個位置的特征反應(yīng)在特征圖上也是相同位置。如圖:
SS算法中提供2000個候選區(qū)域的位置記錄,通過比例映射到第五個卷積層中輸出特征圖,提取候選區(qū)域的特征圖,將特征圖送入金字塔池化層中計算。
接下里又引出金字塔池化層,可簡單理解為采集到不同大小尺寸的特征圖匯聚到同一個池化層中一次性計算出候選區(qū)域特征,Spp-Net圖片檢測速度比RCNN快了100倍。
Fast-RCNN:
借鑒了Spp-Net的思想后,F(xiàn)ast-RCNN出現(xiàn)了,先看模型結(jié)構(gòu)圖:
介紹下圖中的術(shù)語:
ROI Pooling(Regions of interest...):這是Spp-Net金字塔池化層的簡單形式,只使用一種固定大小的max-pooling。將每個候選區(qū)域均分為M*N塊,每塊進行max-pooling。將特征圖上大小不一的候選區(qū)域轉(zhuǎn)變?yōu)榻y(tǒng)一的數(shù)據(jù)送入到下一層。
softmax邏輯回歸:把輸出的映射到[0,1],并且歸一化保證和為1,從而使得多分類的概率之和也剛好為1。舉個例子:假設(shè)這個模型可以預(yù)測四個種類分別為雞、鴨、狗、豬,那么最終輸出y=(雞的概率+鴨的概率+狗的概率+豬的概率)=1。softmax替代了RCNN中的SVM二分類。
FC:全連接層,該層的作用是做分類,從前面的卷積層中得到的高維數(shù)據(jù)鋪平輸入到分類器中。
Fast-RCNN相對于RCNN的創(chuàng)新之處:前面提到了RCNN的Bbox reg也就是候選框位置預(yù)測是在神經(jīng)網(wǎng)絡(luò)之外計算的,而Fast-RCNN則把Bbox reg與分類器都置于神經(jīng)網(wǎng)絡(luò)內(nèi)組合成multitask模型,可共享卷積特征,速度優(yōu)化明顯。
不足之處:SS計算,也就是區(qū)域生成的方法仍然在神經(jīng)網(wǎng)絡(luò)之外進行,未來改進這個不足,推出了Faster-RCNN。
Faster-RCNN:
Faster-RCNN可近似理解為"區(qū)域生成網(wǎng)絡(luò)+Fast-RCNN",加入了專門生成候選區(qū)域的神經(jīng)網(wǎng)絡(luò)RPN(Region Proposal Network)
先看Faster-RCNN結(jié)構(gòu):
可以看出結(jié)構(gòu)上在Fast-RCNN之上加入了RPN,classification loss與Bbox regression loss是分類與位置的損失,feature map是特征圖。卷積輸出得到特征圖后分兩部分,一部分直接ROI Pooling生成統(tǒng)一的候選區(qū)域輸出,另一部分經(jīng)過RPN,RPN結(jié)構(gòu)圖如下:
RPN中softmax預(yù)測anchor是前景還是背景的概率,并不預(yù)測物體屬于哪一類。
神經(jīng)網(wǎng)絡(luò) 機器學(xué)習(xí) 深度學(xué)習(xí)
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。