汽車車牌定位識別系統(tǒng)的設(shè)計實現(xiàn)
2.1項目背景及技術(shù)難點
本文引用地址:http://www.biyoush.com/article/201612/330139.htm項目名稱:智能交通:汽車車牌定位識別;
項目內(nèi)容:本項目是在FPGA前端實時完成圖像采集、預(yù)處理、車牌定位和字符分割以及數(shù)據(jù)傳輸工作,在后端完成車牌字符識別工作。FPGA接收采集的實時圖像,在內(nèi)部采用流水線方式依次完成圖像預(yù)處理、車牌定位和車牌字符分割工作,最后通過高速USB端口將已分割字符傳輸?shù)胶蠖诉M行字符識別。其中,圖像采集和數(shù)據(jù)傳輸是通過EDK內(nèi)嵌的MicroBlaze內(nèi)核控制實現(xiàn)的,這簡化了FPGA內(nèi)部控制電路;而FPGA內(nèi)部信號處理電路采用的流水線方式,大大提高了系統(tǒng)實時處理視頻幀的能力。
技術(shù)難點:(1)車牌自身特征的多樣性及外界環(huán)境的不確定性導(dǎo)致的定位識別不準(zhǔn)確;(2)圖像處理算法的較高計算復(fù)雜度導(dǎo)致的實時性不滿足。
2.2關(guān)鍵技術(shù)及創(chuàng)新點
算法:采用了一種基于邊緣檢測和區(qū)域搜索的車牌定位算法,該算法直觀且運算量小,利于硬件實現(xiàn);
電路實現(xiàn):FPGA內(nèi)部采用流水線方式依次完成圖像處理、車牌定位和字符分割三部分工作,極大地提高了對視頻流的實時處理能力;
嵌入式控制:采用Xilinx EDK內(nèi)嵌的MicroBlaze軟核控制完成圖像采集和數(shù)據(jù)傳輸工作,簡化了FPGA內(nèi)部的控制電路。
2.3性能指標(biāo)及可行性分析
設(shè)定的性能指標(biāo):我國電視視頻標(biāo)準(zhǔn)采用PAL制,其幀頻為 25,因此設(shè)定本系統(tǒng)所需達到的處理速度為25幀/秒,并可以將字符分割信息通過USB端口上傳至PC機或其它設(shè)備。
可行性分析:本方案已經(jīng)過MATLAB仿真,結(jié)果表明可以有效進行車牌的定位、分割和識別。在保證車牌識別效果的前提下,通過對算法結(jié)構(gòu)進行改進,結(jié)合流水線方式的FPGA實現(xiàn),可以達到實時性要求。另外,本小組成員均有豐富的FPGA設(shè)計功底和扎實的信號處理理論知識,有能力保證順利完成交付該項目。
二、軟件設(shè)計方案概述
汽車車牌識別系統(tǒng)一般分為三個部分,即車牌區(qū)域定位、車牌字符分割和車牌字符識別。為了突出圖像的有用特征,通常在車牌定位之前需要對所拍攝圖像進行預(yù)處理,以達到更好的定位效果。圖3—1為本項目所設(shè)計軟件方案流程圖,其中車牌區(qū)域定位部分設(shè)計采用了一種基于邊緣檢測和區(qū)域搜索的車牌定位分割算法,其仿真結(jié)果見附錄。
圖3—1 軟件設(shè)計方案流程圖
3.1 圖像預(yù)處理
在車牌定位之前對攝像機所拍攝圖像進行預(yù)處理,是指突出圖像中的有用信息,抑制可能對后續(xù)步驟產(chǎn)生不利影響的無效信息,以達到減小運算復(fù)雜度、提高識別效果的目的。圖像預(yù)處理主要包括圖像灰度化、去噪和灰度拉伸三部分。
3.1.1 RGB2Gray
攝像機所拍攝的圖像一般為RGB彩色圖像,每個像素包括R、G、B三種顏色分量,每個顏色分量用8 bit表示,即24 bit表示一個像素。而灰度圖像是指只包含亮度分量的圖像,每個像素用8 bit表示,亮度值量化為256級。對于車牌識別,灰度圖像足以滿足要求,且相對于RGB圖像具有計算復(fù)雜度低、所需存儲空間小的優(yōu)點。因此,可以把RGB彩色圖像轉(zhuǎn)換為灰度圖像,計算公式為Gray = 0.299R + 0.587G + 0.114B。
3.1.2 圖像去噪
圖像的能量主要集中在低頻部分,高頻部分多為邊緣信息,而噪聲一般也集中在高頻部分,因此需要對圖像進行去噪,以使得車牌定位中進行邊緣檢測時得到更好的效果。中值濾波是一種非線性圖像處理方法,它將一個窗口內(nèi)所有像素排序后的中間值代替窗口中心的像素值,能夠在去除噪聲的同時有效保護圖像邊緣,因此本方案中選用中值濾波方法進行去噪。
3.1.3 灰度拉伸
為了增強車輛圖像和牌照圖像的對比度,有利于牌照定位和識別,需對去噪后的圖像進行灰度拉伸?;叶壤焓侵笇⑤斎雸D像中某點 的灰度 ,通過分段映射關(guān)系T,映射成灰度 后輸出,即 。
3.2 車牌定位
車牌定位是指從圖像中正確的識別分割出車牌區(qū)域,其基本原理是根據(jù)目標(biāo)與背景的先驗知識,對圖像中的車牌區(qū)域進行標(biāo)記定位,并完成有效分割。圖像中車牌區(qū)域具有明顯的紋理特征,含有豐富的邊緣信息,如果對整幅圖象進行邊緣檢測處理,則車牌區(qū)域相對于其他非車牌區(qū)域含有更多的細(xì)節(jié)邊緣信息。因此,本方案中選用了一種基于邊緣檢測和區(qū)域搜索的車牌定位分割算法,該方法直觀且運算復(fù)雜度較低,利于硬件實現(xiàn)。
3.2.1 Sobel邊緣檢測
邊緣檢測的實質(zhì)是采用某種算法來提取出圖像中對象與背景間的交界線,一般包括濾波、圖像增強、檢測和定位四部分。Sobel邊緣檢測是指將Sobel算子與給定圖象進行模板卷積,然后分析卷積結(jié)果圖象中各邊緣點的變化方向,并求取圖象的局部最大值點作為邊緣輸出,這樣即可獲得圖像的邊緣信息。相對于一般的簡單卷積并閾值化處理方法,Sobel邊緣檢測能夠減少雜亂信息,抑制噪聲,更好地突現(xiàn)車牌區(qū)域的紋理特征,而且其計算復(fù)雜度較低,硬件實現(xiàn)難度較小,因此我們選用Sobel邊緣檢測提取圖像邊緣信息。
3.2.2 車牌區(qū)域搜索
車牌區(qū)域存在相對連續(xù)的多次灰度跳變,且兩次跳變間距在一定范圍之內(nèi),而非車牌區(qū)域則一般不具有這個特征。根據(jù)這種特征,我們采用行掃描和列掃描的方式來分別搜索確定車牌區(qū)域的上下邊界和左右邊界。
行掃描確定上下邊界是指從左往右、從上而下對每行像素進行掃描檢索,若遇到跳變點則計數(shù)加1,若某行中跳變數(shù)大于閾值M,則認(rèn)為是可能的拍照區(qū)域,并設(shè)其為下邊界;若跳變數(shù)大于M的行數(shù)超過閾值N,則認(rèn)為時真實牌照區(qū)域,并把最后一行設(shè)為上邊界,否則,行計數(shù)歸0并重新尋找牌照下邊界。
列掃描確定左右邊界是指對已確定上下邊界的車牌區(qū)域從左往右搜尋左邊起始點、從右往左搜尋右邊起始點,遇到第一個跳變點即停止并記錄,然后跳轉(zhuǎn)到下一行。這樣既可獲得車牌區(qū)域的左右邊界。
3.2.3 候選車牌區(qū)域判定
通過上述方法搜索得到的候選區(qū)域可能不止一個,因此需要對它們進行判別來確定真正的車牌區(qū)域。車牌區(qū)域的判定標(biāo)準(zhǔn)包括車牌尺寸大小和長寬比例、像素分布關(guān)系、二值化投影是否為波峰-波谷分布等,由于車牌尺寸為已知條件,所以本方案中采用尺寸大小和長寬比例作為判定標(biāo)準(zhǔn)來確定真正的車牌區(qū)域。
3.3 車牌字符分割
由于牌照圖像很有可能出現(xiàn)向左或者向右的傾斜,且任何一種傾斜都會影響牌照字符的劃分,所以需要對搜索出來的車牌區(qū)域進行預(yù)處理,以達到更好的字符分割識別效果。
3.3.1 車牌區(qū)域預(yù)處理
車牌區(qū)域預(yù)處理一般包括二值化、幾何變換等步驟,其效果的好壞將直接影響后續(xù)的字符分割識別工作。牌照區(qū)域由前景字符和背景色組成,二值化即相當(dāng)于確定合適的閾值分離字符和背景,這樣可以大大減小后續(xù)工作的計算復(fù)雜度;幾何變換是指通過對車牌圖像進行縮放、旋轉(zhuǎn)、平移等,矯正車牌的形變及傾斜,達到增大字符分割、識別率的目的。
3.3.2 字符分割
字符分割是指把車牌區(qū)域圖象分割成單個字符圖像,它屬于圖象分割問題。字符分割是是特征提取和模式匹配的前提,并直接關(guān)系到后續(xù)的字符識別效果,因此字符分割是車牌識別中關(guān)鍵的一步。本方案選用一種新的字符分割方法,即輪廓特征與垂直投影聯(lián)合分割法,其基本原理如下:字符之間的分界處往往是投影比較少的地方,分割點處的投影接近零或者為零,因此可以利用這種特點進行粗略的分割得到第一組分割點,然后從左到右從上到下、從下到上依次對每列進行掃描獲得字符的上輪廓和下輪廓,分割點在上輪廓曲線上表現(xiàn)為波谷,在下輪廓曲線上表現(xiàn)為波峰,最后根據(jù)三組分割點的相對位置確定真正的分割點。相對于一般的垂直投影法,該方法能夠很好地解決車牌字符圖像的輕度污染導(dǎo)致的字符粘連問題。
3.4 車牌字符識別
本方案中采用模板匹配法進行字符識別,其基本原理是先對字符分割后的二值化圖像縮放到字符數(shù)據(jù)庫中模板的大小,然后與所有模板進行匹配,最后選取最佳匹配作為結(jié)果。
三、硬件設(shè)計方案概述
4.1FPGA設(shè)計總體方案及模塊分析
圖4—1為本項目硬件原理框圖。CCD攝像頭采集的視頻圖像輸入視頻解碼芯片,經(jīng)過視頻解碼轉(zhuǎn)換成數(shù)字信號存入FPGA的Block RAM中;FPGA芯片內(nèi)部電路依次完成圖像預(yù)處理、車牌定位和車牌字符分割三個功能,三部分采用流水線方式實現(xiàn),這將大大提高圖像的處理效率;最后將分割出來的車牌字符通過高速USB端口傳入后端,進行后續(xù)的字符識別。其中,視頻解碼芯片及USB數(shù)據(jù)傳輸?shù)目刂剖峭ㄟ^FPGA內(nèi)部Microblaze軟核來實現(xiàn)的。
圖4—1 系統(tǒng)硬件框圖
4.1.1 圖像采集模塊
本系統(tǒng)圖像采集模塊包括PAL制CCD攝像頭和飛利浦公司的SAA7113視頻解碼芯片,通過MicroBlaze軟核控制視頻解碼芯片,將拍攝的模擬視頻信號轉(zhuǎn)換成數(shù)字信號。SAA7113將解碼、采樣和量化集成于一體,支持隔行掃描和多種數(shù)據(jù)輸出格式,并內(nèi)置了A/D轉(zhuǎn)換電路、預(yù)處理電路及I2C接口,通過I2C接口對內(nèi)部寄存器進行配置,即可實現(xiàn)對芯片內(nèi)部電路的控制。
4.1.2 RGB2Gray模塊
圖4—2 RGB2Gray硬件框圖
圖像采集模塊輸出的RGB彩色圖像轉(zhuǎn)換成灰度圖像的硬件框圖如圖4—2所示,該模塊由三個乘法器和一個加法器組成,其中權(quán)重小數(shù)在FPGA中采用XQN格式定點數(shù)表示。
4.1.3 圖像去噪模塊
本方案中圖像去噪模塊是通過對圖像進行中值濾波實現(xiàn)的,圖4—4為其硬件框圖。圖4—3為一個3×3的濾波模板,不同的模板即可得到不同的濾波效果。如圖4—4所示,采用移位寄存器對圖像數(shù)據(jù)緩存輸出,將圖像數(shù)據(jù)和模板進行并行一維卷積即可得到三個卷積結(jié)果,輸入加法器即可得到濾波結(jié)果,其中buffer的大小為圖像的列數(shù)。
評論