高永勛 任德均 嚴扎杰 陳儒俠
(四川大學 制造科學與工程學院 成都610065)
車牌識別系統(tǒng) LPR(License Plate Recognition)作為城市智能交通系統(tǒng)不可或缺的一部分,在城市交通和停車場等項目的管理中占有極其重要的地位。它可以在不影響汽車行使狀態(tài)的情況下,由計算機自動的完成車牌的識別,從而降低城市交通管理工作的困難程度。
HALCON 是一個用來開發(fā)機器視覺應(yīng)用軟件的工具箱。它擁有一個特別良好的交互式編程環(huán)境,在快速開發(fā)圖像視覺處理技術(shù)的應(yīng)用軟件方面具有很好的優(yōu)勢。軟件本身有很多個不僅使用簡單而且功能強大的運算子,此外,這些運算子還可以組合使用,發(fā)揮出更強大的功能,讓軟件設(shè)計者抽身脫離繁瑣的程序。本研究正是采用HALCON作為系統(tǒng)軟件的核心處理模塊,將機器視覺檢測技術(shù)應(yīng)用于車輛牌照的檢測,實現(xiàn)車牌號碼快速、高效的識別和檢測。
基于Halcon的車牌識別流程如圖1所示,在自然環(huán)境下使用工業(yè)相機采集到車牌信息圖像之后,首先對原始圖像進行預處理,主要是為了抑制或者衰減圖像中的無關(guān)信息,恢復有用的真實信息,增強相關(guān)信息的檢測性。之后運用Blob分析算法完成預處理圖像的字符分割,之所以采用Blob工具,是因為Blob分析算法是對圖像的“行”操作,可以加快圖像的處理速度。完成字符分割之后,使用Halcon自帶的OCR分類器完成字符識別并顯示結(jié)果。
圖1 基于Halcon的車牌識別系統(tǒng)
在HALCON軟件中可使用算子read_image從本地硬盤加載已采集好的車牌圖像,并且HALCON支持BMP、PNG、JPEG等多種格式圖像。而在目前市場實際車牌識別系統(tǒng)中,是借助于工業(yè)相機,在工業(yè)光源的照明條件下,通過外觸發(fā)工業(yè)相機,直接拍照采集獲取彩色的車牌圖像。在本次實驗中,為了方便,采用了前者來獲取原圖像,如圖2所示。
圖2 原圖像
在實際的車牌識別系統(tǒng)中,往往有很多因素影響采集到的圖像質(zhì)量,如光源強度的波動、環(huán)境空氣中的顆粒、工業(yè)相機的拍攝延遲、系統(tǒng)機械結(jié)構(gòu)的震動和傳輸信號的干擾等,通常獲取到的原始數(shù)字圖像質(zhì)量不是非常高,夾雜著多種多樣的噪聲,嚴重的甚至遮擋目標信息造成缺陷,所以必須在字符區(qū)域的提取、字符分割和字符識別之前對原始圖像進行一些列的圖像預處理操作,以改善車牌圖像的視覺效果,并且可以加大車牌區(qū)域和背景區(qū)域的區(qū)分度[1]。
圖像的預處理方式有很多,需要結(jié)合我國小型汽車牌照的特點采取特定的預處理方式。其中,常見的有轉(zhuǎn)換為灰度圖像、RGB圖像、HSV圖像、灰度閾值和去噪聲等。根據(jù)我國小型汽車車牌的特點:車牌為矩形;車牌內(nèi)的7個字符水平排列;牌照為藍底白字;字符顏色與牌照底色之間具有明顯差別;車牌內(nèi)存在豐富的邊緣信息[2]。結(jié)合以上特征,應(yīng)預先估算出車牌字符在圖像中的檢測區(qū)域,然后由算法在估算的區(qū)域中進行精確搜索,獲得字符的準確位置[3]。先對彩色的工業(yè)相機拍攝采集的圖像進行降維處理,因為彩色信息在之后的圖像處理以及字符識別過程中是無用信息,因此圖像處理第一步就需要對圖像彩色信息進行剔除。結(jié)合RGB三原色以及牌照的顏色特征,將彩色圖像直接轉(zhuǎn)換為 RGB三通道圖像,通過觀察三通道的圖像,選擇R通道的圖像作為后續(xù)算法處理的對象,如圖3所示。因為其車牌字符與牌照底色的差別更為明顯,區(qū)分度更大,可以凸顯圖像字符區(qū)域的特征信息,使后續(xù)算法的識別和判斷效果更加穩(wěn)定和精確。核心程序為:
decompose3 (Car, Red, Green, Blue)
threshold (Red, Regions, 64, 206)
圖3 R通道圖像
Blob分析是對圖像中具有相同像素的連通域進行分析的一種算法。它不僅可以提供圖像中斑點的形狀、位置、數(shù)量和方向,在提供斑點間拓撲結(jié)構(gòu)等方面也具有很大的優(yōu)勢。Blob分析的主要內(nèi)容包括:圖像分割、連通性分析、Blob工具。針對實時預處理的R通道灰度圖像,運用固定閾值分割將其分割為目標像素和背景像素。典型的目標像素被賦值為1,背景像素被賦值為0。然后對其進行連通性分析,將其中的車牌字符圖像區(qū)域聚合為目標像素或者斑點的連接體,形成Blob單元,再對Blob單元進行圖像特征分析,選取合適的參數(shù),除去不相干區(qū)域,將單純的圖像灰度信息快速的轉(zhuǎn)化為圖像的形狀信息,比如圖像的質(zhì)心、面積、周長以及其他圖像信息,通過Halcon算子的多級分類器的過濾,可得到初步的車牌區(qū)域。最后,運用Blob工具將字符區(qū)域從背景中分離出來。在這個過程中,因為Blob并不是分析圖像的單個像素,而是對圖像的“行”進行操作。圖像的每一行都用游程長度編碼來表示相鄰的目標范圍。因此,這種方法比傳統(tǒng)的基于像素的算法的處理速度更快,操作性能更好,處理結(jié)果如圖4所示。核心程序為:
connection (Regions, ConnectedRegions)
select_shape(ConnectedRegions, SelectedRegions,['area','height'], 'and', [458.72,22.48], [15321.1,386.7])
fill_up_shape(SelectedRegions, RegionFillUp,'area', 1, 100)
圖4 Blob分析結(jié)果圖
經(jīng)過Blob分析算法完成字符的分割,提取出特征之后,即可進行字符的識別。無論是基于統(tǒng)計特征識別還是基于結(jié)構(gòu)特征識別,都需要一個特征數(shù)據(jù)庫或者比對數(shù)據(jù)庫對車牌字符進行比對識別。數(shù)據(jù)庫的內(nèi)容應(yīng)當包括所有想要識別的車牌字符字集。目前,車牌識別系統(tǒng)是將提取出的車牌特征丟給分類器,讓分類器對其進行分類,告訴你這個特征該識別成哪個文字。分類器的設(shè)計方法一般有:模板匹配法、判別函數(shù)法、神經(jīng)網(wǎng)絡(luò)分類法、基于規(guī)則推理法等。在這里,就可以用到Halcon自身所帶的強大的OCR分類器。Halcon軟件本身提供了很多預訓練的OCR分類器, 這些預訓練的OCR分類器可以讀取各種各樣的字體,這也是用Halcon軟件作為車牌識別系統(tǒng)核心處理模塊的優(yōu)勢所在。首先需要將字符按照相對位置排序,方便識別[4],處理結(jié)果如圖5所示。核心程序為:
sort_region(SelectedRegions, SortedRegions,'upper_left', 'true', 'column')
read_ocr_class_mlp
(' Industrial_0-9A-Z_Rej.omc', OCRHandle)
do_ocr_multi_class_mlp(SortedRegions,RedInve rt,OCRHandle,Class, Confidence)
圖5 按相對位置排序好的字符
對Blob分析之后的圖像進行處理,識別車牌字符,包括數(shù)字和字母。在這里,尤其需要注意對分類器的分類結(jié)果進行優(yōu)化,因為 OCR的識別準確率是無法達到百分之百的,因此 OCR模塊中必須要有除錯及更正功能。最終識別結(jié)果如圖6所示,可以將結(jié)果輸出為想要的格式保存,也可以將其輸出到其他應(yīng)用程序中。核心程序為:
area_center (SortedRegions, Area, Row, Column)
for i := 0 to 5 by 1
disp_message (3600, Class{i}, 'window', 140,Column[i], 'black', 'true')
endfor
clear_ocr_class_mlp (OCRHandle)
圖6 車牌識別結(jié)果
文章只是對于國內(nèi)小型汽車牌照進行最簡單的編程研究,從而證實 Blob 算法的實用性,以此來說明 HALCON 在車牌圖像處理系統(tǒng)中的優(yōu)勢:處理速度快,簡單,方便。
由于一些實驗條件的限制,對于汽車牌照的識別研究還有很多后期的工作要完成,需要結(jié)合現(xiàn)實條件做進一步的完善:(1) 需要多采集車牌牌照樣本圖像進行測試;(2)需要識別牌照中的第一個漢字字符。