論文鏈接: https://www.cv-foundation.org/openaccess/content_cvpr_2014/papers/Girshick_Rich_Feature_Hierarchies_2014_CVPR_paper.pdf
論文技術(shù)報(bào)告鏈接: https://arxiv.org/pdf/1311.2524.pdf
出處: CVPR 2014
參考視頻: https://www.bilibili.com/video/BV1d64y1W74E/?spm_id_from=333.999.0.0&vd_source=e321967bf2cdc2338238788250d12de8
R-CNN基本原理
總結(jié)起來就是:輸入原圖,然后用selective search算法生成2000個(gè)候選框,再將每個(gè)候選框縮放為
227
×
227
227\times227
227×227的固定大小,再逐一喂到同一個(gè)卷積神經(jīng)網(wǎng)絡(luò)提取4096維的特征,用該4096維的特征同時(shí)進(jìn)行分類(線性SVM)和回歸,最終得到目標(biāo)檢測(cè)結(jié)果。
可以看到R-CNN嚴(yán)重依賴上下游的多個(gè)步驟協(xié)作完成目標(biāo)檢測(cè)任務(wù):①提取候選框;②縮放;③用CNN提取特征;④分類和回歸。只要有一個(gè)步驟出現(xiàn)問題,整個(gè)檢測(cè)系統(tǒng)就會(huì)出現(xiàn)問題。每個(gè)步驟都需要單獨(dú)去優(yōu)化,因此并不是一個(gè)端到端的系統(tǒng)。
R-CNN是一個(gè)非常耗時(shí)、非常低效、非常臃腫、一點(diǎn)不端到端的算法:因此,可以對(duì)R-CNN進(jìn)行改進(jìn):
產(chǎn)生候選框-Selective Search
論文鏈接: https://www.koen.me/research/selectivesearch/
將候選框縮放至 227 × 227 227\times227 227×227固定大小
最終,作者采用連帶鄰近像素的非等比例縮放方法,連帶像素
p
=
16
p=16
p=16。這種將像素向外擴(kuò)一圈,并將擴(kuò)展之后的結(jié)果作為候選框的方法叫做Dilate proposal。
可視化能夠使得某個(gè)feature map的某個(gè)值最大化的原始候選框
從AlexNet最后一個(gè)池化層得到的feature map的形狀是
6
×
6
×
256
6\times6\times256
6×6×256,我們可視化其中的某一個(gè)channel的某一個(gè)值,找到使得這個(gè)值最大化的原始的候選框。
作者從
6
×
6
×
256
6\times6\times256
6×6×256的feature map中選了60多個(gè)channel來可視化能夠使得某個(gè)channel的某個(gè)值最大化的24個(gè)原始候選框:
對(duì)比實(shí)驗(yàn)
說明了fine-tuning的重要性。
R-CNN用于語義分割:
為什么不直接用softmax分類而要用線性SVM分類?
原因①:
fine-tuning時(shí)與訓(xùn)練各類別SVM時(shí)的正負(fù)樣本選擇策略是不一樣的,所以,如果直接用softmax的話,就必須都按照fine-tuning的正負(fù)樣本的選擇策略來,但是如果用SVM來分類的話,會(huì)更好,因?yàn)橛?xùn)練SVM時(shí)加入了hard negtive mining,而且選擇正負(fù)樣本時(shí)也和fine-tuning時(shí)不一樣。因此,不能直接用softmax而是要用SVM的。原因②:
為什么不使用SVM的正負(fù)樣本選擇策略去訓(xùn)練softmax?作者是使用Matlab實(shí)現(xiàn)的,Matlab是一個(gè)封裝的很死的一個(gè)庫,不允許有太多的自由的修改,不像python一樣可以自由的修改底層代碼。RBG大神當(dāng)時(shí)寫R-CNN時(shí)用的是Matlab,可能matlab只有SVM可以進(jìn)行hard negtive mining。所以沒有直接用softmax而是用的SVM。
Bounding Box Regression
所謂回歸就是對(duì)候選框進(jìn)行精調(diào),使回歸模型輸出一系列偏移量,再對(duì)候選框施加偏移量從而得到最終的預(yù)測(cè)框。
具體來講:
讓黃色去擬合藍(lán)色,即找一套線性權(quán)重,使得損失函數(shù)最小。
R-CNN的Slides講解
沒有什么實(shí)質(zhì)性的進(jìn)展。
R-CNN取得了實(shí)質(zhì)性的突破。
R-CNN論文精度
Selective Search產(chǎn)生Region proposals
強(qiáng)行縮放:
候選框特征提取
使用Caffe實(shí)現(xiàn)的AlexNet作為特征提取的骨干網(wǎng)絡(luò),包括5個(gè)卷積層和2個(gè)全連接層。
把所有一千萬個(gè)候選框輸入,找到能使某個(gè)feature map中的某個(gè)值產(chǎn)生最大激活的候選框,也就是使某單次卷積、單個(gè)神經(jīng)元產(chǎn)生最大激活。
不對(duì)這個(gè)feature map求平均,只關(guān)注某個(gè)feature map中的某個(gè)值。使6個(gè)通道中的某6個(gè)神經(jīng)元產(chǎn)生最大激活的top regions。
沒有fine turning時(shí),預(yù)訓(xùn)練模型中CNN的特征表示性能大部分來自卷積層而非全連接層,去掉全連接層影響不大。進(jìn)行fine turning時(shí),CNN提取通用特征,F(xiàn)C完成特定領(lǐng)域任務(wù)。
加了邊界框回歸能有效降低定位誤差。
輸入CNN之前,強(qiáng)行將候選框縮放至統(tǒng)一尺寸、統(tǒng)一長寬比,所以在不同尺寸和長寬比上FT性能提升意味著全連接層學(xué)習(xí)到更有用的特征。文章來源:http://www.zghlxwxcb.cn/news/detail-445289.html
正負(fù)樣本的問題:為什么在fine turning訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)和在訓(xùn)練各類別的線性SVM時(shí)的正負(fù)樣本的選取不一樣?
fine turning時(shí),正樣本與GT有偏離,精準(zhǔn)定位性能差;
用softmax并不能解決這一問題(掉點(diǎn));
用SVM時(shí),GT框?yàn)樵擃愓龢颖?,精?zhǔn)定位性能好,且加入了難例挖掘,能夠較好的解決問題。文章來源地址http://www.zghlxwxcb.cn/news/detail-445289.html
到了這里,關(guān)于目標(biāo)檢測(cè)經(jīng)典論文精讀-R-CNN的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!