程 瑤,趙 雷,成 珊,田又源, 米曾真
(1. 重慶理工大學(xué) 機械工程學(xué)院,重慶 400050;2. 中國電子科技集團(tuán)公司 第十研究所,四川 成都 610036)
汽車安全中檢測前方車輛距離是汽車安全輔助駕駛系統(tǒng)研究中的一個重點。與其他探測手段相比,機器視覺探測手段具有探測范圍寬、目標(biāo)信息完整、價格便宜,更符合人類認(rèn)知習(xí)慣等優(yōu)勢;不僅可以用來檢測車距,而且還可以用來識別車道、障礙物、交通標(biāo)志等,是未來汽車安全防護(hù)方面的主要研究方向之一[1]。而單目視覺結(jié)構(gòu)簡單,運算速度快,具有廣闊的應(yīng)用前景[2]。
近年來,國內(nèi)外許多學(xué)者開展了檢測前方車輛距離的研究。文獻(xiàn)[3~8]給出了估算車距信息的幾種方法: 利用圖像中像素距離與實際距離之間的統(tǒng)計關(guān)系估算前方車輛的距離;利用車輛位置和車輛寬度估計前方車輛的距離;利用前方車輛模型,將圖像中的前方車輛與駕駛車輛在道路中的行駛位置聯(lián)系起來,進(jìn)而估算前方車輛距離;基于前方車輛陰影特征進(jìn)行車輛距離的計算。本文綜合上述測距方法,提出了提取車牌圖像像素值數(shù)量,結(jié)合車牌實際尺寸,計算得到車距的方法,并完成了系統(tǒng)的設(shè)計及實驗驗證。
單目攝像頭的成像模型近似考慮為針孔模型,如圖1所示,以車牌為被測對象。f為攝像頭的焦距,c為鏡頭光心,x代表小孔與車牌之間的距離,y′代表車牌像的高度,y代表實際車牌的高度。
圖1 系統(tǒng)成像原理圖Fig.1 System imaging schematic diagram
依據(jù)成像系統(tǒng)模型,成像垂軸放大率β可由式(1)得到,由式(2)通過標(biāo)定焦距、測算車牌像大小即可計算車距x。
(1)
(2)
車牌投影在像平面上的像高y′,通過標(biāo)定圖像傳感器像元大小δ及像元數(shù)量n可得:
y′=nδ
(3)
車距檢測系統(tǒng)的設(shè)計框圖如圖2所示,通過搭建CCD成像系統(tǒng),對被測車輛的車牌進(jìn)行成像采集,在計算機中對圖像進(jìn)行處理及分析后,顯示出車距大小。
圖2 系統(tǒng)設(shè)計框圖Fig.2 System design block diagram
采集車輛圖像時,需要事先對成像系統(tǒng)進(jìn)行標(biāo)定。在固定距離下對標(biāo)準(zhǔn)圖像進(jìn)行成像,通過采集圖像并進(jìn)行圖像分析,標(biāo)定像元尺寸。
系統(tǒng)利用MATLAB GUI設(shè)計車距檢測圖像的處理及分析系統(tǒng)[9,10],該系統(tǒng)包括了圖像預(yù)處理、車牌定位與分割、像素計算及車距計算,程序流程如圖3所示,系統(tǒng)操作面板如圖4所示。
圖3 車距檢測流程圖Fig.3 Flow chart of vehicle distance detection
圖4 車距檢測系統(tǒng)前面板Fig.4 Front panel of vehicle distance detection
圖像的預(yù)處理針對車輛圖像,以便圖像更利于定位和分割,并加強圖像有效特征,增強有用信息的可檢測性,去除影響車輛區(qū)域特征的噪點。從而使圖像特征更加明顯,易于辨識、對比和識別[11,12]。
本系統(tǒng)對采集后的車牌圖像采取了灰度化、灰度增強、中值濾波、邊緣檢測等處理,結(jié)果如圖5所示。
圖5 車輛圖像預(yù)處理對比Fig.5 Comparison of vehicle image preprocessing
經(jīng)過灰度變換增強圖像后,車輛和環(huán)境的對比度明顯加強了,能夠更容易地從背景中區(qū)分出車輛;由灰度變換前后得到的灰度直方圖也可以看出,變換后的圖像灰度值分布更加均勻了;灰度圖像經(jīng)過中值濾波處理后,去除了圖像中的噪聲點,圖像變得更加平滑;經(jīng)過邊緣檢測處理后,車輛部分在圖像中非常明顯,可以清楚地顯示出車輛的輪廓。
圖6為車輛定位算法流程圖。根據(jù)車距算法模型,當(dāng)攝像系統(tǒng)焦距固定時,兩車之間的實際距離與車牌在圖像上的車牌寬度的乘積為一常數(shù)。對預(yù)處理后的車輛圖像進(jìn)行行掃描和列掃描,確定圖像中車牌的位置,同時得出車牌部分像元的個數(shù),換算后得到車牌的像的長度。然后將車牌實際長度和像的長度通過公式進(jìn)行計算,即可得到所需的車距信息。所以,對圖像中的車牌進(jìn)行準(zhǔn)確的定位是車距測量的基礎(chǔ)。
圖6 車輛定位算法流程圖Fig.6 Flow chart of vehicle location algorithm
對預(yù)處理后的圖像進(jìn)行腐蝕處理,消除小且無意義的物體,包括車牌中的字符部分;然后再對圖像進(jìn)行閉運算,填補輪廓的空白區(qū)域,并進(jìn)一步去除圖像中的小對象,從而得到近似矩形的連通域。對圖像進(jìn)行腐蝕和閉運算的結(jié)果如圖7所示。
圖7 腐蝕與閉運算處理結(jié)果Fig.7 Processing results of corrosion and closed operation
由圖7中可以看到,圖像在經(jīng)過腐蝕處理和閉運算后,得到了一塊矩形的連通域,即需要得到的車牌區(qū)域。通過車牌特征查找連通域,并對實際車牌區(qū)域的連通域做出標(biāo)記[13]。判斷一個矩形連通域是否為車牌的標(biāo)準(zhǔn)是:測出該區(qū)域的長寬比約為3:1(中國機動車車牌長寬規(guī)格為44 cm:14 cm,比值近似取為3:1),即車牌面積和周長間存在比值關(guān)系:
(4)
Fmetric=21×A/C2
(5)
式中:L表示車牌寬;A表示矩形面積;C表示矩形周長。
以式(5)構(gòu)造Fmetric函數(shù)作為連通域的匹配度[14],匹配度越接近1,則該連通域越可能是3:1的矩形,即車牌區(qū)域。
通過對標(biāo)記的連通域圖像進(jìn)行行掃描,確定Y方向的車牌區(qū)域;進(jìn)行列掃描,確定X方向的車牌區(qū)域。二者合并可得到正確的車牌區(qū)域,將其剪切下來即為所需的車牌部分。根據(jù)列掃描檢測出車牌部分在圖像中的像元的數(shù)目,即可通過式(3)算出車牌區(qū)域的長度,如圖8所示。
圖8 連通域定位及車距結(jié)果顯示Fig.8 Connected region location and vehicle distance results
測距實驗使用單目攝像系統(tǒng)拍攝車輛圖片,圖9為采集的車輛圖片,通過MATLAB實現(xiàn)了圖片的識別處理,再利用測距程序來得到前方車輛的距離信息。本文通過MATLAB編寫了簡潔的GUI程序,可以讓使用者非常方便地使用本系統(tǒng)進(jìn)行對目標(biāo)車輛的測距,操作更加簡便。
圖9 采集的車輛圖片F(xiàn)ig.9 Acquired the vehicle pictures
經(jīng)過測量采集到的車輛圖像信息,將計算得到的車距信息與實際車距進(jìn)行對比,測量結(jié)果及誤差計算如表1 ,相對誤差分析結(jié)果如圖10所示。平均相對誤差為6%。驗證了測距方案的可行性。
表1 車距測量結(jié)果Tab.1 Measured results of vehicle distance m
圖10 車距測量結(jié)果分析Fig.10 Analysis of measurement results of vehicle distance
通過構(gòu)造單目機器視覺系統(tǒng),準(zhǔn)確處理及定位車牌圖像,建立了車牌像大小與實際車牌大小的對應(yīng)關(guān)系;在此基礎(chǔ)上,利用基于車牌像素大小的方法得到了本車與前方車輛之間的距離;通過程序算法對實際拍攝的車輛圖片進(jìn)行了車距檢測。實驗結(jié)果驗證了系統(tǒng)中車距測量方法的可行性,完成了車距檢測要求。通過實驗數(shù)據(jù)誤差分析,該系統(tǒng)能較好地檢測10 m以內(nèi)車距大小,其中在3 m以內(nèi)范圍誤差波動較大,平均誤差為7%;3 m以外的誤差波動較小,平均誤差為4%。