上回書(shū)詳細(xì)的介紹了R-CNN的前世今生,在文章的最后同樣拋出了R-CNN中的不足點(diǎn):其一是檢測(cè)的精度相對(duì)而言比較低条霜,這主要是圖像歸一化時(shí)對(duì)圖像過(guò)度拉伸造成的肩杈,其二是檢測(cè)速度慢径玖,這個(gè)是由于每張圖像需要分割成2000多個(gè)特征區(qū)域瘪贱,然后依次進(jìn)入卷積網(wǎng)絡(luò)造成的。
發(fā)現(xiàn)問(wèn)題下一步就是要解決問(wèn)題牙言。
首先我們來(lái)說(shuō)一下為什么要進(jìn)行圖像的歸一化酸钦。
這樣做的目的是因?yàn)镽-CNN采用的是Alexnet網(wǎng)絡(luò),而需要特別注意的是Alexnet網(wǎng)絡(luò)的輸入圖像大小是固定大小的咱枉。即227*227像素钝鸽。但是呢,通過(guò)SS算法產(chǎn)生的候選區(qū)域的大小是隨機(jī)的庞钢,也就是說(shuō)拔恰,等待進(jìn)入神經(jīng)網(wǎng)絡(luò)進(jìn)行特征提取的候選區(qū)域大小是不一樣的,有的大有的小基括,這樣的話(huà)颜懊,我們就給他歸一化大小唄,統(tǒng)一歸一化成227*227的了风皿。
某國(guó)的整形文化十分厲害河爹,但是長(zhǎng)相不同的人都整成“網(wǎng)紅臉”后,必然不是太自然桐款。即使再高超的整形醫(yī)師咸这,再精湛的“刀工”也是會(huì)留下痕跡的,更何況是簡(jiǎn)單的拉扯魔眨,將大的小的長(zhǎng)的方的圖像強(qiáng)行歸一化成227*227呢媳维?
那么可不可以通過(guò)網(wǎng)絡(luò)結(jié)構(gòu)的整改酿雪,使得任意大小的圖像都可以輸入到卷積神經(jīng)網(wǎng)絡(luò)之中呢?當(dāng)然可以了V豆簟V咐琛!下面祭出大神何凱明州丹!
如果你想在目標(biāo)檢測(cè)領(lǐng)域有所斬獲醋安,那么以后你會(huì)經(jīng)常讀到它的論文!
前文中說(shuō)到AlexNet需要固定大小的輸入墓毒,那么究竟是什么地方需要固定大小呢吓揪?通過(guò)分析網(wǎng)絡(luò),不難發(fā)現(xiàn)所计,在卷積層以及池化層就是在做一些基本的卷集運(yùn)算柠辞,并不需要固定大小的圖像,只不過(guò)是你來(lái)多大的圖像經(jīng)過(guò)運(yùn)算之后醉箕,我給你輸出相應(yīng)大小的圖像罷了。需要固定大小是因?yàn)樵诰矸e層后邊連接的全連接層(FC層)徙垫,F(xiàn)C層需要進(jìn)行全連接操作讥裤,然而一般全連接的節(jié)點(diǎn)數(shù)是固定的嗎,這就造成了輸入進(jìn)全連接層的大小必須是固定的姻报,要不然沒(méi)辦法做運(yùn)算凹河ⅰ!圖像小了吴旋,節(jié)點(diǎn)有富裕损肛,不合適,圖像大了荣瑟,節(jié)點(diǎn)又不夠用了治拿,更不合適。
分析到這里笆焰,何凱明大神好像發(fā)現(xiàn)了其中的玄機(jī)劫谅。既然只要輸入給FC層的圖像大小固定就好了,我為什么需要在一開(kāi)始就做成一般大的叭侣印捏检?基于此,何凱明博士發(fā)表了論文:《Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition》不皆,里面提出了空間金字塔池化贯城,將其接在最后一層卷積層(池化層)與FC層之間,實(shí)現(xiàn)了可以輸入任意大小圖像進(jìn)卷積神經(jīng)網(wǎng)絡(luò)的目的霹娄。
在最后一層卷積層后面加上了如圖所示的結(jié)構(gòu)能犯,具體的做法是在Conv5層會(huì)得到256層的特征圖鲫骗,對(duì)每一層均進(jìn)行空間金字塔池化(Spatial Pyramid Pooling,SSP)悲雳。首先要獲得不同尺寸大小的蒙版挎峦,圖中所示為三種不同大小,分別是4*4,2*2和1*1合瓢,將該蒙板蓋在每一種特征圖像坦胶,在每個(gè)網(wǎng)格中做max pooling,這樣這256層特征圖就做成了16*256晴楔、4*256和1*256維特征顿苇,將其連接起來(lái)便得到了固定長(zhǎng)度的特征向量了,將這個(gè)特征向量輸入到全連接層便可以啦税弃!
既然不需要將2000張候選區(qū)域進(jìn)行歸一化了纪岁,那么自然也就不再需要將每一種候選區(qū)域做一次卷積運(yùn)算了,直接將原圖扔進(jìn)卷積網(wǎng)絡(luò)就可以啦则果,這可是一件了不起的改進(jìn)幔翰,速度可以提升百倍!
其具體的做法是將整張圖像輸入到CNN中西壮,進(jìn)行特征提取遗增,從而得到特征圖(Feature Map),然后再特征圖中尋找早先利用SS算法得到的2K個(gè)候選區(qū)域款青,再將其通過(guò)空間金字塔池化層便OK了做修。
以上便是SPP-Net的精髓了,其改進(jìn)的就是特征提取的步驟抡草。其優(yōu)點(diǎn)是非常明顯的:提高檢測(cè)速度饰及!
但是其并沒(méi)有對(duì)R-CNN進(jìn)行深層次的優(yōu)化,并不是一種end-to-end (端到端)的檢測(cè)算法康震,并且距離端到端的檢測(cè)還稍微有那么一點(diǎn)距離燎含。
有困難不可怕,我們前進(jìn)的路上有大神腿短,下一步便是對(duì)SVM和BBox下手了瘫镇。
未完待續(xù)。答姥。铣除。