R-CNN全名叫《Rich feature hierarchies for accurate object detection and semantic segmentation》2014【用于精確物體定位和語(yǔ)義分割的豐富特征層次結(jié)構(gòu)】
原文鏈接:鏈接:https://pan.baidu.com/s/1kd24YfV4AfJG90r0c_X2lw
提取碼:wzbl
代碼鏈接:
參考博客1:R-CNN論文詳解(論文翻譯)(比較詳細(xì)的論文翻譯)
參考博客2:R-CNN論文詳解(有自己的見(jiàn)解)
參考論文3:基于R-CNN的物體檢測(cè)(有相關(guān)理論的介紹)
寫(xiě)在之前
在RCNN之前澄步,overfeat已經(jīng)是用深度學(xué)習(xí)的方法做目標(biāo)檢測(cè)累奈,但RCNN是第一個(gè)可以真正可以工業(yè)級(jí)應(yīng)用的解決方案雏胃÷沉牛可以說(shuō)改變了目標(biāo)檢測(cè)領(lǐng)域的主要研究思路趁舀,緊隨其后的系列文章:Fast R-CNN 许赃,F(xiàn)aster R-CNN凫海、Mask R-CNN都沿襲R-CNN的思路禁舷。
摘要
該方法結(jié)合了兩個(gè)關(guān)鍵的見(jiàn)解:
- 使用一個(gè)高容量的卷積神經(jīng)網(wǎng)絡(luò)將region-proposals自底而上的傳播,用來(lái)定位和分割目標(biāo)谣光;
- 如果有標(biāo)簽的訓(xùn)練數(shù)據(jù)比較少檩淋,可以使用訓(xùn)練好的參數(shù)作為輔助,進(jìn)行fine-tuning抢肛,能夠得到非常好的識(shí)別效果提升
該方法是將region proposals 和CNN結(jié)合起來(lái)的狼钮,所以叫做R-CNN(Regions with CNN features)
1、介紹
特征很重要捡絮。過(guò)去十年,各類(lèi)識(shí)別任務(wù)基本上都是建立在對(duì)SIFT和HOG特征的使用莲镣。進(jìn)步緩慢福稳。CNNs在1990年代被廣泛使用,后來(lái)SVM的崛起而淡化瑞侮。2012年的圆,Krizhevsky等人在ImageNet挑戰(zhàn)中的出色表現(xiàn)讓世人重新關(guān)注CNNs(AlexNet)鼓拧,它的成功是對(duì)LeCUN的CNN的改造(比如ReLU和Dropout Regularization)。于是引入思考越妈,如何將ImageNet上的CNN分類(lèi)結(jié)果運(yùn)用到VOC挑戰(zhàn)的檢測(cè)任務(wù)上季俩。
檢測(cè)中遇到的第一個(gè)問(wèn)題就是:需要定位一個(gè)圖像中的許多物體。一個(gè)方法是將框定位看作是回歸問(wèn)題梅掠。但將定位問(wèn)題單純看作回歸問(wèn)題并不好酌住。另一種方法是使用滑動(dòng)窗口探測(cè)器,但感受視野太大,也不好使。我們通過(guò)“recognition using regions”方法茅糜,解決CNN的定位問(wèn)題溉奕。
測(cè)試時(shí),對(duì)每張圖片掰盘,產(chǎn)生了接近2000個(gè)與類(lèi)別無(wú)關(guān)的region proposal(候選區(qū)域),region的大小不同,但都是縮放成同一大小欺矫,輸入CNN當(dāng)中,對(duì)每個(gè)CNN抽取一個(gè)固定長(zhǎng)度的特征向量展氓,然后借助專門(mén)針對(duì)類(lèi)別數(shù)據(jù)的線性SVM對(duì)每個(gè)區(qū)域進(jìn)行分類(lèi)汇陆。
檢測(cè)中遇到的第二個(gè)問(wèn)題就是標(biāo)簽數(shù)據(jù)太少。傳統(tǒng)的方法采用無(wú)監(jiān)督訓(xùn)練带饱,再進(jìn)行有監(jiān)督訓(xùn)練毡代。本文的第二個(gè)核心就是在輔助數(shù)據(jù)集上(ILSVRC)上進(jìn)行有監(jiān)督預(yù)訓(xùn)練,再在小數(shù)據(jù)集上針對(duì)特定問(wèn)題進(jìn)行調(diào)優(yōu)勺疼。這是在訓(xùn)練數(shù)據(jù)稀少的情況下一個(gè)非常有效的訓(xùn)練大型卷積神經(jīng)網(wǎng)絡(luò)的方法教寂。遠(yuǎn)超高度優(yōu)化的基于HOG的可變性部件模型(deformable part model,DPM)
【DPM:多尺度形變部件模型执庐,連續(xù)獲得07-09的檢測(cè)冠軍酪耕,2010年其作者Felzenszwalb Pedro被VOC授予”終身成就獎(jiǎng)”。DPM把物體看成了多個(gè)組成的部件(比如人臉的鼻子轨淌、嘴巴等)迂烁,用部件間的關(guān)系來(lái)描述物體,這個(gè)特性非常符合自然界很多物體的非剛體特征递鹉。DPM可以看做是HOG+SVM的擴(kuò)展盟步,很好的繼承了兩者的優(yōu)點(diǎn),在人臉檢測(cè)躏结、行人檢測(cè)等任務(wù)上取得了不錯(cuò)的效果却盘,但是DPM相對(duì)復(fù)雜,檢測(cè)速度也較慢,從而也出現(xiàn)了很多改進(jìn)的方法黄橘≌桌溃】
R-CNN是在推薦區(qū)域上進(jìn)行的操作,所以很自然地?cái)U(kuò)展到了語(yǔ)義分割任務(wù)上塞关。
2抬探、用R-CNN做物體檢測(cè)
2.1 模塊設(shè)計(jì)
???? 物體檢測(cè)系統(tǒng)有三個(gè)模塊構(gòu)成。第一個(gè)帆赢,產(chǎn)生類(lèi)別無(wú)關(guān)的region proposal小压。這些推薦定義了一個(gè)候選檢測(cè)區(qū)域的集合;第二個(gè)是一個(gè)大型卷積神經(jīng)網(wǎng)絡(luò)匿醒,用于從每個(gè)區(qū)域抽取特定大小的特征向量场航;第三個(gè)是一個(gè)指定類(lèi)別的線性SVM。
-
1.區(qū)域推薦(region proposal)
有很多類(lèi)別無(wú)關(guān)區(qū)域推薦的方法廉羔,我們采用了選擇性搜索方法 -
2.特征提雀攘 (Feature extration)
????我們使用Krizhevsky等人所描述的CNN的一個(gè)Caffe實(shí)現(xiàn)版本對(duì)每個(gè)推薦區(qū)域抽取一個(gè)4096維度的特征向量把一個(gè)輸入為277*277大小的圖片,通過(guò)五個(gè)卷積層和兩個(gè)全連接層進(jìn)行前向傳播,最終得到一個(gè)4096-D的特征向量憋他。讀者可以參考AlexNet獲得更多的網(wǎng)絡(luò)架構(gòu)細(xì)節(jié)孩饼。
為了計(jì)算region proposal的特征,我們首先要對(duì)圖像進(jìn)行轉(zhuǎn)換竹挡,使得它符合CNNC的輸入(架構(gòu)中的CNNC只能接受固定大卸迫ⅰ:277*277)。這個(gè)變換有很多辦法揪罕,我們使用了最簡(jiǎn)單的一種梯码。無(wú)論候選區(qū)域是什么尺寸和寬高比,我們都把候選框變形成想要的尺寸好啰。具體的轩娶,變形之前,我們現(xiàn)在候選框周?chē)由?6的padding,再進(jìn)行各向異性縮放框往。 這種形變使得mAp提高了3到5個(gè)百分點(diǎn)鳄抒。在補(bǔ)充材料中,作者對(duì)比了各向異性和各向同性縮放縮放方法椰弊。
【關(guān)于圖像的各項(xiàng)同性 各向異性可以參考我的另一篇文章许溅,那里有具體比較說(shuō)明
鏈接:R-CNN中的各項(xiàng)同性 各向異性】。
2.2 測(cè)試階段的物體檢測(cè)
測(cè)試階段秉版,在測(cè)試圖像上使用selective search抽取2000個(gè)推薦區(qū)域(實(shí)驗(yàn)中贤重,我們使用了選擇性搜索的快速模式)。然后變形每一個(gè)推薦區(qū)域沐飘,再通過(guò)CNN前向傳播計(jì)算出特征游桩。然后我們使用對(duì)每個(gè)類(lèi)別訓(xùn)練出的SVM給整個(gè)特征向量中的每個(gè)類(lèi)別單獨(dú)打分牲迫。
【對(duì)每一個(gè)框使用每個(gè)類(lèi)別的SVM進(jìn)行打分】
然后給出一張圖像中所有的打分區(qū)域耐朴,然后使用NMS(每個(gè)類(lèi)別是獨(dú)立進(jìn)行的)借卧,拒絕掉一些和高分區(qū)域的IOU大于閾值的候選框。
運(yùn)行時(shí)的分析
兩個(gè)特性讓檢測(cè)變得很高效筛峭。1铐刘、所有的CNN的參數(shù)都是跨類(lèi)別共享,也就是每個(gè)候選區(qū)域通過(guò)的都是同樣的CNN網(wǎng)絡(luò)影晓。2镰吵、通過(guò)CNN計(jì)算的特征向量相對(duì)于其他通用方法維度低,也就是速度快挂签。(GPU:每張圖13s疤祭,CPU:每張圖53s)(其實(shí)速度還是很慢)
2.3 訓(xùn)練
有監(jiān)督的預(yù)訓(xùn)練(Supervised pre-train)
在ILSVRC2012分類(lèi)數(shù)據(jù)集上預(yù)訓(xùn)練了CNN。特定領(lǐng)域的參數(shù)調(diào)優(yōu)(Domin-specific fine-tuning)
為了讓我們的CNN適應(yīng)新的任務(wù)(即檢測(cè)任務(wù))和新的領(lǐng)域(變形后的推薦窗口)饵婆。我們只使用變形后的推薦區(qū)域?qū)NN參數(shù)進(jìn)行SGD訓(xùn)練勺馆。我們替換掉了ImageNet專用的1000-way分類(lèi)層,換成了一個(gè)隨機(jī)初始化的21-way分類(lèi)層侨核,(其中20是VOC的類(lèi)別數(shù)草穆,1代表背景)而卷積部分都沒(méi)有改變。我們對(duì)待所有的推薦區(qū)域搓译,如果其和真實(shí)標(biāo)注的框的IoU>= 0.5就認(rèn)為是正例悲柱,否則就是負(fù)例。目標(biāo)種類(lèi)分類(lèi)器
【IOU<0.3被作為負(fù)例些己,ground-truth是正例豌鸡,其余的全部丟棄】
2.5 在ILSVR2013數(shù)據(jù)集上的檢測(cè)結(jié)果
3、可視化段标、消融涯冠、模型的錯(cuò)誤
4、語(yǔ)義分割
5怀樟、總結(jié)
最近幾年功偿,物體檢測(cè)陷入停滯,表現(xiàn)最好的檢測(cè)系統(tǒng)是復(fù)雜的將多低層級(jí)的圖像特征與高層級(jí)的物體檢測(cè)器環(huán)境與場(chǎng)景識(shí)別相結(jié)合往堡。本文提出了一種簡(jiǎn)單并且可擴(kuò)展的物體檢測(cè)方法械荷,達(dá)到了VOC 2012數(shù)據(jù)集相對(duì)之前最好性能的30%的提升。
我們?nèi)〉眠@個(gè)性能主要通過(guò)兩個(gè)方面:第一是應(yīng)用了自底向上的候選框訓(xùn)練的高容量的卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行定位和分割物體虑灰。另外一個(gè)是使用在標(biāo)簽數(shù)據(jù)匱乏的情況下訓(xùn)練大規(guī)模神經(jīng)網(wǎng)絡(luò)的一個(gè)方法吨瞎。我們展示了在有監(jiān)督的情況下使用豐富的數(shù)據(jù)集(圖片分類(lèi))預(yù)訓(xùn)練一個(gè)網(wǎng)絡(luò)作為輔助性的工作是很有效的,然后采用稀少數(shù)據(jù)(檢測(cè))去調(diào)優(yōu)定位任務(wù)的網(wǎng)絡(luò)穆咐。我們猜測(cè)“有監(jiān)督的預(yù)訓(xùn)練+特定領(lǐng)域的調(diào)優(yōu)”這一范式對(duì)于數(shù)據(jù)稀少的視覺(jué)問(wèn)題是很有效的颤诀。
最后,我們注意到能得到這些結(jié)果字旭,將計(jì)算機(jī)視覺(jué)中經(jīng)典的工具和深度學(xué)習(xí)(自底向上的區(qū)域候選框和卷積神經(jīng)網(wǎng)絡(luò))組合是非常重要的。
寫(xiě)在之后
1崖叫、創(chuàng)新點(diǎn)
1遗淳、采用CNN網(wǎng)絡(luò)提取圖像特征,從經(jīng)驗(yàn)驅(qū)動(dòng)的人造特征范式HOG心傀、SIFT到數(shù)據(jù)驅(qū)動(dòng)的表示學(xué)習(xí)范式屈暗,提高特征對(duì)樣本的表示能力;
2脂男、采用大樣本下有監(jiān)督預(yù)訓(xùn)練+小樣本微調(diào)的方式解決小樣本難以訓(xùn)練甚至過(guò)擬合等問(wèn)題养叛。
2、問(wèn)題是什么
1宰翅、近10年以來(lái)弃甥,以人工經(jīng)驗(yàn)特征為主導(dǎo)的物體檢測(cè)任務(wù)mAP【物體類(lèi)別和位置的平均精度】提升緩慢;
2汁讼、隨著ReLu激勵(lì)函數(shù)淆攻、dropout正則化手段和大規(guī)模圖像樣本集ILSVRC的出現(xiàn),在2012年ImageNet大規(guī)模視覺(jué)識(shí)別挑戰(zhàn)賽中掉缺,Hinton及他的學(xué)生采用CNN特征獲得了最高的圖像識(shí)別精確度卜录;
3、上述比賽后眶明,引發(fā)了一股“是否可以采用CNN特征來(lái)提高當(dāng)前一直停滯不前的物體檢測(cè)準(zhǔn)確率“的熱潮艰毒。
3、需要思考的問(wèn)題
- 候選區(qū)域的提取搜囱。選擇性搜索丑瞧,選取合適的候選區(qū)域
- 特征提取網(wǎng)絡(luò)的選擇。CNN卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行特征提取蜀肘,這個(gè)網(wǎng)絡(luò)模型的選取绊汹,VGG16
- 預(yù)訓(xùn)練和微調(diào)。卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練扮宠,用VOC數(shù)據(jù)集訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)西乖,這個(gè)過(guò)程叫做預(yù)訓(xùn)練,得到網(wǎng)絡(luò)參數(shù)坛增,然后實(shí)際的分類(lèi)和訓(xùn)練時(shí)的分類(lèi)可能不同获雕,如VOC是100分類(lèi)問(wèn)題,而實(shí)際的檢測(cè)可能只需要10分類(lèi)或者2分類(lèi)收捣,這個(gè)時(shí)候就需要微調(diào)網(wǎng)絡(luò)届案,改變最后的分類(lèi)網(wǎng)絡(luò),變成我們需要的分類(lèi)罢艾。
- 對(duì)檢測(cè)物體的分類(lèi)問(wèn)題楣颠。這里選擇SVM用來(lái)分類(lèi)尽纽,后面還有softmax可以用來(lái)分類(lèi)。首先要訓(xùn)練每個(gè)類(lèi)別的SVM童漩,然后候選區(qū)域中的圖片分別經(jīng)過(guò)這些SVM進(jìn)行分類(lèi)弄贿。