基于深度學習的目標檢測研究_第1頁
基于深度學習的目標檢測研究_第2頁
基于深度學習的目標檢測研究_第3頁
基于深度學習的目標檢測研究_第4頁
基于深度學習的目標檢測研究_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于深度學習的目標檢測研究卓越管理智摩精心制作多年企業(yè)咨詢,精品管理word模板值得您下載擁有!2019年1月上面是一段實時目標識別的演示,計算機在視頻流上標注出物體的類別,包括人、汽車、自行車、狗、背包、領帶、椅子等。今天的計算機視覺技術已經(jīng)可以在圖片、視頻中識別出大量類別的物體,甚至可以初步理解圖片或者視頻中的內(nèi)容,在這方面,人工智能已經(jīng)達到了3歲兒童的智力水平。這是一個很了不起的成就,畢竟人工智能用了幾十年的時間,就走完了人類幾十萬年的進化之路,并且還在加速發(fā)展。道路總是曲折的,也是有跡可循的。在嘗試了其它方法之后,計算機視覺在仿生學里找到了正確的道路(至少目前看是正確的)。通過研究人類

2、的視覺原理,計算機利用深度神經(jīng)網(wǎng)絡(DeepNeuralNetwork,NN)實現(xiàn)了對圖片的識別,包括文字識別、物體分類、圖像理解等。在這個過程中,神經(jīng)元和神經(jīng)網(wǎng)絡模型、大數(shù)據(jù)技術的發(fā)展,以及處理器(尤其是GPU)強大的算力,給人工智能技術的發(fā)展提供了很大的支持。本文是一篇學習筆記,以深度優(yōu)先的思路,記錄了對深度學習(DeepLearnincj)的簡單梳理,主要針對計算機視覺應用領域。一、神經(jīng)網(wǎng)絡1.1 神經(jīng)元和神經(jīng)網(wǎng)絡神經(jīng)元是生物學概念,用數(shù)學描述就是:對多個輸入進行加權(quán)求和,并經(jīng)過激活函數(shù)進行非線性輸出。由多個神經(jīng)元作為輸入節(jié)點,則構(gòu)成了簡單的單層神經(jīng)網(wǎng)絡(感知器),可以進行線性分類。兩層

3、神經(jīng)網(wǎng)絡則可以完成復雜一些的工作,比如解決異或問題,而且具有非常好的非線性分類效果。而多層(兩層以上)神經(jīng)網(wǎng)絡,就是所謂的深度神經(jīng)網(wǎng)絡。神經(jīng)網(wǎng)絡的工作原理就是神經(jīng)元的計算,一層一層的加權(quán)求和、激活,最終輸出結(jié)果。深度神經(jīng)網(wǎng)絡中的參數(shù)太多(可達億級),必須靠大量數(shù)據(jù)的訓練來設置。訓練的過程就好像是剛出生的嬰兒,在父母一遍遍的重復中學習“這是蘋果”、“那是汽車”。有人說,人工智能很傻嘛,到現(xiàn)在還不如三歲小孩。其實可以換個角度想:剛出生嬰兒就好像是一個裸機,這是經(jīng)過幾十萬年的進化才形成的,然后經(jīng)過幾年的學習,就會認識圖片和文字了;而深度學習這個“裸機”用了幾十年就被設計出來,并且經(jīng)過幾個小時的“學習

4、”,就可以達到這個水平了。1.2 BP算法神經(jīng)網(wǎng)絡的訓練就是它的參數(shù)不斷變化收斂的過程。像父母教嬰兒識圖認字一樣,給神經(jīng)網(wǎng)絡看一張圖并告訴它這是蘋果,它就把所有參數(shù)做一些調(diào)整,使得它的計算結(jié)果比之前更接近“蘋果”這個結(jié)果。經(jīng)過上百萬張圖片的訓練,它就可以達到和人差不多的識別能力,可以認出一定種類的物體。這個過程是通過反向傳播(BackPropagation,BP)算法來實現(xiàn)的。建議仔細看一下BP算法的計算原理,以及跟蹤一個簡單的神經(jīng)網(wǎng)絡來體會訓練的過程。1.3 小結(jié)人工神經(jīng)網(wǎng)絡就是根據(jù)人的神經(jīng)元模型而構(gòu)建的一個感知算法,利用大量的神經(jīng)元組合對人的認知行為進行擬合。目前我們?nèi)匀粺o法精確的知道它為

5、什么能工作、如何工作,如同我們?nèi)匀粺o法精確知道人的大腦是如何工作一樣。在摸索過程中,我們好像應該更多地思考人類自己是怎么去“看”的,這會更有助于設計更好的算法。比如本文開頭的視頻識別算法,它很快,但是不夠精確,而有些可以“看清”細節(jié)的算法,就會非常慢。就像我們?nèi)祟愖约?,走馬觀花只能看到概貌,駐足觀賞才能看清細節(jié)。我們越了解自己,就越能做得更好。二、卷積神經(jīng)網(wǎng)絡2.1 簡介卷積神經(jīng)網(wǎng)絡(ConvocationalNeuralNetwork,CNN)是一個特殊的深層神經(jīng)網(wǎng)絡,目前在計算機視覺領域廣泛使用,可以認為它是一個二維向量(圖片就是一個二維向量)的感知器。CNN算法的核心是對圖像(二維向量)

6、進行矩陣卷積運算,這就相當于是對圖像進行加權(quán)求和。為了減小計算量,CNN采用了局部感知和權(quán)值共享的方法。局部感知,就是用一個NXN(如N=3)的矩陣(稱為卷積核)去滑動掃描圖像,進行卷積運算。權(quán)值共享,就是掃描圖片的滑動矩陣的權(quán)值是共享的(相同的)。在實際運算中,這個卷積核相當于一個特征提取的過濾器(filter)0舉例來說,假設一個10X10的圖像,用一個3X3的卷積核以步長1做一次卷積運算,那么會得到一個8X8的特征圖(featurema。為了使得到的featuremap和原圖等大小,一般給原圖進行擴充為12X12,這樣卷積一次以后,得到的仍然是10X10大小的圖像。在這個例子中,如果不采

7、用權(quán)值共享,則一共需要100個權(quán)值參數(shù),權(quán)值共享后,只需要3X3=9個權(quán)值參數(shù)。在實際中,一個RGB圖像是三個通道,而卷積核也可能有多個。這樣計算起來會比上面的例子復雜些,但基本原理是一樣的。2.2 CNN計算流程一個典型的CNN算法的流程大概是這樣的:首先是輸入,然后是n個卷積和池化的組合,最后全連接層感知分類。在這個流程里,卷積運算主要是用來提取特征。一個典型的卷積計算如下圖所示。卷積計算示意圖圖中input是同一個圖像的三個通道,周邊有填充0;有兩個卷積核FilterW0和FilterW1,一個filter滑動到一個位置后計算三個通道的卷積,求和,加bias,得到這個filter在該位置

8、的最終結(jié)果;每個filter的輸出是各個通道的匯總;輸出的個數(shù)與filter個數(shù)相同。在這里還要加上激活函數(shù),對計算結(jié)果進行非線性變換。常用的激活函數(shù)有tanh、ReLU、sigmoid等。激活函數(shù)的作用好像可以解釋為:過濾掉一些可以忽略的不重要因素,以避免其對決策產(chǎn)生過度影響。池化是為了降維,有最大池化(MaxPooling)和平均池化(AveragePooling)。一個2X2最大池化的示例如下圖。Singledepthslice1023X466831101224最后是全連接層,它將前面卷積層提取的特征映射到樣本標記空間,它輸出一個分類的概率,也就是最終的結(jié)果。2.3 典型的CNN模型Le

9、Net,最早用于數(shù)字識別的CNN,用5X5卷積核,2X2最大池化,識別輸入為28X28的灰度點陣,網(wǎng)絡結(jié)構(gòu)是(CONV-POOL-CONV-POOL-CONVFC)。AlexNet,2012ImageNet比賽第一名,準確度超過第二名10%。網(wǎng)絡結(jié)構(gòu)如下圖。5個CONV、3個POOL、2個LRN、3個FC,卷積核分別是11X11、5X5、3X3,采用ReLU作為激活函數(shù)。37M442K13IVI884K307KparamsAlexNetFLOPs4M匚_FC1000_1|4M16MFC4096/ReLU16MFC4096;ReLUJ37MMa)cPool3x3s211Conv3x3st25S/

10、ReLUj74MConv3x3s1,384/ReLU|112MConv3x3s1t38+/ReLU149MMaxPool3x3s2LocalResponseNormConv5x5st256/ReLUJ223MMaxPool3x3s2LocalResponseNorm35KConv11x1154,961ReLU105MVGG,有跟多的卷積層(16-19),使用3X3卷積核。GoogLeNet,采用Inception來減少參數(shù)(用1X1卷積核降維)。ResNet,很多很多層的網(wǎng)絡,從152層到據(jù)說上千層。采用殘差網(wǎng)絡來解決多層網(wǎng)絡難以訓練的問題。以上網(wǎng)絡的對比如下表。AlexNetVGGGoogL

11、eNetRnNet初入江湖2012201420142C15底數(shù)81922152op5然誤164%7.3%67%3.S7%DataAugmertatio+4+lnception(NIN;-蒼枳層數(shù)51621151孝喉文小115337,1*7,135堂違摟募敬3m11全連明大小40蠅409610004096.4056,100010001000Drapcut+*+Loc*llResponseNornuliuiion+-*BatchNormalization+2.4 訓練集應該可以感受到,人工智能也好,深度學習也好,算法的優(yōu)劣是一方面,而訓練數(shù)據(jù)集的好壞,對最終的效果影響更大。而訓練集又非常難做,需要

12、大量的數(shù)據(jù),且標記這些數(shù)據(jù)需要巨大的工作量(過去的8年ImageNet就在做這個工作)。逐漸,一些數(shù)據(jù)集就慢慢出了名。很多算法的性能數(shù)據(jù)都會指明是在哪個數(shù)據(jù)集上訓練的。一些有名的數(shù)據(jù)集如下。MNIST:深度學習領域的“HelloWorld!”,一個手寫數(shù)字數(shù)據(jù)庫,有60000個訓練樣本集和10000個測試樣本集,每個樣本圖像的寬高為28*28。數(shù)據(jù)集以二進制存儲,不能直接查看。數(shù)據(jù)集大小為12M。ImageNet:MIT李飛飛團隊過去幾年的成果,目前有1400多萬幅圖片,涵蓋2萬多個類別。數(shù)據(jù)集大小為1T。ImageNet根據(jù)WordNet層次(目前只有名詞)組織的一個圖像數(shù)據(jù)庫,其中每個節(jié)點

13、的層次結(jié)構(gòu)是由成千上萬的圖像描繪。目前,有平均每個節(jié)點超過五百的圖像。COCO:CommonObjectsinContext,是一個新的圖像識別、分割、和字幕數(shù)據(jù)集,由微軟贊助,具有上下文識別、語義描述等特點。數(shù)據(jù)集大小為40G。PASCALVOC:圖片集包括20個目錄,數(shù)據(jù)集圖像質(zhì)量好,標注完備,非常適合用來測試算法性能。數(shù)據(jù)集大小為2Go由于數(shù)據(jù)集生成有一定難度且工作量巨大,兩年來GAN(GenerativeAdversarialNets;,生成對抗網(wǎng)絡)快速發(fā)展,并在很多應用場景的訓練集生成產(chǎn)生了巨大作用,比如車牌識別。三、物體檢測3.1 檢測流程在實際場景中,我們需要在一副圖像中找出有

14、哪些物體,這是一個多對多的映射(所謂的回歸)。按照已有的CNN方法,常規(guī)的檢測流程就是:先找到哪些區(qū)域有物體,然后再用CNN來對其分類。區(qū)域選擇最原始的辦法就是用不同大小的滑動窗口對整幅圖像進行掃描。這樣不但計算量大,也容易造成誤判。一個改進的方法是所謂RegionProposal,即預先找出物體可能在的位置。這里需要提到以下幾個概念。IoU:IntersectionoverUnion,RegionProposal與GroundTruth的窗口的交集比并集的比值,如果IoU低于0.5,那么相當于目標還是沒有檢測到。GroundTruth就是實際物體真實的區(qū)域。mAP,meanAveragePr

15、ecision,平均精度均值。是對多個驗證集求PR曲線的均值。PR曲線是Precision和Recall作為橫縱坐標軸的曲線,Precision是準確率,即檢測出的樣本有多少是正確的,Recall是召回率,即應該被檢測出的樣本有多少被檢測出來。PR曲線越高,說明算法越好,即又多又準。3.2 典型的算法從2014年的R-CNN(Regionproposal+CNN)開始,出現(xiàn)了一系列目標檢測算法,從R-CNN至UfastR-CNN和fasterR-CNN,以及SPP-NET,R-FCN,還有YOLOv1v3和SSD、DSSD。R-CNN:采用selectivesearch方法(一種RegionP

16、roposal方法,RegionProposal的方法有selectivesearchedgeboX)進行區(qū)域選擇,選出2000個左右。將每個區(qū)域縮放至227X227,再送入CNN計算特征,最后由SVM(支持向量機)分類。很明顯,R-CNN很慢。SPP-NET:為了力口快R-CNN的速度,采取對一副圖像的多個RegionProposal一次提取特征。這就要求網(wǎng)絡必須適應不同尺寸的圖像。方法是在全連接層之前加入一個網(wǎng)絡層,讓它對任意尺寸的輸入產(chǎn)生固定的輸出(將圖像分成16、4、1個塊)。SPP-NET訓練步驟繁瑣,并且仍然不夠快。fastR-CNN:與R-CNN相比,fastR-CNN在最后一個

17、卷積層后加了一個ROIpoolinglayer,同時損失函數(shù)使用了多任務損失函數(shù)(multi-taskloss),將邊框回歸直接加入到CNN網(wǎng)絡中訓練,最后用softmax替代SVM進行分類。fastR-CNN不是真正的端到端訓練測試,還是需要selectivesearch來進行RegionProposal,所以還是不夠快,不能做實時的檢測。FasterR-CNN:采用RPN(RegionProposalNetworks)用Anchor機制和邊框回歸直接得到多尺度多長寬比的RegionProposalFastR-CNN做到了真正的端到端,但可惜的是仍然不能達到實時檢測。RPN需要詳細了解一下。

18、R-FCN:ObjectDetectionviaRegion-basedFullyConvolutionalNetworks,基于區(qū)域的全卷積網(wǎng)絡物體檢測。嫁接ResNet的卷積層,采用RPN獲取ROI,針對每個ROI,在POOL之前加入位置信息(通過scoremap)。R-FCN的scoremap計算有點繞,需要慢慢理解。YOLO:雖然精度不是最好,但確是目前實時性最好的算法,可以在視頻中實時檢測出很多物體。倒也符合人類視覺的特點,一眼望去先看個大概,要想看細節(jié),那就定格仔細看吧。YOLO系列的算法后面詳細總結(jié)。SSD:SSD結(jié)合了YOLO中的回歸思想和FasterR-CNN中的anchor

19、機制,使用全圖各個位置的多尺度區(qū)域特征進行回歸,既保持了YOLO速度快的特性,也保證了窗口預測的跟FasterR-CNN一樣比較精準。一般后續(xù)出現(xiàn)的算法都會與之前的算法做性能對比,SSD和YOLOv1比,YOLOv2、v3又和SSD比,在不同的訓練集上也有不同的mAP,看起來真是眼花繚亂。因為機緣巧合,我先接觸到Y(jié)OLO系列算法,在自己的電腦上運行DEMO,也仔細看了YOLO的發(fā)展,于是給一個稍微詳細的總結(jié)。3.3 YOLO系列算法YOLO算法主要是針對以往物體檢測算法速度較慢的弊端,利用一個單獨的端到端網(wǎng)絡,將原始圖像輸入,直接輸出物體位置和類別。YOLO沒有顯式的求取RegionPropo

20、sal的過程(R-CNN和FastR-CNN采用selectivesearc聯(lián)取,F(xiàn)asterR-CNN和R-FCN則采用了RPN)。YOLO的名字也來自于其核心特征:YouOnlyLookOnce,只看一次。從2015年到2018年3月,YOLO一共出了三個版本v1、v2(YOLO9000)、v3,性能逐漸提高,mAP與其它算法持平或略勝一籌。3.3.1 YOLOvIYOLO將對象檢測框架化為空間分離邊界框和相關類別概率的回歸問題。單個神經(jīng)網(wǎng)絡在一次評估中直接從完整圖像預測邊界框和類概率。由于整個檢測流水線是單個網(wǎng)絡,因此可以直接針對檢測性能端到端地進行優(yōu)化,使得統(tǒng)一架構(gòu)非??臁;AYOLO

21、模型以45幀/秒的速度實時處理圖像。較小版本的網(wǎng)絡FastYOLO每秒處理可達155幀,同時實現(xiàn)其他實時檢測器的mAP的兩倍。與最先進的檢測系統(tǒng)相比,YOLO產(chǎn)生更多的定位誤差,但不太可能預測背景上的誤報。最后,YOLO表現(xiàn)出對目標識別很好的通用性。YOLO檢測網(wǎng)絡有24個卷積層,其次是2個完全連接的層。交替的1M卷積層減少了來自前面層的特征空間。在分辨率的一半(224*224輸入圖像)上預分割ImageNet分類任務上的卷積圖層,然后將分辨率加倍以進行檢測。Co*.btlRCom.Con錯LayersCon*-回科3Cchi*_加*fsQw_LarCcmik-Mwpglr3匹512r址MAl

22、oM2m2-s-2父氧加IS,3短UN31024024-2Mi.1Pd16nMil明慢!YOLO將輸入圖像分成SXS個格子,若某個物體Groundtruth的中心位置的坐標落入到某個格子,那么這個格子就負責檢測出這個物體。每個邊界框由5個預測組成:x,y,w,h和置信度。(x,y)坐標表示相對于網(wǎng)格單元邊界的框的中心。寬度和高度是相對于整個圖像預測的。最后,置信度預測表示預測框與任何groundtruth框之間的IOU。每個網(wǎng)格單元還預測C條件類概率Pr(Classi|Object)。這些概率取決于包含對象的網(wǎng)格單元。僅預測每個網(wǎng)格單元的一組類概率,而不管箱B的數(shù)量。在測試時間,將條件類概率和

23、單個盒子置信度預測相乘,Pr(aaSBi|Objct)*Fr(Ob產(chǎn)t)4IQU躡=11這給出了每個盒子的類別特定置信度評分。這些分數(shù)編碼該類出現(xiàn)在盒子中的概率以及預測盒子如何適合該對象。YOLO的輸出維度為SXSX(BX5+C)。檢測中采用了S=7,B=2,C=20。YOLO對占比較小的目標檢測效果一般。雖然每個格子可以預測B個boundingbox,但是最終只選擇IOU最高的boundingbox作為物體檢測輸出,即每個格子最多只能預測出一個物體。當物體占畫面比例較小,如圖像中包含鳥群時,每個格子包含多個物體,但卻只能檢測出其中一個。YOLO訓練時的Loss函數(shù)如下S2BAc52瑤i=Qj

24、=OS2B十XtiMud1富/=UJ=uit)2+(yt-yt)i-+(怎-2r十三之瑤(G-引j=u2E+Anoobj2S(g-i=Dj=0+1?仙%(c)產(chǎn)t=0cclasses其中左oorc=5,?noobj=0.5,是權(quán)重系數(shù)。公式包括三部分,分別是坐標誤差、IOU誤差和分類誤差。3.3.2YOLO9000YOLOv2對之刖的版本做了改進。取消了dropout,在卷積層全部使用BatchNormalization;采用448x448的分辨率訓練檢測網(wǎng)絡;借鑒FasterR-CNN的思想預測bbox的偏移,移除了全連接層,并且刪掉了一個POOL層使特征的分辨率更大。網(wǎng)絡結(jié)構(gòu)圖如下:lav

25、er0filtersconv32J34567891011121314IS161718192021222324252627282930maxconv64ladAeonv128conv64conv12Hmaxconv2568irv128conv256maxconvconvconvconvconvnw:convconvconvconvconvconvconvrouteconv626515252-34242444212122264ieoigrout2724conv1024conv4253q一3cJ313門J313cJ31313Qj3131333sizex3/Ix2/2x3/1x2/2K371X1/1X

26、3/1x2/2x3/1x1/1x3/1x2/2K3/1X1/1區(qū)3/1x1/1x3/1k2/2x3/1x1/1x3/1K1/1x3/1x3/1x3/1K1/1/2x3/1x1/1416工416st3416工416x3220Sx208x3220Sx208x64104父1104,64104x104Ji128104x104x64104工104x128input52工5212852x52x25652x52工12852x52*25626x2625626x2651226x26彳25626x26x51226工26X25626x26X51213x13工51213x13萬102413x1351213x13Ml0

27、2113x13工51213x13工102413工13X102426x26X51226x26XG413x132:128013x13X1024output416x416x32208x203x32208x20Sx64104a104x64104x104x128104工104x64104x104x12852k52x12852x52x25652x52x12852x52x25626x26x25626x26x51226x26x25626x26x51226z26x25626x26x51213x13笈51213x135d02413x13x51213x13X102413xL3x51213x135d02413A13x

28、l02413xKxl024261313x13xlQ2413x13x425YOLOv2的性能比v1有了提升,具體數(shù)據(jù)在v3部分進行對比。3.3.3YOLOv3YOLOv3是2018年3月25號發(fā)布的,里面對當前各種物體檢測算法做了性能對比MethodYOLOv3-RtinaNel-&0-RetinaNet-101mAPtimeB SSD321C DSSD321D R-FCNE SSD513:FDSSD513:GFPNFRCNRetinsNet-50-500RetinaNet-10V500RetinaNet-101-800VOLOv3-320YOLOvSlieYOLQV3-60B618585125

29、156172739019822SU009222548200fi.8*9Ll3.16,12,47,8.113.50100150200250inferencetime(ms)Figure1.WeadaptthisfigurefromtheFocalLosspaper.YOLOv3runssignificantlyfasterthanotherdetectionmethodswithcomparableperformance.TimesfromeitheratiM40orTitanX,theyarebasicallythesameGPU.在320*320分辨率下,YOLOv3達到28.2mAP、22ms,與SSD一樣精確,但速度提高了三倍。對舊的0.5IOUmAP檢測指標YOLOv3表現(xiàn)不俗。在TitanX上,它達到了51ms、57.9AP50,而RetinaNetWJ是198ms、57.5AP50,性能相似,但是快了3.8倍。YOLOv3主要在多尺度預測、基礎分類網(wǎng)絡及分類器上做了改進。采用多尺度預測

溫馨提示

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

評論

0/150

提交評論