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