周華英
摘要 車輛識別是智能交通系統(tǒng)中的核心技術(shù),基于深度學(xué)習(xí)的車輛識別作為機器學(xué)習(xí)領(lǐng)域一個新的研究方向,其目標(biāo)在于通過模擬人類大腦的分層表達(dá)結(jié)構(gòu),建立用于數(shù)據(jù)分析學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò),從原始數(shù)據(jù)中提取出由淺層到深層逐層抽象的特征表達(dá),來提升分類精度或預(yù)測準(zhǔn)確性,通過收集實時交通流數(shù)據(jù)判斷道路的交通運行狀態(tài)并智能識別交通事故的發(fā)生,為道路的運營管理提供寶貴的輔助決策信息。
關(guān)鍵詞 深度學(xué)習(xí) ?智能交通 車輛識別
人工智能(Artificial Intelligence),英文縮寫為AI。它是研究、開發(fā)用于模擬、延伸和擴(kuò)展人的智能的理論、方法、技術(shù)及應(yīng)用系統(tǒng)的一門新的技術(shù)科學(xué)。人工智能研究的一個主要目標(biāo)是使機器能夠勝任一些通常需要人類智能才能完成的復(fù)雜工作。人工智能通過數(shù)據(jù)分析與學(xué)習(xí),找到相對固定模板,然后通過套用模板進(jìn)行“創(chuàng)作”和演出。本文中深度學(xué)習(xí)是機器學(xué)習(xí)的一個子領(lǐng)域,是人工神經(jīng)網(wǎng)絡(luò)的另一個名字。
深度學(xué)習(xí)是指多層的人工神經(jīng)網(wǎng)絡(luò)和訓(xùn)練它的方法。一層神經(jīng)網(wǎng)絡(luò)會把大量矩陣數(shù)字作為輸入,通過非線性激活方法取權(quán)重,再產(chǎn)生另一個數(shù)據(jù)集合作為輸出。這就像生物神經(jīng)大腦的工作機理一樣,通過合適的矩陣數(shù)量,多層組織鏈接一起,形成神經(jīng)網(wǎng)絡(luò)“大腦”進(jìn)行精準(zhǔn)復(fù)雜的處理,就像人們識別物體標(biāo)注圖片一樣。車輛識別是智能交通系統(tǒng)中的核心技術(shù),其任務(wù)是確定目標(biāo)車輛屬于哪一種類別.根據(jù)區(qū)分車輛屬性的不同,車輛識別又可以細(xì)分為車色識別、車型識別、車標(biāo)識別、車牌識別等。車輛識別有重要的現(xiàn)實意義,可以應(yīng)用到不同場景。
本系統(tǒng)通過深度學(xué)習(xí)技術(shù)實現(xiàn)圖片識別,可以采集車牌、車型、位置、轄區(qū)等關(guān)鍵信息,并對信息進(jìn)行傳輸、存儲和分析,實現(xiàn)常規(guī)管理工作。通過深度神經(jīng)網(wǎng)絡(luò)定義檢測、識別、分類等模型,基于交通行業(yè)內(nèi)的圖像大數(shù)據(jù)進(jìn)行迭代訓(xùn)練,生成業(yè)內(nèi)專用AI模型,實現(xiàn)車牌、車型等多項屬性的自動識別。
1深度學(xué)習(xí)框架Keras
本文實驗環(huán)境使用深度學(xué)習(xí)框架Keras 2.2.5,由純python編寫的基于theano/tensorflow的深度學(xué)習(xí)框架。Keras自動處理核心任務(wù)并生成輸出,支持卷積神經(jīng)網(wǎng)絡(luò)CNN和遞歸神經(jīng)網(wǎng)絡(luò)RNN,可以在CPU和GPU上無縫運行。本文實驗使用Python 3.6版本編寫,采用GPU訓(xùn)練方式,在CUDA-capable GPU上編譯運行,可以提高訓(xùn)練速度,需要安裝CUDA和GPU加速庫,使用CUDA 10.0版本,cuDNN 7.6.5版本。Keras使用的依賴包主要有:numpy、scipy、pyyaml、HDF5, h5py、TensorFlow_gpu-2.0.0作為后端。
使用Keras搭建神經(jīng)網(wǎng)絡(luò),主要有以下幾步:選擇模型、構(gòu)建網(wǎng)絡(luò)層,編譯、訓(xùn)練、預(yù)測。Keras提供高級神經(jīng)網(wǎng)絡(luò) API,支持快速的實驗。能夠以最小的時間把想法轉(zhuǎn)換為實驗結(jié)果,是做好研究的關(guān)鍵。
2車輛數(shù)據(jù)標(biāo)注及模型訓(xùn)練
數(shù)據(jù)標(biāo)注就是幫助機器去學(xué)習(xí)去認(rèn)知數(shù)據(jù)中的特征。確立一個算法模型需要使用大量標(biāo)注好的數(shù)據(jù)去訓(xùn)練機器讓機器去學(xué)習(xí)其中的特征以達(dá)到“智能”的目的。比如本文要讓機器學(xué)習(xí)識別車輛,我們直接給機器一個車輛的圖片它是無法識別的,必須對車輛圖片進(jìn)行標(biāo)注打上標(biāo)簽注明“這是一個車輛,什么車型,什么品牌,什么顏色,什么車牌”等特征信息,當(dāng)機器獲得大量打上標(biāo)簽的車輛圖片進(jìn)行學(xué)習(xí)之后,再給機器一個車輛的圖片,機器就能知道這是一個車輛了,什么型號,什么顏色,什么車牌等。
本文參考CIFAR-10公開數(shù)據(jù)集進(jìn)行實驗,通過數(shù)據(jù)標(biāo)記助手軟件對數(shù)據(jù)集車輛圖片進(jìn)行標(biāo)記,形成實驗所需車輛數(shù)據(jù)集,驗證不同卷積神經(jīng)網(wǎng)絡(luò)的分類能力,確定最優(yōu)車型分類網(wǎng)絡(luò),在公開數(shù)據(jù)集CompCars進(jìn)行車輛識別實驗。
3基于深度學(xué)習(xí)識別模型
本文實驗采用inception-v4深度學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu),相比AlexNet、VGG等網(wǎng)絡(luò)結(jié)構(gòu)都是通過增大網(wǎng)絡(luò)的深度(層數(shù))來獲得更好的訓(xùn)練效果,同時又會帶來很多負(fù)作用,比如overfit、梯度消失、梯度爆炸等。inception使用1x1的卷積來進(jìn)行升降維和在多個尺寸上同時進(jìn)行卷積再聚合的方法來提升訓(xùn)練結(jié)果,能更高效的利用計算資源,在相同的計算量下能提取到更多的特征,從而提升訓(xùn)練結(jié)果。
4模型優(yōu)化及實驗結(jié)果
本實驗數(shù)據(jù)集包含20000張車輛圖像,大小為210MB。首先創(chuàng)建數(shù)據(jù)集,使用12000張車輛圖片進(jìn)行模型訓(xùn)練,4000張測試圖像和4000張驗證圖像。
本次實驗?zāi)P陀?xùn)練數(shù)據(jù)集中包含常見的10種車輛品牌,包括:奧迪_A4、福特_??怂埂e克_君越、大眾_寶來、大眾_朗逸、大眾_桑塔納、豐田_凱美瑞、豐田_卡羅拉、日產(chǎn)_軒逸、日產(chǎn)_天籟。6種車身顏色,包括:白色、黑色、灰色、黃色、紅色、綠色,共12000張車輛圖片,
本實驗通過將訓(xùn)練后的模型引入車輛識別驗證程序,驗證4000張圖像的目標(biāo)檢測,實驗中為減小深層卷積神經(jīng)網(wǎng)絡(luò)的計算開銷,對網(wǎng)絡(luò)模型參數(shù)進(jìn)行優(yōu)化,基于實驗確定了模型最優(yōu)參數(shù),從而以較少的網(wǎng)絡(luò)層數(shù)獲得較高的車輛識別精度,優(yōu)化后的卷積神經(jīng)網(wǎng)絡(luò)的車輛識別速度提升52.4%,識別精度提升33.1%。
結(jié)束語
隨著技術(shù)的發(fā)展,越來越多的深度學(xué)習(xí)開源框架展現(xiàn)在我們面前,使用這些框架訓(xùn)練得到的模型可以直接高效地部署到交通和安防等應(yīng)用領(lǐng)域中,促進(jìn)物聯(lián)網(wǎng)技術(shù)的發(fā)展,不斷提高國家信息化水平。
參考文獻(xiàn)
[1]葉亞光.基于卷積神經(jīng)網(wǎng)絡(luò)的車輛識別設(shè)計與實現(xiàn)[J].電腦知識與技術(shù),2019,15(169-170).
[2]蔡英鳳,王海,陳龍,等.采用視覺顯著性和深度卷積網(wǎng)絡(luò)的魯棒視覺車輛識別算法[J].清華大學(xué)學(xué)報:自然科學(xué)版,2015,36(3):333-336.
[3]李琳輝,倫智梅,連靜,等.基于卷積神經(jīng)網(wǎng)絡(luò)的道路車輛檢測方法[J].吉林大學(xué)學(xué)報:工學(xué)版,2017,47(2):385-391.
【課題項目】本文系2018年度煙臺汽車工程職業(yè)學(xué)院科技類課題立項項目“基于AI深度學(xué)習(xí)的車輛識別智能管理系統(tǒng)”的研究成果(課題編號:2018YTQK06)