賈 瑞
(蘇州健雄職業(yè)技術(shù)學(xué)院電子信息學(xué)院, 江蘇 太倉(cāng) 215400)
隨著經(jīng)濟(jì)的高速發(fā)展,汽車產(chǎn)業(yè)也蓬勃發(fā)展起來(lái)。雖然汽車讓我們的工作效率更加快捷,生活更加便利,但同時(shí)也有不利的一面隨之而來(lái),頻發(fā)的交通事故、逐步變得惡劣的生態(tài)環(huán)境以及能源等方面的問題也不斷地給我們敲著警鐘。對(duì)道路交通進(jìn)行的傳統(tǒng)的管理方式已經(jīng)無(wú)法跟上時(shí)代的步伐,構(gòu)建新型管理系統(tǒng)來(lái)處理復(fù)雜問題已成為必然趨勢(shì)。在這種背景下,近年來(lái)發(fā)展迅速的人工智能及模式識(shí)別技術(shù)與互聯(lián)網(wǎng)技術(shù)逐步結(jié)合起來(lái),并開始應(yīng)用于交通管理行業(yè),車型識(shí)別系統(tǒng)便應(yīng)運(yùn)而生[1]。
分類識(shí)別的速度和準(zhǔn)確率是車型識(shí)別最重要的兩個(gè)指標(biāo),而影響這兩個(gè)指標(biāo)最重要的因素就是對(duì)車輛特征的提取,提取的特征要能夠具備應(yīng)對(duì)角度偏轉(zhuǎn)、光照強(qiáng)度變化及圖像大小尺度變化的強(qiáng)魯棒性。雖然目前在圖像識(shí)別領(lǐng)域常用的特征提取方法很多,但是特征提取主要還是依靠手工提取,而且在對(duì)提取的特征進(jìn)行預(yù)處理的過程,較為麻煩且費(fèi)時(shí)。
目前對(duì)車型的分類識(shí)別主要是利用圖像處理來(lái)進(jìn)行,首先從交通道路上架設(shè)的攝像頭和圖像采集卡收集到視頻流中的圖像,然后通過車輛圖像的分割、車輛特征的提取和車型識(shí)別的分類來(lái)完成整個(gè)識(shí)別過程[2]。
因?yàn)檐囕v前臉特征包含車牌、車標(biāo)、車燈等具有可判別性的大量信息,所以國(guó)內(nèi)外學(xué)者常利用車輛前臉特征來(lái)實(shí)現(xiàn)車型分類。Sarfraz提出了利用車身前方的形狀和直方圖的局部特征,然后利用貝葉斯先驗(yàn)?zāi)P瓦M(jìn)行分類,但是識(shí)別正確率有待提高。Krishnan Ramnath等提取了車輛的3D空間曲線特征,從車輛的外形整體進(jìn)行車型分類,該方法能夠?qū)θ我饨嵌扰臄z的車輛圖片進(jìn)行分類,但是計(jì)算量較大。后來(lái)張紅兵等人通過提取車輛前臉的HOG特征,用投影細(xì)定位和形態(tài)學(xué)粗定位的方法提取車輛的前臉區(qū)域,用線性判別算法提取車輛前臉的梯度方向直方圖特征,其方法降低了維度,提高了運(yùn)算速度。吳彤等人通過提取車輛側(cè)向特征,利用背景差分法將車型分為大、中、小三類,通過這三類車的正視圖和側(cè)視圖的直方圖交集以及與現(xiàn)有模板比較進(jìn)行分類,但是如果圖像發(fā)生大尺度變換、旋轉(zhuǎn)以及車輛圖片不是完整圖片,此方法就會(huì)失效,不能滿足對(duì)車型精細(xì)分類的要求[3]。車型識(shí)別主要有以下難題仍待解決:
1)車輛圖片背景復(fù)雜多變。自然場(chǎng)景下采集到的圖片可能含有行人、動(dòng)物、山川等。另外,車輛之間也可能相互遮擋。
2)車輛外觀也會(huì)有多種變化。比如采取不同的拍攝點(diǎn)和拍攝角度,即使同一輛車型外觀也會(huì)有較為明顯的不同。
3)不同光照條件對(duì)識(shí)別效果影響很大。比如光線好的晴天和光線差的陰天。另外即使在光線強(qiáng)的白天不同時(shí)段也會(huì)對(duì)所拍圖片質(zhì)量造成較大影響[3]。
為了能讓計(jì)算機(jī)自動(dòng)選擇合適特征,人工神經(jīng)網(wǎng)絡(luò)應(yīng)運(yùn)而生。1962年Hubel和Wiesel在對(duì)貓視覺皮層細(xì)胞的研究基礎(chǔ)上,提出了感受野的概念以及1984年日本學(xué)者FuKushima在感受野概念基礎(chǔ)上提出了神經(jīng)認(rèn)知機(jī),這可以看成是神經(jīng)網(wǎng)絡(luò)的首次實(shí)現(xiàn)[3]。
直到2010年,Ciresan et al使用非線性深度后向傳播網(wǎng)絡(luò),在MNIST手寫字上進(jìn)行識(shí)別,實(shí)驗(yàn)結(jié)果超越了所有不適用無(wú)監(jiān)督學(xué)習(xí)的前人方法,人們才逐漸將深度學(xué)習(xí)用于目標(biāo)檢測(cè)和識(shí)別方向。最近5年,大規(guī)模訓(xùn)練數(shù)據(jù)(ImageNet)的出現(xiàn)和高性能計(jì)算硬件(GPU)的發(fā)展,為這個(gè)領(lǐng)域重新提供了燃料和助推器[4],使深度學(xué)習(xí)在圖像識(shí)別、人臉識(shí)別等多個(gè)領(lǐng)域的識(shí)別結(jié)果都接近或超過了人類的水平。2017年五月份人工智能AlphaGO與中國(guó)少年棋手柯潔的對(duì)戰(zhàn),最終以2∶0戰(zhàn)勝了柯潔,這代表以深度學(xué)習(xí)為基礎(chǔ)的人工智能又邁上了一個(gè)新的高度。卷積神經(jīng)網(wǎng)絡(luò)因其模擬生物視覺機(jī)制,對(duì)平移、縮放等變換有較好魯棒性,可以很好地解決車輛在自然場(chǎng)景下位置不同、角度不同等所帶來(lái)的分類難題[3]。本文的目的就是使用深度學(xué)習(xí)的方法進(jìn)行圖像的特征提取,并在這些特征上進(jìn)行車輛型號(hào)的識(shí)別工作。
自然場(chǎng)景圖像下的車輛定位以及車型識(shí)別是車型識(shí)別系統(tǒng)的重要組成部分。目前識(shí)別精度較高的檢測(cè)方法有超聲波檢測(cè)、激光紅外線檢測(cè)等,但是安裝過程費(fèi)時(shí),設(shè)備容易損壞而且維護(hù)成本高。而基于圖像的車型識(shí)別技術(shù)是通過分析處理從攝像頭和圖像采集卡獲取的車輛視頻圖像,完成車輛的分類識(shí)別,滿足實(shí)時(shí)性需求,維護(hù)簡(jiǎn)單,不會(huì)給交通帶來(lái)額外負(fù)擔(dān)。同時(shí),交通圖片來(lái)自于交通道路的實(shí)施拍攝情況,這樣可以根據(jù)實(shí)時(shí)信息對(duì)交通事故進(jìn)行預(yù)測(cè)及時(shí)做出對(duì)策,還可以將收集到的數(shù)據(jù)傳回給數(shù)據(jù)中心,用于存儲(chǔ),大數(shù)據(jù)等方面。該技術(shù)的優(yōu)勢(shì)顯而易見,但難點(diǎn)在于實(shí)時(shí)處理和準(zhǔn)確率的高要求[5]。所以本文的研究重點(diǎn)就是設(shè)計(jì)出一套在速度和準(zhǔn)確度兩個(gè)方面都有較好識(shí)別效果的算法。
車型識(shí)別系統(tǒng)可以分為品牌標(biāo)志、車輛大小或車輛類別來(lái)進(jìn)行分類。而本文的分類標(biāo)準(zhǔn)是按照汽車品牌標(biāo)志進(jìn)行的。
車型識(shí)別整體框架如圖1所示。
車型識(shí)別整個(gè)過程如下:首先利用訓(xùn)練樣本對(duì)微調(diào)后的AlexNet模型進(jìn)行訓(xùn)練,得到新的網(wǎng)絡(luò)層級(jí),然后利用測(cè)試圖片進(jìn)行車型識(shí)別。
本文從斯坦福大學(xué)公開數(shù)據(jù)庫(kù)下載16 185張共196種類型的汽車圖片,數(shù)據(jù)集被分為8 144張訓(xùn)練圖片和8 041張測(cè)試圖片,訓(xùn)練和測(cè)試幾乎是一比一分配。該數(shù)據(jù)集是從各個(gè)角度拍攝的汽車圖片,圖片大小不統(tǒng)一,背景復(fù)雜,目標(biāo)車輛在整個(gè)圖片中所占比例相差較大。為了滿足實(shí)驗(yàn)要求,我們將少數(shù)黑白圖片進(jìn)行替換,對(duì)每張訓(xùn)練圖片都規(guī)整為227 mm×227 mm大小的圖片,并對(duì)每一張訓(xùn)練圖片進(jìn)行車型標(biāo)注,如表1所示。
圖1 車型識(shí)別整體框架
表1 數(shù)據(jù)庫(kù)標(biāo)注案例
如表1所示,對(duì)于每輛訓(xùn)練圖片的標(biāo)注信息包括車輛類別(class)和車輛位置信息,車輛位置信息對(duì)應(yīng)著圖片中車輛的左上右下兩點(diǎn),(36,116,868,587) 為 00002.jpg中車輛圖片的位置向量,其它類別信息同理,這里不再一一闡述。
實(shí)驗(yàn)所用計(jì)算機(jī)配置為:處理器為Intel i5-4590;顯卡為GTX 980;實(shí)驗(yàn)內(nèi)存為8.00GB;RAM系統(tǒng)類型為64位操作系統(tǒng);實(shí)驗(yàn)系統(tǒng)為Windows7旗艦版;實(shí)驗(yàn)軟件為Matlab R2016b。
本文最終的設(shè)計(jì)成果為一套人機(jī)交互界面,主要包含四部分:模型和閾值設(shè)置;識(shí)別對(duì)象讀取;手動(dòng)選取區(qū)域;自動(dòng)選取區(qū)域,如下頁(yè)圖2所示。
AlexNet是2012年ImageNet大賽的冠軍,它一共有8層,包括5個(gè)卷積層,2層全連接和一層分類層,如果使用其對(duì)一張圖片進(jìn)行前向傳播,那么最后輸出的這張圖片屬于1 000個(gè)物體中的哪一個(gè)的概率。
首先在Matlab中對(duì)AlexNet進(jìn)行定義,利用trainingOptions函數(shù)建立網(wǎng)絡(luò)訓(xùn)練算法,網(wǎng)絡(luò)訓(xùn)練算法采用具有動(dòng)力的隨機(jī)梯度下降法(Stochastic gradient descent with momentum)進(jìn)行訓(xùn)練,初始學(xué)習(xí)率為0.001,動(dòng)力為0.9,每次訓(xùn)練迭代的最小批次為100,訓(xùn)練最大次數(shù)初始學(xué)習(xí)率為0.001,動(dòng)力為0.9,每次訓(xùn)練迭代的最小批次為100,訓(xùn)練最大次數(shù)為500次。學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
接著我們對(duì)其進(jìn)行微調(diào),其實(shí)前面的卷積層都不用改,要改的就是后面一個(gè)全連接層,由于車型一共是196種,所以全連接的輸出也要改成196,后面再加上輸出層(Softmax)和分類層,訓(xùn)練方法不變。微調(diào)后新的網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。
圖2 人機(jī)交互界面總體設(shè)計(jì)
圖3 AlexNet結(jié)構(gòu)圖
圖4 微調(diào)后的網(wǎng)絡(luò)結(jié)構(gòu)AlexLayer_New
接著要開始加載訓(xùn)練數(shù)據(jù)并進(jìn)行訓(xùn)練。首先要做一個(gè)圖像數(shù)據(jù)容器,在matlab中寫入規(guī)整后的圖片和標(biāo)簽,輸出應(yīng)該為1到196。接著就可以用trainNetwork功能對(duì)微調(diào)后的AlexNet結(jié)構(gòu)進(jìn)行訓(xùn)練,訓(xùn)練速度相當(dāng)?shù)穆?,?jīng)過反復(fù)迭代比較后發(fā)現(xiàn),當(dāng)初始學(xué)習(xí)率為0.000 5,動(dòng)力為0.9,每次訓(xùn)練迭代的最小批次為100,訓(xùn)練最大次數(shù)為10次時(shí),準(zhǔn)確率取得了令人滿意的成果(如圖5所示)。
圖5 AlexNet訓(xùn)練效果圖
將完成的代碼進(jìn)行封裝,運(yùn)行test.m文件,對(duì)單張車輛圖片進(jìn)行測(cè)試。圖6是一些汽車圖片的測(cè)試結(jié)果。
圖6 汽車圖片檢測(cè)結(jié)果
目標(biāo)識(shí)別是計(jì)算機(jī)視覺的一個(gè)重要領(lǐng)域,由此延伸出的車輛檢測(cè)和車型識(shí)別在實(shí)際應(yīng)用中意義重大。本文以深度卷積神經(jīng)網(wǎng)絡(luò)為理論基礎(chǔ),研究了車輛定位和車型識(shí)別方法,構(gòu)建了相應(yīng)的識(shí)別框架,訓(xùn)練了一套分類算法進(jìn)行車輛具體品牌和型號(hào)的識(shí)別。本文對(duì)當(dāng)前目標(biāo)識(shí)別和分類的算法及局限性進(jìn)行了簡(jiǎn)要說明,進(jìn)而介紹了卷積神經(jīng)網(wǎng)絡(luò)的工作原理及優(yōu)點(diǎn):不需要人工提取特征,解決了模型實(shí)時(shí)更新等問題,同時(shí)本文提出了基于AlexNet模型的車型識(shí)別方法,在所下載圖片中采用ImageNet標(biāo)注形式,準(zhǔn)確率為97%以上,提出了基于Cifar10Net訓(xùn)練的RCNN用于車輛區(qū)域檢測(cè),并配合微調(diào)后的AlexNet進(jìn)行車型識(shí)別;設(shè)計(jì)出了一套人機(jī)交互界面,可以實(shí)現(xiàn)手動(dòng)選取區(qū)域,直接利用分類模型進(jìn)行識(shí)別操作;也可以利用訓(xùn)練好的RCNN先進(jìn)行車輛區(qū)域檢測(cè),再利用分類模型進(jìn)行識(shí)別操作。