廖烈健 譚偉付 莫富超 方灝 余嘉誠(chéng) 韋現(xiàn)佑 廣西大學(xué)行健文理學(xué)院
1978年改革快開(kāi)放以后,中國(guó)的交通運(yùn)輸業(yè)發(fā)展非???。但伴隨著其發(fā)展,也出現(xiàn)了一系列問(wèn)題,如交通堵塞、交通事故。減輕我國(guó)交通壓力的關(guān)鍵就是建立智能化交通系統(tǒng),而智能交通是我國(guó)當(dāng)前交通管理發(fā)展的重要方向,而汽車車牌自動(dòng)識(shí)別技術(shù)在智能交通系統(tǒng)中發(fā)揮重要作用。智能車牌識(shí)別是智能交通的重要組成部分,已經(jīng)廣泛應(yīng)用在智能停車場(chǎng)、道路監(jiān)控等方面。而車牌識(shí)別系統(tǒng)使得車輛管理更加快捷和人性化,增加了便捷性并節(jié)省了人力和物力成本,同時(shí)也減輕了停車等待時(shí)間,緩解交通壓力。
本文的系統(tǒng)由硬件和程序軟件兩個(gè)部分組成 , 硬件部分主要是控制芯片和外圍設(shè)備組成,其功能是主要負(fù)責(zé)捕獲車輛的動(dòng)態(tài)視頻圖像,通過(guò)智能模塊轉(zhuǎn)化為靜態(tài)圖像并傳輸給控制芯片處理,并將獲得的結(jié)果圖像在液晶屏上。軟件部分主要是程序部分,用C語(yǔ)言來(lái)編程,完成對(duì)車牌的圖像處理,最終獲得到清晰的車牌字符并且與字符庫(kù)對(duì)比進(jìn)行匹配識(shí)別,最后傳給控制芯片進(jìn)行信號(hào)處理,然后在液晶上顯示。本文以STM32F103RCT6單片機(jī)為控制芯片,控制攝像頭模塊OV7670 去采集車牌的信息,在通過(guò)控制芯片處理后取得車牌的識(shí)別結(jié)果并在液晶屏上顯示。
本系統(tǒng)采用STM32F103RBT6 作為主控制器,STM32F103芯片內(nèi)部資源豐富、性價(jià)比高、功耗小,是非常適合嵌入式應(yīng)用開(kāi)發(fā)的32位MCU[3]。STM32F103的最小系統(tǒng)原理圖,包括供電電源電路,用戶可以控制程序重新運(yùn)行的手動(dòng)復(fù)位功能電路,為芯片提供外部時(shí)鐘源、系統(tǒng)采用外接 8MHZ 晶振作為時(shí)鐘的來(lái)源,在晶振的輸入電路以及輸出電路都加上電容實(shí)現(xiàn)晶振頻率平穩(wěn)。STM32 的程序下載方式主要可以分為兩種,一種是USB接口,另外一種是 JTAG 接口,該系統(tǒng)使用的是 SWD 接口下載的方式,只需要兩根控制線,下載程序方便電路簡(jiǎn)單。
圖像傳感器OV7670 是傳感器材料為 CMOS(互補(bǔ)金屬氧化物半導(dǎo)體)的、低成本的光感采集傳感器。該傳感器的長(zhǎng)處是小體積、低能耗等優(yōu)點(diǎn),具有單片 VGA 攝像和影像處理器的功能。經(jīng)過(guò)總線SCCB(Serial Camera Control Bus)管制,客戶能夠完全管制圖像質(zhì)量、數(shù)據(jù)類型和傳輸模式;OV7670運(yùn)用了許多先進(jìn)的圖像解決技術(shù),通過(guò)縮小或者減弱光學(xué)或電子缺陷如穩(wěn)定車牌信息的噪聲、托尾、浮散等,從而提高圖像質(zhì)量,獲得到清晰的穩(wěn)定的車牌圖像。
圖像模塊OV7670 通過(guò) SCCB 總線與 STM32 控制芯片進(jìn)行數(shù)據(jù)交換,使用 SCCB 來(lái)配置 OV7670 的寄存器來(lái)改變OV7670的輸出模式以及不同分辨率的8位或10位影像數(shù)據(jù)信息。當(dāng)外界光線照射到攝像頭的感光陣列后,感光陣列會(huì)將感知到的信號(hào)傳到模擬信號(hào)處理模塊,而后送到 AD 轉(zhuǎn)換器進(jìn)行模擬數(shù)字轉(zhuǎn)化--把模擬信號(hào)轉(zhuǎn)為數(shù)字信號(hào),再傳給STM32 處理器進(jìn)行進(jìn)一步的處理,最后將圖像數(shù)據(jù)經(jīng)過(guò)圖像縮放模塊按照用戶對(duì)攝像頭數(shù)據(jù)的配置參數(shù)進(jìn)行格式轉(zhuǎn)換后存放在FIFO 中,使用者能夠經(jīng)過(guò)視頻端口數(shù)據(jù)完成的讀取。
在車牌信息采集過(guò)程中,車牌圖像質(zhì)量受到環(huán)境中各種干擾因素(如太陽(yáng)、灰塵等)的影響。為了消除這些影響,這就要采取一種圖像預(yù)先處理技術(shù)。圖像預(yù)先處理技術(shù)就是先對(duì)圖像進(jìn)行一系列復(fù)雜的變換,進(jìn)而加強(qiáng)獲取有用的車牌信息,削弱無(wú)用的信息。根據(jù)有光的文獻(xiàn),變換通常有邊緣檢測(cè)、灰度變換和圖像二值化等。
圖像模塊OV7670 獲取圖像是彩色的,而圖像的顏色可能和車牌顏色的信息一樣,這樣的話就要占控制系統(tǒng)較大的內(nèi)存,導(dǎo)致系統(tǒng)運(yùn)行慢,效率低,所以咱們先灰度化處理車牌的圖像信息。但是在二線 RGB模型中,假定灰度值 gray=R=G=B, 那么彩色圖像就可轉(zhuǎn)化成灰色圖像。采用的主要方法有平均值法和權(quán)值加重法。平均值法:gray取 R、G、B三個(gè)的平均值,即gray=3R + G + B 。權(quán)值加重法:gray=rR+gG+bB。
邊緣檢測(cè)模塊就是整合了灰度的空間發(fā)生突變或者階躍變化的所有像素,所有物體、基元等同類之間都存在著圖像邊緣特征。整個(gè)車牌中車牌區(qū)域是邊緣比較集中部分,為了將車牌圖像信息的干擾做到最小,將圖像從含有干擾因素的環(huán)境中提取出來(lái),也同時(shí)為了車牌字符信息做到最大限度的保留,需要做邊緣檢測(cè),這也是提高圖像質(zhì)量的辦法邊緣檢測(cè)常用的算法有:梯度算法、Sobel算法、Rob-erts算法、Log算法、Canny算法、Robert Cross算法等。
圖像二值化就是把模擬信號(hào)轉(zhuǎn)為數(shù)字信號(hào),用0和1二進(jìn)制代碼來(lái)表示該模擬信號(hào),假設(shè)黑色為 0,白色為1。二值化圖像以后獲得的數(shù)字信號(hào),其數(shù)據(jù)量很小,控制芯片處理起來(lái)九相對(duì)簡(jiǎn)單,而且其效率較高。本文將車牌圖像中的車牌藍(lán)色找出來(lái)用1來(lái)表示,其他部分用0來(lái)表示。這樣處理過(guò)的車牌信息,有利于下個(gè)步驟車牌定位。
車牌圖像經(jīng)過(guò)預(yù)處理之后的獲得一個(gè)二值圖像(僅有黑和白兩種顏色),車牌區(qū)域設(shè)置成白色。下一步我們只需把藍(lán)色區(qū)域截取出來(lái)即可完成車牌定位。車牌定位通常采用水平投影和垂直投影的方法。利用提取車牌的邊角的方法來(lái)實(shí)現(xiàn),逐行逐列掃描整個(gè)車牌區(qū)域,滑動(dòng)搜索符合車牌區(qū)域的最值的點(diǎn),從而找出車牌區(qū)域左上角點(diǎn)和右下角點(diǎn)的橫縱坐標(biāo)。
車牌定位以后,我們就需要把整個(gè)車牌信息分割成為若干個(gè)單個(gè)字符,然后再對(duì)單個(gè)字符分別進(jìn)行匹配識(shí)別。該方法的原理是在字符間隙處,豎直方向的投影是局部最小值。并且可以根據(jù)字符寬度設(shè)置閾值范圍,分割完成后的字符一定滿足字符尺寸要求。
車牌字符識(shí)別原理就是先將分割出來(lái)的單個(gè)字符分別與設(shè)置好的模板庫(kù)中的字符來(lái)匹配,從而得到字符圖像,再利用算法把它轉(zhuǎn)為文本形式或進(jìn)行顯示字符識(shí)別。而識(shí)別的算法主要有模糊匹配算法和模式識(shí)別算法。但是與模式識(shí)別算法相比,模板匹配算法具有實(shí)現(xiàn)簡(jiǎn)單,抗干擾能力較強(qiáng)的特點(diǎn),因而本系統(tǒng)采用模糊匹配算法。
本文詳細(xì)地介紹了基于STM32F103RCT6 控制芯片的車牌識(shí)別系統(tǒng)的設(shè)計(jì),分析了車牌識(shí)別的圖像處理技術(shù),而且具體地介紹了對(duì)車牌識(shí)別的整個(gè)過(guò)程,最后并完成了相關(guān)軟件和硬件設(shè)計(jì)。通過(guò)實(shí)驗(yàn)驗(yàn)證,在周圍環(huán)境條件比較差的情況下也能較好的完成對(duì)車牌的識(shí)別。