劉靖鈺, 劉德兒, 楊 鵬, 陳增輝, 鄒紀(jì)偉, 冀煒臻
(江西理工大學(xué) 建筑與測繪工程學(xué)院,江西 贛州 341000)
近年來,我國車輛數(shù)量快速增加,查閱國家統(tǒng)計局?jǐn)?shù)據(jù)可知,截止至2017年[1],民用汽車擁有量約20906.7萬輛,民用載客汽車擁有量約18469.5萬輛,民用載貨汽車擁有量約2338.8萬輛,其他民用汽車擁有量約124.41萬輛。龐大的汽車數(shù)量給相關(guān)部門的管理帶來極大挑戰(zhàn)?!爸腔鄢鞘小笔菙?shù)字城市與物聯(lián)網(wǎng)結(jié)合的產(chǎn)物,是時代發(fā)展的趨勢。其中,車牌識別技術(shù)在智慧交通系統(tǒng)(Intelligent Transportation System,ITS)這一分支中發(fā)揮重要的作用[2],主要可用于道路交通監(jiān)控、交通違章自動記錄、交通事故現(xiàn)場勘查、高速公路超速管理、社區(qū)智能管理等方面[3]。
車牌識別系統(tǒng)主要由圖像采集、車牌定位、字符分割和字符識別這4個部分構(gòu)成。數(shù)據(jù)源一般使用監(jiān)控錄像的視頻流。車牌定位算法主要有紋理特征定位[4]、顏色特征定位[5]、字符特征定位[6]、邊緣檢測定位[7]等, 文章巖[8]提出一種基于暗原色先驗去霧算法提高霧霾環(huán)境下對車牌定位的精度;陳丹[9]采用修正過的檢測網(wǎng)絡(luò)Faster R-CNN對車牌進行定位,提高了車牌定位準(zhǔn)確率。字符分割算法主要有投影分割[10]、連通性分割[11]和字符先驗知識分割[12]。字符識別的算法有模式匹配[13]、神經(jīng)網(wǎng)絡(luò)匹配[14]和特征提取匹配[15],李祥鵬等[16]提出AlexNet-L用于解決字符分割的誤差對識別效果的影響,林乾畢[17]使用結(jié)合SVM和ANN的神經(jīng)網(wǎng)絡(luò)識別車牌;張培玲等[18]提出基于改進BP神經(jīng)網(wǎng)絡(luò)算法用于識別夜間的車牌。但以上學(xué)者在研究中所用的數(shù)據(jù)均是在無遮擋條件下的完整車牌,而帶遮擋的車牌在視頻中也較為常見,如何有針對性地對帶遮擋的車牌進行識別是一個難點。
本文主要對行駛過程中車牌上帶局部自然遮擋物的車輛進行車牌識別,如泥土、水霧等遮擋情況。車牌定位部分采用HSV特征定位,字符分割時對車牌進行正射校正并利用先驗的字符間距進行分割,最后基于卷積神經(jīng)網(wǎng)絡(luò)進行字符識別。常見的研究遮擋識別的算法主要著力于視頻數(shù)據(jù)的預(yù)處理,盡可能地通過圖像處理的方式還原原圖以便進行后續(xù)識別,算法普適性較差,對任意一類的遮擋都需要有獨立的算法進行去噪且耗時較長。本文直接對國內(nèi)民用車牌中常見的字符建立各種形態(tài)并存在不同程度遮擋的樣本庫,是一種基于數(shù)據(jù)驅(qū)動[19]的識別方法,使其適用于任意情況的局部遮擋,并利用TensorFlow框架進行訓(xùn)練與優(yōu)化,分析車牌識別的識別準(zhǔn)確度,并選用支持向量機[20](Support Vector Machine,SVM)與循環(huán)神經(jīng)網(wǎng)絡(luò)[21](Recurrent Neural Networks,RNN)進一步驗證所構(gòu)建的樣本庫的實用性。
在進行車牌識別前,需要獲取圖像中的有效車牌,具體流程如圖1所示。
圖1 車牌獲取流程
從視頻中獲取的原始車牌圖像處于十分復(fù)雜的場景中,若直接對車牌進行定位,噪聲干擾較為強烈,耗時長且定位效果較差,尤其對于車牌處存在部分遮擋的情況,更難以精確定位,因而需要先將大部分的非車牌區(qū)域去除,以提高識別精度和效率。
將視頻中截取的RGB圖像轉(zhuǎn)換成HSV模式并單獨提取其中的V通道圖像,利用限制對比度的自適應(yīng)直方圖均衡化方法獲取車牌相對于背景對比度最大的效果,之后利用黑帽運算結(jié)果減去頂帽運算結(jié)果,即可將V通道的對比度拉伸至一個較好的狀態(tài);此時根據(jù)邊緣檢測可以獲得圖像中所有邊緣為矩形的區(qū)域,獲取圖像的blue通道,計算均值等特征,從待選區(qū)域確定車牌的位置,如圖2所示。
圖2 車牌定位
從視頻中提取出的車牌不免存在不同角度的傾斜,為避免這種現(xiàn)象對字符切分造成的影響,使用霍夫直線檢測(式(1))與仿射變換(式(2))將其校正至正攝狀態(tài),如圖3所示。
圖3 傾斜車牌校正
(1)
式中,ρ,θ為一對霍夫空間的變量,可以通過判定關(guān)于ρ,θ的正弦曲線與待檢測線條存在的交點個數(shù)進行霍夫直線檢測。
(2)
式中,A為縮放系數(shù);b為平移系數(shù)。
經(jīng)上述流程,處理300張車輛圖片共耗時228.6 s,平均耗時0.762 s
考慮到交通管理的監(jiān)控設(shè)備一般與交通指示燈一起設(shè)置在路面正上方,因而所考慮的車牌基本屬于正面拍攝,偶爾存在非正面拍攝的情況則通過基于輪廓提取的校正進行旋轉(zhuǎn)等處理使之被拉伸到與正面拍攝一樣的視角。此外,當(dāng)車牌上存在遮擋物時,常用的字符切分方法(如投影法、聯(lián)通性法)將無法使用,因而選用基于先驗知識的切分方式,即通過字符在正常情況下的大小和間距進行切分。通過查閱GA 36-2014[22]可知,常見民用外輪廓為440 mm×140 mm的號牌的具體標(biāo)準(zhǔn)如圖4所示。計算出各個字符在整個車牌中所占的比例,對車牌進行分割。分割后的車牌不能直接進行識別,需對其進行歸一化處理,將其修改為與訓(xùn)練樣本一致的尺寸,如圖5所示。隨后即可對切分后的字符進行逐個識別。
圖4 車牌分割標(biāo)準(zhǔn)
圖5 車牌分割
基于神經(jīng)網(wǎng)絡(luò)的字符識別具有良好的自適應(yīng)性和準(zhǔn)確度,但是對字符樣本庫的數(shù)量具有較高要求。因此,建立合適的樣本庫是本次研究的首要任務(wù)。
采用正射投影法獲得全國車牌中所有的標(biāo)準(zhǔn)化單個字符信息,主要包括全國33個省、市、自治區(qū)的簡稱、24個大寫英文字母(I、O除外)和10個阿拉伯?dāng)?shù)字??紤]到字符的特性,以及在一般情況下攝像機捕捉圖像時可能出現(xiàn)的情況,本文基于形態(tài)學(xué)算法對字符樣本庫進行構(gòu)建。首先將字符歸一化為32 px×40 px的矩形,通過小波分析濾去其背景,并對字符進行二值化,背景值設(shè)為0,字符值設(shè)為1。然后對樣本中字符的部分進行旋轉(zhuǎn)、膨脹、腐蝕等操作,在此基礎(chǔ)上進行4個方向上不同程度的遮擋,如圖6所示。
圖6 樣本庫樣例
最終為每類字符構(gòu)建10000個以上的樣本,足以滿足CNN訓(xùn)練樣本的需求。
神經(jīng)網(wǎng)絡(luò)面對復(fù)雜的、具有不確定性的、非線性的問題有較好的學(xué)習(xí)能力、處理能力和分類能力。卷積神經(jīng)網(wǎng)絡(luò)(CNN)是一類包含深度卷積計算且具有深度結(jié)構(gòu)的前饋神經(jīng)網(wǎng)絡(luò),一般包含輸入層、隱含層和輸出層,其中隱含層又包含卷積層、池化層、全連接層等。且CNN隱含層內(nèi)的卷積核參數(shù)共享和層間連接的稀疏性可以使CNN能夠以較小的計算量對格點化特征,可對像素進行較好的學(xué)習(xí)、有穩(wěn)定的效果且對數(shù)據(jù)沒有額外的工程特征要求。
卷積層原理如下:
(3)
式中,b為偏差量;Zl和Zl+1分別為第l+1層的卷積輸入和輸出;Ll+1為Zl+1的尺寸;Z(i+j)對應(yīng)特征圖的像素;K為通道數(shù);f為卷積核大??;s0為卷積步長;p為填充層數(shù)。
池化層原理如下:
(4)
式中,A(i,j)對應(yīng)特征圖的像素;s0為池化步長;p為預(yù)制定參數(shù)。
全連接層通常搭建在CNN中隱含層的最后部分,并只向其他全連接層傳遞信號。特征圖在全連接層中會失去三維結(jié)構(gòu),被展開為向量并通過激勵函數(shù)傳遞至下一層,公式如下:
(5)
本文進行識別模型訓(xùn)練時選用Le-Net5模型的框架,隱含層的設(shè)置如圖7所示,第一層卷積層通過5×5的卷積核提取得到32張原始圖片的低層次特征,再通過2×2的池化層對提取到的低層次特征進行特征抽取,第二層卷積層通過5×5的卷積核提取到64張池化后的高層次特征,再通過2×2的池化層和兩層全連接層實現(xiàn)圖像特征的輸出,最終調(diào)用激活函數(shù)SoftMax()進行非線性擬合,得到多分類的輸出。
圖7 網(wǎng)絡(luò)結(jié)構(gòu)
對待檢測車牌數(shù)據(jù)進行閾值分割并將切割后的單字符圖片長寬歸一化至32 px×40 px,進行批量識別測試。
通過形態(tài)學(xué)算法構(gòu)建的樣本庫主要分為漢字、字母和數(shù)字三大類,其中每一個字符通過不同形態(tài)、旋轉(zhuǎn)角度、遮擋情況等共構(gòu)造出10240個樣本,隨機取其90%作為訓(xùn)練集,其余為測試集。訓(xùn)練框架為TensorFlow1.4,將訓(xùn)練集轉(zhuǎn)存為tfrecord類型以節(jié)約內(nèi)存、統(tǒng)一格式并提高計算效率,通過CNN對樣本進行訓(xùn)練與測試,最后實現(xiàn)對車牌的識別。實驗設(shè)置卷積層池化層各兩層,最終通過兩層全連接層實現(xiàn)特征輸出。具體參數(shù)設(shè)置:學(xué)習(xí)率為0.8,學(xué)習(xí)率的衰減率為0.99,損失函數(shù)系數(shù)為0.001,每一批次訓(xùn)練128張圖片,訓(xùn)練至3200步時趨于收斂,精度為99.978%。同時使用上述網(wǎng)絡(luò)訓(xùn)練無遮擋的字符樣本,每類6542張圖片,并對比不同樣本庫對識別效果的影響,如表1所示。
表1 測試結(jié)果
分析可知,當(dāng)字符受到不同程度的遮擋時,識別精度會存在較大的差異。對于車牌中未受到任何遮擋的字符,總體識別精度可達到0.87以上,部分特征十分鮮明與別的字符不存在相互干擾的字符識別正確率可達0.95以上,但是車牌2中的“滬”由于進行二值化處理時沒有自適應(yīng)存在部分特征缺失,精度僅有0.74;對于遮擋面積占字符總面積1/12~1/6之間的字符,如車牌1中的“8”,其識別精度可以達到0.89以上;對于遮擋面積占字符總面積1/4左右的字符,如車牌2中的“0”、車牌3中的“蘇”,識別精度在0.75以上;對于遮擋面積占字符總面積1/3左右的字符,如車牌2中的“J”和“9”,由于遮擋部分橫跨字符中央,特征缺失較為嚴(yán)重,識別精度約在0.59以上,其中字符“9”在識別時會受到字符“2”“8”“G”等的強烈干擾,識別精度更低;當(dāng)遮擋面積占總字符面積1/2以上時,識別精度持續(xù)下降,如車牌3中的字符 “3”,由于保留的有效特征具有其獨特性,識別精度為0.81,效果較好,但是字符“E”和“B”識別精度僅為0.33和0.41。此外通過與無遮擋樣本識別效果的對比發(fā)現(xiàn),無遮擋樣本在識別無遮擋字符時的精度維持在90%左右,比起帶遮擋樣本的識別精度較穩(wěn)定,但兩者的正確率相差無幾,可能是樣本量較大導(dǎo)致略微過擬合;但在存在遮擋的字符識別中,帶遮擋樣本庫的識別效果明顯優(yōu)于無遮擋樣本庫的識別效果,如在車牌3的字符4“B”的識別上,雖然無遮擋樣本庫的識別精度更高,但是識別錯誤,除此之外有遮擋樣本庫的識別精度在對存在遮擋的字符進行識別時明顯更高,表明該樣本庫的建立是有意義的。
因此本文通過形態(tài)學(xué)等算法建立的樣本庫適用于單字符遮擋面積在1/2以下的車牌識別,對于遮擋面積過大、失去了鮮明特征的字符,識別效果不太理想。
選取300張存在遮擋情況的車牌,經(jīng)字符分割,共有漢字300個、字母及數(shù)字1800個,根據(jù)其存在的遮擋情況進行測試并統(tǒng)計,總體識別精度如表2所示。
表2 不同遮擋條件下的正確識別率
為證明通過形態(tài)學(xué)所建立的帶遮擋車牌字符樣本庫在車牌識別中比無遮擋樣本庫更有優(yōu)勢,選取SVM和RNN進行驗證,以準(zhǔn)確率和平均精度作為分析指標(biāo),驗證結(jié)果如表3所示。
表3 不同算法中不同樣本的識別情況
分析可知,在任何算法中,使用有遮擋樣本的訓(xùn)練集去識別車牌時,準(zhǔn)確率和平均精度相比于無遮擋樣本都更高,更具實用性。
本文通過視頻截幀的方式獲得車輛圖像,隨后利用限制對比度的自適應(yīng)直方圖均衡化方法大致確定車牌在圖片中的位置,再采取形態(tài)學(xué)等方案確定車牌的詳細(xì)邊界以實現(xiàn)車牌定位;借用霍夫直線檢測對車牌進行校正,以便對其進行精準(zhǔn)的分割。裁取完整車牌中的67個字符,按一定的規(guī)律加入不同程度的遮擋;對需要進行識別的車牌隨機加入高斯濾波并計算其遮擋比例。對模型訓(xùn)練調(diào)參后可得出在不同遮擋程度下字符識別的準(zhǔn)確性,通過與同一網(wǎng)絡(luò)中訓(xùn)練得到無遮擋樣本庫的識別效果進行對比,發(fā)現(xiàn)帶遮擋樣本庫精度更高,此外使用SVM與RNN對兩種樣本的精度進行驗證。另外通過對車牌不同遮擋情況進行對比,可知帶遮擋樣本庫可用于遮擋程度在1/2以下的車牌圖片識別。
由于實驗訓(xùn)練集測試數(shù)量不足,理應(yīng)對算法做進一步的改進與優(yōu)化,可以從網(wǎng)絡(luò)結(jié)構(gòu)、參數(shù)優(yōu)化等方面進行后續(xù)研究。