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