王 乾,朱小娟
(沈陽工程學(xué)院 自動化學(xué)院,遼寧 沈陽 110136)
中國高速交通系統(tǒng)相對復(fù)雜,明確每一臺車輛的車牌信息至關(guān)重要,未來的交通系統(tǒng)也必然趨向于數(shù)字化和實時化。為了應(yīng)對交通系統(tǒng)不斷的發(fā)展,對車牌識別系統(tǒng)的需求也日漸提高。在牌照處理系統(tǒng)中,主要目標(biāo)是自動識別牌照并生成文字輸出,預(yù)期目標(biāo)是要求能自動識別給定的牌照信息。附加要求可以是復(fù)雜背景下的車輛牌照的準(zhǔn)確識別以及對最小可接受的識別成功率。該系統(tǒng)的圖片處理部分運(yùn)行在MATLAB平臺的強(qiáng)大計算能力基礎(chǔ)上,依托于MATLAB提供的Image Processing Toolbox(圖片處理工具箱)、Computer Vision System Toolbox(計算機(jī)視覺工具箱)以及Image Acquisition Toolbox(圖像采集工具箱)等工具提供的便利條件。車牌自動識別技術(shù)已經(jīng)得到了廣泛的應(yīng)用,例如高速路口、停車場、十字路口等場景,都有車牌識別技術(shù)的拓展和應(yīng)用。
如果想讓機(jī)器如人類一樣根據(jù)所看到的畫面或者圖像辨別出圖像的內(nèi)容的話,那么就要給這個機(jī)器一雙能觀察或者采集圖畫的眼睛,只有賦予了機(jī)器能看見周圍景物或者目標(biāo)的能力,才能進(jìn)行接下來的任務(wù),這就是整個機(jī)器視覺系統(tǒng)的工作流程,如圖1所示。機(jī)器視覺系統(tǒng)是模仿人類對物體的識別而開發(fā)的一種替代人類工作的自動化系統(tǒng),整個系統(tǒng)猶如人類的思維一樣需要運(yùn)行在硬件平臺上,還需要有如人眼一樣的硬件設(shè)備的配合才能完成整個任務(wù),所以該系統(tǒng)可以分為平臺和軟體兩個設(shè)計模塊。
本牌照辨別系統(tǒng)主要實現(xiàn)民用藍(lán)底的牌照辨別,另外在國內(nèi)還有黃底非民用車牌、120急救車牌、大型車輛雙行車牌、警用車輛的車牌。在設(shè)計程序時要考慮根據(jù)問題分析修改模塊參數(shù),以便應(yīng)對不同的平臺要求。
圖1 機(jī)器視覺系統(tǒng)工作流程
人類眼睛看到的圖像就是一幅幅由不同顏色組成的圖畫,而構(gòu)成各種顏色的基礎(chǔ)就是眾所周知的三基色或者三原色,即紅色(Red)、藍(lán)色(Blue)、綠色(Green)。對于只有黑白兩種顏色的照片來說,照片上每一個點的明暗程度可以用這個平面坐標(biāo)上的幅值來表示,而這一個點上的色彩就用數(shù)字來代替,這樣一張灰度圖像就用數(shù)學(xué)方法表示出來了。對于彩色圖像可以用一樣的方法,只不過要分成3個坐標(biāo)系來表達(dá):一號坐標(biāo)軸表示Green;二號坐標(biāo)軸表示Red;三號坐標(biāo)軸表示Blue。圖像實現(xiàn)數(shù)字化后得到的那一組數(shù)字能被看成是一個數(shù)組,假定轉(zhuǎn)換后得到的數(shù)組的大小為M行N列,那么也可以認(rèn)為這幅圖像的大小就是坐標(biāo)的值,其中M代表行數(shù)(從0到M-1),N代表列數(shù)(從0到N-1),公式(1)的右側(cè)表示的就是數(shù)學(xué)處理后得到的畫面。組成這個數(shù)組的各個數(shù)字都稱為pixel。所以,在MATLAB中就可以用矩陣來描述一幅圖片[1],如下式:
在MATLAB中,MATLAB照片收集模塊的IAT收集了許多拓展MATLAB功能,允許各種照片獲取裝置,例如專業(yè)的圖像采集卡以及基于USB的網(wǎng)絡(luò)攝像機(jī)。
在MATLAB中可以利用MATLAB提供的函數(shù)imaqhwinfo查詢MATLAB的版本信息、圖像捕獲工具箱的版本和已經(jīng)安裝的捕獲設(shè)備(Adaptors)。當(dāng)然,還能夠使用MATLAB預(yù)置的程式來獲取各種照片所包含的信息。
如果想要對灰度圖片進(jìn)行操作的話,函數(shù)imadjust是一個相當(dāng)有用的工具,該程式的常用語句形式為
直方圖作為一個強(qiáng)大的工具在圖片變換的時候能夠直觀的觀察圖片的信息,比如全局對比度等。一張比較暗淡的照片的直方圖包含扎堆在較少灰度端的直方條,而一張比較明亮的圖片的直方圖則包含扎堆在較大灰度端的直方條。對于低對比度的照片的直方圖主要聚焦在一個灰度級比較小的范圍中,而高對比度的照片,直方圖常常會顯示出來兩個最大值。直方圖已經(jīng)成為傳遞圖像統(tǒng)計信息和確定圖像中某些問題的一種通用工具,它的用途可用一個實時直方圖重疊在視窗上避免拍攝到曝光不足和曝光過度的照片這一例子來證明。直方圖可以在任何希望對一幅圖像或者一段視頻有一個統(tǒng)計表達(dá)時使用,直方圖還可以用于增強(qiáng)或者改變一幅圖像的特性,特別是照片的對比度,其中有一些技術(shù),例如直方圖拉伸以及收縮,一般稱之為直方圖修改技術(shù)[3]。
處理后的灰度圖和其直方圖,其調(diào)用程式如下:
為了使牌照的區(qū)域明顯區(qū)別于車身以及環(huán)境,以便于進(jìn)行邊界的查找,需要對素材的對比度進(jìn)行加大。盡管直方圖攜帶了對應(yīng)圖像的顯著特征和定量信息,例如最小、平均和最大灰度值,起主導(dǎo)作用的亮或暗像素等,但其他定性的結(jié)論,例如圖像的整體質(zhì)量、噪聲存在與否等,還需要檢測圖像本身才可以;另外,盡管直方圖顯示了圖像中灰度分布的頻率,但并沒有顯示出直方圖中素材的像素的排列情況,增強(qiáng)后的照片如圖2所示。
圖2 增強(qiáng)后的灰度圖像及其直方圖
圖形邊緣查找是機(jī)器視覺系統(tǒng)的基礎(chǔ)操作,邊緣查找的主要目標(biāo)為通過標(biāo)識數(shù)字圖像中亮度改變突出的地方來捕捉照片信息中的突出改變,比如深淺上的間斷點、平面空間的間斷點、物體本身更改和環(huán)境變換。邊緣檢測分為兩階:一階分為Sobel算子、Roberts Cross算子、Prewitt算子、Canny算子、羅盤算子;二階包括Sand。
使用函數(shù)edge檢測邊緣,假設(shè)它的梯度定義為一個向量,然后對這個函數(shù)進(jìn)行一階求導(dǎo)得到這個向量的幅值[4],如式(2):
幅值可以簡化近似表示,所以梯度單元查找邊界就是對圖片進(jìn)行求導(dǎo),然后找出梯度值變化最大的地方就是邊界的位置。Sobel邊界查找器的原理是利用imfilter和模板對照片濾波,然后再利用其他的模板對照片實現(xiàn)濾波,對每一幅濾波后的照片的像素值進(jìn)行原值相乘,將這兩個值求和,最后求取求和后的平方根。Sobel邊沿檢測器主要對灰度變化緩慢的地方和噪點較大的照片處理能力較強(qiáng)。索貝爾邊界檢測使用程式段為[5]
索貝爾邊界檢測如圖3所示。
圖3 索貝爾邊界檢測
依托于MATLAB提供的Image Processing Toolbox(圖片處理工具箱)、Computer Vision System Toolbox(計算機(jī)視覺工具箱)以及Image Acquisition Toolbox(圖像采集工具箱)等工具得出車牌識別結(jié)果如圖4所示。
圖4 車牌識別結(jié)果
其處理程序如下:
視覺識別系統(tǒng)的設(shè)計是從實際問題的提出并對該問題領(lǐng)域可能涉及到的技術(shù)問題和實際應(yīng)用場景的分析到最終系統(tǒng)成功運(yùn)行,通過實際的操作和對實驗數(shù)據(jù)的分析,可以看出系統(tǒng)在一定意義上已經(jīng)取得了成功,但距離實際應(yīng)用還是存在一定的差距。另外,面對稍微復(fù)雜的應(yīng)用場景以及易于混淆的圖像,機(jī)器視覺系統(tǒng)需要大量的相似的樣本庫來對它進(jìn)行反復(fù)訓(xùn)練,但由于Back Propagation Neural NetWorks訓(xùn)練速度很慢[6],這樣就會耗去大量的時間。所以,系統(tǒng)要應(yīng)用于商業(yè)場合還需要大量的實際數(shù)據(jù)對參數(shù)進(jìn)行修正。樣本庫越大,所訓(xùn)練的網(wǎng)絡(luò)識別精準(zhǔn)率越高,所以還要對樣本庫進(jìn)行不斷的完善。