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