目標(biāo)檢測綜述_第1頁
目標(biāo)檢測綜述_第2頁
目標(biāo)檢測綜述_第3頁
目標(biāo)檢測綜述_第4頁
目標(biāo)檢測綜述_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、一、傳統(tǒng)目標(biāo)檢測方法如上圖所示,傳統(tǒng)目標(biāo)檢測的方法一般分為三個階段:首先在給定的圖像上選擇一些候選的區(qū)域,然后對這些區(qū)域提取特征,最后使用訓(xùn)練的分類器進行分類。下面我們對這三個階段分別進行介紹。(1) 區(qū)域選擇這一步是為了對目標(biāo)的位置進行定位。由于目標(biāo)可能出現(xiàn)在圖像的任何位置,而且目標(biāo)的大小、長寬比例也不確定,所以最初采用滑動窗口的策略對整幅圖像進行遍歷,而且需要設(shè)置不同的尺度,不同的長寬比。這種窮舉的策略雖然包含了目標(biāo)所有可能出現(xiàn)的位置,但是缺點也是顯而易見的:時間復(fù)雜度太高,產(chǎn)生冗余窗口太多,這也嚴(yán)重影響后續(xù)特征提取和分類的速度和性能。(實際上由于受到時間復(fù)雜度的問題,滑動窗口的長寬比一般

2、都是固定的設(shè)置幾個,所以對于長寬比浮動較大的多類別目標(biāo)檢測,即便是滑動窗口遍歷也不能得到很好的區(qū)域) (2)特征提取由于目標(biāo)的形態(tài)多樣性,光照變化多樣性,背景多樣性等因素使得設(shè)計一個魯棒的特征并不是那么容易。然而提取特征的好壞直接影響到分類的準(zhǔn)確性。(這個階段常用的特征有SIFT、HOG等)(3) 分類器主要有SVM, Adaboost等??偨Y(jié):傳統(tǒng)目標(biāo)檢測存在的兩個主要問題:一是基于滑動窗口的區(qū)域選擇策略沒有針對性,時間復(fù)雜度高,窗口冗余;二是手工設(shè)計的特征對于多樣性的變化并沒有很好的魯棒性。二、基于Region Proposal的深度學(xué)習(xí)目標(biāo)檢測算法對于傳統(tǒng)目標(biāo)檢測任務(wù)存在的兩個主要問題,

3、我們該如何解決呢?對于滑動窗口存在的問題,region proposal提供了很好的解決方案。region proposal(候選區(qū)域)是預(yù)先找出圖中目標(biāo)可能出現(xiàn)的位置。但由于region proposal利用了圖像中的紋理、邊緣、顏色等信息,可以保證在選取較少窗口(幾千個甚至幾百個)的情況下保持較高的召回率。這大大降低了后續(xù)操作的時間復(fù)雜度,并且獲取的候選窗口要比滑動窗口的質(zhì)量更高(滑動窗口固定長寬比)。比較常用的region proposal算法有selective Search和edge Boxes,如果想具體了解region proposal可以看一下PAMI2015的“What ma

4、kes for effective detection proposals?”有了候選區(qū)域,剩下的工作實際就是對候選區(qū)域進行圖像分類的工作(特征提取+分類)。對于圖像分類,不得不提的是2012年ImageNet大規(guī)模視覺識別挑戰(zhàn)賽(ILSVRC)上,機器學(xué)習(xí)泰斗Geoffrey Hinton教授帶領(lǐng)學(xué)生Krizhevsky使用卷積神經(jīng)網(wǎng)絡(luò)將ILSVRC分類任務(wù)的Top-5 error降低到了15.3%,而使用傳統(tǒng)方法的第二名top-5 error高達 26.2%。此后,卷積神經(jīng)網(wǎng)絡(luò)占據(jù)了圖像分類任務(wù)的絕對統(tǒng)治地位,微軟最新的ResNet和谷歌的Inception V4模型的top-5 erro

5、r降到了4%以內(nèi)多,這已經(jīng)超越人在這個特定任務(wù)上的能力。所以目標(biāo)檢測得到候選區(qū)域后使用CNN對其進行圖像分類是一個不錯的選擇。2014年,RBG(Ross B. Girshick)大神使用region proposal+CNN代替?zhèn)鹘y(tǒng)目標(biāo)檢測使用的滑動窗口+手工設(shè)計特征,設(shè)計了R-CNN框架,使得目標(biāo)檢測取得巨大突破,并開啟了基于深度學(xué)習(xí)目標(biāo)檢測的熱潮。1. R-CNN (CVPR2014, TPAMI2015)(Region-based Convolution Networks for Accurate Object detection and Segmentation)上面的框架圖清晰的給

6、出了R-CNN的目標(biāo)檢測流程: (1)輸入測試圖像(2)利用selective search算法在圖像中提取2000個左右的region proposal。 (3)將每個region proposal縮放(warp)成227x227的大小并輸入到CNN,將CNN的fc7層的輸出作為特征。 (4)將每個region proposal提取到的CNN特征輸入到SVM進行分類。上面的框架圖是測試的流程圖,要進行測試我們首先要訓(xùn)練好提取特征的CNN模型,以及用于分類的SVM:使用在ImageNet上預(yù)訓(xùn)練的模型(AlexNet/VGG16)進行微調(diào)得到用于特征提取的CNN模型,然后利用CNN模型對訓(xùn)練集

7、提特征訓(xùn)練SVM。對每個region proposal縮放到同一尺度是因為CNN全連接層輸入需要保證維度固定。上圖少畫了一個過程對于SVM分好類的region proposal做邊框回歸(bounding-box regression),邊框回歸是對region proposal進行糾正的線性回歸算法,為了讓region proposal提取到的窗口跟目標(biāo)真實窗口更吻合。因為region proposal提取到的窗口不可能跟人手工標(biāo)記那么準(zhǔn),如果region proposal跟目標(biāo)位置偏移較大,即便是分類正確了,但是由于IoU(region proposal與Ground Truth的窗口的交

8、集比并集的比值)低于0.5,那么相當(dāng)于目標(biāo)還是沒有檢測到。小結(jié):R-CNN在PASCAL VOC2007上的檢測結(jié)果從DPM HSC的34.3%直接提升到了66%(mAP)。如此大的提升使我們看到了region proposal+CNN的巨大優(yōu)勢。但是R-CNN框架也存在著很多問題:(1)訓(xùn)練分為多個階段,步驟繁瑣: 微調(diào)網(wǎng)絡(luò)+訓(xùn)練SVM+訓(xùn)練邊框回歸器(2)訓(xùn)練耗時,占用磁盤空間大:5000張圖像產(chǎn)生幾百G的特征文件(3)速度慢: 使用GPU, VGG16模型處理一張圖像需要47s。針對速度慢的這個問題,SPP-NET給出了很好的解決方案。2. SPP-NET (ECCV2014, TPAM

9、I2015)(Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition)先看一下R-CNN為什么檢測速度這么慢,一張圖都需要47s!仔細看下R-CNN框架發(fā)現(xiàn),對圖像提完region proposal(2000個左右)之后將每個proposal當(dāng)成一張圖像進行后續(xù)處理(CNN提特征+SVM分類),實際上對一張圖像進行了2000次提特征和分類的過程!有沒有方法提速呢?好像是有的,這2000個region proposal不都是圖像的一部分嗎,那么我們完全可以對圖像提一次卷積層特征,然后只需要將reg

10、ion proposal在原圖的位置映射到卷積層特征圖上,這樣對于一張圖像我們只需要提一次卷積層特征,然后將每個region proposal的卷積層特征輸入到全連接層做后續(xù)操作。(對于CNN來說,大部分運算都耗在卷積操作上,這樣做可以節(jié)省大量時間)?,F(xiàn)在的問題是每個region proposal的尺度不一樣,直接這樣輸入全連接層肯定是不行的,因為全連接層輸入必須是固定的長度。SPP-NET恰好可以解決這個問題:上圖對應(yīng)的就是SPP-NET的網(wǎng)絡(luò)結(jié)構(gòu)圖,任意給一張圖像輸入到CNN,經(jīng)過卷積操作我們可以得到卷積特征(比如VGG16最后的卷積層為conv5_3,共產(chǎn)生512張?zhí)卣鲌D)。圖中的win

11、dow是就是原圖一個region proposal對應(yīng)到特征圖的區(qū)域,只需要將這些不同大小window的特征映射到同樣的維度,將其作為全連接的輸入,就能保證只對圖像提取一次卷積層特征。SPP-NET使用了空間金字塔采樣(spatial pyramid pooling):將每個window劃分為4*4, 2*2, 1*1的塊,然后每個塊使用max-pooling下采樣,這樣對于每個window經(jīng)過SPP層之后都得到了一個長度為(4*4+2*2+1)*512維度的特征向量,將這個作為全連接層的輸入進行后續(xù)操作。小結(jié):使用SPP-NET相比于R-CNN可以大大加快目標(biāo)檢測的速度,但是依然存在著很多問

12、題:(1)訓(xùn)練分為多個階段,步驟繁瑣: 微調(diào)網(wǎng)絡(luò)+訓(xùn)練SVM+訓(xùn)練訓(xùn)練邊框回歸器(2)SPP-NET在微調(diào)網(wǎng)絡(luò)的時候固定了卷積層,只對全連接層進行微調(diào),而對于一個新的任務(wù),有必要對卷積層也進行微調(diào)。(分類的模型提取的特征更注重高層語義,而目標(biāo)檢測任務(wù)除了語義信息還需要目標(biāo)的位置信息)針對這兩個問題,RBG又提出Fast R-CNN, 一個精簡而快速的目標(biāo)檢測框架。3. Fast R-CNN(ICCV2015)有了前邊R-CNN和SPP-NET的介紹,我們直接看Fast R-CNN的框架圖:與R-CNN框架圖對比,可以發(fā)現(xiàn)主要有兩處不同:一是最后一個卷積層后加了一個ROI pooling lay

13、er,二是損失函數(shù)使用了多任務(wù)損失函數(shù)(multi-task loss),將邊框回歸直接加入到CNN網(wǎng)絡(luò)中訓(xùn)練。 (1)ROI pooling layer實際上是SPP-NET的一個精簡版,SPP-NET對每個proposal使用了不同大小的金字塔映射,而ROI pooling layer只需要下采樣到一個7x7的特征圖。對于VGG16網(wǎng)絡(luò)conv5_3有512個特征圖,這樣所有region proposal對應(yīng)了一個7*7*512維度的特征向量作為全連接層的輸入。(2)R-CNN訓(xùn)練過程分為了三個階段,而Fast R-CNN直接使用softmax替代SVM分類,同時利用多任務(wù)損失函數(shù)邊框回歸

14、也加入到了網(wǎng)絡(luò)中,這樣整個的訓(xùn)練過程是端到端的(除去region proposal提取階段)。(3)Fast R-CNN在網(wǎng)絡(luò)微調(diào)的過程中,將部分卷積層也進行了微調(diào),取得了更好的檢測效果。小結(jié):Fast R-CNN融合了R-CNN和SPP-NET的精髓,并且引入多任務(wù)損失函數(shù),使整個網(wǎng)絡(luò)的訓(xùn)練和測試變得十分方便。在Pascal VOC2007訓(xùn)練集上訓(xùn)練,在VOC2007測試的結(jié)果為66.9%(mAP),如果使用VOC2007+2012訓(xùn)練集訓(xùn)練,在VOC2007上測試結(jié)果為70%(數(shù)據(jù)集的擴充能大幅提高目標(biāo)檢測性能)。使用VGG16每張圖像總共需要3s左右。缺點:region proposa

15、l的提取使用selective search,目標(biāo)檢測時間大多消耗在這上面(提region proposal 23s,而提特征分類只需0.32s),無法滿足實時應(yīng)用,而且并沒有實現(xiàn)真正意義上的端到端訓(xùn)練測試(region proposal使用selective search先提取處來)。那么有沒有可能直接使用CNN直接產(chǎn)生region proposal并對其分類?Faster R-CNN框架就是符合這樣需要的目標(biāo)檢測框架。4. Faster R-CNN(NIPS2015)(Faster R-CNN: Towards Real-Time Object Detection with Region

16、Proposal Networks)在region proposal + CNN分類的這種目標(biāo)檢測框架中,region proposal質(zhì)量好壞直接影響到目標(biāo)檢測任務(wù)的精度。如果找到一種方法只提取幾百個或者更少的高質(zhì)量的預(yù)選窗口,而且召回率很高,這不但能加快目標(biāo)檢測速度,還能提高目標(biāo)檢測的性能(假陽例少)。RPN(Region Proposal Networks)網(wǎng)絡(luò)應(yīng)運而生。RPN的核心思想是使用卷積神經(jīng)網(wǎng)絡(luò)直接產(chǎn)生region proposal,使用的方法本質(zhì)上就是滑動窗口。RPN的設(shè)計比較巧妙,RPN只需在最后的卷積層上滑動一遍,因為anchor機制和邊框回歸可以得到多尺度多長寬比的re

17、gion proposal。我們直接看上邊的RPN網(wǎng)絡(luò)結(jié)構(gòu)圖(使用了ZF模型),給定輸入圖像(假設(shè)分辨率為600*1000),經(jīng)過卷積操作得到最后一層的卷積特征圖(大小約為40*60)。在這個特征圖上使用3*3的卷積核(滑動窗口)與特征圖進行卷積,最后一層卷積層共有256個feature map,那么這個3*3的區(qū)域卷積后可以獲得一個256維的特征向量,后邊接cls layer和reg layer分別用于分類和邊框回歸(跟Fast R-CNN類似,只不過這里的類別只有目標(biāo)和背景兩個類別)。3*3滑窗對應(yīng)的每個特征區(qū)域同時預(yù)測輸入圖像3種尺度(128,256,512),3種長寬比(1:1,1:2

18、,2:1)的region proposal,這種映射的機制稱為anchor。所以對于這個40*60的feature map,總共有約20000(40*60*9)個anchor,也就是預(yù)測20000個region proposal。這樣設(shè)計的好處是什么呢?雖然現(xiàn)在也是用的滑動窗口策略,但是:滑動窗口操作是在卷積層特征圖上進行的,維度較原始圖像降低了16*16倍(中間經(jīng)過了4次2*2的pooling操作);多尺度采用了9種anchor,對應(yīng)了三種尺度和三種長寬比,加上后邊接了邊框回歸,所以即便是這9種anchor外的窗口也能得到一個跟目標(biāo)比較接近的region proposal。NIPS2015版

19、本的Faster R-CNN使用的檢測框架是RPN網(wǎng)絡(luò)+Fast R-CNN網(wǎng)絡(luò)分離進行的目標(biāo)檢測,整體流程跟Fast R-CNN一樣,只是region proposal現(xiàn)在是用RPN網(wǎng)絡(luò)提取的(代替原來的selective search)。同時作者為了讓RPN的網(wǎng)絡(luò)和Fast R-CNN網(wǎng)絡(luò)實現(xiàn)卷積層的權(quán)值共享,訓(xùn)練RPN和Fast R-CNN的時候用了4階段的訓(xùn)練方法:(1)使用在ImageNet上預(yù)訓(xùn)練的模型初始化網(wǎng)絡(luò)參數(shù),微調(diào)RPN網(wǎng)絡(luò);(2)使用(1)中RPN網(wǎng)絡(luò)提取region proposal訓(xùn)練Fast R-CNN網(wǎng)絡(luò);(3)使用(2)的Fast R-CNN網(wǎng)絡(luò)重新初始化RPN

20、, 固定卷積層進行微調(diào);(4)固定(2)中Fast R-CNN的卷積層,使用(3)中RPN提取的region proposal微調(diào)網(wǎng)絡(luò)。權(quán)值共享后的RPN和Fast R-CNN用于目標(biāo)檢測精度會提高一些。使用訓(xùn)練好的RPN網(wǎng)絡(luò),給定測試圖像,可以直接得到邊緣回歸后的region proposal,根據(jù)region proposal的類別得分對RPN網(wǎng)絡(luò)進行排序,并選取前300個窗口作為Fast R-CNN的輸入進行目標(biāo)檢測,使用VOC07+12訓(xùn)練集訓(xùn)練,VOC2007測試集測試mAP達到73.2%(selective search + Fast R-CNN是70%), 目標(biāo)檢測的速度可以達到

21、每秒5幀(selective search+Fast R-CNN是23s一張)。需要注意的是,最新的版本已經(jīng)將RPN網(wǎng)絡(luò)和Fast R-CNN網(wǎng)絡(luò)結(jié)合到了一起將RPN獲取到的proposal直接連到ROI pooling層,這才是一個真正意義上的使用一個CNN網(wǎng)絡(luò)實現(xiàn)端到端目標(biāo)檢測的框架。小結(jié):Faster R-CNN將一直以來分離的region proposal和CNN分類融合到了一起,使用端到端的網(wǎng)絡(luò)進行目標(biāo)檢測,無論在速度上還是精度上都得到了不錯的提高。然而Faster R-CNN還是達不到實時的目標(biāo)檢測,預(yù)先獲取region proposal,然后在對每個proposal分類計算量還是

22、比較大。比較幸運的是YOLO這類目標(biāo)檢測方法的出現(xiàn)讓實時性也變的成為可能。總的來說,從R-CNN, SPP-NET, Fast R-CNN, Faster R-CNN一路走來,基于深度學(xué)習(xí)目標(biāo)檢測的流程變得越來越精簡,精度越來越高,速度也越來越快??梢哉f基于region proposal的R-CNN系列目標(biāo)檢測方法是當(dāng)前目標(biāo)最主要的一個分支。三、基于回歸方法的深度學(xué)習(xí)目標(biāo)檢測算法Faster R-CNN的方法目前是主流的目標(biāo)檢測方法,但是速度上并不能滿足實時的要求。YOLO一類的方法慢慢顯現(xiàn)出其重要性,這類方法使用了回歸的思想,既給定輸入圖像,直接在圖像的多個位置上回歸出這個位置的目標(biāo)邊框以及

23、目標(biāo)類別。1. YOLO (CVPR2016, oral)(You Only Look Once: Unified, Real-Time Object Detection)我們直接看上面YOLO的目標(biāo)檢測的流程圖:(1)給個一個輸入圖像,首先將圖像劃分成7*7的網(wǎng)格(2)對于每個網(wǎng)格,我們都預(yù)測2個邊框(包括每個邊框是目標(biāo)的置信度以及每個邊框區(qū)域在多個類別上的概率)(3)根據(jù)上一步可以預(yù)測出7*7*2個目標(biāo)窗口,然后根據(jù)閾值去除可能性比較低的目標(biāo)窗口,最后NMS去除冗余窗口即可??梢钥吹秸麄€過程非常簡單,不需要中間的region proposal在找目標(biāo),直接回歸便完成了位置和類別的判定。那么

24、如何才能做到直接在不同位置的網(wǎng)格上回歸出目標(biāo)的位置和類別信息呢?上面是YOLO的網(wǎng)絡(luò)結(jié)構(gòu)圖,前邊的網(wǎng)絡(luò)結(jié)構(gòu)跟GoogLeNet的模型比較類似,主要的是最后兩層的結(jié)構(gòu),卷積層之后接了一個4096維的全連接層,然后后邊又全連接到一個7*7*30維的張量上。實際上這7*7就是劃分的網(wǎng)格數(shù),現(xiàn)在要在每個網(wǎng)格上預(yù)測目標(biāo)兩個可能的位置以及這個位置的目標(biāo)置信度和類別,也就是每個網(wǎng)格預(yù)測兩個目標(biāo),每個目標(biāo)的信息有4維坐標(biāo)信息(中心點坐標(biāo)+長寬),1個是目標(biāo)的置信度,還有類別數(shù)20(VOC上20個類別),總共就是(4+1)*2+20 = 30維的向量。這樣可以利用前邊4096維的全圖特征直接在每個網(wǎng)格上回歸出目

25、標(biāo)檢測需要的信息(邊框信息加類別)。 小結(jié):YOLO將目標(biāo)檢測任務(wù)轉(zhuǎn)換成一個回歸問題,大大加快了檢測的速度,使得YOLO可以每秒處理45張圖像。而且由于每個網(wǎng)絡(luò)預(yù)測目標(biāo)窗口時使用的是全圖信息,使得false positive比例大幅降低(充分的上下文信息)。但是YOLO也存在問題:沒有了region proposal機制,只使用7*7的網(wǎng)格回歸會使得目標(biāo)不能非常精準(zhǔn)的定位,這也導(dǎo)致了YOLO的檢測精度并不是很高。2. SSD(SSD: Single Shot MultiBox Detector)上面分析了YOLO存在的問題,使用整圖特征在7*7的粗糙網(wǎng)格內(nèi)回歸對目標(biāo)的定位并不是很精準(zhǔn)。那是不是

26、可以結(jié)合region proposal的思想實現(xiàn)精準(zhǔn)一些的定位?SSD結(jié)合YOLO的回歸思想以及Faster R-CNN的anchor機制做到了這點。 上圖是SSD的一個框架圖,首先SSD獲取目標(biāo)位置和類別的方法跟YOLO一樣,都是使用回歸,但是YOLO預(yù)測某個位置使用的是全圖的特征,SSD預(yù)測某個位置使用的是這個位置周圍的特征(感覺更合理一些)。那么如何建立某個位置和其特征的對應(yīng)關(guān)系呢?可能你已經(jīng)想到了,使用Faster R-CNN的anchor機制。如SSD的框架圖所示,假如某一層特征圖(圖b)大小是8*8,那么就使用3*3的滑窗提取每個位置的特征,然后這個特征回歸得到目標(biāo)的坐標(biāo)信息和類別信息(圖c)。不同于Faster R-CNN,這個anchor是在多個feature map上,這樣可以利用多層的特征并且自然的達到多尺度(不同層的feature map 3*3滑窗感受野不同)。小結(jié):SSD結(jié)合了YOLO中的回歸思想和Faster R-CNN中的anchor機制,使用全圖各個位置的多尺度區(qū)域特征進行回歸,既保持了YOLO速度快的特性,也保證了窗口預(yù)測的跟Faster R-CNN一樣比較精準(zhǔn)。SSD在VOC2007上mAP可以達到72.1%,速度在GPU上達到58幀每秒。總結(jié):YOLO的提出給目標(biāo)檢測一個新

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論