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