周華英
(煙臺汽車工程職業(yè)學(xué)院,山東煙臺,265500)
早在20世紀(jì)90年代,基于視覺分析的車輛識別技術(shù)就已成為研究熱點(diǎn),諸多學(xué)者利用交通視頻及圖像數(shù)據(jù)通過視覺處理技術(shù)進(jìn)行分析和識別,并取得了一定范圍的實(shí)際應(yīng)用。2012年卷積神經(jīng)網(wǎng)絡(luò)(CNN)技術(shù)在大型視覺識別挑戰(zhàn)ImageNet比賽中以巨大優(yōu)勢取得冠軍,現(xiàn)已廣泛應(yīng)用于圖像分類、目標(biāo)檢測和自動駕駛等領(lǐng)域。目前針對車輛識別方法及應(yīng)用系統(tǒng)的綜述性研究還較少,因此本文重點(diǎn)研究基于深度學(xué)習(xí)方法進(jìn)行車輛識別。
利用深度學(xué)習(xí)方法進(jìn)行車輛識別目標(biāo)是基于模擬人腦結(jié)構(gòu)來設(shè)計神經(jīng)網(wǎng)絡(luò)模型,讀取采集的數(shù)據(jù)進(jìn)行模型訓(xùn)練,形成對圖像由淺入深的抽象化表征,最終得到較高精度和準(zhǔn)確性的車輛分析識別模型。當(dāng)前流行的模型包括卷積神經(jīng)網(wǎng)絡(luò)(CNN)、深度置信網(wǎng)絡(luò)(DBN)、循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)和生成對抗網(wǎng)絡(luò)(GAN)等,其中CNN已在車輛識別的研究中得到了廣泛應(yīng)用。本系統(tǒng)基于采集的交通視頻和圖像進(jìn)行智能分析,提取車牌、車型和顏色等信息,結(jié)合其他輔助系統(tǒng)獲得車輛檔案、注冊地等信息,形成結(jié)構(gòu)化的車輛信息,傳輸?shù)街悄芙煌ù髷?shù)據(jù)平臺進(jìn)行數(shù)據(jù)存儲和分析挖掘,支撐智能交通系統(tǒng)的管理應(yīng)用。
本系統(tǒng)基于深度神經(jīng)網(wǎng)絡(luò)模型構(gòu)建初步的車輛檢測和分類識別應(yīng)用,并在交通領(lǐng)域?qū)嶋H使用過程收集數(shù)據(jù)反饋情況,支持模型定期訓(xùn)練升級及網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化,生成適應(yīng)交通領(lǐng)域需求的AI模型,形成車輛智能識別應(yīng)用的可持續(xù)提升。
系統(tǒng)模塊包括車牌識別、車輛檢測、顏色識別和車型識別等,本節(jié)從系統(tǒng)設(shè)計的角度進(jìn)行闡述,分析其技術(shù)流程。
對采集的車輛視頻或圖像進(jìn)行車牌定位、牌照顏色和字符識別,通過模式識別技術(shù)獲得關(guān)鍵性信息,此外還包括車輛存在性識別模塊,共同構(gòu)成基礎(chǔ)服務(wù),對采集的圖像進(jìn)行處理,定位出車牌區(qū)域,分析識別牌照顏色和字符,最終按預(yù)設(shè)的格式進(jìn)行輸出,步驟如下:
1)區(qū)域定位,檢測車牌存在性,定位車牌區(qū)域;2)字符分割,對車牌區(qū)域進(jìn)行細(xì)化分析,分割出字符集合;3)模式識別,對車牌進(jìn)行字符識別,獲得號碼字符串,同時對車牌顏色進(jìn)行識別,判斷車牌類型。
識別過程中,牌照顏色和字符識別需結(jié)合實(shí)際應(yīng)用場景,將檢測定位和分類識別等方法進(jìn)行有效組合,建立校驗(yàn)機(jī)制來構(gòu)建穩(wěn)定的車牌識別服務(wù)。
1.1.1 區(qū)域定位
復(fù)雜多變的場景會面臨背景復(fù)雜、光照不均和圖像畸變等干擾,如何有效定位車牌區(qū)域就成為首要問題。一般情況下首先進(jìn)行粗范圍搜索,收集符合車牌區(qū)域特征的候選區(qū)域;然后對候選區(qū)域進(jìn)行分析判斷,按照車牌特點(diǎn)進(jìn)行評分;最后對符合評分閾值的區(qū)域進(jìn)行輸出,并進(jìn)行定位裁剪得到車牌的分割圖像。
1.1.2 字符分割
車牌區(qū)域定位后得到區(qū)域圖像,進(jìn)行字符分割得到該區(qū)域的字符圖像序列再進(jìn)行識別輸出。利用字符的豎直分布和字符間存在間隔的特點(diǎn),投影后即可利用投影曲線的峰谷特點(diǎn)完成字符分割。根據(jù)車牌字符的排列特點(diǎn),按照一定順序進(jìn)行字符圖像組合,得到符合車牌字符格式的分割結(jié)果。
1.1.3 模式識別
字符分割后得到字符序列圖像,利用識別方法進(jìn)行車牌字符識別。常用的字符識別方法包括基于模板匹配和人工神經(jīng)網(wǎng)絡(luò)的識別方法?;谀0迤ヅ涫菍⒆址麍D像進(jìn)行二值化并建立與模板庫相同的尺寸,通過匹配判斷相似度距離,最終選擇匹配度最高的字符進(jìn)行輸出;基于人工神經(jīng)網(wǎng)絡(luò)是通過提取字符圖像特征或?qū)D像統(tǒng)一尺寸后作為輸入,基于隱藏層搭建網(wǎng)絡(luò)并訓(xùn)練,借助特征提取能力來自動構(gòu)建識別服務(wù),最終輸出識別標(biāo)簽,得到車牌字符。
識別率與拍攝條件、圖像質(zhì)量等因素相關(guān),在實(shí)際應(yīng)用中難免會受到車牌污損、雨雪遮擋和光照不均等情況干擾。一般需綜合考慮采集條件及應(yīng)用場景,從拍攝位置、光照補(bǔ)充和圖像增強(qiáng)等角度綜合進(jìn)行優(yōu)化,進(jìn)而采集到更有利于識別的車輛圖像。
車輛檢測是判斷車輛存在性及具體位置的關(guān)鍵模塊,一般包括線圈觸發(fā)、紅外捕捉、雷達(dá)信號和視頻抓拍等方式。視頻抓拍檢測直接采用非接觸性的間距拍攝方式獲得圖像數(shù)據(jù),不需要路面安裝、附加設(shè)備、線圈和雷達(dá)安裝等環(huán)節(jié),更加適合實(shí)際中的車輛通行需求。
針對處理視頻圖像,需要處理較高分辨率、較大規(guī)模的圖像數(shù)據(jù),對檢測速度和運(yùn)行效率都具有較高要求。在保持圖像不丟幀的情況下,盡可能達(dá)到實(shí)時圖像的采集和處理。如果存在檢測速度和效率瓶頸,則無法檢測速度較快的車輛,帶來信息丟失和誤檢,影響識別效率。因此車輛檢測和車牌識別模塊在算法和性能上均要求較高,是整個識別模塊的關(guān)鍵。
提取車輛顏色對交通事件調(diào)查、目標(biāo)車輛篩選及管制等起到輔助作用。但在抓拍過程中,難免會遇到拍攝環(huán)境和光照等因素干擾,帶來車輛顏色失真,會影響到顏色屬性識別。因此圖像在生成或傳輸過程中會進(jìn)行數(shù)字化處理,進(jìn)行圖像增強(qiáng),消除噪聲干擾,綜合考慮不同噪聲帶來的影響,利用排序差值脈沖檢測方法進(jìn)行圖像濾波增強(qiáng),將目標(biāo)圖像在預(yù)設(shè)窗口內(nèi)的顏色分量值進(jìn)行排序并定位噪聲點(diǎn),利用改進(jìn)的自適應(yīng)矢量中值濾波來消除噪聲干擾,達(dá)到較好的噪聲消除效果。同時該處理過程采用濾波窗口的自適應(yīng)調(diào)整方式來生成符合圖像特點(diǎn)的濾波器,進(jìn)而有選擇地消除噪聲干擾,盡可能還原出顏色分布情況。
類型識別目標(biāo)是獲取車輛種類、品牌等信息,采用CNN設(shè)計識別模型,在分析Inception V3預(yù)訓(xùn)練模型的基礎(chǔ)上進(jìn)行遷移學(xué)習(xí),結(jié)合系統(tǒng)積累的車輛類別和樣本圖像進(jìn)行模型編輯,消除原模型的全連接層并引入?yún)?shù)優(yōu)化層,經(jīng)Dropout和全局平均池化層后接入到實(shí)際的車輛類別信息,經(jīng)樣本圖像數(shù)據(jù)集訓(xùn)練得到車型識別模型。經(jīng)評測該模型與基于VGG-16、Xception和Resnet50的模型相比均具有較好的性能,最終達(dá)到訓(xùn)練精度超過96.48%、測試精度超過83.86%,因此可選擇該模型提供類型識別服務(wù)。
本文實(shí)驗(yàn)環(huán)境選擇Keras2.X框架,基于Python編寫,以Theano/Tensorflow為基礎(chǔ)支撐,支持便捷的網(wǎng)絡(luò)設(shè)計及訓(xùn)練評測的API,是進(jìn)行深度學(xué)習(xí)實(shí)驗(yàn)開發(fā)的常用框架,對常用的數(shù)據(jù)處理和訓(xùn)練等核心任務(wù)進(jìn)行了封裝處理,使得用戶能重點(diǎn)關(guān)注網(wǎng)絡(luò)結(jié)構(gòu)和參數(shù)調(diào)試,無需關(guān)注內(nèi)部的實(shí)現(xiàn)細(xì)節(jié),提高了研究和實(shí)驗(yàn)效率。此外還支持通過配置參數(shù)使得程序能選擇在CPU和GPU上運(yùn)行,考慮到本實(shí)驗(yàn)數(shù)據(jù)及應(yīng)用情況,選擇基于GPU,通過CUDA庫和CUDNN加速器進(jìn)行訓(xùn)練。實(shí)驗(yàn)環(huán)境采用了CUDA 10.X版本,cuDNN 7.6.X版本,Keras2.X版本和TensorFlow_gpu-2.X版本,訓(xùn)練環(huán)境采用GPU,測試和應(yīng)用環(huán)境則兼容GPU和CPU的配置。
本實(shí)驗(yàn)基于Keras搭建神經(jīng)網(wǎng)絡(luò)模型,主要通過以下步驟搭建網(wǎng)絡(luò):模型設(shè)計、參數(shù)配置、數(shù)據(jù)加載、模型訓(xùn)練和模型評估。通過Keras提供的API可快速搭建網(wǎng)絡(luò)模型并加載數(shù)據(jù)進(jìn)行訓(xùn)練,能夠以較低的成本進(jìn)行模型編輯和完善,更快地驗(yàn)證算法思路的有效性。
數(shù)據(jù)是模型訓(xùn)練和具備感知識別能力的基礎(chǔ)。良好的標(biāo)注數(shù)據(jù)是影響模型性能的重要因素,模型識別根據(jù)數(shù)據(jù)本身或某些特性作為依據(jù),通過標(biāo)注才能讓模型獲得數(shù)據(jù)對應(yīng)關(guān)系,進(jìn)而通過訓(xùn)練來調(diào)節(jié)模型權(quán)重參數(shù),最終得到適合數(shù)據(jù)特點(diǎn)的模型并應(yīng)用于目標(biāo)感知識別。因此優(yōu)秀算法模型需要一定規(guī)模的標(biāo)注數(shù)據(jù)來進(jìn)行訓(xùn)練,進(jìn)而能建立模型的特征抽象能力,形成智能化的模型推理能力。
系統(tǒng)需給圖像打上標(biāo)簽信息來對應(yīng)車輛種類、車牌信息、車輛品牌和顏色等,對預(yù)先標(biāo)注的圖像樣本集合進(jìn)行訓(xùn)練學(xué)習(xí)后,即可產(chǎn)生具備識別能力,將車輛圖像傳給模型并獲得識別結(jié)果,進(jìn)而推斷出當(dāng)前車輛的相關(guān)信息。
系統(tǒng)引入正則化項(xiàng)及dropout機(jī)制,可有效地處理過擬合問題,提高模型的泛化能力。在訓(xùn)練過程中按設(shè)定概率摒棄部分網(wǎng)絡(luò)神經(jīng)元,降低了原網(wǎng)絡(luò)的復(fù)雜度,緩解了模型訓(xùn)練中對計算資源及訓(xùn)練時間的要求,最終提高模型的魯棒性,形成具備泛化能力的AI模型。
圖1 使用Dropout的神經(jīng)網(wǎng)絡(luò)模型前后對比
訓(xùn)練模塊對實(shí)時性要求不高,所以可進(jìn)行離線訓(xùn)練,將訓(xùn)練模型導(dǎo)出為文件并遷移到線上環(huán)境,并建立數(shù)據(jù)反饋收集機(jī)制和周期化升級機(jī)制,推進(jìn)AI模型的迭代升級。
基于AI深度學(xué)習(xí)的車輛識別智能管理系統(tǒng)采用Inception網(wǎng)絡(luò)訓(xùn)練分類識別模型,該網(wǎng)絡(luò)具有更寬、更深的結(jié)構(gòu),在帶來訓(xùn)練效果提升的同時也出現(xiàn)了包括梯度消失、過擬合等問題,通過引入1*1的卷積來進(jìn)行維度更新,形成多尺寸窗口的卷積及聚合機(jī)制,最終促進(jìn)訓(xùn)練效果的提升,并節(jié)省計算資源,能在相同計算資源投入下建立更廣泛的特征抽象能力,得到更好的模型訓(xùn)練結(jié)果。
圖2 線性卷積和NIN結(jié)構(gòu)對比
線性卷積通過設(shè)定尺度上進(jìn)行一次卷積的方式來訓(xùn)練,而NIN(即Network in Network)結(jié)構(gòu)通過引入普通的3*3、1*1卷積的方式進(jìn)行訓(xùn)練,這樣能對像素點(diǎn)經(jīng)1*1的卷積來執(zhí)行全連接計算。NIN中無論3*3還是1*1卷積都緊跟非線性激活函數(shù)ReLu,提供非線性計算模塊,通過卷積間的聯(lián)系來組合出更為豐富的非線性特征。
經(jīng)實(shí)驗(yàn)發(fā)現(xiàn),設(shè)置超過1000的卷積核數(shù)目,可能會引起網(wǎng)絡(luò)架構(gòu)更深層殘差單元異常而帶來訓(xùn)練失敗,使得訓(xùn)練過程中的GAP層激活值趨于0,無法通過調(diào)整學(xué)習(xí)率尺度和增加正則化層來進(jìn)行規(guī)避。因此為了提高模型訓(xùn)練的性能,本實(shí)驗(yàn)通過設(shè)置0.1~0.3的比例來縮放殘差激活值,構(gòu)建具有更高魯棒性的AI模型。
基于AI深度學(xué)習(xí)的車輛識別智能管理系統(tǒng)采用的數(shù)據(jù)集包含2萬余張車輛圖像,存儲空間約240MB。為了便于實(shí)驗(yàn),創(chuàng)建了專用的數(shù)據(jù)集對象,按12000張訓(xùn)練、4000張測試和4000張驗(yàn)證的比例對數(shù)據(jù)集進(jìn)行隨機(jī)重排并拆分,用于模型的訓(xùn)練工作。
系統(tǒng)將訓(xùn)練后的模型進(jìn)行封裝,建立統(tǒng)一的車輛識別驗(yàn)證服務(wù),采用預(yù)設(shè)的4000張驗(yàn)證集圖像進(jìn)行模型驗(yàn)證。為了降低深層卷積神經(jīng)網(wǎng)絡(luò)的計算消耗,對網(wǎng)絡(luò)模型進(jìn)行了優(yōu)化,并通過模型訓(xùn)練確定了模型最佳參數(shù),從而以較為輕量的網(wǎng)絡(luò)結(jié)構(gòu)取得了較高的車輛識別精度,使得優(yōu)化后的AI模型對車輛的識別速度約提升52.4%,識別精度約提升33.1%。