【摘 要】提出了一種利用OpenCV函數(shù)庫(kù)來(lái)進(jìn)行圖像處理,并進(jìn)行圖像基本處理,AOI區(qū)域定位,特征點(diǎn)坐標(biāo)提取的方法,定位時(shí)采用行列掃描的方法確定車(chē)輛上下和左右邊界,然后對(duì)存在車(chē)輛信息噪聲的情況進(jìn)行了過(guò)濾,AOI區(qū)域定位采用了邊緣檢測(cè)閾值比較的方法,特征點(diǎn)的坐標(biāo)提取是采用平均模板匹配法,得到了很好的效果。
【關(guān)鍵詞】AOI區(qū)域定位;特征點(diǎn)提??;邊緣檢測(cè)
智能交通系統(tǒng),簡(jiǎn)稱ITS(Intelligent Transportation System),是目前世界各國(guó)交通領(lǐng)域競(jìng)相研究和開(kāi)發(fā)的前沿研究課題和熱點(diǎn)。ITS系統(tǒng)是人們將先進(jìn)的信息技術(shù)、數(shù)據(jù)通訊傳輸技術(shù)、電子控制技術(shù)、傳感器技術(shù)以及計(jì)算機(jī)處理技術(shù)等有效地綜合運(yùn)用于整個(gè)交通體系,從而建立起的一種在大范圍內(nèi),全方位發(fā)揮作用的實(shí)時(shí)、準(zhǔn)確、高效的交通綜合管理系統(tǒng)。車(chē)輛信息檢測(cè)系統(tǒng)是智能交通系統(tǒng)中一個(gè)非常重要的方向,主要由圖像采集、AOI區(qū)域定位、特征點(diǎn)坐標(biāo)提取以及信息識(shí)別四部分組成,己經(jīng)越來(lái)越受到人們的重視。它具有良好的實(shí)際應(yīng)用價(jià)值,目前主要應(yīng)用于公路治安卡口、開(kāi)放式收費(fèi)站、車(chē)載移動(dòng)查車(chē)、違章記錄系統(tǒng)、門(mén)禁管理、停車(chē)場(chǎng)管理等場(chǎng)合。
利用VC++,在OpenCV計(jì)算機(jī)視覺(jué)庫(kù)的基礎(chǔ)上,對(duì)車(chē)輛進(jìn)行圖像獲取,圖像處理,最終得到車(chē)輛信息,主要包括以下幾個(gè)步驟,如圖1所示:
圖1 主要步驟
1.圖像獲取
利用OpenCV庫(kù)函數(shù)可以對(duì)攝像機(jī)進(jìn)行操作的特性,首先定義CvCapture結(jié)構(gòu)變量并初始化capture=0,CvCapture結(jié)構(gòu)包含從攝像機(jī)或視頻文件讀取幀所需的信息,然后使用OpenCV庫(kù)函數(shù)cvCreateCameraCapture()從攝像機(jī)得到視頻信息,即:capture= cvCreateCameraCapture(-1)。獲取視頻信息后還要獲得圖像,首先要定義IplImage結(jié)構(gòu)變量并進(jìn)行初始化frame=0,獲取圖像利用OpenCV的庫(kù)函數(shù)cvQueryFrame(),即:frame=cvQueryFrame(capture)[1]。
2.圖像預(yù)處理
利用OpenCV庫(kù)函數(shù)獲取到的圖像是彩色圖像,即每個(gè)像素點(diǎn)由紅色(R),綠色(G)和藍(lán)色(B)3個(gè)分量組成,如果直接用彩色圖像計(jì)算量會(huì)很大, 很難達(dá)到實(shí)時(shí)、快速識(shí)別的目的。在實(shí)際應(yīng)用中,我們可以采用如下公式將彩色圖像轉(zhuǎn)換為灰度圖像:
Y=0.299*R+0.587*G+0.114*B
其中,Y代表轉(zhuǎn)換后灰度圖像的像素值,R、G、B分別代表彩色圖像中紅、綠、藍(lán)三原色的分量[3]。利用cvCvtColor(src,pImgCanny,CV_RGB2GRAY);對(duì)圖像進(jìn)行灰度化處理。如圖2所示:
圖2 灰度圖像
下一步對(duì)灰度化圖像進(jìn)行二值化處理。二值化就是選擇一個(gè)閾值T,如果圖像中的某個(gè)灰度值大于T,就將這個(gè)像素的灰度值設(shè)為255,否則設(shè)為0.公式如下:
g(x,y)=255,g(x,y)≥T
0,g(x,y) 選擇閾值T時(shí),本文采用自適應(yīng)閾值法,利用cvAdaptiveThreshold()函數(shù)得到[1]。并采用Robert算子邊緣檢測(cè)二值化,二值化后的圖像如圖3所示,邊緣檢測(cè)的圖像如圖4所示。 圖3 二值化圖像 圖4 邊緣檢測(cè)圖像 3.AOI區(qū)域定位 預(yù)處理完的車(chē)牌圖像就可以進(jìn)行AOI區(qū)域定位了,由于車(chē)輛信息在圖片中自身的特殊性,可以根據(jù)車(chē)輛圖像的自身特點(diǎn)進(jìn)行定位。 3.1車(chē)輛的特點(diǎn) (1)車(chē)輛輪廓最低點(diǎn)一般是車(chē)身最低點(diǎn),其下方?jīng)]有明顯的邊緣密集區(qū)域。 (2)車(chē)輛輪軸大小、 個(gè)數(shù)明顯,并且圓心到邊界距離一定。 (3)拍攝環(huán)境不同,可能會(huì)造成車(chē)輛圖像有一定的噪聲。 (4)車(chē)輛信息區(qū)域的像素點(diǎn)明顯多于其他部分。 因此,可以對(duì)邊緣檢測(cè)后的圖像進(jìn)行行掃描和列掃描,從而得到車(chē)輛信息區(qū)域。 3.2車(chē)輛信息行與列掃描 設(shè)定方法: (1)將邊緣檢測(cè)圖像中每行灰度級(jí)為255的像素的個(gè)數(shù)介于一定范圍內(nèi)。設(shè)定車(chē)輛區(qū)域中每行灰度級(jí)為255的像素個(gè)數(shù)最大最小值分別為num1、num2。若某行中灰度級(jí)為255的像素個(gè)數(shù)集中介于[num1,num2],則可以將此行的行號(hào)存入車(chē)輛AOI候選區(qū)域。 (2)對(duì)(1)中得到的車(chē)牌候選區(qū)域相鄰兩行號(hào)做平均,若均值誤差小于某個(gè)值M,說(shuō)明此行在AOI區(qū)域內(nèi)。 (3)通過(guò)(2)中得到的行號(hào)分割圖像得到了AOI區(qū)域,記錄此時(shí)的車(chē)輛邊界特征點(diǎn)。 圖5 AOI區(qū)域確定圖像 3.3 車(chē)輛信息特征點(diǎn)提取 為了檢測(cè)車(chē)輛長(zhǎng)度,首先要確定車(chē)頭與車(chē)尾的兩個(gè)特征點(diǎn)。通過(guò)對(duì)圖像的分析,我們可以看出圖像中車(chē)輛的區(qū)域存在以下特點(diǎn): 車(chē)輛區(qū)域灰度值比較大: 檢測(cè)的前提條件是兩個(gè)圖像不存在位置的誤差和角度誤差,實(shí)際往往無(wú)法達(dá)到100%的精確,因此會(huì)存在較小的誤差,從而在對(duì)圖像進(jìn)行二值化處理的時(shí)候往往產(chǎn)生如椒鹽噪聲似的亮點(diǎn),盡管通過(guò)二次濾波可以消除大部分亮點(diǎn),但仍會(huì)存在少量亮點(diǎn)。 通過(guò)對(duì)車(chē)輛圖像的一系列處理,我們得到了最終的車(chē)輛單色圖像。通過(guò)對(duì)圖像特點(diǎn)的分析,我們可以看到車(chē)輛區(qū)域在圖像中顯示為白色,基于這個(gè)特點(diǎn)利用平均模板進(jìn)行匹配,從而實(shí)現(xiàn)車(chē)輛的車(chē)頭車(chē)尾與車(chē)身的自動(dòng)搜索,特征點(diǎn)定位如圖6所示: 圖6 特征點(diǎn)確定圖像 3.4輪軸信息的確定 輪軸的定位就是在車(chē)輛圖像中把輪軸區(qū)域提取出來(lái),是輪軸檢測(cè)的關(guān)鍵技術(shù),是提高輪軸檢測(cè)識(shí)別率的前提和基礎(chǔ)。定位的準(zhǔn)確度直接影響著輪軸信息檢測(cè)的識(shí)別性能。 我們使用一種綜合的定位方法,將灰度特征和幾何特征結(jié)合起來(lái)進(jìn)行定位的方法。由于車(chē)輛輪軸自身的一些特點(diǎn),例如,一般位于一張圖片的底部、輪軸為圓形、輪軸周?chē)南袼攸c(diǎn)比中心像素點(diǎn)較多等。本文利用OPenCV函數(shù)庫(kù)中的cvFindCircles()在圖片中找到輪軸圈,初步確定輪軸區(qū)域。 在此基礎(chǔ)上進(jìn)行特征檢測(cè),精確定位,進(jìn)行輪軸特征匹配,利用CV_IMAGE_ELEM得到每一點(diǎn)的灰度值,記錄每一個(gè)AOI區(qū)域所有的灰度值特征,找到輪軸中心的位置,然后記錄每一個(gè)圓心的圖像坐標(biāo)值,利用單位轉(zhuǎn)換的原理得到圖像中物體對(duì)應(yīng)的實(shí)際物體的尺寸,利用cvSetImageROI()設(shè)置敏感區(qū)域,將定位到的輪軸區(qū)域放大處理,cvCopy()從源圖像中拷貝圖像,從而得到輪軸區(qū)域圖片,如圖7所示,為進(jìn)一步判斷輪軸半徑等參數(shù)做下一步分析。 圖7 輪軸區(qū)域圖像 這里利用Xu提出的隨機(jī)Hough變換(RHT),相對(duì)于Hough變換,RHT能夠大量降低內(nèi)存需求和計(jì)算時(shí)間。把圖像空間隨機(jī)選取的不共線的三個(gè)點(diǎn)映射成參數(shù)空間的一個(gè)點(diǎn),是多對(duì)一的映射,避免一到多映射的巨大計(jì)算量。在處理復(fù)雜圖像時(shí),由于隨機(jī)采樣仍引入大量的無(wú)效單元,從而造成大量無(wú)效積累。論文針對(duì)實(shí)際應(yīng)用需要提出一些改進(jìn)利用隨機(jī)Hough 變換用于圓檢測(cè)。 算法實(shí)現(xiàn)基本流程如下: <1>構(gòu)造邊緣點(diǎn)集P,初始化參數(shù)單元集Q,循環(huán)次數(shù)n=0.S為確定真實(shí)圓閾值。 <2>按一定規(guī)則從P中選取3個(gè)點(diǎn)Pi,Pj,Pk,計(jì)算確定的圓參數(shù)O(a,b,r)。 <3>從Q中找出Oi,滿足‖O(a,b,r)-Oi‖≤δ則繼續(xù)。否則轉(zhuǎn)<2>。 <4>取Pm(m≠i,j,k)計(jì)算dm-0,若滿足dm-0<δ,則Qi=Qi+1。P=P-{Pm},n=n+1,直至取完滿足條件。 {Pm|a+r-t≤xm≤a+r+t,a+r-t≤ym≤a+r+t}的點(diǎn)。 <5>如果計(jì)數(shù)Qi>S,確認(rèn)O(a,b,r)為真實(shí)圓,否則從Q中去除Qi,轉(zhuǎn)<2>。 <6>判斷并檢測(cè)圓的數(shù)目是否符合規(guī)定,達(dá)到結(jié)束程序;否則轉(zhuǎn)<2>。 4.結(jié)論 本文利用了行掃描和列掃描的方法對(duì)車(chē)輛AOI區(qū)域進(jìn)行粗定位,利用特征點(diǎn)定位并進(jìn)行閾值平均得到車(chē)輛高度與車(chē)長(zhǎng)特征,并通過(guò)Hough變換對(duì)輪軸圖像進(jìn)行處理,便于進(jìn)一步的圓特征確定,最后利用特征點(diǎn)坐標(biāo)比較得出車(chē)輛信息,得到了很好的效果,從實(shí)驗(yàn)的300張圖像得到的結(jié)果來(lái)看,車(chē)輛特征信息確定成功率達(dá)到95%以上,但在實(shí)際的應(yīng)用中,車(chē)牌圖像還要受到很多因素的干擾,因此要進(jìn)一步提高識(shí)別率和識(shí)別速度是下一步要研究的內(nèi)容。 【參考文獻(xiàn)】 [1]劉瑞禎,于仕琪.OpenCV教程——基礎(chǔ)篇[M].北京航空航天大學(xué)出版社,2007. [2]曾麗華,李超.基于邊緣與顏色信息車(chē)牌精確定位算法[J].北京航空航天大學(xué)學(xué)報(bào),2007:33-9,1112-1115. [3]岡薩雷斯.數(shù)字圖像處理[M].北京電子工業(yè)出版,2007. [4]孫炎增,張前進(jìn).車(chē)牌字符識(shí)別技術(shù)的研究與實(shí)現(xiàn)[J].微電子學(xué)與計(jì)算機(jī),2008:25-6,101-104. [5]龐茂群,鄧開(kāi)發(fā).一種基于灰度圖像的車(chē)牌定位方法[J].計(jì)算機(jī)工程與科學(xué),2009:31-10,39-41.