張 濤,王劍魁,張國山,劉 麗
(天津大學 電氣與自動化工程學院,天津 300072)
為了解決交通運輸行業(yè)面臨的各種問題,美國智能交通學會在1990年提出ITS的概念。從上世紀90年代開始,我國已經有學者開始關注ITS,ITS的發(fā)展對緩解交通堵塞、保暢安全出行及綠色出行都做出了重要的貢獻[1-2]。
汽車牌照號碼是確定汽車身份的唯一標識,解決交通管理中存在的一系列問題都需要以獲得汽車牌照為前提,如何快速、準確地識別汽車牌照號碼是ITS研究的熱點問題。我國的汽車車牌含有漢字,且不同汽車的車牌尺寸、顏色均不相同,這些特征給我國的汽車車牌識別造成了很大困難,國外相對成熟的技術無法完全引用到國內使用。目前,我國雖然擁有相對較成熟的車牌識別產品,但往往產品成本較高,且產品體積較大無法快速安裝和移動[3-4]。嵌入式系統(tǒng)具有可靠性高、成本低、體積小、功耗小、軟硬件功能可擴展性強等優(yōu)點,因此研究基于ARM的嵌入式車牌識別系統(tǒng)具有很好的推廣價值和現(xiàn)實意義。
本文設計了一種基于ARM的嵌入式車牌識別系統(tǒng),該系統(tǒng)以嵌入式Linux為操作系統(tǒng),通過攝像頭采集車牌圖像信息,并借助于OpenCV圖形處理函數(shù)庫進行圖像識別。針對嵌入式平臺,本文對現(xiàn)有車牌識別算法車牌定位環(huán)節(jié)進行了優(yōu)化,提高了系統(tǒng)識別牌照號碼的準確度。
本系統(tǒng)硬件部分主要包括圖像采集單元、ARM開發(fā)平臺、LCD顯示單元。圖像采集單元負責拍攝車牌圖像信息;ARM開發(fā)平臺為核心運算單元,同時還提供RAM、NAND Flash等硬件資源以及串口、網絡等通信模塊;LCD單元負責顯示結果。本系統(tǒng)軟件部分主要包括嵌入式Linux操作系統(tǒng)和車牌識別應用程序。操作系統(tǒng)是硬件和軟件之間的紐帶,提供了圖像采集單元和LCD顯示單元的接口供應用程序訪問;應用程序主要為車牌識別流程。
車牌識別算法主要由圖像預處理、車牌定位、字符分割和字符識別四部分構成。圖像預處理環(huán)節(jié)對車牌圖像進行灰度變換、濾波等操作,使原始車牌圖像更適合于后續(xù)識別;車牌定位可以定位出圖像中車牌的位置,或者定位出幾個可能的位置,同時車牌定位應包括判定車牌的格式、進行傾斜校正等工作;字符分割的作用是將定位后的車牌區(qū)域的字符一一分割出來;字符識別是車牌識別算法的最后一個部分,字符識別任務是將切分出的字符識別出來。
本系統(tǒng)采用三星公司的S5PV210芯片作為處理器,該處理器為ARM Cortex-A8內核,ARM V7指令集,運行頻率為1GHz,內置PowerVR SGX540圖形引擎,具有非常好的圖形運算性能。處理器外圍電路包括電源模塊、時鐘模塊、SDRAM存儲器、NAND Flash存儲器、串行通信接口、網絡接口、圖像采集模塊、LCD顯示模塊等。系統(tǒng)整體結構如圖1所示。
圖1 系統(tǒng)硬件結構圖Fig.1 Structure diagram of the hardware system
本系統(tǒng)采用的是512 MB容量的NAND Flash存儲器,主要存放系統(tǒng)引導程序、操作系統(tǒng)以及應用程序等。系統(tǒng)SDRAM存儲器大小為512 MB,主要用于存放操作系統(tǒng)和應用程序執(zhí)行時的臨時數(shù)據(jù)。圖像采集模塊采用500萬像素的USB攝像頭,顯示模塊采用分辨率為1024*600的10.1寸LCD顯示屏。開發(fā)人員可以通過串行通信模塊控制系統(tǒng)并獲得調試信息,網絡模塊為預留模塊,方便本系統(tǒng)進行二次開發(fā)。
系統(tǒng)軟件流程分為采集車牌圖像、車牌圖像識別、結果顯示三個階段。其中車牌字符識別階段分為圖像預處理、車牌定位、字符分割和字符識別[5]。系統(tǒng)整體軟件流程如圖 2所示。
圖2 系統(tǒng)軟件流程圖Fig.2 Flow chart of the software design
本系統(tǒng)對現(xiàn)有車牌識別算法進行了優(yōu)化,具體體現(xiàn)在以下兩方面:
文獻[6]提出先對車牌圖像進行二值化處理再進行車牌定位,本文提出在得到初步定位的結果后進行二值化處理,該方法很大程度縮小了圖像二值化處理區(qū)域,二值化閾值的計算更加合理,可以大幅度提高車牌最終定位精確度,以及后續(xù)車牌識別結果的準確度。
文獻[6-7]把車牌定位分為粗定位和精確定位兩步,該方法不能有效去除車牌的邊框區(qū)域,本文提出一種新的精確定位方法,實驗結果證明本方法可有效解決該問題。
1)彩色圖像灰度化
攝像頭拍攝的的車牌圖像是彩色圖像,直接處理彩色圖像會浪費系統(tǒng)資源,降低系統(tǒng)的執(zhí)行速度。本文系統(tǒng)采用加權平均值法進行車牌圖像灰度化,轉換公式見公式。
其中R、G、B三種顏色的權值根據(jù)人眼的敏感度以及理論和實踐經驗選取。原車牌圖像以及灰度化之后的車牌圖像分別如圖 3(a)和圖 3(b)所示。
2)圖像灰度變換
拍攝車牌照片時,天氣,光照等差異會造成車牌圖像質量降低,如對比度低,灰度分布不均勻等?;叶茸儞Q的可以把原灰度圖像的中間灰度部分進行拉伸,使車牌字符和背景區(qū)分明顯。
車牌定位是車牌識別的關鍵環(huán)節(jié),準確地進行車牌定位是進行車牌字符識別的前提條件。常見的車牌定位算法有基于邊緣檢測法、基于形態(tài)學法、基于分類器的方法、基于顏色空間法、基于小波變換法、基于神經網絡法車牌字符切割等[8],由于本設計是基于嵌入式平臺進行的,考慮到算法時間復雜度等原因,本系統(tǒng)選用基于邊緣檢測以及數(shù)學形態(tài)學法進行車牌初步定位,并采用投影法進行車牌精確定位。
1)邊緣檢測
常用的邊緣檢測算子有Reborts算子、Sobel算子、Canny算子、Prewitt算子等,本系統(tǒng)使用Sobel算子進行邊緣檢測。邊緣檢測結果如圖 3(c)所示。
2)數(shù)學形態(tài)學處理
經過邊緣檢測后的車牌圖像仍有一些雜亂邊緣,既有車牌和車牌字符邊緣,也有一些背景信息邊緣和一些噪聲,可以通過數(shù)學形態(tài)學處理去除無用信息定位出車牌區(qū)域。首先選取3*3的全1矩陣為結構元素進行腐蝕操作,然后構造30*43像素的平面矩形的結構元素進行閉運算,最后進行開運算擦除車牌圖像中孤立的小點。經過數(shù)學形態(tài)學處理后的車牌圖像如圖 3(d)所示。
3)從候選區(qū)域去除偽車牌
經過以上操作,圖像中剩下很少幾個連通區(qū)域,即為車牌的候選區(qū)域。根據(jù)《GA36-2007中華人民共和國機動車號牌》的規(guī)定,我國小型汽車號牌國標尺寸是440×140 mm,考慮圖像處理誤差及拍攝傾斜等因素,本系統(tǒng)選取車牌長寬比閾值為:2.0-6.0,這樣就能去除圖 3(d)中大部分的偽車牌部分。由于數(shù)學形態(tài)學腐蝕會減少圖片信息,所以本系統(tǒng)對上述得到的車牌區(qū)域進行放大,放大比例選取110%。去除偽車牌后得到的車牌區(qū)域圖像如圖 4(a)所示。
圖3 車牌識別過程Fig.3 Recognition processes of license plate
4)車牌精確定位
本系統(tǒng)采用投影法對車牌進行精確定位,并針對文獻[6~7]中算法進行了改進和優(yōu)化。
第一步,對初步定位結果進行二值化處理,本系統(tǒng)采用最大類間方差法計算二值化處理的閾值。
第二步,水平方向定位。車牌區(qū)域在水平方向的灰度跳變次數(shù)遠大于非車牌區(qū)域,可以根據(jù)這一特征在水平方向定位出車牌區(qū)域。先對二值化后的車牌圖像f(i,j)進行水平方向一階差分得到 g(i,j),見式;
將差分后的圖像 g(i,j)進行水平方向累加得到 T(i);
對T(i)進行平滑處理以消除毛刺,見公式。同時記錄T(i)最大值及其出現(xiàn)的位置;
從T(i)最大值處向上下兩個方向掃描,本系統(tǒng)取T(i)小于4處為牌上下邊界。
第三步,垂直方向定位。字符區(qū)域和字符間隙在垂直方向上灰度跳變次數(shù)有很明顯差異,同樣可以通過投影法確定車牌左右邊界。對第二步的結果進行垂直方向一階差分后累加得到 T( j),對 T( j)進行平滑處理,同時記錄 T( j)的最大值。以 T(j)最大值的 0.35倍為閾值,從左向右掃描 T(j),第一個大于此閾值的點即為車牌左邊界;同理可找到車牌右邊界。
第四步,對定位后的車牌區(qū)域進行傾斜校正。本系統(tǒng)采用Radon變換法進行傾斜校正。
第五步,去除邊框。傾斜校正后的車牌圖像仍可能包含車牌邊框,需要去除車牌邊框。首先去除車牌上下邊框,處理方法和車牌水平方向定位方法類似,得到 T(i)后,以 T(i)平均值的0.7倍為閾值,從T(i)最大值處向兩邊掃描,認為T(i)的值小于此閾值處為車牌上下邊框和車牌字符分界處。去除車牌左右邊框的方法和車牌垂直方向定位方法類似,得到T(i)后,以 2 為閾值掃描 T(i),如果 T(i)左右兩端含有小于車牌寬度的十六分之一毛刺,則認為此毛刺對應區(qū)域為車牌邊框。
本文提出的方法定位出的車牌區(qū)域字符清晰,并能有效去除車牌邊框,定位結果如圖 4(b)所示。用文獻[6]中方法定位得到的車牌區(qū)域如圖 4(c)所示。本文方法定位效果明顯優(yōu)于文獻[6]中的方法。
圖4 車牌定位結果對比Fig.4 Comparison result of license localization
由3.2節(jié)可知,車牌區(qū)域在垂直方向灰度跳變次數(shù)有明顯波動,所以本系統(tǒng)采用垂直投影法對車牌圖像進行字符分割。
首先,對定位后的車牌二值化圖像進行垂直方向灰度累加得到 T2( j)。
第二步,以3為閾值掃描T2(j)并記錄每一個波峰以及他們的起點和終點。
第三步,分割漢字。通常T2(j)第一個波峰起點和終點之間即為車牌漢字區(qū)域。如果該區(qū)域寬度小于車牌總寬度的十二分之一,則認為此漢字為左右偏旁漢字,如“川”,此時可根據(jù)漢字寬度占整個車牌寬度的比例選取第一個波峰起點到第兩個或第三個波峰的落點為漢字區(qū)域。
第四步,分割字母或數(shù)字。以T2(j)每個波峰起點和終點為車牌字符的邊界,即可分割出后面六個字母或數(shù)字。如果某個波峰內總的灰度值之和小于該寬度內總像素點數(shù)的0.15倍,則認為該處為噪聲點或者車牌上的圓點。
常見的字符識別算法有:基于模板匹配的字符識別算法,基于統(tǒng)計特征匹配的字符識別算法,基于神經網絡的字符識別算法[6]。本系統(tǒng)采用基于模板匹配的字符識別算法。本文對文獻[9]等提到的模板匹配算法進行改進,提出先去除車牌字符及模板字符周圍空白再進行歸一化處理。該方法可以提高了模板匹配的準確度。
首先,用投影法去除兩個字符可能出現(xiàn)的粘連,以及字符上、下、左、右的空白區(qū)域。
第二步,對字符圖像進行歸一化處理。本系統(tǒng)將字符模板和分割后的字符全部歸一化為24*48像素大小。
第三步,字符比較。用歸一化后的字符圖像與字符模板庫做比較,記錄差異最小的模板對應的編號即為該字符圖像識別結果。由于我國車牌號碼第一個字符為漢字,后面6個字符為字母或數(shù)字,所以將模板庫分為漢字模板庫和數(shù)字字母模板庫,這樣即能提高匹配速度,有能提高匹配準確度。本系統(tǒng)車牌識別結果如圖5所示。
圖5 車牌識別結果Fig.5 Recognition results of license plate
本文對現(xiàn)有車牌識別算法進行改進,并針對嵌入式平臺進行優(yōu)化和移植,在嵌入式平臺上實現(xiàn)了汽車牌照號碼自動識別。本系統(tǒng)充分利用了嵌入式系統(tǒng)靈活性高等特性,經過簡單開發(fā),即可與其他管理系統(tǒng)進行通訊實現(xiàn)更多功能,如:駕駛人信息核對、盜牌偽牌查詢、電子車牌識別等。另外,本系統(tǒng)具有成本低、體積小、準確度高等優(yōu)點,可靈活應用于智能交通系統(tǒng)車牌識別環(huán)節(jié)。
[1]張洪斌,黃山.面向城市路口的高清晰智能監(jiān)控系統(tǒng)研究[J].四川大學學報:工程科學版,2012,44(S1):224-228.ZHANG Hong-bin,HUANG Shan.Research on the high definition intelligent surveillance system for urban intersection[J].Journal of Sichuan University:Engineering Science Edition,2012,44(S1):224-228.
[2]Meng Lu.Key Trends in Intelligent Transport Systems[C]//Proceedings of BIT's 3rd Low Carbon Earth Summit-2013.Xi-an Shanxi China:[s.n.],2013:146.
[3]劉永春.基于DSP和ARM的車牌識別系統(tǒng)設計[J].微型機與應用,2012,31(22):80-82.LIU Yong-chun.License plate recognition system design based on DSPand ARM[J].Microcomputer&Its Applications,2012,31(22):80-82.
[4]傅海東,解梅.嵌入式車牌識別系統(tǒng)的設計及實現(xiàn)[J].儀器儀表學報-2008-29(4):160-164.FU Hai-dong,XIE Mei.Design and realization of embedded license plate recognition system[J].Chinese Journal of Scientific Instrument,2008,29(4):160-164.
[5]張海寧,李彬,陳超波,等.基于OpenCV的車牌識別系統(tǒng)研究[J].工業(yè)儀表與自動化裝置,2012(6):78-80.ZHANG Hai-ning,LI Bin,CHEN Chao-bo,et al.The research of vehicle plate recognition system based on OpenCV[J].Industrial Instrumentation&Automation,2012(6):78-80.
[6]劉同焰.車牌識別系統(tǒng)的相關算法研究與實現(xiàn)[D].華南理工大學,2012.
[7]王璐.基于MATLAB的車牌識別系統(tǒng)研究[D].上海交通大學,2009.
[8]方萬元,梁久禎.復雜背景下快速車牌定位算法[J].計算機工程與應用,2012,48(2):160-163.FANG Wan-yuan,LIANG Jiu-zhen.Fast algorithm of license plate location under complex background[J].Computer Engineering and Applications,2012,48(2):160-163.
[9]陳建愷.基于視頻的嵌入式車牌識別系統(tǒng)的研究[D].合肥:中國科學技術大學,2009.