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