李猛坤,柯正軒,于定榮,張建林,賈軍營,劉利峰
(1.首都師范大學 管理學院,北京 100089;2.中國航天科技集團有限公司 北京神舟航天軟件技術有限公司,北京 100094;3.中國中醫(yī)科學院 中藥研究所,北京 100700;4.沈陽風馳軟件股份有限公司 風馳研究院,遼寧 沈陽 110167;5.譽才科技總部 北京譽才科技有限公司,北京 100040)
車牌號識別是一種道路交通系統(tǒng)中的基礎應用,為當今社會交通帶來了很大的便利,大量產(chǎn)品在固定攝像頭情境下取得了巨大的成功,但對基于車聯(lián)網(wǎng)的車牌識別算法卻鮮有涉及。當前主流使用的車牌識別算法主要依據(jù)顏色特征、灰度檢測等方法達成,其中有些方法抗干擾性差、有些方法需要大量計算、有些方法難以實現(xiàn)、有些方法則需要對自然環(huán)境條件的要求比較苛刻[1]。為了抵抗這些誤差,需要使用較為重型的集中計算方式完成。
車聯(lián)網(wǎng)系統(tǒng)脫胎于物聯(lián)網(wǎng),其計算處理能力與嵌入式系統(tǒng)相當。根據(jù)規(guī)劃,在2025年前汽車DA、PA、CA的裝配率將達到80%以上。在2020年全國汽車就已經(jīng)達到了3.6億輛,預計2025年將達到5億;按照80%的裝配率計算,全國車聯(lián)網(wǎng)下的汽車總量將達到4億輛,這和全國的2000萬個固定式監(jiān)控已經(jīng)不在一個數(shù)量級中,傳統(tǒng)固定式監(jiān)控下的車牌識別技術框架已經(jīng)無法滿足未來大規(guī)模車聯(lián)網(wǎng)環(huán)境下的需求,市場需要一種更輕量、更便捷的識別框架完成識別功能。
根據(jù)以上業(yè)務背景,本文將使用邊緣計算技術[2-5]配合深度神經(jīng)網(wǎng)絡技術、MobileNet以及傳統(tǒng)圖像處理技術,提出一種低時延、低帶寬需求、高精度的車牌識別框架與方法,以適應數(shù)年后大規(guī)模車聯(lián)網(wǎng)環(huán)境下更嚴格的要求。
本文主要從以下兩個內(nèi)容進行研究。
(1)基于傳統(tǒng)圖像處理技術的改進算法。在傳統(tǒng)圖像處理技術的基礎上,選取適當?shù)乃惴ɡ碚?,針對我國車牌號具體應用情況下對車牌號識別預處理方案進行改進。
(2)基于大規(guī)模車聯(lián)網(wǎng)環(huán)境下的邊緣計算方案。根據(jù)傳統(tǒng)車牌號識別框架,引入車聯(lián)網(wǎng)需求與邊緣計算的相關方案,完成車聯(lián)網(wǎng)邊緣計算架構下的車牌號識別新框架。
作為近10年較為熱門的話題,車牌與車牌號識別方法一直在進行著大量的改進。中山大學吳志攀、趙躍龍、羅中良、杜華英提到了在一種改進的方案以扭轉(zhuǎn)神經(jīng)網(wǎng)絡在學習中陷入的局部最優(yōu)問題[6]。山西欣奧特自動化工程公司的胡利娜[7]也完成了基于MATLAB工具的車牌號識別方法,驗證技術可行性。李戰(zhàn)明和徐錦鋼也發(fā)表了《基于DSP的車牌號識別技術及應用研究》,成功將整個系統(tǒng)小型化,以嵌入式的方案完成車牌號識別[8]。
當前,在人工智能的發(fā)展下,尤其是基于TensorFlow的高速發(fā)展與升級,便捷地搭建大型深度神經(jīng)網(wǎng)絡成為可能,這為快速部署神經(jīng)網(wǎng)絡識別算法提供了強有力的支持。在近幾年霧計算、邊緣計算的快速發(fā)展趨勢下,大量范式被提出并應用,為邊緣計算的落地部署提供了保障。在大唐、百度、華為等工智能自動駕駛的領頭羊的帶領下,車聯(lián)網(wǎng)技術標準在近5年也進行了多次快速迭代[9];在工信部的領導下,大量測試場也完成建設,為車聯(lián)網(wǎng)的落地應用提供了幫助。
傳統(tǒng)而流行的大型深度神經(jīng)網(wǎng)絡,如Alexnet、VGG、ResNet等,雖然學習能力和識別效果非常出眾,但是都需要強大的算力完成計算,所以只有較重型云服務器才會部署深度神經(jīng)網(wǎng)絡完成機器學習。然而在邊緣層的計算中,這些復雜的模型實在難以運用[10]。在內(nèi)存和算力有限、低延遲快響應的要求下,使用傳統(tǒng)CNN已經(jīng)難以解決這些實際需求。2016年Google提出了一種輕量級的、需求算力更低的、可以在嵌入式系統(tǒng)和移動設備上使用的新型CNN模型“MobileNet”[11],且已經(jīng)推出到MobileNetV3版本,未來還在持續(xù)更新。本算法將借鑒其對卷積算法中卷積核的分離變形,完成在邊緣設備中的卷積計算加速和內(nèi)存節(jié)約。
本文提出的基于車聯(lián)網(wǎng)邊緣計算的車牌號識別框架如圖1所示。
圖1 基于車聯(lián)網(wǎng)邊緣計算的車牌號識別框架
該框架主要包含圖像預處理、車牌號粗定位、車牌號精細定位、卷積處理、字符分割和字符識別幾個部分。在從視頻接口中獲取視頻輸入后,先關鍵幀提取完成載入,隨后在圖像預處理單元通過協(xié)比同調(diào)函數(shù)、高斯平滑、中值濾波、X向sobel濾鏡、膨脹、腐蝕、再膨脹一系列數(shù)學形態(tài)學運算完成預處理,繼而使用輪廓查找、面積篩選的方式完成粗定位,劃出可能的位置。在精細定位單元中,使用方向篩選的方式完成精細定位,隨后使用對角濾波法完成剪裁或篩選,得出車牌號最可能的位置。在獲得精準定位數(shù)據(jù)后,即對剪裁后圖像以MobileNet為基礎實施卷積處理,隨后任務卸載至云服務器。
在云服務器端,使用垂直投影法完成字符切割,對切割后的字符使用深度神經(jīng)網(wǎng)絡完成識別,最終對車輛進行反饋或進行其它處理。
傳統(tǒng)數(shù)學形態(tài)學處理包括高斯平滑、中值濾波、X向sobel濾鏡、膨脹、腐蝕、再膨脹這幾步。
高斯平滑用于消除噪聲,使用高斯分布的核進行濾波處理。其中,二維高斯分布為
(1)
其中,σ2代表區(qū)域內(nèi)總體方差。
中值濾波也是一種抑制噪聲的技術,使用某一像素點的鄰域像素點的中值替代原本的像素值。中值濾波可以有效清除孤立的脈沖噪聲。
sobel濾鏡分為X軸方向和Y軸方向,主要可以完成對圖像邊緣的探測。其中,3×3的sobel濾鏡見表1和表2。
表1 橫向sobel濾鏡
表2 縱向sobel濾鏡
使用sobel濾鏡X向求梯度,進行二值化后,即可進行膨脹操作。對于二值圖像,膨脹會將邊界向外擴展,填補圖片中較小的空洞。膨脹的函數(shù)為
D=X⊕B={(x,y)|BXY∩X≠0}
(2)
過程函數(shù)為
D=(X⊕B)(x,y)=max{X(x-i,y-j)+B(i,j)}
(3)
對于二值圖像,腐蝕會將邊界向內(nèi)收縮,消除小而無意義的點或邊界,常用于消除噪聲。腐蝕的概念函數(shù)為
E=X?B={(x,y)|BXY?X}
(4)
其中,X為目標圖像,B為結構元素。當B的原點移動至(x,y)處時,記為BXY。
過程函數(shù)為
E=(X?B)(x,y)=min{X(x-i,y-j)-B(-i,-j)}
(5)
開閉運算是在腐蝕和膨脹的基礎上,進行進一步形態(tài)學處理的算子。先腐蝕后膨脹的運算方法被稱為開運算,先膨脹后腐蝕的運算被稱為閉運算。開運算一般用于清除噪聲,閉運算一般用來平滑內(nèi)部小型空洞。
圖2經(jīng)過完整的數(shù)學形態(tài)學預處理運算,即可獲得如圖3的圖像,預處理完成。
圖2 基礎例圖
圖3 經(jīng)圖像預處理的圖2
MobileNet是Google研發(fā)的一種新一代輕量級的CNN,自提出后用于部署在各種嵌入式設備和移動端設備中,可以在保持模型性能的前提下降低模型大小,提升了速度而精度不失去太多;這就為將卷積算法部署于條件更為苛刻的邊緣設備中提供了技術支持。
MobileNet的基礎卷積單元是深度可分離卷積。深度可分離卷積是一種可分解的卷積操作,可以分解為空間卷積(depthwise convolution)和通道卷積(pointwise convolution),如圖4所示。其中Dk為平方核的維數(shù),M為輸入通道數(shù),N為輸出通道數(shù)。
圖4 可分解卷積
空間卷積和標準卷積的不同點在于,標準卷積的卷積核是作用在所有的輸入通道上(input channels)的;而空間卷積針對每個輸入通道均采用不同的卷積核,每卷積核對應一個輸入通道。對于深度可分離卷積,首先是采用空間卷積對不同輸入通道分別卷積,然后采用通道卷積將不同通道的輸出結果再進行組合。這樣的結果與直接進行標準卷積是相同的,但是卻能大大降低參數(shù)量和運算量,節(jié)約時間和存儲空間。推導過程如下。
設輸入大小為Hin×Win×Cin, 輸出大小為Hout×Wout×Cout。 設卷積核大小為k,則:
傳統(tǒng)卷積中,參數(shù)量 (params)=k2CinCout, 計算量為k2CinCout×HoutWout。
由圖5可知,深度可分離卷積參數(shù)量為k2Cin+CinCout, 計算量為k2Cin×HoutWout+CinCout×HoutWout。
圖5 普通卷積和深度可分離卷積的區(qū)別
可知,深度可分離卷積加速比為
實驗結果如表3所示。根據(jù)文獻[11]可知,深度可分離卷積對比一般卷積可達到近9倍加速。
表3 普通卷積和深度可分離卷積實際運行對比
3.1.1 協(xié)比同調(diào)函數(shù)
在處理有色圖片時,面對較為復雜、有大量干擾的圖像,傳統(tǒng)的數(shù)學形態(tài)學處理會面臨較大困難,在經(jīng)過開閉運算之后,大量噪聲將被統(tǒng)計為形態(tài)學邊界,隨后被認定為車牌號預選區(qū)域。這為識別造成了不小的干擾。
再度以圖2為例,這是一張強干擾的圖片,使用傳統(tǒng)的數(shù)學形態(tài)學將會造成較大誤差。
其中地板具有格子的屬性,易被識別為邊緣,如圖6中被斜框標出所示。
圖6 地磚干擾
后方斑駁的樹枝因為多種巧合的原因也會形成一個封閉的矩形空間,成為候選區(qū)域,如圖7所示。
圖7 樹影干擾
后方地磚上方的格子磚也會成為干擾,如圖8所示。
圖8 瓷磚干擾
識別出的車牌號區(qū)域,如圖9所示。
圖9 車牌號區(qū)域
綜上可知,由于多種干擾原因,車牌號區(qū)域識別出現(xiàn)了較大誤差,在強干擾情況下傳統(tǒng)識別準確率不到15%。為了解決這一情況,可以使用協(xié)比同調(diào)函數(shù)對圖像進行第一次加工,消除一部分干擾。協(xié)比同調(diào)激活函數(shù)如式(6)所示
(6)
其中,x為圖像某一顏色通道內(nèi)所有點的色彩值(0-255)的平均值,φ(x) 為躍遷閾值。其圖像如圖10所示。
圖10 協(xié)比同調(diào)激活函數(shù)圖像
在獲得躍遷閾值φ(x) 后,則遍歷圖片每個像素點,依次使用躍遷函數(shù)完成躍遷。躍遷函數(shù)如式(7)所示
(7)
其中,x為該通道某點的色彩強度值(0-255),φ(x) 為該通道躍遷閾值,y為該通道該點的色彩強度輸出值。經(jīng)過協(xié)比同調(diào)函數(shù),圖2被調(diào)整為圖11。
圖11 經(jīng)協(xié)比同調(diào)函數(shù)調(diào)整的圖2
3.1.2 對角角度篩選
在完成粗定位后,獲取的候選區(qū)域是經(jīng)過膨脹處理的,所以剪裁出的邊框?qū)⒚黠@大于實際邊框,如圖3所示。這就為字符分割造成了很大誤差。
由于已經(jīng)完成了粗定位,畫面中其它元素的干擾將較小。在不考慮其它誤差的情況下,可以使用直接從畫面中提取藍色的方法直接進行精細定位。
在現(xiàn)實中,并非所有車牌都正對拍攝方向,或者說大部分情況中車牌都和拍攝方向有一定角度,這就導致了車牌在定位過程中不是以一個矩形出現(xiàn)的,而是有一些角度的平行四邊形。利用這一特性就可以再度進行一次篩選,去掉候選區(qū)域中的干擾項,提升實驗準確率。
依然如圖9所示,車牌區(qū)域在候選區(qū)域的中央位置呈平行四邊形。此時,從左上角開始,依次使用行優(yōu)先和列優(yōu)先遍歷方法,尋找第一個藍色的像素點,獲取車牌區(qū)域左上角的坐標UL;再從右下角開始,依次使用行優(yōu)先和列優(yōu)先遍歷方法反向遍歷,尋找第一個藍色的像素點,獲取車牌區(qū)域右下角的坐標LR。
計算兩點之間連線與UL水平坐標的夾角θ,計算公式為
(8)
由多次訓練經(jīng)驗可知,車牌號圖像長寬比例大概在2~5 之間,夾角θ的取值范圍應在15°~45°之間。不符合此規(guī)律或甚至未定位到藍色坐標的圖像皆可放棄。
使用正交實驗法完成實驗設計。
3.2.1 實驗預處理
準備10種不同場景實際道路中車輛行駛中錄制視頻并平均截取500 幀,對每幀圖片均使用灰度轉(zhuǎn)化、高斯平滑、中值濾波、sobel濾鏡、膨脹、腐蝕、膨脹幾步傳統(tǒng)數(shù)學形態(tài)學方法進行先行處理,圖像數(shù)據(jù)及位置標注如圖12所示。
圖12 圖像數(shù)據(jù)及標注位置
3.2.2 實驗主體設計
5000張圖片完成預處理后成為數(shù)據(jù)集,使用相同的數(shù)據(jù)集進行4次實驗。4次實驗方式見表4。在完成主體實驗后,使用TensorFlow深度神經(jīng)網(wǎng)絡完成識別,并記錄正確率。實驗完成后,在結果中對比使用總時間、粗定位準確率、精細定位準確率、神經(jīng)網(wǎng)絡識別正確率。
3.2.3 實驗環(huán)境
使用Python語言編程并完成實驗。
CPU:Inter(R)Core(TM)i7-7500
GPU:Inter(R)HD Graphics 620
3.2.4 正交表
表4中處理速度單位為秒/圖,粗定位準確率指5000張通過實際道路拍攝圖片中通過傳統(tǒng)車牌識別算法以及協(xié)比同調(diào)函數(shù)可提取的車牌次數(shù)。精細定位準確率指在粗定位基礎上通過對角角度篩選達成的準確率。神經(jīng)網(wǎng)絡識別正確率指在總實驗數(shù)據(jù)集中的識別正確率。
根據(jù)表4的正交實驗可得,在未使用協(xié)比同調(diào)函數(shù)時,
表4 實驗正交表
實際道路行駛狀態(tài)下車牌號粗定位正確率不到3%;使用協(xié)比同調(diào)函數(shù)后,正確率提升至8%。干擾篩出率(指車牌號粗定位正確率/使用協(xié)比同調(diào)函數(shù)后車牌號粗定位正確率)超過50%。但處理時間將有明顯提升。
根據(jù)表4的正交實驗可得,在未使用對角角度篩選時,實際道路行駛狀態(tài)下車牌號精細定位正確率近7%;使用對角角度篩選后,總正確率提升至近15%,干擾篩出率(指車牌號精細定位正確率/使用對角角度篩選后車牌號精細定位正確率)近50%。處理時間提升不明顯。
使用所提方法前后深度神經(jīng)網(wǎng)絡正確率迭代折線圖分別如圖13和圖14所示。
圖13 使用所提方法前深度神經(jīng)網(wǎng)絡正確率迭代折線
圖14 使用所提方法后深度神經(jīng)網(wǎng)絡正確率迭代折線
在目前人工智能技術快速發(fā)展趨勢之下,為配合我國2025年車聯(lián)網(wǎng)要求總體部署,為減輕總體帶寬要求、降低網(wǎng)絡延遲,本文借鑒邊緣計算的架構方法和最新的低參數(shù)卷積方法,提出了在大規(guī)模車聯(lián)網(wǎng)環(huán)境中以邊緣計算為架構的車牌號識別總體框架,并依據(jù)這種新需求完成了一種以優(yōu)化的數(shù)學形態(tài)學和深度神經(jīng)網(wǎng)絡為技術路線的算法實現(xiàn)。
傳統(tǒng)的識別技術框架無法直接應用在汽車上,所以在未來大規(guī)模車聯(lián)網(wǎng)部署下,整體技術框架將難以應對超大帶寬、超低時延的技術需求。為解決這種技術需求,除利用5G等更高速蜂窩通信技術外,更應該從系統(tǒng)架構上解決問題。通過借鑒邊緣計算的方案,將整體架構分為設備層、邊緣層和云服務器3層,在邊緣層中,使用汽車自帶的微型計算機或嵌入式設備完成多項圖像預處理工作,之后再與云服務器通訊,即可大幅降低所需通信帶寬。在邊緣層中,通過多項先進的數(shù)學形態(tài)學技術、快速的卷積技術和一部分改進的數(shù)學形態(tài)學技術,加快圖像處理速度和準確性,在提高圖像利用率的同時加快預處理速度,達成降低總處理時長、降低處理時延的目的。
在基礎設備層,使用車載攝像頭作為圖像獲取設備,通過汽車總線將視頻傳輸至汽車內(nèi)置電腦進行預處理。
車輛內(nèi)置微型計算機或嵌入式設備扮演了邊緣層的角色。車輛內(nèi)置微型計算機或嵌入式設備通過一定采樣頻率,對視頻流進行關鍵幀采樣。在關鍵幀采樣完畢后,進行如前文所提到的數(shù)學形態(tài)學處理并截取車牌號可能存在的圖像位置,隨后使用精準定位的方式再度縮小范圍。最終完成以深度可分離卷積為核心操作的卷積處理,通過PTSP將任務卸載至云服務器。
在云服務器,基于垂直投影法的字符分割技術將會將已經(jīng)卷積完成的車牌號圖像分割為單字符圖像,并依次使用深度神經(jīng)網(wǎng)絡進行識別,最終得到識別完畢的車牌號,并通過移動網(wǎng)絡反饋至車輛本身或道路交通管理系統(tǒng)。
在完成數(shù)學形態(tài)學技術的改進中,實驗結果表明,在基于車聯(lián)網(wǎng)的環(huán)境下,協(xié)比同調(diào)函數(shù)和對角角度篩選方法在無法使用背景減除法等傳統(tǒng)方法的情況下,可以大幅提升定位精度,繼而提升識別準確率。同時,MobileNet的可分離卷積也有效為邊緣計算的環(huán)境下完成卷積計算提供了加速支持。這些方案在一定程度下降低了帶寬需求,并提升了識別準確性。
綜上所述,本文提出的大規(guī)模車聯(lián)網(wǎng)環(huán)境中以邊緣計算為架構的車牌號識別總體框架和幾種改進的數(shù)學形態(tài)學技術均基本達到了預期要求,實驗原型機在實驗理想狀態(tài)下可以正常輸出且輸出結果達到預期效果。本文的研究結果可以為公安應急處突、邊境敵我識別等適合邊緣計算部署的情境提供一定的技術支撐,且可適應數(shù)年后至2025年大規(guī)模車聯(lián)網(wǎng)環(huán)境下對邊緣計算、人工智能更嚴格的要求。