功能描述:
貢獻(xiàn)主要有兩點(diǎn)1:可以將卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用region proposal的策略,自底下上訓(xùn)練可以用來(lái)定位目標(biāo)物和圖像分割 2:當(dāng)標(biāo)注數(shù)據(jù)是比較稀疏的時(shí)候,在有監(jiān)督的數(shù)據(jù)集上訓(xùn)練之后到特定任務(wù)的數(shù)據(jù)集上fine-tuning可以得到較好的新能,也就是說(shuō)用Imagenet上訓(xùn)練好的模型,然后到你自己需要訓(xùn)練的數(shù)據(jù)上fine-tuning一下,檢測(cè)效果很好。現(xiàn)在達(dá)到的效果比目前最好的DPM方法 mAP還要高上20點(diǎn),目前voc上性能最好。
著篇文章主要是介紹RCNN,跟后面的,F(xiàn)ast RCNN和Faster RCNN比較關(guān)聯(lián),這篇文章是后兩個(gè)的基礎(chǔ)
1.介紹
在開(kāi)始他說(shuō)到LeCun對(duì)卷積神經(jīng)網(wǎng)絡(luò)中采用的SGD(通過(guò)反向傳播的隨機(jī)梯度下降算法)對(duì)網(wǎng)絡(luò)訓(xùn)練很有效,也直接促進(jìn)了利用CNN來(lái)做檢測(cè)。
其實(shí)CNN的算法在90年代就已經(jīng)出現(xiàn)了,可惜當(dāng)時(shí)被SVM取代了,主要原因就是當(dāng)時(shí)訓(xùn)練不動(dòng)。2012年的時(shí)候Krizhevsky復(fù)燃了CNN,其在Imagenet的數(shù)據(jù)集上訓(xùn)練達(dá)到了非常好的效果,主要是用了LeCun中的一些技巧如(rectifying non-linearities and “dropout” regularization)
后來(lái)就有了討論說(shuō)把CNN方到目標(biāo)檢測(cè)上能達(dá)到什么樣的效果。因此RossGirshick把問(wèn)題主要聚集在了2個(gè)點(diǎn)上:
1一個(gè)是用深度網(wǎng)絡(luò)來(lái)做一個(gè)檢測(cè),并且在整個(gè)high-capacity model中用較少的標(biāo)注數(shù)據(jù)來(lái)training,比如幾萬(wàn)張圖像,(畢竟Imagenet上有上千萬(wàn)的圖像數(shù)據(jù))。不像圖像分類(lèi)任務(wù),檢測(cè)是需要定位的。因此RCNN里把這個(gè)定位轉(zhuǎn)換成一個(gè)regression problem(即回歸問(wèn)題)。當(dāng)然他們?cè)诋?dāng)時(shí)也想采用最經(jīng)典的也就是sliding window,在卷積層增加了較大的感受野。但是他們最后沒(méi)有采用,因?yàn)橹暗腄PM中也已經(jīng)不采用這種方法了,無(wú)效的操作太多(PS.這里是我個(gè)人感覺(jué),而且會(huì)增加復(fù)雜度)。他們最后采用的是Recognition using region的策略(這種paradigm已經(jīng)在目標(biāo)識(shí)別和semantic segmention中取得了較好的成功)。在測(cè)試階段,他們提取約2000K預(yù)選框,從預(yù)選框中通過(guò)CNN提取出fixed-length的特征,最后通過(guò)特定類(lèi)別的SVM來(lái)分類(lèi)。對(duì)于不同大小的ROI采用了(affine image warping)來(lái)調(diào)整到固定的size,這種方法是不考慮region的形狀的。整個(gè)系統(tǒng)的overview
2.在實(shí)際檢測(cè)中,訓(xùn)練的樣本肯定是scarce,不足以訓(xùn)練一個(gè)大型的CNN網(wǎng)絡(luò)。解決這個(gè)問(wèn)題的方法是,首先通過(guò)無(wú)監(jiān)督的預(yù)訓(xùn)練unsupervised pretraining,然后再進(jìn)行supervised training,在實(shí)驗(yàn)中他們提到經(jīng)過(guò)fine-tuninig,檢測(cè)的mAP有8個(gè)點(diǎn)的提高。Ross提到Donahue的同時(shí)期的工作,其直接拿了krizhevsky的CNN網(wǎng)絡(luò)用來(lái)做一個(gè)blackbox feature的extractor,這也在識(shí)別任務(wù)中表現(xiàn)出了較好的性能,如場(chǎng)景識(shí)別,細(xì)粒度的子分類(lèi),領(lǐng)域適應(yīng)。分類(lèi)計(jì)算中只有整個(gè)的分類(lèi)工作只是一個(gè)矩陣相乘和非極大值抑制。
在錯(cuò)誤分析中,可以發(fā)現(xiàn)bounding box的regression 可以明顯的減少mislocalization。同理,作者說(shuō)因?yàn)镽CNN是工作在Region上的,因此其也可以較好的應(yīng)用到semantic segmentation,最后也在voc2011上取得了較好的效果,比最好的高出1個(gè)點(diǎn),(PS.我認(rèn)為應(yīng)該會(huì)有更好的性能,應(yīng)該還沒(méi)有做透,原來(lái)的那些分割仍然依賴(lài)淺層的特征)
特征提取:在網(wǎng)絡(luò)之前,ROI不管大小形狀都被縮放到一個(gè)固定的尺寸以適應(yīng)網(wǎng)絡(luò)。
2.2
測(cè)試時(shí)檢測(cè)
在RCNN中,為每一類(lèi)都訓(xùn)練了一個(gè)SVM,最后根據(jù)輸出的特征類(lèi)判斷,每一個(gè)區(qū)域都有一個(gè)得分,最后通過(guò)greedy non-maximun supperssinon(for each class independently)來(lái)接受或者拒絕一個(gè)region,主要是看他這個(gè)有IoU的region是否比學(xué)習(xí)到的閾值有更高的得分。
對(duì)于運(yùn)行分析
1.所有的CNN參數(shù)都在各個(gè)類(lèi)別分享參數(shù)
2.CNN計(jì)算出來(lái)的參數(shù)是low dimensional 低維的,與其他方法比起來(lái)如空間金字塔,以及視覺(jué)詞帶模型
-
The only class-specific computations are dot products between features and SVM weights and non-maximum suppression
4.RCNN可以應(yīng)付類(lèi)別很多情況并且不需要借助一些額外的近似手段,比如哈希什么的,別的方法在類(lèi)別增長(zhǎng)時(shí),整個(gè)復(fù)雜度會(huì)上升很多,比之前的DPM的方法也要好很多
2.3 訓(xùn)練過(guò)程
supervised-pretraining ----> domain-specifi fine-tuning ---->object categroy classier
1.supervised-pretraining是在imagenet上訓(xùn)練好的模型
2.domian-specific fine-tuning 首先需要修改類(lèi)別數(shù)目,并且在文中,Ross將IoU和GT大于0.5的看成是正樣本,在SGD中 lr為pre-training rate的十分之一為0.001,這樣不會(huì)影響預(yù)訓(xùn)練。在SGD中,每一次迭代,mini-batch大小是128,總共有32個(gè)postive window,96個(gè)negtive window.`
3可視化學(xué)習(xí)的特征
在可視化學(xué)習(xí)特征中中,采用了一個(gè)很大的局部感受野的數(shù)據(jù)集。這了主要對(duì)卷基層進(jìn)行可視化,輸入region圖像,根據(jù)unit激活之的大小排序,來(lái)看他對(duì)什么樣的輸入敏感。下圖可以看到有一些Unit對(duì)人臉敏感如1,有一些對(duì)點(diǎn)陣,狗敏感如2行,第三行,對(duì)紅色敏感,對(duì)第四行對(duì)文字敏感,也能將一些特征融合到一起入顏色、紋理、形狀,如5行的屋子。。等等
3.2 關(guān)于參數(shù)消除的研究
1.performace沒(méi)有fine-tuning
從表中可以看到fc7產(chǎn)生的特征比f(wàn)c6澶色恒的特征要差,這也就是說(shuō)29%差不多1.68million個(gè)數(shù)據(jù)是可以從CNN網(wǎng)絡(luò)中去掉的,并且?guī)缀鯇?duì)mAP沒(méi)什么影響。更加驚訝的是,如果把f6和f7都去掉的話(huà),只用pool5層的參數(shù)也就是大于整個(gè)網(wǎng)絡(luò)6%的參數(shù)也可以取得不錯(cuò)的結(jié)果如下圖所示:可以看到大部分representational的能力主要是來(lái)自于CNN的卷積層,而不是主要的全連接層。這個(gè)發(fā)現(xiàn)可以用在稠密的特征map中,比如說(shuō)Hog。這種表現(xiàn)能力也就是說(shuō)我們有可以將其應(yīng)用到一些滑動(dòng)窗檢測(cè)子中如DPM,在pool5的特征基礎(chǔ)之上。作者原文(Much of the CNN’s representationalpower comes from its convolutional layers, rather than fromthe much larger densely connected layers. This finding suggests potential utility in computing a dense feature map, in the sense of HOG, of an arbitrary-sized image by using only the convolutional layers of the CNN. This representation would enable experimentation with sliding-window detectors, including DPM, on top of pool5 features)
2.經(jīng)過(guò)fine-tuning的性能
可以看到fine-tuning的效果還是很明顯的,幾乎提高了8個(gè)點(diǎn),并且對(duì)于fc67的效果更明顯,這也就是說(shuō)從imagenet中學(xué)習(xí)到的pool5的特征比較general,并且對(duì)于性能的提升主要是來(lái)自對(duì)于在他們基礎(chǔ)上的domain-specific具體應(yīng)用場(chǎng)景的non-linear分類(lèi)器的訓(xùn)練。
3.4 關(guān)于BBOX
首先需要明確的是,RCNN并不是從預(yù)選框里選擇一個(gè)判斷一下那么簡(jiǎn)單,在論文中的錯(cuò)誤分析,大部分的檢測(cè)錯(cuò)誤的主要成分都是localize error 也就是定位錯(cuò)誤,IoU在0.1和0.5之間。與別的類(lèi)別以及背景confusion比例非常小,在這里作者根據(jù)最后輸出的feature 進(jìn)一步做了regression, 采用的是之前在DPM檢測(cè)中的用的Linear regression model,這個(gè)讓mAP大概提高了4個(gè)點(diǎn)。
4 Semantic segmentation
文中也提到了將RCNN網(wǎng)絡(luò)用語(yǔ)分割,但是效果與目前較好的O2P的方法沒(méi)有本質(zhì)的提高約0.9。我認(rèn)為主要還是網(wǎng)絡(luò)學(xué)習(xí)過(guò)程并不足,其對(duì)于細(xì)粒度的特征沒(méi)有一個(gè)整體的學(xué)習(xí)過(guò)程,目前在semantic segmentation上性能最好的是《Learning Deconvolution Network for Semantic Segmentation》目前在pascal-voc數(shù)據(jù)集上是第一的性能,他的網(wǎng)絡(luò)中有一個(gè)對(duì)稱(chēng)的deconvolutoin network。
結(jié)束語(yǔ):最近這幾年確實(shí),在目標(biāo)物檢測(cè)的性能上是停滯不前了,現(xiàn)在最好的DPM算法都是結(jié)合好多l(xiāng)ow-level的feature,并且這些feature都是手工設(shè)計(jì)的加上一些high-level context from detector和scene classifier。這篇文章給出了基于Region proposal和CNN網(wǎng)絡(luò)極大的提高了mAP。有監(jiān)督的預(yù)訓(xùn)練在特定場(chǎng)合的fine-tuning這一模式會(huì)針對(duì)很多數(shù)據(jù)系稀疏的是視覺(jué)問(wèn)題有效。作者這里的意思是說(shuō)拿Imagenet上訓(xùn)練好的那個(gè)模型,然后根據(jù)自己的特定應(yīng)用場(chǎng)景,把模型用自己的數(shù)據(jù)fine-tuning一下,這樣的做法是挺有效的。
|