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