
本發明涉及計算機技術、模式識別、人工智能、應用數學以及生物視覺技術在智能交通領域的應用,尤其涉及一種基于快速R-CNN深度神經網絡的車型識別方法。
背景技術:
:智能交通系統中的核心功能是對過往車輛的準確檢測和正確的車型識別。當前對車輛檢測分類技術的研究主要有兩個重要技術:即車輛自動識別和車輛自動分類。車輛自動識別是利用車載設備與地面基站設備互識進行,該技術主要用于收費系統中,在一些技術發達國家使用范圍較廣,如美國的AE-PASS系統、日本的ETC系統,全球衛星GPS定位等。車輛自動分類是通過檢測車輛本身固有的參數,在一定車輛分類標準下運用適當的分類識別算法,主動地對車輛進行分型,這一類技術應用比較廣泛,己經有很多成熟的系統應用在實際生活中,該類技術可以通過射頻微波、紅光、激光、聲表面波等方式來自動識別車輛信息,也可以使用視頻圖像處理的方式來識別車牌、車型等車輛信息。車輛自動分類比較成熟技術有環形線圈檢測、激為紅外線檢測、超聲波/微波檢測、地磁檢測等,但這幾種方法各有優劣,優點是識別精確比較高,但缺點也很明顯,主要缺點有施工和安裝過程十分復雜,影響正常交通秩序,維護困難,主要設備易損壞,花費較大等。近年來,視頻檢測技術己成為智能交通領域最重要的信息采集手段,綜合評比,將視頻檢測技術應用于高速公路和城市道路具有極大的實際應用價值,基于視頻車型識別系統,將全面提升城市道路的信息采集和安全管理的水平,在智能交通系統中會發揮越來越重要的作用。車型的視覺識別,國內外很多學者進行了相關研究。論文“RobertT.Collins,AlanJ.Lipton,HironobuFujiyoshi,andTakeoKanade.AlgorithrnsForcooperativemultisensorsurveillanee.InProceedingsoftheIEEE”披露了一個路上移動目標的檢測、跟蹤、識別系統,用訓練過的神經網絡來識別運動目標是人、人群、車輛還是干擾,網絡的輸入特性量有目標的分散性度量、目標大小目標表面大小與攝影機監視區域大小的相對值。車輛又進一步區分為不同類型和顏色。論文“TieniuN.TanandKeithD.BakerEfficientimagegradientbasedvehiclelocalization.IEEETransactiononIimageProeessing,2000,9(8):1343-1356.”描述了一種車輛定位和識別的方法,在一個小窗口內,該方法依據圖像梯度進行。利用地面約束以及大部分車輛外形受兩條直線約束的事實,可得到車輛的姿態。論文“GeorgeFung,NelsonYung,andGranthajmPang.Vehicleshapeapproximationfrommotionforvisualtrafficsurveillance.InProc.IEEEConf.IntelligentTransportSystem,2001,608-613.”用高精度攝像機觀察車輛的運動來估計車輛形狀,通過估計特征點得到車輛輪廓。基本思想是高特征點的移動速度大于低特征點的移動速度,因為高特征點離攝像機近,車輛輪廓可用與車輛識別。論文“Ferryman,A.Worral,G.Sullivan,K.Baker,AgenericdeformablemodelforVehiclerecognition,ProeeedingofBritishMachineVisionConference,1995,127-136.”提出了一個參數化的可變形三維模板,該模板通過演變,據稱是可適用于各種車輛識別。論文“LarryDavis,V.PhilominandR.Duralswami.Trackinghumansfromamovingplatform.InProc.IntematlonConferenceonPattemRecognition,2000.”用變形模板來研究車輛識別,首先,建立目標車輛車頭部分的側視圖以及正視圖的變形模板。通過直方圖交集,車輛的RGB直方圖也必須比較,合適的車型模板邊的點集也通過點集間的Hausdorff距離與其他車輛模板進行比較。上述技術基本上還需要人工來完成特征抽取,更大的問題是:1)受具體應用環境的影響太大,各類檢測算法要求的條件太苛刻;2)車輛種類繁多但差別不大,沒有明顯的區別特征;3)受視覺變化的影響大,從不同角度所攝的汽車特征差別大;4)受自然環境影響太大,特別是光照影響,嚴重的光照反射使得車輛輪廓線不分明,顏色偏離、變化太大,難以辨認;5)汽車的外形更新太快,特征變化太快,使得算法適應性較差。國內在車型識別技術方面大多數仍停留在研究狀態,如中國科學院、西安公路所、上海交通大學、西安交通大學、四川大學等一些研究成果。其關鍵問題是人類本身對車型識別過程的知識限制。用來進行車輛分類的特征需要對尺度、旋轉以及一定的角度變換、光照變化都有很好的魯棒性,前深度學習時代的計算機視覺技術一般都是人工花費大量時間和精力去設計合適的特征。為了能讓計算機自動選擇合適特征,人工神經網絡就應運而生了,早在1999年就有國外的研究者利用神經網絡對物體進行分類,包括了模糊神經網絡和BP網絡等方法;但由于其性能存在諸多問題,如難以解決模式識別中存在的復雜性和推廣性的矛盾,神經網絡雖然有強大的建模能力,但對諸如車型大規模圖像進行分類,其巨大的參數空間使尋找優良的優化初始值較為困難等,因此被人們冷落了很長時間,直到深度學習的提出才又重新成為研究熱點。在圖像分類領域,對數量龐大的圖像分類主要有兩種方法:一種為提取每張照片的局部特征,將提取的特征進行聚類和編碼得到一個高維向量,然后將其用分類器分類。其中編碼的方法有視覺詞袋模型編碼,稀疏編碼和費舍爾向量編碼等,從目前研究結果來看費舍爾向量編碼的性能較其他幾種編碼方式要好。另一種應用很廣的圖像分類方法是深度神經網絡,深度學習是神經網絡研究中的一個新的熱點,其目的在于通過非監督的預訓練為神經網絡提供優良的參數初始值,通過貪婪的方式,一層一層的訓練,對大規模圖像分類取得非常好的效果。深度學習的概念開始引起人們的注意是在大約2006年前后,論文“Hinton,G.E.andR.R.Salakhutdinov,Reducingthedimensionalityofdatawithneuralnetworks.Science,2006.313(5786):504-507”提出了一種多層的前向神經網絡能夠逐層做高效的前期訓練,采用無監督的限制性玻爾茲曼機對每一層進行訓練,最后在利用有監督的后向傳播做微調,為解決模式識別中存在的復雜性和推廣性的矛盾提供了一種新的方法和思路,這樣就拉開了深度學習時代的計算機視覺技術序幕。卷積神經網絡,即CNN,是深度學習算法的一種,是專門處理圖像領域中的模式識別,同時也是目前圖像模式識別中成果最驚人的算法。卷積神經網絡算法的好處在于訓練模型的時候不需要使用任何人工特征,算法可以自動探索圖像所隱含的特征。申請號為201610019285.2的中國專利申請公開了一種車型識別方法及系統,包括了機器訓練生成分類器過程和對待測圖片的判別過程,在生成分類器的過程中,基于車牌確定訓練集圖片中所需要的圖像范圍,將已經確定的圖像范圍劃分區域,選定各區域內的特征信息,分別將選定的各自區域內所有特征信息投入機器訓練生成一一對應各區域的分類器,通過已經生成的分類器對待測圖片進行單區域判別,依據單區域判別結果再經過多區域置信度融合判斷得到車型識別結果。該發明采用隨機深林分類器進行車型識別,最大的問題是缺少無監督的學習過程。申請號為201510639752.7的中國專利申請公開了一種車型識別方法,所述方法包括:獲取待檢測圖片;采用第一預設分類器對所述待檢測圖片進行檢測;若所述待檢測圖片中含目標車輛,提取所述待檢測圖片中的目標車輛;對所述目標車輛進行對齊處理,以使得所述目標車輛的車頭方向與所述目標區域的垂直方向之間的夾角小于預設閾值;對所述對齊處理之后的目標車輛進行特征提取,以得到M個特征,所述M為大于1的整數;采用第二預設分類器對所述M個特征進行分類;根據所述分類的結果確定所述目標車輛的車型。從某種意義上說,該發明仍然屬于淺神經網絡,在架構上就難以實現無監督的學習過程。申請號為201510071919.4的中國專利申請提出了一種基于卷積神經網絡的車型識別方法,基于特征提取模塊與車型識別模塊,包括以下步驟:通過設計卷積與池化層,全連接層,分類器來構建車型識別的神經網絡,其中卷積與池化層和全連接層用來提取車型特征,分類器用來車型分類識別;利用包含不同車型特征的數據庫訓練該神經網絡,訓練方式為帶標簽的數據進行的有監督的學習,并用隨機梯度下降法進行權重參數矩陣和偏移量的調整;得到訓練好的各層中的權重參數矩陣和偏移量,把它們對應地賦值給該神經網絡中的各個層,則該網絡具有車型特征提取及識別的功能。該發明缺少比較詳細的實現細節,只是從概念上提出了基于卷積神經網絡的車型識別方法,尤其是訓練方式為帶標簽的數據進行的有監督的學習。車輛的外形圖像量屬于海量數據,要對這些圖像數據進行標注是一個極其困難的事情;此外車輛的外形更新太快造成特征變化快,所以造成該發明中的一些算法難以滿足實際應用。此外,實際路面釆集到的車型圖像復雜;包括了背景復雜,車輛之間的遮擋等干擾;若無對實際獲得的圖像進行分割處理,將會嚴重影響最終的識別結果。申請號為201510738852.5和201510738843.6的中國專利申請提出了一種基于深度費舍爾網絡的車型識別方法,首先構建費舍爾網絡的第0層,對有K種車型圖像的數據庫,提取出每種車型車輛圖像的SIFT特征;然后構建費舍爾網絡的第1層,對提取到的SIFT特征進行費舍爾向量編碼,將編碼后的向量在空間堆疊,再進行L2歸一化和PCA降維;將第1層得到的特征表示進行費舍爾向量編碼,通過符號平方根和L2歸一化處理,形成費舍爾網絡的第2層;最后將不同車型圖像得到的全局特征表示用于線性支持向量機訓練,得到具有K種車型類別的識別系統;對待識別車輛,使其通過費舍爾網絡得到測試特征向量,導入識別系統即可識別出待識別車輛車型。該發明也有兩個不足,其一是缺少深度學習過程,其二是缺少對圖像進行車輛分割處理步驟。申請號為201510738540.4的中國專利申請提出了一種基于局部特征聚合描述符的車型識別方法,首先提取車型數據庫中車輛圖像的SIFT特征;然后對所有車輛圖像的SIFT特征進行Kmeans聚類,形成K個聚類中心,得到具有K個視覺單詞的字典;接著針對每張車型圖像將每個SIFT特征賦給離其最近的視覺單詞;統計每個視覺單詞周圍的SIFT特征向量與當前視覺單詞的殘差累積量,得到當前車輛圖片的局部特征聚合描述符;最后,將訓練模塊的n張車型圖像的局部特征聚合描述符,通過量化編碼,得到一個可索引的n類車型類別的編碼圖像庫;而對測試車輛圖像,同樣提取其局部特征聚合描述符,作為查詢向量,導入圖像庫進行索引,通過近似最近鄰搜索方法進行匹配,識別出測試車輛車型。同樣該發明也有兩個缺陷,其一是缺少深度學習,其二是缺少對圖像進行車輛分割處理步驟。卷積神經網絡在大貨車、小貨車、大巴、面包車、SUV和轎車識別上還是比較成功的,但是在子類分類,如識別車的不同車型中的精度就遠比不上大類分類的精度。通常來說子類圖像識別的困難一般在于兩點:(1)子類圖像標注數據的獲取十分困難,通常需要相關領域的專家進行標注。(2)子類圖像識別存在大的類內差別,如在車型識別中,車不同的觀察角度,以及小的類間差別。綜上所述,采用卷積神經網絡等深度神經網絡技術對車型識別,目前尚存在著如下若干個棘手的問題:1)如何從復雜的背景中準確分割出被測車輛的整體圖像;2)如何盡可能采用極少的標簽圖像數據來準確獲得車輛車型的特征數據;3)如何在車輛車型大類識別基礎上還能識別出是哪一款、哪種顏色、哪個年代出的車;4)如何通過深度學習來自動獲取車輛車型的特征;5)如何兼顧好識別精度和檢測效率,同時盡可能減少訓練和學習時間;6)如何在分類器設計時,該分類器即能滿足車輛車型子類的分類要求,又能在汽車的外形更新后無需再重新對整個網絡進行訓練學習;7)如何設計一個真正意義上的使用一個CNN網絡實現端到端的車輛檢測和識別的框架;8)如何降低天氣條件的影響,增加系統的自適應性。技術實現要素:為了克服已有的車輛車型視覺識別技術中的自動化和智能化水平低、缺乏深度學習、難以對適應環境天氣變化、難以準確提取出用于識別的車輛整體圖像、難以用視覺方式對車輛車型子類進行識別分類、難以兼顧識別精度與時間和檢測效率等不足,本發明提供一種基于快速R-CNN深度神經網絡的車型識別方法,能有效提高車型視覺識別的自動化和智能化水平、能較好適應環境天氣變化具有廣泛的自適應性、能保證在較好的檢測識別精度基礎上有實時檢測識別能力、能大大減少對標簽車輛數據的依賴具有自動學習和提取車型特征的能力、能較好解決車型識別的復雜性和推廣性的矛盾具有較佳的普適性。要實現上述
發明內容,必須要解決幾個核心問題:(1)設計一種車輛對象的快速視覺分割算法;(2)研發一種深度學習方法,實現無監督的車型特征提取;(3)設計一種適用于上千種的類型子類的分類器,并具有擴展性;(4)設計一個真正意義上的使用一個快速R-CNN網絡實現端到端的車輛檢測和識別的框架。本發明解決其技術問題所采用的技術方案是:一種基于快速R-CNN深度神經網絡的車型識別方法,包括一個用于深度學習和訓練識別的VGG網絡、一個用于提取出感興趣區域的區域建議網絡和一個用于車型分類的Softmax分類器;所述的VGG網絡,包括8個卷基層,3個全連接層,共計11層;8個卷基層中有5個組的卷積層、2個分類層提取圖像特征、1個分類層分類特征;3個全連接層分別連接分類層6、分類層7和分類層8;所述的區域建議網絡,包括1個分類層、1個窗口回歸層、1個計算分類損失的模塊和1個計算窗口回歸損失的模塊,輸出p個感興趣的建議框;所述的Softmax分類器,將提取到的輸入數據特征與學習訓練得到特征庫數據進行比對,計算出每一個分類結果的概率,然后取概率最高的一個結果進行輸出;快速R-CNN深度神經網絡,在所述的VGG網絡的第5層末尾接入了所述的區域建議網絡,使得所述的區域建議網絡共享所述的VGG網絡的前5層的底層特征提取過程與結果;所述的VGG網絡的第6和第7層根據所述的區域建議網絡輸出的p個感興趣的建議框內的圖像特征進行卷積和ReLU處理,得到p個含有4096向量的特征圖,接著分別送給分類層和窗口回歸層進行處理,實現車輛圖像的分割;另一方面,所述的Softmax分類器對p個含有4096向量的特征圖進行分類識別,得到車輛車型的分類結果。所述的Softmax分類器,在學習訓練期間將快速R-CNN中的學習結果作為softmax分類器的輸入數據;Softmax回歸是面向多類分類問題的Logistic回歸,是Logistic回歸的一般形式,適用于類別之間互斥的情況;假設對于訓練集{(x(1),y(1),…,x(m),y(m))},有y(1)∈{1,2,…,k},對于給定的樣本輸入x,輸出一個k維的向量來表示每一種分類結果出現的概率為p(y=i|x),假設函數h(x)如下:hθ(x(i))=p(y(i)=1|x(i),θ)p(y(i)=1|x(i),θ)...p(y(i)=k|x(i),θ)=1Σj=1keθjTx(i)eθ1Tx(i)eθ2Tx(i)...eθkTx(i)---(11)]]>θ1,θ2,…θk是模型的參數,并且所有的概率和為1;加入規則項后的代價函數為:J(θ)=-1m[Σi=1mΣj=1k1{y(i)=j}logeθjTx(i)Σl=1keθlTx(i)]+λ2Σl=1kΣj=0nθij2---(12)]]>代價函數對第j個類別的第l個參數的偏導數為:▿θjJ(θ)=-1mΣi=1m[x(i)(1{y(i)=j}-p(y(i)=j|x(i);θ))}]+λθj---(13)]]>最后,通過最小化J(θ),實現softmax的分類回歸,將分類回歸結果保存到特征庫中;在識別分類時,將提取到的輸入數據特征與學習訓練得到特征庫數據進行比對,計算出每一個分類結果的概率,然后取概率最高的一個結果進行輸出。所述的區域建議網絡,為了生成區域建議框,在所述的VGG網絡的第5層末尾接入了所述的區域建議網絡,即在第5層的卷積層輸出的卷積特征映射圖上滑動一個小網絡,這個網絡全連接到輸入卷積特征映射的n×n的空間窗口上;每個滑動窗口映射到一個低維向量上,低維向量為256-d,每個特征映射的一個滑動窗口對應一個數值;這個向量輸出給兩個同級的全連接的層;—個窗口回歸層和一個分類層;窗口回歸層輸出每一個位置上,9種推薦區域對應窗口需要具有平移縮放不變性,窗口回歸層從256維特征中輸出4個平移縮放參數,有4k個輸出,即k個建議框的坐標編碼;分類層從256維特征中輸出屬于前景和背景的概率,輸出2k個建議框得分,即對每個建議框是車輛目標/非車輛目標的估計概率。區域建議網絡的訓練,給每個候選區域分配一個二進制的標簽,即是否是車輛對象;這里分配正標簽給兩類候選區域:(i)與某個GT的包圍區域有最高的交集并集之比,IoU,重疊的候選區域;(ii)與任意GT包圍區域大于0.7的IoU交疊的候選區域;同時分配負標簽給與所有GT包圍區域的IoU比率都低于0.3的候選區域;刪去非正非負的候選區域;具體算法如下:STEP31:順序讀取訓練集中的每張圖;STEP32:對每個標定的真值候選區域,與其重疊比例最大的候選區域記為前景樣本;STEP33::對STEP32)剩余的候選區域,如果其與某個標定重疊,IoU比例大于0.7,記為前景樣本;如果其與任意一個標定的重疊比例都小于0.3,記為背景樣本;STEP34:對STEP32和STEP33剩余的候選區域棄去不用;STEP35:對跨越圖像邊界的候選區域棄去不用。為了自動進行候選區域的篩選和區域位置精修,這里采用最小化目標函數;對一個圖像的代價函數用公式(14)表示,L({pi},{ti})=1NclsΣiLcls(pi,pi*)+λ1NregΣipi*Lreg(ti,ti*)---(14)]]>式中,i是一個批處理中候選區域的索引,Ncls為分類層的歸一化系數,Nreg為窗口回歸層的歸一化系數,λ為平衡權重,pi為車輛目標的預測概率,為GT標簽,如果候選區域為正如果候選區域為負ti為一個向量,表示預測的包圍框的4個參數化坐標,為與正候選區域對應的GT包圍框的坐標向量,Lcls為分類的對數代價,Lreg為回歸對數代價,L({pi},{ti})為總的對數代價;分類的對數代價Lcls由公式(15)計算,Lcls(pi,pi*)=-log[pi*pi+(1-pi*)(1-pi)]---(15)]]>窗口回歸對數代價Lreg由公式(16)計算,Lreg(ti,ti*)=R(ti-ti*)---(16)]]>式中,R為定義的魯棒的代價函數,屬于SmoothL1誤差,對離群值不敏感,用公式(17)計算,公式(14)中的這一項意味著只有正候選區域,即時才有回歸代價,其他情況由于沒有回歸代價;分類層和窗口回歸層的輸出分別由{pi}和{ti}組成,這兩項分別由Ncls和Nreg以及一個平衡權重λ歸一化,這里選擇λ=10,Ncls=256,Nreg=2400,通過這樣的選擇分類層和窗口回歸層項差不多是等權重的;關于位置精修,這里采用4個值,中心坐標、寬度和高度,計算方法如下,tx=(x-xa)/wa,ty=(y-ya)/ha,tw=log(w/wa),th=log(h/ha),t*x=(x*-xa)/wa,t*y=(y*-ya)/ha,t*w=log(w*/wa),t*h=log(h*/ha)---(18)]]>式中,x、y、w、h分別表示包圍框中心坐標、寬度和高度,xa、ya、wa、ha分別表示候選區域中心坐標、寬度和高度,x*、y*、w*、h*分別表示預測的包圍框中心坐標、寬度和高度;用公式(18)的計算結果進行位置精修;實際上,并沒有顯式地提取任何候選窗口,完全使用區域建議網絡自身完成判斷和位置精修。所述的VGG網絡,在標簽車輛圖像數據上建立多層神經網絡的方法,分為兩步,一是每次訓練一層網絡,二是調優,使原始表示X向上生成的高級表示r和該高級表示r向下生成的X'盡可能一致;卷積神經網絡的前向傳播過程,上一層的輸出即為當前層的輸入,并通過激活函數逐層傳遞,因此整個網絡的實際計算輸出用公式(4)表示,Op=Fn(…(F2(F1(XW1)W2)…)Wn)(4)式中,X表示原始輸入,Fl表示第l層的激活函數,Wl表示第l層的映射權值矩陣,Op表示整個網絡的實際計算輸出;當前層的輸出用(5)表示,Xl=fl(WlXl-1+bl)(5)式中,l代表網絡層數,Xl表示當前層的輸出,Xl-1表示上一層的輸出,即當前層的輸入,Wl代表已經訓練好的、當前網絡層的映射權值矩陣,bl為當前網絡的加性偏執,fl是當前網絡層的激活函數;采用的激活函數fl為糾正線性單元,即ReLU,用公式(6)表示,fl=max((Wl)TXl,0)=(Wl)TXl(Wl)TXl>00(Wl)TXl≤0---(6)]]>式中,l代表網絡層數,Wl代表已經訓練好的、當前網絡層的映射權值矩陣,fl是當前網絡層的激活函數;其作用是如果卷積計算結果小于0,則讓其為0;否則保持其值不變。所述的VGG網絡,前5層是一個典型的深度卷積神經網絡,該神經網絡訓練是一個反向傳播過程,通過誤差函數反向傳播,利用隨機梯度下降法對卷積參數和偏置進行優化調整,直到網絡收斂或者達到最大迭代次數停止;反向傳播需要通過對帶有標簽的訓練樣本進行比較,采用平方誤差代價函數,對于c個類別,N個訓練樣本的多類別進行識別,網絡最終輸出誤差函數用公式(7)來計算誤差,EN=12Σn=1NΣk=1c(tkn-ykn)2---(7)]]>式中,EN為平方誤差代價函數,為第n個樣本對應標簽的第k維,為第n個樣本對應網絡預測的第k個輸出;對誤差函數進行反向傳播時,采用傳統的BP算法類似的計算方法,如公式(8)所示,δl=(Wl+1)Tδl+1×f′(ul)ul=Wlxl-1+bl---(8)]]>式中,δl代表當前層的誤差函數,δl+1代表上一層的誤差函數,Wl+1為上一層映射矩陣,f'表示激活函數的反函數,即上采樣,ul表示未通過激活函數的上一層的輸出,xl-1表示下一層的輸入,Wl為本層映射權值矩陣;通過誤差反向傳播后,得到各個網絡層的誤差函數δl,然后采用隨機梯度下降法對網絡權值Wl進行修改,再進行下一次迭代,直至網絡達到收斂條件;在進行誤差傳遞時需要先通過公式(8)中的上采樣使得前后兩層尺寸相同,再進行誤差傳遞;算法思想是:1)首先逐層構建單層神經元,這樣每次都是訓練一個單層網絡;2)當所有層訓練完后,使用wake-sleep算法進行調優。深度學習訓練過程具體如下:STEP21:使用自下而上的非監督學習,即從底層開始,一層一層的往頂層訓練,學習車輛圖像特征:先用無標簽車輛圖像數據訓練第一層,訓練時先學習第一層的參數,由于模型容量的限制以及稀疏性約束,使得得到的模型能夠學習到數據本身的結構,從而得到比輸入更具有表示能力的特征;在學習得到第l-1層后,將l-1層的輸出作為第l層的輸入,訓練第l層,由此分別得到各層的參數;具體計算如公式(5)、(6)所示;STEP22:自頂向下的監督學習,即通過帶標簽的車輛圖像數據去訓練,誤差自頂向下傳輸,對網絡進行微調:具體計算如公式(7)、(8)所示;基于STEP21得到的各層參數進一步微調整個多層模型的參數,這一步是一個有監督訓練過程;STEP21類似神經網絡的隨機初始化初值過程,由于深度學習的STEP21不是隨機初始化,而是通過學習輸入數據的結構得到的,因而這個初值更接近全局最優,從而能夠取得更好的效果。所述的VGG網絡的前5層的模型初始化:主要分為數據準備、計算圖像均值、網絡的定義、訓練和恢復數據等5個步驟;1)數據準備;通過爬蟲軟件收集了各類車型的圖像數據,得到的基本上是帶有標簽的車輛圖像數據,將其作為訓練圖像數據;另一類數據是通過卡口攝像機獲取的車輛圖像數據;2)計算圖像均值;模型需要從每張圖片減去均值;3)網絡的定義;主要定義xml標簽路徑、圖片的路徑、存放train.txt、val.txt、test.txt和trainval.txt文件的路徑;4)訓練;運行訓練模塊;5)恢復數據;刪除前ReLu5的層,并將roi_pool5的bottom改為data和rois;經過上述處理完成了車輛車型預訓練的模型初始化工作。所述的區域建議網絡利用了所述的VGG網絡的前5層底層特征提取結果,即兩個網絡共享了所述的VGG網絡的前5層底層特征,需要通過交替優化來學習優化共享的特征;具體算法如下:STEP41:用區域建議網絡的優化訓練區域建議網絡,用上述的數據準備、計算圖像均值、網絡的定義、訓練和恢復數據等5個步驟完成模型初始化,并端到端微調用于區域建議任務;STEP42:用STEP1的區域建議網絡生成的建議框,由快速R-CNN訓練一個單獨的檢測網絡,這個檢測網絡同樣是由車輛車型預訓練的模型初始化的,這時候兩個網絡還沒有共享卷積層;STEP43:用檢測網絡初始化區域建議網絡訓練,固定共享的卷積層,并且只微調區域建議網絡獨有的層,這時兩個網絡共享卷積層了;STEP44:保持共享的卷積層固定,微調快速R-CNN的分類層;這樣,兩個網絡共享相同的卷積層,最終構成一個統一的網絡。本發明中,車輛車型視覺識別主要流程如下;STEP51:讀取待識別圖像;STEP52:對待識別圖像進行歸一化處理,得到RGB三個不同顏色224×224歸一化的圖像數據;STEP53:將RGB三個不同顏色224×224歸一化的圖像數據輸入到三個CNN通道,經5層卷積處理得到車輛車型特征圖像數據;STEP54:對車輛車型特征圖像數據通過區域建議網絡生成的建議框,選取一個最高得分的建議框,即得到一個感興趣區域,RoI;將這個RoI通過最大池化5層進行處理得到一個6×6×256RoI的卷積圖;STEP55:將RoI的卷積圖輸出給兩個同級的全連接的層處理后得到4096維的特征向量,作為softmax分類器的輸入數據;STEP56:對4096維的特征向量用softmax的分類回歸分析得到車輛車型識別結果,識別出被測圖像中的車輛屬于哪一款車型。本發明的有益效果主要表現在:1)提供了一種基于快速R-CNN深度神經網絡的車型識別方法;2)研發一種深度學習方法,實現無監督的車型特征提取;3)設計一種適用于上千種的類型子類的分類器,并具有擴展性;4)實現了一個真正意義上的使用一個快速R-CNN網絡實現端到端的車輛檢測和識別的框架,并具有適用于車輛目標的形態多樣性,光照變化多樣性,背景多樣性等環境下快速、高精度和魯棒性的車輛子類識別。附圖說明圖1為邊緣信息候選框的檢測算法流程;圖2為區域建議網絡中的處理內容;圖3為3種尺度和3種長寬比的滑動窗口示意圖;圖4為區域建議網絡的概要圖;圖5為區域建議框生成說明圖;圖6為快速R-CNN網絡中的共享網絡的說明圖;圖7為對實際道路上車輛通過區域建議網絡處理后得到的候選區域;圖8為用代價函數實現區域建議網絡自身完成判斷和位置精修示意圖;圖9為基于CNN的車型識別流程框圖;圖10為wake-sleep算法說明圖;圖11為VGG模型的CNN的車型識別流程框圖;圖12為快速R-CNN網絡實現端到端的車輛檢測和識別的訓練過程圖;圖13為快速CNN網絡實現端到端的車輛檢測和識別流程概要圖;圖14為快速R-CNN網絡實現端到端的車輛檢測和識別的流程圖。具體實施方式下面結合附圖對本發明的技術方案作進一步詳細描述。實施例1參照圖1~14,本發明解決其技術問題所采用的技術方案是:(1)關于設計一種車輛對象的快速視覺分割算法;首先,設計一種車輛對象的快速視覺分割算法,即對車輛對象進行區域選擇和定位;為了對車輛目標的位置進行定位;由于車輛目標可能出現在圖像的任何位置,而且目標的大小、長寬比例也不確定,原有的技術是最初采用滑動窗口的策略對整幅圖像進行遍歷,而且需要設置不同的尺度,不同的長寬比;這種窮舉的策略雖然包含了目標所有可能出現的位置,但是缺點也是顯而易見的:時間復雜度太高,產生冗余窗口太多,這也嚴重影響后續特征提取和分類的速度和性能;對于滑動窗口存在的問題,本發明提出了一種候選區域的解決方案;即預先找出圖中車輛目標可能出現的位置;由于候選區域利用了圖像中的紋理、邊緣、顏色等信息,能保證在選取較少窗口的情況下保持較高的召回率;這樣能有效降低后續操作的時間復雜度,并且獲取的候選窗口要比滑動窗口的質量更高;可選用的算法是選擇性搜索,即selectiveSearch和邊緣信息候選框,即edgeBoxes;這些算法的核心是利用了人類視覺的一眼“縱觀全局”,直接發現車輛目標在整幅圖像中的“大概的位置”;由于選擇性搜索算法耗時比較大,不適用與在線的車型識別與檢測;本發明采用邊緣信息候選框的檢測算法。邊緣信息候選框的檢測算法思想是:利用邊緣信息,確定候選框內的輪廓個數和與候選框邊緣重疊的輪廓個數,并基于此對候選框進行評分,進一步根據得分的高低順序確定由大小,長寬比,位置構成的候選區域信息;邊緣信息候選框的檢測算法流程如圖1所示;算法步驟如下:STEP11:用結構深林邊緣檢測算法對原圖像進行處理,得到的邊緣圖像,然后用非極大值抑制算法對邊緣圖像進一步處理得到一個相對稀疏的邊緣圖像;STEP12:將相對稀疏的邊緣圖像中近乎在一條直線上的邊緣點,集中起來形成一個邊緣組,具體的做法是,不停地尋找8連通的邊緣點,直到兩兩邊緣點之間的方向角度差值的和大于pi/2,這樣便得到了N多個邊緣組si∈S;STEP13:用公式(1)計算兩兩邊緣組之間的相似度,a(si,sj)=|cos(θi-θij)cos(θj-θij)|γ(1)式中,θi和θj分別為兩個邊緣組的平均取向,si和sj分別表示兩個邊緣組,θij為兩個邊緣組的平均位置xi和xj之間的夾角,γ為相似敏感系數,這里選擇γ=2,a(si,sj)兩個邊緣組之間的相似度;為了提高計算效率,這里將相似度a(si,sj)計算值超過閾值,Ts≥0.05的邊緣組進行儲存,其余均設置為零;STEP14:給每一個邊緣組賦予一個權值,權值計算方法由公式(2)給出,Wb(si)=1-maxTΠj|T|-1a(tj,tj+1)---(2)]]>式中,T為從候選框的邊緣開始到達si的邊緣組序列集合的路徑,Wb(si)為邊緣si的權值,tj為……,(參數解釋);如果沒有找到路徑就將Wb(si)設定為1;STEP15:用公式(3)計算候選框的評分,hb=ΣiWb(si)mi2(bw+bh)k---(3)]]>式中,mi為對在邊緣組si中所有邊緣p的大小mp的總和,Wb(si)為邊緣si的權值,bw和bh分別為候選框的寬度和高度,k為大小系數,這里定義k=1.5;計算窗口內邊緣個數進行打分,最后排序打分來過濾掉低分的候選框;對于本發明主要應用于卡口車輛的提取,這里就選擇最高分的候選框作為被測車輛對象前景圖像;(2)關于研發一種深度學習方法,實現無監督的車型特征提取;由于車輛目標的形態多樣性,光照變化多樣性,背景多樣性等因素使得設計一個魯棒的特征并不是那么容易;然而提取特征的好壞直接影響到分類的準確性;滿足上述三個多樣性需求的、魯棒的車型特征提取必須通過無監督深度學習來實現完成,逐層初始化是一個非常有用的解決方案;深度學習的實質,是通過構建具有很多隱層的機器學習模型和海量的訓練數據,來學習更有用的特征,從而最終提升分類或預測的準確性;因此,本發明中通過以下兩點來實現深度學習:1)模型結構的深度有5層~10多層的隱層節點;2)通過逐層特征變換,將樣本在原空間的特征表示變換到一個新特征空間,從而使分類或預測更加容易;本發明,提出了一種在非監督數據上,即無標簽車輛圖像數據上建立多層神經網絡的方法,簡單的說,分為兩步,一是每次訓練一層網絡,二是調優,使原始表示X向上生成的高級表示r和該高級表示r向下生成的X'盡可能一致;卷積神經網絡的前向傳播過程,上一層的輸出即為當前層的輸入,并通過激活函數逐層傳遞,因此整個網絡的實際計算輸出用公式(4)表示,Op=Fn(…(F2(F1(XW1)W2)…)Wn)(4)式中,X表示原始輸入,Fl表示第l層的激活函數,Wl表示第l層的映射權值矩陣,l=1,2,3…代表網絡層數,Op表示整個網絡的實際計算輸出;當前層的輸出用公式(5)表示,Xl=fl(WlXl-1+bl)(5)式中,l代表網絡層數,Xl表示當前層的輸出,Xl-1表示上一層的輸出,即當前層的輸入,Wl代表已經訓練好的、當前網絡層的映射權值矩陣,bl為當前網絡的加性偏執,fl是當前網絡層的激活函數;本發明采用的激活函數fl為糾正線性單元,即RectifiedLinearUnits,ReLU,用公式(6)表示,fl=max((Wl)TXl,0)=(Wl)TXl(Wl)TXl>00(Wl)TXl≤0---(6)]]>式中,l代表網絡層數,Wl代表已經訓練好的、當前網絡層的映射權值矩陣,fl是當前網絡層的激活函數;其作用是如果卷積計算結果小于0,則讓其為0;否則保持其值不變;在CNN中采用局部感受野以及權值共享的方法來進一步降低網絡參數。所謂局部感受野,指的是每種卷積核只與圖像中的某個特定區域相連接,即每種卷積核只卷積圖像的一部分,接下來再在其他層中將這些局部卷積特征聯系在一起,既符合圖像像素在空間上的關聯性,又降低了卷積參數數量。而權值共享則是使得每種卷積核的權值均相同,通過增加卷積核的種類來提取圖像多方面特征;為了給車輛車型子類分類提供更多的細節特征,本發明中適當地增加了卷積核的種類;卷積神經網絡訓練是一個反向傳播過程,與傳統的BP算法類似,通過誤差函數反向傳播,利用隨機梯度下降法對卷積參數和偏置進行優化調整,直到網絡收斂或者達到最大迭代次數停止。反向傳播需要通過對帶有標簽的訓練樣本進行比較,計算誤差。例如采用平方誤差代價函數,對于c個類別,N個訓練樣本的多類別識別問題,網絡最終輸出誤差函數用公式(7)表示,EN=12Σn=1NΣk=1c(tkn-ykn)2---(7)]]>式中,EN為平方誤差代價函數,為第n個樣本對應標簽的第k維,為第n個樣本對應網絡預測的第k個輸出;對誤差函數進行反向傳播時,采用傳統的BP算法類似的計算方法,如公式(8)所示,δl=(Wl+1)Tδl+1×f′(ul)ul=Wlxl-1+bl---(8)]]>式中,δl代表當前層的誤差函數,δl+1代表上一層的誤差函數,Wl+1為上一層映射矩陣,f'表示激活函數的反函數,即上采樣,ul表示未通過激活函數的上一層的輸出,xl-1表示下一層的輸入,Wl為本層映射權值矩陣;通過誤差反向傳播后,得到各個網絡層的誤差函數δl,然后采用隨機梯度下降法對網絡權值Wl進行修改,再進行下一次迭代,直至網絡達到收斂條件;要注意的是,由于層與層之間的大小尺寸不同,在進行誤差傳遞時需要先通過公式(8)中的上采樣使得前后兩層尺寸相同,再進行誤差傳遞;算法思想是:1)首先逐層構建單層神經元,這樣每次都是訓練一個單層網絡;2)當所有層訓練完后,使用wake-sleep算法進行調優。深度學習訓練過程具體如下:STEP21:使用自下而上的非監督學習,即從底層開始,一層一層的往頂層訓練,學習車輛圖像特征:先用無標簽車輛圖像數據訓練第一層,訓練時先學習第一層的參數,由于模型容量的限制以及稀疏性約束,使得得到的模型能夠學習到數據本身的結構,從而得到比輸入更具有表示能力的特征;在學習得到第l-1層后,將l-1層的輸出作為第l層的輸入,訓練第l層,由此分別得到各層的參數;具體計算如公式(5)、(6)所示;STEP22:自頂向下的監督學習,即通過帶標簽的車輛圖像數據去訓練,誤差自頂向下傳輸,對網絡進行微調:具體計算如公式(7)、(8)所示;基于STEP21得到的各層參數進一步微調整個多層模型的參數,這一步是一個有監督訓練過程;STEP21類似神經網絡的隨機初始化初值過程,由于深度學習的STEP21不是隨機初始化,而是通過學習輸入數據的結構得到的,因而這個初值更接近全局最優,從而能夠取得更好的效果;所以深度學習效果好壞很大程度上歸功于STEP21的特征學習過程;對于帶標簽的車輛圖像數據集,本發明采用網絡爬蟲技術收集各種車型的車輛圖像,這樣收集到的車輛圖像再經過人工確認作為帶標簽的車輛圖像數據;關于wake-sleep算法,見附圖8,其主要思想是在wake階段對給定生成權值,通過學習得到認知權值;在sleep階段對給定認知權值,通過學習得到生成權值;wake階段,第l層生成權值gl,用公式(9)進行更新,Δgl=εsl+1(sl-pl)(9)式中,Δgl為第l層生成權值gl的更新變化值,ε為學習速率,sl+1為第l+1層神經元活躍度,sl為第l層神經元活躍度,pl為第l層神經元的當前狀態驅動時的激活概率;sleep階段,第l層認知權值wl,用公式(10)進行更新,Δwl=εsl-1(sl-ql)(10)式中,Δwl為第l層認知權值wl的更新變化值,ε為學習速率,sl-1為第l-1層神經元活躍度,sl為第l層神經元活躍度,ql為第l層神經元被使用當前認知權值的前一層神經元的當前狀態驅動時的激活概率;(3)設計一種適用于上千種的類型子類的分類器,并具有擴展性;本發明采用Softmax分類器對車型進行分類;Softmax分類器在特征魯棒的情況下,具有較好的分類效果,同時這種分類器具有擴展性,在新的車型出現后無需對原有訓練好的網絡特征進行重新學習訓練,增加了系統的實用性;softmax原理是將提取到的輸入數據特征與特征庫進行比對,計算出每一個分類結果的概率,然后取概率最高的一個結果進行輸出;將CNN中的學習結果作為softmax分類器的輸入數據;Softmax回歸是面向多類分類問題的Logistic回歸,是Logistic回歸的一般形式,適用于類別之間互斥的情況。假設對于訓練集{(x(1),y(1),…,x(m),y(m))},有y(1)∈{1,2,…,k},對于給定的樣本輸入x,輸出一個k維的向量來表示每一種分類結果出現的概率為p(y=i|x),假設函數h(x)如下:hθ(x(i))=p(y(i)=1|x(i),θ)p(y(i)=1|x(i),θ)...p(y(i)=k|x(i),θ)=1Σj=1keθjTx(i)eθ1Tx(i)eθ2Tx(i)...eθkTx(i)---(11)]]>θ1,θ2,…θk是模型的參數,并且所有的概率和為1。加入規則項后的代價函數為:J(θ)=-1m[Σi=1mΣj=1k1{y(i)=j}logeθjTx(i)Σl=1keθlTx(i)]+λ2Σl=1kΣj=0nθij2---(12)]]>代價函數對第j個類別的第l個參數的偏導數為:▿θjJ(θ)=-1mΣi=1m[x(i)(1{y(i)=j}-p(y(i)=j|x(i);θ))}]+λθj---(13)]]>最后,通過最小化J(θ),實現softmax的分類回歸。(4)設計一個真正意義上的使用一個快速R-CNN網絡實現端到端的車輛檢測和識別的框架;本發明要著重解決以下三個問題:1)如何設計區域建議網絡;2)如何訓練區域建議網絡;3)如何讓區域建議網絡和快速R-CNN網絡共享特征提取網絡;區域建議網絡內容主要包括:區域建議網絡結構、特征提取、區域建議網絡的設計和訓練思路、候選區域、窗口分類和位置精修;區域建議網絡結構、特征提取、區域建議網絡的設計:區域建議網絡結構、特征提取、區域建議網絡的設計如附圖11所示,為了能在多個GPU上進行計算,在層內計算中劃分為若干組,每組中的計算由其對應GPU完成,這樣能提升計算速度;圖12所示是一種VGG網絡,即visualgeometrygroup,8個卷基層,3個全連接層,共計11層;8個卷基層中有5個組的卷積層、2個分類層提取圖像特征、1個分類層分類特征;3個全連接層分別連接分類層6、分類層7和分類層8;圖11中,歸一化的224×224圖像直接送入網絡,前五階段是基礎的卷積+ReLU+池化的形式,在第五階段結尾處再輸入p個候選區域,候選區域帶有1個圖像序號和4個幾何位置信息;在第五階段結尾處的RoI-池化層將每個候選區域均勻分成M×N塊,對每塊進行最大池化操作;將特征圖上大小不一的候選區域轉變為大小統一的數據,送入下一層訓練和識別;上述前五階段技術都是卷積神經網絡技術中被證明成熟的技術,關鍵是如何使得這些候選區域可以復用這些圖片前五個階段的網絡特征;區域建議網絡和快速R-CNN網絡共享特征提取網絡:附圖6描述了區域建議網絡和快速R-CNN如何共享的卷積層輸出,圖11中前五階段屬于一個原始特征提取網絡,之后分別給區域建議網絡生成區域建議框和給快速R-CNN檢測區域建議框內的圖像特征,然后輸出給兩個同級的全連接的層,即圖11中的分類層6+ReLU6和分類層7+ReLU7,得到p個含有4096向量的特征圖,接著分別送給分類層和窗口回歸層進行處理;生成區域建議框:為了生成區域建議框,本發明在最后一個共享的卷積層輸出的卷積特征映射上滑動小網絡,這個網絡全連接到輸入卷積特征映射的n×n的空間窗口上,如附圖5所示;每個滑動窗口映射到一個低維向量上,附圖5中的低維向量為256-d,每個特征映射的一個滑動窗口對應一個數值;這個向量輸出給兩個同級的全連接的層;—個窗口回歸層和一個分類層;窗口回歸層輸出每一個位置上,9種推薦區域對應窗口需要具有平移縮放不變性,回歸層從256維特征中輸出4個平移縮放參數;分類層從256維特征中輸出屬于前景和背景的概率;比如,在每一個滑動窗口的位置,同時預測k個區域建議,因此窗口回歸層有4k個輸出,即k個建議框的坐標編碼;分類層輸出2k個建議框得分,即對每個建議框是車輛目標/非車輛目標的估計概率;候選區域:k個建議框被相應的k個稱為候選區域的框參數化,即每個候選區域以當前滑動窗口中心為中心,并對應一種尺度和長寬比,本發明使用3種尺度和3種長寬比,如附圖3所示;這樣在每一個滑動位置就有k=9種候選區域;對于大小為W×H的卷積特征映射,總共有W×H×k個候選區域;在整個快速R-CNN算法中,共有三種圖像尺度:1)原圖尺度:原始輸入圖像的大小,不受任何限制,不影響性能;2)歸一化尺度:輸入特征提取網絡的大小,在測試時設置,候選區域在這個尺度上設定;這個參數和候選區域的相對大小決定了想要檢測的目標范圍;3)網絡輸入尺度:輸入特征檢測網絡的大小,在訓練時設置,為224×224。綜上所述,區域建議網絡是將一個圖像作為輸入,輸出矩形目標建議框的集合,每個框有一個車輛對象的得分,如附圖7所示;訓練區域建議網絡內容主要包括:訓練樣本、代價函數和超參數;區域建議網絡的訓練:區域建議網絡的訓練,本發明給每個候選區域分配一個二進制的標簽,即是否是車輛對象;這里分配正標簽給兩類候選區域:(i)與某個GT,groundtruth的包圍區域有最高的交集并集之比,IoU,Intersection-over-Union,重疊的候選區域;(ii)與任意GT包圍區域大于0.7的IoU交疊的候選區域;同時分配負標簽給與所有GT包圍區域的IoU比率都低于0.3的候選區域;刪去非正非負的候選區域;訓練樣本算法:STEP31:順序讀取訓練集中的每張圖;STEP32:對每個標定的真值候選區域,與其重疊比例最大的候選區域記為前景樣本;STEP33::對STEP32剩余的候選區域,如果其與某個標定重疊,IoU比例大于0.7,記為前景樣本;如果其與任意一個標定的重疊比例都小于0.3,記為背景樣本;STEP34:對STEP32和STEP33剩余的候選區域棄去不用;STEP35:對跨越圖像邊界的候選區域棄去不用。代價函數:根據這些定義,這里遵循的多任務代價,采用最小化目標函數;對一個圖像的代價函數用公式(14)表示,L({pi},{ti})=1NclsΣiLcls(pi,pi*)+λ1NregΣipi*Lreg(ti,ti*)---(14)]]>式中,i是一個批處理中候選區域的索引,Ncls為分類層的歸一化系數,Nreg為回歸層的歸一化系數,λ為平衡權重,pi為車輛目標的預測概率,為GT標簽,如果候選區域為正如果候選區域為負ti為一個向量,表示預測的包圍框的4個參數化坐標,為與正候選區域對應的GT包圍框的坐標向量,Lcls為分類的對數代價,Lreg為回歸對數代價,L({pi},{ti})為總的對數代價;分類的對數代價Lcls由公式(15)計算,Lcls(pi,pi*)=-log[pi*pi+(1-pi*)(1-pi)]---(15)]]>窗口回歸對數代價Lreg由公式(16)計算,Lreg(ti,ti*)=R(ti-ti*)---(16)]]>式中,R為定義的魯棒的代價函數,屬于SmoothL1誤差,對離群值不敏感,用公式(17)計算,公式(14)中的這一項意味著只有正候選區域,即時才有回歸代價,其他情況由于沒有回歸代價;分類層和窗口回歸層的輸出分別由{pi}和{ti}組成,這兩項分別由Ncls和Nreg以及一個平衡權重λ歸一化,這里選擇λ=10,Ncls=256,Nreg=2400,通過這樣的選擇分類層和窗口回歸層項差不多是等權重的;關于位置精修,這里采用4個值,中心坐標、寬度和高度,計算方法如下,tx=(x-xa)/wa,ty=(y-ya)/ha,tw=log(w/wa),th=log(h/ha),t*x=(x*-xa)/wa,t*y=(y*-ya)/ha,t*w=log(w*/wa),t*h=log(h*/ha)---(18)]]>式中,x、y、w、h分別表示包圍框中心坐標、寬度和高度,xa、ya、wa、ha分別表示候選區域中心坐標、寬度和高度,x*、y*、w*、h*分別表示預測的包圍框中心坐標、寬度和高度;用公式(18)的計算結果進行位置精修;實際上,并沒有顯式地提取任何候選窗口,完全使用區域建議網絡自身完成判斷和位置精修;區域建議網絡的優化:區域建議網絡能自然地實現為全卷積網絡,通過反向傳播和隨機梯度下降端到端訓練;這里采用圖像中心的采樣策略訓練這個網絡,每個批處理由包含了許多正負樣本的單個圖像組成;隨機地在一個圖像中采樣256個候選區域,用公式(14)計算批處理中的代價函數,其中采樣的正負候選區域的比例是1:1;如果一個圖像中的正樣本數小于128,我們就用負樣本填補這個批處理中的其他剩余候選區域;這里將批處理的大小設置為256;通過從零均值標準差為0.01的高斯分布中獲取的權重來隨機初始化所有新層,所謂新層指的是在區域建議網絡后面的層,如附圖11中的分類層6+ReLU6和分類層7+ReLU7;所有其他層,即共享的卷積層,如附圖11中的前五層,通過對車輛車型的分類樣本預訓練的模型來初始化的;本發明在車輛車型數據集上對于60k個批處理用的學習率為0.001,對于下一20k個批處理用的學習率是0.0001;動量是0.9,權重衰減為0.0005;車輛車型預訓練的模型初始化:主要分為數據準備、計算圖像均值、網絡的定義、訓練和恢復數據等5個步驟;1)數據準備;在data中新建文件夾myself,我們通過爬蟲軟件收集了各類車型的圖像數據,由于帶了關鍵字進行搜索得到的基本上是帶有標簽的車輛圖像數據,我們將其作為訓練數據;另一類數據是我們通過卡口攝像機獲取的車輛圖像數據;訓練和測試的輸入是用train.txt和val.txt描述的,列出所有文件和他們的標簽;分類的名字是ASCII碼的順序,即0-999,對應的分類名和數字的映射在synset_words.txt中;val.txt不能標簽,全部設置成0;然后將圖片的大小統一成256×256;然后在caffe-master/examples中新建myself文件夾,然后將caffe-maester/examples/imagenet的create_imagenet.sh復制到該文件夾下,將其名改為create_animal.sh,修改訓練和測試路徑的設置,運行該sh;最后得到myself_train_lmdb和myself_val_lmdb;2)計算圖像均值;模型需要我們從每張圖片減去均值,所以我們必須獲得訓練的均值,用tools/compute_image_mean.cpp實現,同樣復制caffe-maester/examples/imagenet的./make_imagenet_mean到examples/myself中,將其改名為make_car_mean.sh,加以修改路徑;3)網絡的定義;把caffe-master/models/bvlc_reference_caffenet中所有文件復制到caffe-master/examples/myself文件夾中,修改train_val.prototxt,注意修改數據層的路徑;在訓練中,我們用一個softmax—loss層計算損失函數和初始化反向傳播,而在驗證,我們使用精度層檢測我們的精度;還有一個運行的協議solver.prototxt,復制過來,將第一行路徑改為我們的路徑net:“examples/myself/train_val.prototxt”,test_iter:1000是指測試的批次;test_interval:1000是指每1000次迭代測試一次;base_lr:0.01是基礎學習率;lr_policy:“step”學習率變化;gamma:0.1學習率變化的比率;stepsize:100000每100000次迭代減少學習率;display:20每20層顯示一次;max_iter:450000最大迭代次數;momentum:0.9學習的參數;weight_decay:0.0005學習的參數;snapshot:10000每迭代10000次顯示狀態;solver_mode:GPU末尾加一行,代表用GPU運算;4)訓練;把caffe-master/examples/imagenet中的train_caffenet.sh復制過來并修改名為train_myself.sh運行,修改里面的路徑;5)恢復數據;把caffe-master/examples/imagenet中的resume_training.sh復制過來并運行;經過上述處理完成了車輛車型預訓練的模型初始化工作;進一步,本發明提出一種4步訓練算法,通過交替優化來學習共享的特征;STEP41:用區域建議網絡的優化訓練區域建議網絡,用上述數據準備、計算圖像均值、網絡的定義、訓練和恢復數據等5個步驟完成模型初始化,并端到端微調用于區域建議任務;STEP42:用STEP1的區域建議網絡生成的建議框,由快速R-CNN訓練一個單獨的檢測網絡,這個檢測網絡同樣是由車輛車型預訓練的模型初始化的,這時候兩個網絡還沒有共享卷積層;STEP43:用檢測網絡初始化區域建議網絡訓練,固定共享的卷積層,并且只微調區域建議網絡獨有的層,這時兩個網絡共享卷積層了;STEP44:保持共享的卷積層固定,微調快速R-CNN的分類層;這樣,兩個網絡共享相同的卷積層,最終構成一個統一的網絡;車輛車型的視覺識別:下面我們給出一個車輛車型視覺識別主要流程,整個處理流程如附圖13所示;STEP51:讀取待識別圖像;STEP52:對待識別圖像進行歸一化處理,得到RGB三個不同顏色224×224歸一化的圖像數據;STEP53:將RGB三個不同顏色224×224歸一化的圖像數據輸入到三個CNN通道,經5層卷積處理得到車輛車型特征圖像數據;STEP54:對車輛車型特征圖像數據通過區域建議網絡生成的建議框,選取一個最高得分的建議框,即得到一個感興趣區域,RoI;將這個RoI通過最大池化5層進行處理得到一個6×6×256RoI的卷積圖;STEP55:將RoI的卷積圖輸出給兩個同級的全連接的層處理后得到4096維的特征向量,作為softmax分類器的輸入數據;STEP56:對4096維的特征向量用softmax的分類回歸分析得到車輛車型識別結果,本發明中將車輛車型分類成1000種類,從而識別出被測圖像中的車輛屬于哪一款車型。實施例2本發明的視覺識別技術具有普適性,適用于其他對象的子類識別,只要參與訓練的數據運行在本發明開發的系統中進行學習,獲得該類對象的特征后就能實現該類對象的子類識別任務。實施例3本發明的視覺識別技術具有擴展性,在新的子類出現后無需對原有訓練好的網絡特征進行重新學習訓練,只要對新的子類進行訓練學習,并且在系統中的softmax分類器擴展分類的數據即可。以上所述僅為本發明的較佳實施舉例,并不用于限制本發明,凡在本發明精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。當前第1頁1 2 3