基于深度神經網絡目標檢測算法研究_第1頁
基于深度神經網絡目標檢測算法研究_第2頁
基于深度神經網絡目標檢測算法研究_第3頁
基于深度神經網絡目標檢測算法研究_第4頁
基于深度神經網絡目標檢測算法研究_第5頁
已閱讀5頁,還剩28頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

摘要近年來,基于深度神經網絡(DL)的人工智能(AI)引起了全球的極大興趣。深度神經網絡今天被廣泛使用,并已擴展到各種有趣的領域。它在跨學科研究中越來越受歡迎,例如將計算機科學與工程應用相結合的智慧城市系統研究。人體動作檢測是這些領域之一。由于對計算速度和準確性的嚴格要求,人類行為檢測是一個有趣的挑戰。高精度實時目標跟蹤也被認為是一項重大挑戰。目標檢測(ObjectDetection)是計算機視覺領域的基本任務之一,學術界已有將近二十年的研究歷史。近些年隨著深度學習技術的火熱發展,目標檢測算法也從基于手工特征的傳統算法轉向了基于深度神經網絡的檢測技術。從最初2013年提出的R-CNN、OverFeat,到后面的Fast/FasterR-CNNSSD,YOLO系列,再到2018年最近的Pelee。短短不到五年時間,基于深度學習的目標檢測技術,在網絡結構上,從twostage到onestage,從bottom-uponly到Top-Down,從singlescalenetwork到featurepyramidnetwork,從面向PC端到面向手機端,都涌現出許多好的算法技術,這些算法在開放目標檢測數據集上的檢測效果和性能都很出色。深度神經網絡的提出極大地幫助基于視覺的目標檢測提高了準確度。自2014年以來,深度神經網絡在基于視覺的目標檢測中被廣泛應用,出現了多種算法。本論文分別討論兩階段和一階段算法的主要思路、發展過程以及實現效果等,最后結合相關領域的一些成果討論基于視覺的目標檢測未來可能的應用模式。關鍵詞:目標檢測,神經網絡,R-CNN,SSD,YOLO1.1麗究背景及意義卩當人類首次發明計算機時,就已經開始思考如何讓計算機變得智能。如今,人工智能(artificialintelligence)已經成為一個非常火熱的領域,并且具有眾多活躍的研究課題以及惠及生活方方面面的實際應用。這個領域目前正在以幾何倍的速度增長著,并且未來也將持續健康發展。人們希望可以借助人工智能自動地處理一些主觀的,非規范性的事物,如識別圖像等。在人工智能發展初期,計算機很容易處理一些人類很難甚至是無法解決的問題,這些問題可以用一種形式化的數學規律來描述。人工智能真正面臨的任務是那些很難用形式化符號描述的任務,當然對于人類來說很容易執行。舉個例子,人們能夠輕松識別對方說的話,也能夠輕易識別圖像中的物體。對于這類問題,計算機卻無法給出自己的判斷。計算機很擅長助理抽象和形式化的任務,但是人類卻覺得這是很困難的腦力勞動。早在上個世紀,計算機就在國際象棋方面戰勝了人類選手。但一直到最近幾年,計算機才在語音和圖像識別任務中達到人類一般水平。通常一個人的思維發育需要海量有關外界的知識。相當一部分領域的知識是主觀的,并且很難用形式化的結構表示清楚。同人類一樣,計算機也要獲得同樣數量級的知識才能表現得智能化。因此,對于研究人工智能領域的學者來說,關鍵的挑戰就是如何將這些主觀的、非形式化的知識教會計算機來學習。人工智能系統需要具備從原始數據中擬合模型的能力,也就是自主學習的能力。我們通常稱這種擬合的能力叫機器學習machinelearning)。利用機器學習,計算機能夠擬合出關于真實事物的近似模型,并對相似事物做出判斷。目前主流的機器學習的工作都是經過兩個步驟,首先人工選定一個特征集合,然后將原始數據提交給模型,根據選定特征擬合出決策模型。現實中的事物極其復雜,人們很難深入到事物內部看清本質,很難知道哪些特征是重要的,甚至不知道什么才是真正的特征。研究生物神經網絡帶給我們的啟示就是可以讓機器自主發掘隱藏在知識中的規律,而不只是簡單把知識灌輸給計算機,這會讓計算機像個頑皮的孩子一樣學完就忘了。人類從原始數據中提取高度抽象的特征是極其困難的,而計算機通過模擬人腦就可以用較簡單的模型來表示復雜概念,解決了特征提取這一關鍵問題。深度學習逐漸發展成以人工神經網絡artificialneuralnetwork算法為核心的算法體系。人工神經網絡為人工智能的研究帶來了前所未有的期望。人工神經網絡并不是近代的產物,上世紀50年代就驗證了其可行性,為什么直到最近幾年才被普遍接受?這也是研究深度網絡算法的意義之所在。首先日俱增的數據量得以存儲,出現了很多專門用于研究神經網絡的數據集,這些數據集越來越大并且質量都很高,如圖-1所示。人們迫切希望有一種算法能從海量數據中發現事物的本質。其次是大規模的模型已經出現,經過近幾十年的發展,模型中神經元的連接數已經達到了數十億級,逐漸接近人類大腦的連接數。科學家預計這種增長勢頭將穩定持續到未來若干年。最后人工神經網絡模型做決策的能力一直在提高,各大數據集上的準確率不斷被刷新。深度學習發展迅速,但仍然很年輕,還有很多未知領域的研究和實際應用等著人類去發掘。1.2物體識別技術的發展1.2.1傳統物體識別的發展物體檢測一直是計算機視覺領域經久不衰的研究方向。物體檢測同樣是一個主觀的過程,對于人類來說相當簡單。就連一個沒受過任何訓練的孩子通過觀察圖片中不同的顏色、區域等特征就能輕易定位出目標物體。但計算機收到這些RGB像素矩陣,不會直接得到目標(如行人、車輛等)的抽象概念,更不必說定位其位置了。再加上目標形態千差萬別,目標和背景重合等問題,使得目標檢測難上加難。傳統的目標檢測算法包括三個階段,首先生成目標建議框,接著提取每個建議框中的特征,最后根據特征進行分類。以下是這三個階段的具體過程:1,生成目標建議框。當輸入一張原始圖片時,計算機只認識每一個像素點,想要用方框框出目標的位置以及大小,最先想到的方法就是窮舉建議框,具體的做法就是用滑動窗口掃描整個圖像,還要通過縮放來進行多尺度滑窗。很顯然這種方法計算量很大,很多都是重復的計算,并且效率極低。2,提取每個建議框中的特征。在傳統的檢測中,常見的HOG[20]算法對物體邊緣使用直方圖統計來進行編碼,有較好的表達能力。然而傳統特征設計需要人工指定,達不到可靠性的要求。3,分類器的設計。傳統的分類器在機器學習領域非常多。具有代表性的VM將分類間隔最大化來獲得分類平面的支持向量,在指定特征的數據集上表現良好。然而傳統的算法在預測精度和速度上都很不理想,隨著深度學習算法在計算機視覺領域大放異彩,并逐漸成為霸主,傳統識別算法漸漸暗淡。1.2.2基于深度學習的物體識別技術發展自從深度神經網絡算法首次在ImageNet數據集上大放異彩,物體檢測領域逐漸開始利用深度學習來做研究。隨后各種結構的深度模型被提出,數據集的準確率一再被刷新。實際上,深度學習模型在分類任務上將傳統的方法遠遠地甩在身后。圖像分類上明顯的提升也帶動了檢測領域的快速發展。到目前為止,高性能的檢測算法都基于深度學習。最早的R-CNN(Region-basedCNN)[23]首次使用深度模型提取圖像特征,以49.6%的準確率開創了檢測算法的新時代。早期的物體檢測,都以滑動窗口的方式生成目標建議框,這種方式本質上與窮舉法無異。實際上,重復計算問題仍然沒有得到解決。FastR-CNN[25]的出現正是為了解決冗余計算這個問題。FastR-CNN添加了一個簡化的SPP[24]層,使得它的訓練和測試過程能夠合并在一起。FastR-CNN[26]使用SelectiveSearch來生成目標候選框,但是速度依然達不到實時的要求。FasterR-CNN則直接利用RPN(RegionProposalNetworks)網絡來生成目標候選框。RPN輸入任意像素的原始圖像,輸出一批矩形區域,每個區域對應一個目標坐標信息和置信度。從R-CNN到FasterR-CNN,是一個合并的過程,它把傳統檢測的三個步驟整合到同一個深度網絡模型中。基于回歸算法的檢測模型又將檢測領域帶到一個新的高度。其中以YOLO[28]和SSD[30]方法為代表的檢測方法做到了真正意義上的實時效果。R-CNN到FasterR-CNN,再到SSD等是檢測方法發展的主要軌跡。實際應用中還有許多特定物體的檢測方法,如人臉檢測、行人檢測等。隨著技術的發展,相信未來檢測方法也會更加智能。1.3論文組織結構卩本論文的整體結構共有六個章節,分別如下:第1章引言。簡要介紹了物體識別算法的研究意義和背景,國內外發展狀況,以及從傳統方法到基于深度學習算法的變更。研究人員逐漸舍棄了基于人工提取圖像特征的傳統算法,開始大范圍使用卷積網絡讓網絡自己來提取特征。最終提高算法在分類上的準確度,進而提高圖像物體檢測的準確性。。第2章深度神經網絡。講述了深度網絡的基本原理(包括其結構形態、基本單元、工作模式等),以及對圖像數據敏感的卷積網絡。之后又介紹了一些經典的卷積網絡結構和它們用到的優化方法。口第3章目標檢測算法概述。細介紹了物體識別(也叫目標檢測)的策略,即在卷積網絡的基礎上增加了候選框建議和邊框回歸的策略,重點介紹了SSD算法。第4章目標檢測應用自動駕駛。實現了一個基于深度網絡的物體識別系統。最后對測試結果進行闡述和總結。口第5章總結與展望。對項目整體的實現情況作出總結,并對未來的發展和研究做更進一步的展望。第2章深度神經網絡2.1啟發:線性回歸神經網絡的基本計算主要以線性和非線性為主,線性是為了對不同的特征進行相互組合,其主要的運算結果是線性回歸問題;非線性處理是為了對模型進行優化,使其能夠處理非線性問題,其主要運算以函數形式。線性模型是機器學習中最簡單的分類模型,單變量線性回歸是典型的回歸問題,其主要模型為: 1 其中w表示參數矩陣(或權重矩陣),b表示偏向向量(一元線性曲線的截距)x表示輸入的特征向量,y表示對應的輸出。線性分類器的目的便是訓練一個線性回歸方程,使得其能夠擬合實際的樣本輸出。 通過曲線圖可以描繪線性回歸方程的含義:4,7r0--2TT--6下面給出模型訓練的推導:假設有一組訓練樣本,記作D={(X,Y)|X={x1,x2,...,xn},Y={y1,y2, ,yn}},其中n表示樣本數,選擇平方差作為損失函數,艮即。3對=_祥則代價函數(所有樣本的損失函數的均值)為:

構造了代價函數后,需要對其進行最優化處理,使得模型的代價盡可能降低。模型的優化方法常用的是梯度下降法(或稱最速下降法)。梯度下降法通過對需要優化調整的參數進行調參。線性回歸模型中需要調整的參數有權重矩陣WWW和偏向bbb,因此需要對這些參數求偏導,以獲得梯度方向。線性回歸模型的梯度下降如下:dJ&JdyT1」uW砂麗廳二次項|dyT則參數調整為:&J_QJdbdyTdyT則參數調整為:若選擇學習率為cl(0<a<1),通過不斷循環調參,直到參數變化非常小的時候(在編程過程中,可以設置一個變量用以判斷是否需要下一輪迭代),線性回歸模型可以說訓練完成。在評估該模型時候,仍然可以使用損失函數來對測試集進行評估,并計算相應的準確率、召回率、F1值等。2.2神經網絡的結構深入學習神經網絡后會發,神經網絡便是若干個線性回歸方程的“相互交織”,再通過非線性方程進行“銳化”,因此第一節的線性回歸問題是解決神經網絡的基礎。神經網絡是由神經元組成,神經元又稱信息感知機,其通過多條路徑(突觸)接收外界信息并傳導至神經細胞,并通過激活或抑制等策略做出反應。這里的突觸即為數據的輸入,神經細胞即為模型的結點,而反應即為激活函數。模型圖如下所示:圖(a)為一個信息感知機,輸入模型的數據為xl,x2,...,xn,連接的邊上的權重分別為w1,w2,...,wn,結點神經細胞獲取外界的輸入記為:z二卻1罰+叫2蹲+…+切兀灼!+bz=WT-b因此,對于單個神經元接受數據部分,是一個典型的線性回歸模型。神經元的"激活或抑制反應”主要通過激活函數來完成。常用的激活函數有sigmod、tanh、ReLU、ELU等,這些激活函數都屬于非線性函數,函數的輸出即為該神經元對外做出的反應,即模型的輸出值。以sigmod為例,該神經元的輸出為:+ ]+e"了+司PS:sigmod函數的性質:"⑵=一鞏1一一我)圖(b)是多個神經元相互交織在一起形成網絡結構,其稱為深度神經網絡。深度神經網絡常由輸入層、隱含層和輸出層組成。輸入層的神經元個數等于輸入樣本的特征屬性個數,隱含層可以自定個數(通常超過3個),隱含層的數據是不可見的,輸出層作為模型的輸出部分,神經元個數由需要分類的類標個數決定。2.3神經網絡的訓練了解了神經網絡的結構,需要了解神經網絡如何進行訓練。神經網絡的訓練過程分為如下幾個步驟:參數設置:設置模型的參數和超參數,包括權重矩陣、偏向、梯度下降的學習率;前向傳播:根據模型的輸入層樣本數據,計算每個神經元的接受數據和輸出數據,并最終求得模型的輸出層數據;反向傳播:選擇損失函數并計算代價,選擇優化策略(常選擇梯度下降法)并進行調參;模型的評估:根據測試集計算準確率、召回率、F1值等。假設一個深度神經網絡的模型如上圖所示,下面根據四步驟詳解神經網絡的訓練過程。1、 參數設置2、 參數設置包括對需要學習的參數的初始化和對超參數(作為定值)的初始化。3、 (1)對需要學習的參數進行設置4、 假設神經網絡輸入層有三個神經元,隱含層有三個神經元,輸出層有兩個神經元,現在給定一組訓練集,記作:train={(X,1Y1),(X2,Y2(XN,YN)},其中NNN表示樣本數量,(Xi,Yi)=(x1(i),x2(i),x3(i),y(i)),即每個樣本有三個屬性,分別對應神經網絡的輸入,每個樣本對應一個真實類標(單類標問題),該類標有兩個取值,設分別為0或1,即Yie{0,1},神經網絡中的輸出層有兩個輸出,分別對應兩種取值的概率。5、 神經網絡每條邊都有一個權值,設輸入層與隱含層之間的權值矩陣為禎11丄W幻丄腳=W131此2丄姓3丄保2丄瞄田_W141観-一矩陣的列數等于輸入層的神經元數,W[l]矩陣的行數等于隱含層的神經元數,同理可得WF2]:矩陣的列數等于輸入層的神經元數,----22‘12一―I----22‘12一―IwW■■-■--W[2]矩陣的行數等于輸出層的神經元數,矩陣的列數等于隱含層的神經元數。在進行計算或者編程過程中,弄清各個權重矩陣的維度對于后期的檢查或調試至關重要。隱含層和輸出層偏向分別記為:沼飯圍杪]赫1]]丁(2)對超參數進行設置神經網絡在訓練過程中只有梯度下降法的學習率是不需要進行學習調整的參數,通常取0.05o6、前向傳播神經網絡的前向傳播主要指輸入層的數據順著邊流向隱含層,經過一次非線性處理后得到的數據再一次經過邊流向輸出層,經過處理后得到一組輸出值。前向傳播主要涉及到線性運算和非線性處理,在理解上非常簡單。(1)為了詳細表達運算,先以單個樣本進行前向傳播的詳細推導根據第一節了解了線性回歸的運算,如上圖,隱含層的每一個神經元都將接收三條邊傳來的數據,并與該神經元本身的偏向相加,即有:山11-二的+切引2迎+sgi--勇契丄=”1?丄町+加咬%建+也刼丄岡+如丄:1::1:313丄旳+加壽2迎+叫寫丄頂+鉗卩-=費1丿1罰+叫必2齡+叫M丄猊+垃丄根據矩陣論的知識,可知這是一組多元線性方程組,可以用矩陣方式相乘,因此可以寫作:"wrn1-刼21丄螺1廠■ *3Fitw'^x+M=禎u刼四丄WQ3-1-1 1 1 1己二蹬+553 2■ 1 1 11—8-_岫丄WQ4-1-口 一 z[l]是一個4*1的向量,將其喂繪igmod函數后,得到隱含層的輸出:a1=ufz1)其次,隱含層將數據傳輸給輸出層,輸入數據此時為Ml],與上面一樣,可以得到:21~=日]1-2?如丄4-眇2]?可02』—M3『傳叫+也41區町卩-+加%禎[2一="伊2即可得:2--z-.2-+働働.1211旳旳■』221222初ly禎[2一="伊2即可得:2--z-.2-+働働.1211旳旳■』221222初ly.2-.2-2212quwW■■

閏倒倒圜

1&34

aaaa■—」■_2-|0'婦-2-?)■*1234IDIDID1D最后,獲得的輸出喂給sigmoid函數(通常最后都喂給softmax函數,這里為了方便反向傳播求導,仍然使用sigmoid函數)為:y=d區=鳳洲)因為該神經網絡的輸出層一共兩個結點,因此對于單個樣本,輸出格式為[*,*]。(2)對于多個樣本,可以采用顯示for循環方式按如上方式運算,但這樣有明顯兩個缺點:一個是通過for循環顯示進行循環非常耗時,第二是當數據量非常龐大時候對訓練參數非常不利,因此對于多樣本進行前向傳播時,選擇向量運算。假設樣本集為X,其含有n個樣本。(1) 輸入層樣本:XXX,樣本維度為(3,n)(2)隱含層:;mL,隱含層輸出值維度為0,n);

(3)輸出層:弗=而制』+個,次=咐四),輸出層輸出值維度為(2,n);Ps:在編程時,樣本集每一列表示一個樣本。7、反向傳播神經網絡的訓練關鍵就是訓練它的權重矩陣和偏向,反向傳播就是在不斷地根據當前參數對樣本產生的誤差進行調整,以保證該誤差盡可能小。反向傳播時理解神經網絡算法的核心。神經網絡反向傳播常用的策略是梯度下降法,梯度下降法通過偏導數的鏈式法則實現反向傳播,選擇的損失函數是交差信息熵。為了詳細推導梯度下降的反向傳播,同樣先以單個樣本為例:(1)單樣本反向傳播:根據單樣本的前向傳播推導,得到最終的輸出值:損失函數交差信息熵表達式是:y)=L(勤檔)=血御+(Ly)ln(l-押)因此可求出L對a[2]的偏導:dLa由y”=a[2]=。(z[2])式子可以繼續求得L對z[2]的偏導,這里便需要鏈式求導:y11'雙』'y11'雙』')(1-E』'))8熱9tz.2l洞Za-2.*L一a.2l—y(a^—1)+(1-J/)』%=q』—y下面將要對權重矩陣和偏向進行求導,計算之前先進行必要的分析:隱層的神經元與輸出層神經元相連的邊都是唯一的,因此對于每一條邊可通過鏈式法則求偏導:以隱含層第一個神經元為例,先列出涉及到的前向傳播的式子:

衛]可=即n'-Ql'-—...-P61s-翔倒=州晚』四丄+…+&2區因此對于權重W11[2]偏導數為:如_dL如1囹_p-屮

戒很=商倒布碎=31-劃句對于權重W12[2]偏導數為:dLl)LdLl)L3契〔2〕dW^_姒I訴12図=(如區如但U因此可以歸納出一個對于邊Wij[2]的偏導通向公式:時_dL&z^-_八囹“"頊麗緒-岡卽而話I—(%-g對于輸出層的偏向,以輸出層第一個神經元為例,列出涉及到的前向傳播一個式子:二12=mu區句丄+叫212-砲L—紺mi'明丄+秒41結購丄+加’-,由前向傳播式子可以很簡單的求出導數為:9L_dL如]冏_&61(21 &i?ia如四 ”1OL_dL。花冏_對于隱含層的求導較為復雜,如下圖,對于隱含層的某一個神經元,其將收到所有輸出層神經元的反向傳播,因此對于隱含層的每一個神經元的輸出值求導需要分別對所有輸出層進行偏導求和。

叫此2代丄+...+晚'?叫此2代丄+...+晚'?因此可求出L對a1[1]的偏導:dL_w= 況如綢

》組2一。句丄+》茲區》閃丄=(収1國_y)su〔2]+(題図_加決]由此可以列出另三個:

ffL_c)Ldz^&L如洲3迎-1. dz\^- 1+日羽俾'■觀卩:=(岬一y)地,'+("-y)邸洩囹dL_dLdz^-&L如螺膈卩_dzi2-瞞』+?迎??3個艮=W-y)^sr2-+(題囲一y)聞製國 —必虻十一.一一海*1.dzi'2.9^41-5型遍4丄=(旬區-V)W1,十(見網一9)叫弭卻W12卻少251W22卻3/:W32^42合并起來可以以矩陣形式呈現:dL_dLdz^8L。契囹da.V()z]_-.da.V。契21da-t有了L對a[1的偏導,則可以求出L對z[1]的偏導:dL_dL_dL膈1=誠皿=坤&閏剝(L-剝)對于輸入層與隱含層之間的權重矩陣和隱含層的偏向的求導,方法與上面的一致:"2⑶也-"i応叮對于邊Wij[1]的偏導通向公式:&L_"2⑶也-"i応叮=d^.aw^r.=旳

對于隱含層偏向bj[1]的偏導通向公式:嗇=謚:鄒=岫]國2]當[%_砂])到此,關于神經網絡的權重矩陣和偏向的梯度求解全部結束,參數的調整即為:9J眇:s—or——b:b&Jb:b&Jadb2.4模型優化神經網絡在實際使用中,其深度不只有三層,而是大于三層,輸入層。隱含層和輸出層的結點也都有幾十上百個神經元,因此對于一個神經網絡來說,模型的參數是龐大的,因此傳統的模型在一般的機器上很難快速訓練參數,因此在深度神經網絡的訓練過程中,如何對模型進行優化成為比較現實的問題。模型優化有幾個方面:防止模型過擬合、選擇其他的激活函數、選擇其他的損失函數或不同的優化模型等。1、 正則化2、 正則化是最常用的防止過擬合的策略,其主要在代價函數后添加正則參數,如下:其中為L2正則化,入稱為正則化參數。現對代價函數進行求導,可得:dJ__腿mdw1ffL1ffL4、睥-€({-- 1 .協}mdwmffj彷;即—oc——

TOC\o"1-5"\h\zaBLaX aA adL\o"CurrentDocument"=W W=(1 W 7—mdir? m m mow為什么正則化可以防止過擬合?以tanh(z))激活函數為例,tanh激活函數的函數圖像為:可以發現,當參數Z很小的時候,函數近乎為線性,而對代價函數調價正則化后,若入的值越大,則權重矩陣W的各個元素的值越小(甚至為0),因此由Z=Wx+b可知Z的值變小。所以在帶為nh激活函數中時,其近乎為線性函數,因此實現了防止過擬合。highbiashighbias如上圖,左圖屬于欠擬合(高偏差),右圖屬于過擬合(高方差),正則化后屬于中間的圖。 其他正則化還有dropout,可以實現防止過擬合。3、 激活函數4、 激活函數包括sigmod、tanh、ReLU、ELU等,激活函數的選擇在一定程度上會影響模型的訓練效果。關于激活函數的詳解,可參考其他內容。5、梯度問題由于神經網絡的數據量龐大問題,除了產生過擬合,還會產生梯度衰減或梯度爆炸問題,由于梯度下降法的鏈式求導原則,可能會造成參數調整后過大,或趨近于0。解決梯度衰減和梯度爆炸問題,對于不同類型的網絡有不同的解決方案,常用的解決方案是更換激活函數。

第3章目標檢測算法概述圖像分類、目標檢測及實例分割是計算機視覺(ComputerVision,CV)中的三大重要的任務。圖像分類就是對圖像進行分類,通常分成圖像中最突出明顯的那個類別,并測量該分類預測的準確性。然而現實社會中的圖像往往包括了多個物體和特征,因此將圖像分類成單個類別就忽略了圖像的很多其他信息并導致分類的不準確。對于這種情況就需要用到目標檢測技術了,目標檢測算法可以識別出一張圖像中的多種不同的物體并通過邊界框將其定位出來。而實例分割在目標檢測的基礎上更進了一步,它將整幅圖像分成一個一個的像素組然后對其進行標記和分類。它在語義上理解圖像中的每個像素所代表的事物并通過不同的像素組確定了每個物體的邊界。相比于語義分割,實例分割不僅僅對圖像中的所有像素點進行分類,還需要區分相同類別中的不同個體。因此,可以說圖像分類只是對圖像進行單一的分類和識別,目標檢測對圖像進行多類型的分類及粗糙的矩形框定位,而語義分割對整個圖像的所有部分進行多類型標注分類及精確的物體分割定位。Classification+LocaHzationObjectDetectionSemanticSegmentationClassification+LocaHzationObjectDetectionSemanticSegmentation現在主要講講基于深度學習技術的目標檢測算法。目前目標檢測算法得到了很大的提升和進步,最先進的DNN算法主要可以分為兩大類:1)兩階段法(two-stageapproach),如基于候選區域(regionproposals)的R-CNN系列的算法;2)一階段法(one-stageapproach),如現在熱門的Yolo和SSD算法。two-stageapproach主要是先通過啟發式方法等操作得到一系列稀疏的候選框,

然后在對這些候選框進行分類及回歸操作。通過這兩個的操作,two-stage法能夠達到最好的準確率。而one-stage法是均勻的在圖像的不同位置上進行著不同尺度和比例的密集采樣,然后再利用CNN提取特征并進行分類。這種方法的好處在于它的計算效率高,分類的速度快。然而這種方法所采用的均勻密集采樣會因為正負樣本的不均衡分布(classimbalanceproblem)導致模型的的訓練擬合存在困難。目標檢測算法的主要性能參考是檢測的準確度和效率(即速度)。由于目標檢測不僅僅要對圖像進行多分類,還要將不同的物體進行定位,因此對于準確度的考察不單單考慮分類的準確度,還要考慮物體定位的準確度。two-stage和one-stage分別在準確度和速度上占有重大優勢,但是準確度和速度之間往往是矛盾體,提升模型的一個性能指標往往導致另一個性能指標出現下降。如何更好的去平衡目標檢測模型的這兩個性能指標也一直是該領域研究的重要方向。402004[?6OWFMttfi-fflU.海REMWtWftai,KOhumwlLMikhtFe?3EufeEKtradtnrQInceptionKernelv2InceptionV2402004[?6OWFMttfi-fflU.海REMWtWftai,KOhumwlLMikhtFe?3EufeEKtradtnrQInceptionKernelv2InceptionV2?InceptionV3OMobil^N^lResnet1D1?V^GBOO1Q00GPUTimetwo-stage方法1.r-cnn模型識別圖像中的物體往往涉及到為各個對象輸出邊界框和標簽,這需要對很多對象進行分類和定位,而不僅僅對其中主要個體對象進行分類和定位。為了避免在大量位置上使用卷積神經網絡并大幅增加計算的復雜度,研究人員提出了區域(region)這一概念來找到可能包含對象的圖像區域以減少計算復雜度。R-CNN就是基于候選區域(regionproposal)方法提出來的首個目標檢測算法,其使用選擇性搜索方法(selectivesearch)生成候選區域,然后在對這些候選區域進行分類和回歸來生成對象的邊界框以完成目標檢測任務。選擇性搜索算法是一種啟發式的搜索算法,它先將圖片簡單地劃分成很多個小區域,然后通過層級分組地方式合并相似的區域并最終得到候選區域。其算法的思路如下:

將一張圖像基于selectivesearch方法分為大約2000個候選區域,每個候選區域將被調整成227x227的固定大小并送入一個CNN模型中得到一個4096-d的特征向量該特征向量被送入多分類的SVM分類器中,預測出候選區域中的物體屬于哪個類別的概率。每個類別訓練一個SVM分類器并從該特征向量中推測出候選區域的物體屬于該類別的可能性。最后訓練一個邊界框回歸模型以提升邊界框的精度,保證定位的準確性。R-CNN對每個類別單獨的采用最小均方誤差損失函數進行回歸器的訓練。3ComputeCNNfeatures4.Classify

regions3ComputeCNNfeatures4.Classify

regions2-FastR-CNN模型從上文我們可以知道R-CNN對于每個候選區域的特征都需要使用一個CNN模型進行計算,這導致了該算法的時間復雜度較高。FastR-CNN的提出就是為了減少候選區域重復使用CNN模型進行特征向量的計算,其借鑒了SPP-net的思想,將整張圖片都送入CNN模型中得到整幅圖像的特征向量,再通過RoIspooling(RegionofInterestspooling)和selectivesearch方法提取中各個候選區域所對應的特征向量。RoIpooling根據候選區域按照比例從整幅圖像的特征圖中找到對應的特征區域,然后將其分割成幾個子區域并分別運用maxpooling得到固定大小的特征向量。通過這種方法避免了對每個候選區域進行CNN的分別計算,該方法只用進行一次CNN的計算從而大幅提升算法的運行速度。FastR-CNN的另一個提升之處在于將SVM分類器改成了softmax分類器,且變成了單管道的訓練過程,將分類誤差和定位誤差合并在一起訓練。同時定位誤差也有R-CNN中的L2改為了smoothL1。通過這些改進方法使速度較R-CNN提升了24-102倍。:印“芯bbox:印“芯bbox3-FasterR-CNN模型FastR-CNN模型仍然使用選擇性搜索算法進行候選區域的選擇,這也需要耗費大量的時間。FasterR-CNN模型引入了RPN(RegionProposalNetwork)替代了運算速度緩慢的選擇性搜索算法,通過預測來決定查看“區域”從而減少整個推理過程的計算量。RPN快速且高效的掃描圖像的每一個位置來評估在給定的區域內是否需要進行進一步處理。對于RPN網絡來說,先采用一個特征提取器提取出整張圖片的特征圖,然后在這個特征圖上采用一個NxN的的滑動窗口并對每一個窗口位置映射出一個低維度的特征。之后將這個特征分別傳入兩個全連接層:一個全連接層用于分類預測,另外一個用于回歸候選框。每一個窗口位置往往需要設置k個不同大小和比例的先驗框(anchors),這意味著需要預測k個候選區域,分類全連接層的輸出大小為2k(各個候選區域是否包含物體或單純為背景的概率值);回歸連接層的輸出大小為4k(代表各個候選框的4個坐標值)。RPN網絡采用的是二分類,僅僅區分前景(物體)和背景,但不對物體的類別進行預測。由于其還需要預測候選框的坐標值,因此在訓練時需要將先驗框(anchors)與ground-truthbox進行匹配。只要滿足下列兩個條件中的一個,先驗框就可以匹配一個ground-truth,該先驗框就是正樣本,并以這個groundtruth為回歸目標進行訓練。這兩個條件為:該先驗框與某個ground-truthbox的IoU最高.該先驗框與有個ground-truthbox的IoU值大于0.7.對于那些與任何一個ground-truthbox的IoU值都低于0.3的先驗框可以認定為是負樣本(即為背景).由于先驗框的數量龐大,RPN預測時的很多區域都是重疊的,要先進行NMS(non-maximumsuppression)來減少先驗框的數量,然后按照置信度降序排列,選擇N個先驗框來訓練FastR-CNN模型。classifierRolpoolingclassifierRolpooling總之,FasterR-CNN的速度和準確度最高。雖然以后的提出的很多two-stage模型在提高檢測速度上做了大量的工作,但幾乎沒有哪個模型能夠在性能在大幅超過FasterR-CNN模型,也就是說FasterR-CNN仍然是性能最好的two-stage算法之一。然而近年來研究人員已經把目光轉向了更快、更高效的one-stage方法,提出了YOLO(YouOnlyLookOnce)和SSD(SingleShotMultiboxDetector)等方法并取得了高效快速的計算效率。One-stage方法1.YOLO算法YOLO算法全稱YouOnlyLookOnce:Unified,Real-TimeObjectDetection,從這個名字我們就可以看出YouOnlyLookOnce代表著該算法屬于one-stage方法,只需要進行一個CNN的計算,Unified代表該算法有一個統一的框架,提供端到端的目標檢測,而Real-Time代表該算法運行速度快,所消耗的時間短。YOLO算法不再采用two-stage方法中廣泛采用的滑動窗口的方法,而是直接將原始圖片分割成互不重合的小方塊,然后使用卷積產生對應的特征圖并預測那

些中心點在該小方格內的目標。Yolo首先將整幅圖片分割成SxS的網絡,然后每個單元格檢測那些中心點落在該格子內的目標。每個單元格會預測B個邊界框(boundingbox)及每個邊界框的置信度(confidencescore)。邊界框的置信度包含兩個方面:1)該邊界框含有目標的可能性;2)該邊界框的準確度(即預測框與真實框的loU)。置信度為這兩者的乘積,同時反映含有目標的可能性和邊界框的準確度而不僅僅代表邊界框含有目標的概率。需要注意的是邊界框的位置用四個值來表征:(x,y,w,h),其中(x,y)是邊界框的中心坐標,是相對于每個單元格左上角坐標點的偏移值較整個單元格的比例;(w,h)為邊界框的寬和高,是相對于整幅圖像的寬和高的比例的。因此,y,w,h應該位于(0,1)之間。對于每一個單元格還需要預測出C個類別的概率值,其表征的是該單元格負責預測的目標屬于各個類別的概率。但是這些概率值是在各個邊界框置信度下的條件概率,同時我們也可以計算出各個邊界框類別置信度(class-specificconfidencescores)o邊界框類別置信度表征的是該邊界框中目標屬于各個類別的可能性大小以及邊界框的準確度。T4341APWPST4341APWPSYolo算法只米用了一個CNN網絡來進行目標的分類及定位,是一種單管道的策略,因此運算效率和速度比較快。同時其對整張圖片進行卷積操作,擁有著更大的感受野,其檢測的精度較高,不容易誤判,同時其泛化能力強,容易進行遷移學習。然而由于其每個單元格僅僅預測了兩個邊界框,對小物體的檢測效果不好,其邊界框的定位也不是很準確。Yolo對物體的長寬比上的泛化能力低,無法定位非尋常比例的物體也是其的一個重要缺陷。2.SSD算法SSD算法全名叫做SingleShotMultiBoxDetector,從名字中可以看出singleshot指明了該算法也屬于one-stage方法,Multibox代表著該算法是多框預測算法。與Yolo在全連接層之后做檢測不同,SSD采用了CNN來直接進行檢測。同時為了克服Yolo算法難以檢測小目標,定位不準的缺點,SSD算法做了兩個重要的改進:1)通過提取不同尺度的特征圖來進行檢測,大尺度特征圖可以用來檢測小物體,而小尺度特征圖用來檢測大物體;2)采用了不同尺度和長寬比的先驗框(Priorboxes)來不斷回歸提升定位的準確度。綜上所述,SSD較Yolo不

同的的核心設計理念可以總結如下:采用多尺度特征圖進行檢測所謂多尺度特征圖就是不同大小的特征圖,在CNN網絡中一般之前的特征圖會比較大,而后面通過采用卷積或者池化操作來不斷降低特征圖的大小。采用多尺度特征圖的好處在于較大的特征圖可以用來檢測相對較小的目標,而小的特征圖可以用來檢測大目標。設置不同的先驗框SSD借鑒了FasterR-CNN中先驗框(anchors)的理念,每個單元設置了不同尺寸和長寬比的先驗框,然后再以這些先驗框為基礎來預測邊界框從而在一定的程度上減少訓練的難度。對于每個單元的每個先驗框來說,SSD都會輸出一套獨立的檢測值。這種檢測值也分為了兩個部分:第一部分為各個類別的置信度,需注意的是第一個置信度指的是不含目標的背景的評分,也即它將背景也當成了一個類別并進行了評分。在預測的過程中,置信度最高的那個類別就是邊界框所屬的類別,如果第一個置信度最高就意味著邊界框中不包含著目標;第二部分為邊界框的位置(ex,cy,w,h),分別代表著邊界框的中心坐標與寬高。匕七iH匕七iH]Li■11,11r1%!L-—7111一-i11iL■-+i-7■?■■■■;■1卜■':::1 1.- 11 1。-一1N.;:1<t*locconf!(仇.fr,也.rr.A)⑴Imagewithboxes(h)8x8featuremap(c)4x4featuremap采用CNN卷積進行檢測SSD采用了卷積進行特征圖的提取和檢測。對于形狀為mxnxp的特征圖,只需要采用3x3xp的小卷積核即可得到檢測結果。通過上述三種改進,SSD的準確度比Yolo的更好同時提升了對小目標檢測的效果和邊界框的精度。

第4章目標檢測應用自動駕駛4.1簡介自動駕駛四大核心技術:環境感知、精確定位、路徑規劃、線控執行;自動駕駛汽車首先是對環境信息和車內信息的采集、處理與分析,即環境感知,環境感知是智能車輛自主行駛的基礎和前提;環境感知是智能駕駛車輛與外界環境信息交互的關鍵,核心在于使智能駕駛車輛更好地模擬、最終超越人類駕駛員的感知能力,準確地感知并理解車輛自身和周邊環境的駕駛態勢;智能駕駛車輛通過硬件傳感器獲取周圍的環境信息;環境感知的對象主要包括:路面、靜態物體和動態物體等三個方面,涉及道路邊界檢測、障礙物檢測、車輛檢測、行人檢測等技術;對于動態物體,不僅要檢測到物體的當前位置,且要對其軌跡進行跟蹤,并根據跟蹤結果,預測物體下一步的位置;環境感知所用到的傳感器一般包括:激光測距儀、視頻攝像頭、車載雷達等;智能駕駛車輛通過攝像頭、雷達、定位導航系統等獲取環境信息,數據形式包括:圖像、視頻、點云等;檢測和識別是自動駕駛中環境感知的兩大基本任務,主要通過機器學習和計算機視覺技術實現;卷積神經網絡的特征提取被廣泛應用于計算機視覺,包括:基于圖像的圖像分類和物體檢測等,基于視頻的行為識別等;一般的卷積神經網絡包括:輸入層、卷積層、池化層、輸出層。4.2集成全局和局部信息的端到端可訓練單階段停車位檢測在AVM上檢測車位,網絡結構分為兩個大的分支,局部信息和全局信息,全局信息負責車位整體信息,局部信息負責車位角點位置的回歸,局部特征更加關注局部信息,因此車位角點的位置信息更準確。Featureextraict&rInfotmatfeameKiractorNietworkoutput4imageresultfealbuiremapImformaliciriinteqr^tioni2.1全局特征■CunruluLiunlayci■CunruluLiunlayci:{1x1x512filor*屋1COTVcIuttonIdycr(3k35t512(IMe,k4

CcHiTOluLiopilayer(2r3vS12niEcr)T3

Cimt^IuLbchiki戸訂(11^x512lillDr^r1

iintQrmati&niwtractor■^igrnoidfunclkin3lgEG*KlfunctionSoftn斗functon^gmoidhunctioniPosdbililytobt

wtthkn叫刪ngM&tLacittenof

par^juincuonTypecfparking$loxOewpan守parkingslotCombinstioinof

globallinlonnaUcma:cell是否在車位里,加權L21ossb:如果cell在車位里,回歸車位兩個角點位置,歸一化到[-1,1],L2lossc:車位類型,垂直、平行、傾斜,BCElossd:車位是否被占用,加權L2loss全局分支預測車位的基本位置,以及車位類型、是否被占用等信息局部特征

r If ' 、|Convolutionlayerr If ' 、|Convolutionlayer;(3y3x512filter)x1Convolutionlayer(3x3x512filter)x2Convolutionlayer(3x3x512filter)x2k _ JI工r ’SigmoidfunctionV - JSigmoidfunctionLocalinformationextractorSigmoidtunctiorPosslbfgtoincludejunctionLocationo/junctionOrientationofjunctionCombination白flocalinformationa:cell位置是否包含角點,加權L2lossb:如果cell包含角點,回歸車位兩個角點位置,歸一化到[-0.5,0.5],L2loss c:角點方向,回歸角度兩個軸的法向量[-1,1],L2loss局部特征分支可以預測車位角點的精確位置和角度兩分支的信息整合局部角點位置代替全局特征的角點位置,之所以全局也回歸角點位置,是為了匹配兩分支的角點然后以車位為單位進行nmsGlobalinforrn-aHon Localinformaftion junirlicin-ba^edNIM5rwultSlot-ba^clNMSresultjunciton-basednms就是角點替換的過程,離得近的替換(能替換的替換,找不到的就不替換,如圖c紫色車位下角點),如果兩個車位的角點匹配相同,也可以起到合并的作用(如上圖藍色車位)。slot-basednms就是車位為單位的nms了總結1、角點回歸,全局分支歸一化到T到1,局部歸一化到[-0.5,0.5]

2、全局特征和局部特征,深度、感受野都是一致的,為什么一個叫局部一個叫全局,就是各有分工,兩個分支回歸不同的任務?3車位間nms,目前是按固定長度組成矩形計算nms,能否根據車位類型,按比例擴邊組成矩形或四邊形。另外,用iou做nms是否合理?如上圖c,兩個紫色車位框,一定有一個錯的,而nms是有閾值的,但是常理講,這兩個一定要濾掉一個才合理4.3兩階段的車位檢測算法位入口的大概位置,第二階段回歸車位的精確位置,以及車位類型、是否被占用。兩階段共用backbone,SCN低分辨率回歸分類信息(車位類型、是否占用),SDN高分辨率回歸車位位置信息。Specific,白gicms」口冒口SCNSpecific,白gicms」口冒

溫馨提示

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

評論

0/150

提交評論