文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2014)11-0032-04
0 引言
車輛牌照圖像識別是計算機(jī)智能化的關(guān)鍵技術(shù)之一,,涉及到模式識別、圖像處理,、人工智能,、信息論、計算機(jī)等多個學(xué)科,,有著極其廣泛的實際應(yīng)用價值[1],。
車牌識別系統(tǒng)主要由數(shù)據(jù)采集系統(tǒng)和軟件識別系統(tǒng)兩個主要部分組成,由于車牌清晰程度,、攝像機(jī)性能,、氣候條件等因素的影響,牌照上面的字符可能出現(xiàn)不清楚,、扭曲,、缺損或污跡干擾,這都給識別造成一定難度[2],。因此,,在復(fù)雜背景中快速、準(zhǔn)確地進(jìn)行車牌定位成為車牌識別系統(tǒng)的難點,。
本文設(shè)計了一種智能車牌識別系統(tǒng),,系統(tǒng)采用FPGA平臺,相對于單片機(jī),、CPLD為核心的平臺提高了系統(tǒng)的集成度,,大大節(jié)約了系統(tǒng)面積,降低了成本,,提高了系統(tǒng)識別速度和效率,,具有便攜性好、易于維護(hù)等優(yōu)點,。
1 系統(tǒng)總體架構(gòu)
系統(tǒng)采用CMOS攝像頭為前端圖像采集器件,,用以采集車牌圖像信息,以Altera FPGA作為系統(tǒng)核心完成CMOS攝像頭初始化,,圖像采集和處理,、圖像定位以及圖像識別等任務(wù)。系統(tǒng)整體結(jié)構(gòu)如圖1所示,。圖中SDRAM用于存儲OV7670采集的圖像數(shù)據(jù),,SRAM用于識別部分緩存一幀采集得到的圖像數(shù)據(jù),便于Nios II處理器處理數(shù)據(jù),。而EPCS16則用于存放FPGA的配置數(shù)據(jù),。
2 系統(tǒng)硬件設(shè)計
系統(tǒng)FPGA硬件設(shè)計部分如圖2所示, 通過SCCB編程接口初始化OV7670 CMOS攝像頭,由OV7670數(shù)據(jù)采集模塊實時采集攝像頭采集的數(shù)據(jù),,并將數(shù)據(jù)緩存在一片深度為512×8 bit的FIFO中,,待FIFO存儲滿,由SDRAM 控制模塊將數(shù)據(jù)發(fā)送到SDRAM存儲,。SDRAM 存儲空間為640×480 B,。同時,SDRAM等待VGA控制模塊的讀請求信號,,從而將數(shù)據(jù)輸送到另一片同樣大小的FIFO中進(jìn)行緩存,,以備VGA控制模塊讀取。VGA控制器按照標(biāo)準(zhǔn)640×480@60 Hz時序?qū)D像數(shù)據(jù)輸出,。圖像處理模塊接收VGA數(shù)據(jù)并通過對圖像進(jìn)行車牌粗定位,、圖像灰度化、中值濾波,、Sobel算子邊沿檢測,、圖像二值化、車牌精定位等算法,,實現(xiàn)對車牌的定位,。同時,SOPC系統(tǒng)Nios II軟核處理器也采集VGA控制模塊的數(shù)據(jù)并緩存于SRAM中,,從而實現(xiàn)對圖像字符的分割,、識別,并通過JTAG將識別結(jié)果反饋到控制臺,。
2.1 MATLAB算法驗證
中國國內(nèi)車牌大多數(shù)以藍(lán)底白字為主,,大小為440 mm×140 mm。車牌粗定位即利用車牌特有的藍(lán)色背景為前提,,通過將RGB圖像轉(zhuǎn)化為HSV制式的圖像,。根據(jù)深藍(lán)色在HSV顏色空間中分布在V=0.4、S=1,、H=240度處,,淡藍(lán)色分布在V=1、S=0.4,、H=240度處[3]。通過掃描H,、S,、V分量,從而實現(xiàn)分離圖像藍(lán)色成分,,即可實現(xiàn)車牌的粗定位,。
圖像灰度化:將粗定位后的彩色車牌圖像灰度化,以減少圖像數(shù)據(jù)的存儲量,,便于圖像的存儲及后續(xù)對圖像的處理,。圖像灰度化后的車牌圖像如圖3所示,。
在FPGA中實現(xiàn)中值濾波,出于實際處理速度,、處理效果和器件資源考慮,,本系統(tǒng)選用3×3鄰域窗口。這種方法比傳統(tǒng)的冒泡排序法減少了邏輯資源的占用,,卻和其一樣能找出中值,,且只需經(jīng)過3級的比較(即3個時鐘周期的延時)就可以找出中值[4]。
系統(tǒng)采用Altera公司的DSP builder來完成該濾波器的設(shè)計,。利用Verilog硬件描述語言,,描述一個8位的3輸入比較器,其功能可將輸入的3個8位寬數(shù)據(jù)進(jìn)行排序,,分別以最大值,、中值、最小值的形式輸出,。
系統(tǒng)中圖像邊沿檢測模塊,,采用的是Sobel算子,實現(xiàn)3×3領(lǐng)域像素的圖像邊沿檢測,。該算子是在以F(x,,y)為中心的3×3鄰域上計算x和y方向的偏導(dǎo)數(shù),是一種將方向差運算與局部平均相結(jié)合的方法[5],。其邊緣檢測算子的卷積算子如圖4所示,。
系統(tǒng)采用3個深度為640的FIFO對數(shù)據(jù)進(jìn)行緩存,在進(jìn)行邊沿檢測時,,以便于實時操作采集圖像3行之內(nèi)的數(shù)據(jù),,從而使得能夠同時讀取到圖像3×3領(lǐng)域的像素值,以達(dá)到能夠進(jìn)行圖像邊沿檢測算法的條件,。通過設(shè)置灰度化后的像素閾值,,從而實現(xiàn)圖像的二值化,為后續(xù)的圖像處理進(jìn)一步減少存儲容量,,以利于后續(xù)的定位識別處理及存儲,。車牌圖像二值化后的圖像如圖5所示。
在車牌定位部分的車牌精定位模塊,,采用圖像在水平方向和垂直方向上進(jìn)行投影的方法來實現(xiàn)車牌的精確定位,。通過緩存的粗定位后的圖像數(shù)據(jù),實時掃描采集圖像的兩行與兩列,,對每行每列像素點1的個數(shù)進(jìn)行統(tǒng)計,,并計算相鄰兩行、兩列的差值。通過利用車牌形態(tài)學(xué)特征,,設(shè)定差值的閾值,,從而可判斷出車牌的準(zhǔn)確長度與寬度[6],并通過設(shè)置長度與寬度的比例,,進(jìn)一步增強(qiáng)車牌定位的準(zhǔn)確性,。車牌精定位后的圖像如圖6所示。
2.2 FPGA硬件實現(xiàn)
FPGA硬件實現(xiàn)上,,采用兩片深度為512 bit的8位寬FIFO作為數(shù)據(jù)輸入與輸出緩存,,圖像數(shù)據(jù)采集模塊將數(shù)據(jù)采集到寫FIFO中,待FIFO寫滿,,SDRAM控制器便將數(shù)據(jù)全部讀出,,并寫入SDRAM,SDRAM的存儲地址設(shè)定為640×480個,。在圖像處理算法模塊部分的中值濾波模塊,,采用兩個640像素的FIFO對前兩行內(nèi)數(shù)據(jù)進(jìn)行緩存,通過7個3輸入比較器對數(shù)據(jù)進(jìn)行排序,,取得其中值,,該值即為此3×3領(lǐng)域中心的像素值[7]。該方法很好地濾除了圖像高頻噪聲信號,。中值濾波硬件結(jié)構(gòu)圖如圖7所示,。
在圖像邊沿檢測模塊,采用3個640×8 bit的線性FIFO緩存對3行內(nèi)的數(shù)據(jù)進(jìn)行緩存,,同時采用9個乘法器對這3行內(nèi)的3×3領(lǐng)域的各個像素進(jìn)行加權(quán),,然后通過4個加法器求和,得到該3×3領(lǐng)域中心像素值,。依次對整幅圖像進(jìn)行處理,,從而實現(xiàn)圖像的邊沿檢測。其Sobel邊沿檢測硬件結(jié)構(gòu)圖如圖8所示,。
在圖像的二值化模塊,,通過采用一個比較器,對灰度化后的圖像數(shù)據(jù)設(shè)定一個比較閾值,,從而實現(xiàn)灰度圖像的二值化,。在圖像的精定位模塊,同時緩存圖像粗定位后的兩行兩列數(shù)據(jù),,分別統(tǒng)計兩行兩列數(shù)據(jù)中的像素1的個數(shù),,同時設(shè)定閾值范圍,判斷得到圖像精定位的上下左右邊界值[8],。然后通過設(shè)定圖像邊界長度與寬度的比例,從而精確地實現(xiàn)車牌的定位。
3 系統(tǒng)軟件設(shè)計
為更加靈活地實現(xiàn)車牌識別的功能,,本設(shè)計采用Altera的32位處理器Nios II軟核對圖像數(shù)據(jù)進(jìn)行進(jìn)一步的分割識別處理,。
圖像數(shù)據(jù)由數(shù)據(jù)輸入端口輸入,經(jīng)三態(tài)橋緩存于SRAM中,,待Nios II處理器處理,。按鍵PIO實現(xiàn)開始一幀圖像處理的控制,控制車牌識別結(jié)果的輸出,。片上存儲器OnchipMemory以及EPCS控制器用以實現(xiàn)Nios II 軟核的正常運行,。
在對車牌進(jìn)行定位后,考慮到車牌字符的排放特點與字符間的微小間隙,,采用垂直灰度法進(jìn)行車牌字符的分割,。字符識別部分采用的是模板匹配的方法。我國的車牌,,字符標(biāo)志的首位為漢字的省名縮寫,,次位為英文字母,再次位為英文字母或阿拉伯?dāng)?shù)字,,末4位均為數(shù)字,。由于實際可能出現(xiàn)的英文字母和數(shù)字字符數(shù)目不多,再基于Nios II軟核的運算能力考慮,,采用模板匹配方法進(jìn)行字符識別,。即將待識別的車牌字符矩陣與庫內(nèi)的標(biāo)準(zhǔn)字符矩陣對比,相似度最大的則認(rèn)為一致[9],。
當(dāng)車牌上的待識別字符歸一化以后,,依次與標(biāo)準(zhǔn)庫中的模板進(jìn)行匹配,即矩陣對應(yīng)位依次做差,,分別計算總的相同像素個數(shù),,則有最大相同數(shù)目的那一組數(shù)認(rèn)為是相似度最大,用此時的標(biāo)準(zhǔn)模板所對應(yīng)的數(shù)字或字母作為最終識別的結(jié)果,。
4 測試分析及結(jié)論
系統(tǒng)測試根據(jù)對不同天氣,、拍攝角度、拍攝距離,、車牌完整性等因素給出了綜合測試與分析,。測試結(jié)果顯示在極端環(huán)境下,圖像的對比度較低,,識別率不高,,一般情況下圖像對比度較強(qiáng),識別率較高,。整體測試顯示,,本系統(tǒng)在較為理想的環(huán)境下,,識別率可達(dá)到94%,白天識別率可達(dá)到98%,;平均識別時間約為0.05 s,。相比參考文獻(xiàn)[9],其平均識別率提高了3%,,識別速度提高了50%,。
設(shè)計通過了Altera FPGA平臺EP2C35實際板級驗證測試,順利地實現(xiàn)了對所采集的車牌圖像進(jìn)行車牌的定位與識別,,其識別效果如圖9所示,,并從控制臺得到了來自JTAG的車牌識別結(jié)果。由設(shè)計的整體資源消耗報告分析可知,,其占用的FPGA內(nèi)部邏輯資源相對較少,。驗證測試結(jié)果表明,該設(shè)計實現(xiàn)了小面積高速智能車牌的定位與識別,。
參考文獻(xiàn)
[1] 遲鐵軍,,高鵬.國外智能交通系統(tǒng)發(fā)展?fàn)顩r分析及對我
國的啟示[J].黑龍江交通科技,2009,,32(2):111-114.
[2] Jia Wenjing,,Zhang Huaifeng,He Xiangjian.Region-based
license plate detection[J].Journal of Network and Computer
Applications,,2007,,30(4):1324-1333.
[3] Wang Feng,Man Lichun,,Wang Bangping,,et al.Fuzzy-based algorithm for color recognition of license plates[J].Pattern Recognition Letters,2008,,29(7):1007-1020.
[4] 張玲,,劉勇,何偉.自適應(yīng)遺傳算法在車牌定位中的應(yīng)用[J].計算機(jī)應(yīng)用,,2008,,28(1):184-186.
[5] 譚熙,黃樟燦.基于自適應(yīng)性的車牌定位新方法[J].計算機(jī)技術(shù)與自動化,,2008,,27(3):73-77.
[6] 謝劍斌,劉通,,文特,,等.基于多特征和加權(quán)模式相似性測度的車牌字符識別方法[J].計算機(jī)工程與科學(xué),2008,,30(8):36-38.
[7] CHANG S L,,CHEN L S,,CHUNG Y,et al.Automatic license plate recognition[J].IEEE Transactions on IntelligentTransportation Systems,,2006,,5(1):42-52.
[8] 梅林,劉鋒.基于邊緣檢測與垂直投影相結(jié)合的車牌定位方法[J].甘肅科技,,2009,25(3):16-17.
[9] 李姍姍,,劉純.基于FPGA車牌識別系統(tǒng)的設(shè)計與實現(xiàn)[J].軟件,,2012,33(3):72-74.