宋東諭,韓 軍
(西安工業(yè)大學(xué) 光電工程學(xué)院,西安710021)
隨著我國經(jīng)濟的發(fā)展,汽車保有量飛速增長。汽車給人們出行帶來便捷的同時,潛在的交通事故也威脅著駕乘人員的安全,因此很多學(xué)者開始對車輛輔助駕駛技術(shù)進行研究。車輛輔助駕駛系統(tǒng)的任務(wù)就是對周圍環(huán)境進行感知,并對潛在的威脅源進行檢測和預(yù)警。行車時前方車輛作為潛在的碰撞發(fā)生對象,對其檢測和測距方法的研究具有重要意義。
在目前的研究中,基于機器視覺的車輛檢測方法可以分為2 種。一種是基于圖像形態(tài)學(xué)處理的方法。比如文獻[1]中,作者通過Hough 變換來提取車道線,將兩條車道線之間區(qū)域作為感興趣區(qū)域,圖像分割后采用窗口能量搜索定位車輛。這種方法只適用有清晰車道線的路面,且前車必須在兩條車道線中間,環(huán)境適應(yīng)性較差。另一種車輛檢測方法是基于機器學(xué)習(xí)的方法。比如文獻[2]中提取車輛數(shù)據(jù)集的Harr-like 特征,結(jié)合Adaboost 分類器來對車輛進行檢測,但是沒有求解出車輛準(zhǔn)確的像素坐標(biāo)。
本文針對車輛檢測中環(huán)境適應(yīng)性差和定位精度低的問題,提出一種結(jié)合機器學(xué)習(xí)和圖像形態(tài)學(xué)處理檢測車輛的方法。采用MB-LBP 特征和SVM 進行初步檢測,將檢測出的窗口作為感興趣區(qū)域進行圖像形態(tài)學(xué)處理,得到車輛在圖像中的像素坐標(biāo)。針對相機光軸與圖像坐標(biāo)系原點存在偏差的問題,提出了綜合相機幾何投影關(guān)系與相機標(biāo)定法的測距模型。實驗驗證了方法的準(zhǔn)確性。
本文采用機器學(xué)習(xí)的方法對車輛進行初步檢測。采集樣本集的MB-LBP 特征,訓(xùn)練基于MB-LBP特征的SVM 分類器對車輛進行初步檢測。
傳統(tǒng)的LBP 特征定義在固定的3×3 鄰域內(nèi)。它存在一個缺點,由于其定義的領(lǐng)域大小是固定的,不能滿足不同頻率紋理和尺度的需要[3]。因此當(dāng)圖像尺度發(fā)生變化時編碼將發(fā)生錯誤。
基于傳統(tǒng)LBP 特征改進的MB-LBP 特征將圖像分成一個個塊。再將每一個塊分成若干個小區(qū)域。將當(dāng)前小區(qū)域內(nèi)的灰度平均值作為中心閾值,與周圍相鄰的小區(qū)域按照LBP 特征的規(guī)則進行比較,生成的特征稱為MB-LBP 特征。當(dāng)塊的大小為9×9,小區(qū)域的大小為3×3 時如圖1所示。
圖1 MB-LBP 特征Fig.1 MB-LBP feature
支持向量機SVM 是由Cortes 和Vapnik 等人在1995年提出的一種基于統(tǒng)計學(xué)的分類方法,SVM 對線性可分和線性不可分問題都具有很好的分類效果[4]。SVM 的本質(zhì)是找到?jīng)Q策邊界,其決策函數(shù)如下:
要得到?jīng)Q策邊界,就要求離它最近的樣本到它的距離最大,這個距離稱為最大分類間隔。決策邊界的位置由這些樣本決定,因此這些樣本被稱為支持向量。
本文通過MB-LBP 特征搭配SVM 分類器對車輛進行初步檢測,檢測效果如圖2所示。
圖2 車輛初步檢測效果Fig.2 Result of preliminary vehicle detection
由圖2可以看出,分類器對采集到的視頻圖像進行了初步檢測。但是所檢測出來的只是一個大概的區(qū)域,其中包括目標(biāo)車輛和部分的背景。下一步需要對車輛進行精確定位,即找到車輛的像素位置。
將檢測出的窗口作為感興趣區(qū)域分離出來,只對它進行處理,如圖3所示,這樣可以避免直接對整張圖片進行處理,減少了運算量。
圖3 分離出的感興趣區(qū)域Fig.3 Region of interest
在不同的行駛環(huán)境下所采集到的圖像亮度對比度會有很大差異。為了削弱對比度變化對后續(xù)圖像分割產(chǎn)生的影響,對提取的感興趣區(qū)域進行直方圖均衡化,效果如圖4所示。
圖4 直方圖均衡效果Fig.4 Result of histogram equalization algorithm
由圖4可以看出直方圖均衡后圖片亮度和對比度有了明顯的提升。接下來對其進行Otsu 閾值分割,其核心思想是尋找一個閾值k,可以將圖像像素的灰度值分為0~k 和k~255 兩部分[5]。通過讓背景與目標(biāo)之間類間方差最大化來確定閾值k。前景和背景像素數(shù)占整張圖像總像素的比例分別為p1和p2,平均灰度分別為g1和g2,則整張圖片的平均灰度為
前景和背景類間方差為
類間方差d 最大時得到最佳閾值k:
閾值分割后的效果如圖5所示,場景中車輛、路面以及車底陰影已經(jīng)被分割和歸類。
閾值分割之后的圖像具有豐富的邊緣信息,為了去除不利的邊緣對接下來灰度搜索產(chǎn)生的影響。對分割后的圖像進行開運算。開運算對圖像先腐蝕后膨脹。在圖像形狀不變的情況下消除圖像中小于結(jié)構(gòu)單元的細節(jié)部分,達到平滑物體輪廓消除噪點的目的[6]。其定義如下:
開運算后效果如圖5所示。
圖5 閾值分割與開運算圖像Fig.5 Image of threshold segmentation and open operation
將開運算后的窗口二值化,以窗口底邊中點O為原點,其灰度為H(a,b)。路面被分割后灰度歸為255,車底陰影灰度歸為0。如圖6所示向上做灰度搜索,步長為一個像素。若H(a,b-i)≠H(a,b)(i=1,2,3…),則點P(a,b-i)為車底陰影邊緣點,以它作為車輛的像素位置坐標(biāo)。
圖6 灰度搜索示意圖Fig.6 Image of the gray scale searching
文獻[1]和文獻[2]中所采用的測距方法均基于相機幾何投影模型。但是都忽略了實際上相機作為流水線上的工業(yè)產(chǎn)品,存在加工和安裝誤差。導(dǎo)致其光軸與圖像坐標(biāo)系原點有一定的偏差[7]。針對這一問題本文提出一種綜合相機幾何投影關(guān)系與相機標(biāo)定對前方車輛的距離進行測算的方法。圖7為相機成像模型。其中K 為相機位置,E 為相機在地面上的投影點。梯形ABCD 為相機可以拍到的地面區(qū)域。KO 為相機光軸,假設(shè)P 為路面上車輛所在位置。
圖7 相機成像模型Fig.7 Camera imaging model
圖8 成像模型側(cè)剖圖Fig.8 Side section of imaging model
如圖8為成像模型側(cè)剖圖。fg 為像面,O0為像面中點。KE 為攝像機安裝高度。光軸KO 為GF 的中垂線,且與地面交與點O。Py為目標(biāo)P 點在Y 軸方向的投影,對應(yīng)像面上的Py′。α1為相機俯仰角。EH 為相機視野最近點與相機在地面投影位置的距離,EPy則為所求與前車的距離。推導(dǎo)過程如下:
上式定義在圖像坐標(biāo)系中,圖像坐標(biāo)系的原點為O0,單位為毫米。要將式中變量從采集的圖像中讀取出來就要將上式轉(zhuǎn)換為以O(shè)1為原點的像素坐標(biāo),如圖9所示。
圖9 像素坐標(biāo)Fig.9 Pixel coordinates
由圖9可以得出像素坐標(biāo)下的坐標(biāo)(u,v)與圖像坐標(biāo)下的坐標(biāo)(x,y)之間的關(guān)系:
式中:sx和sy的單位為(像素/mm)。將上式代入式(9)得到公式如下:
上式中像面的像素高度V 可以由相機參數(shù)得到。通過標(biāo)定相機得到內(nèi)部參數(shù)V0和fy。相機安裝高度KE 和視野最近點距離EH 可以通過測量得知。其中唯一的變量是被測車輛的像素坐標(biāo)v。前文已經(jīng)求出。
本文實驗平臺為Intel Core i5-8300H,8 G 內(nèi)存,主頻2.3 GHz?;赩isual Studio 2015 編譯環(huán)境,搭配OpenCV3.4.1 計算機視覺庫。選擇C_SVC作為SVM 類型,采用LINEAR 線性核函數(shù)。SVM 分類器訓(xùn)練時迭代終止條件為迭代1000 次且達到迭代閾值FLT_EPSILON[8]。
考慮到前方車輛相對于自身車輛的行車姿態(tài),本文采用的正樣本分為3 種視角,分別是正前方、左前方和右前方,如圖10所示。負樣本為不含車輛的背景圖片。
有一種觀點認為,“良渚文化中鳥、獸、人由親和到融合的邏輯發(fā)展演進歷程為:鳥、獸、人有形實物組合——鳥、獸、人有形實物合體——鳥、獸、人圖案組合——鳥、獸、人圖案融合為一體?!薄翱梢詫⒘间疚幕性甲诮袒纠砟畹倪壿嫷陌l(fā)展歷程概括為:多神教崇拜——鳥、獸、人崇拜(或鳥、獸、人親和)——鳥、獸、人融合三個階段?!本唧w來說,良渚“神人獸面紋”中的“神人羽冠”顯示出“鳥與人的親和與融合”、“獸面紋”顯示著“鳥與獸的親和與融合”,而其中的“人”顯現(xiàn)為“鳥、獸、人三者之間的親和與融合”,并將這種現(xiàn)象視為“原始宗教”的第三階段。③
圖10 正樣本示意圖Fig.10 Image of positive sample
采用HT-U300C 工業(yè)相機來采集圖像。像元尺寸3.2×3.2 μm,圖像分辨率1024×768,幀率25 幀/s。鏡頭焦距6 mm。相機安裝高度為1.5 m,視野最近點距離相機3.5 m。用Matlab 標(biāo)定工具箱對相機進行標(biāo)定,得到相機內(nèi)部參數(shù)如表1所示。
表1 相機內(nèi)部參數(shù)Tab.1 Intrinsic camera parameters
本文的測試集由工業(yè)相機在行車環(huán)境下實時采集,包括晴天、陰天、小雨和霧霾4 種道路場景,如圖11所示。這4 種場景囊括了常見的行車環(huán)境,具有不同的光照強度和前景背景對比度??梢员容^全面地衡量車輛檢測算法的環(huán)境適應(yīng)性。
圖11 不同行車環(huán)境下檢測效果Fig.11 Result of detection in defferent driving condition
本文采集4 種不同行車環(huán)境下的圖像作為測試的數(shù)據(jù)集,測試集1 為晴天采集的圖像,測試集2為陰天,測試集3 為小雨,測試集4 為霧霾。文獻[9]采用Harr-like 特征搭配Adaboost 分類器在前3 種測試集上對車輛進行檢測。本文將在4 個測試集上進行實驗并將前3 個測試集的結(jié)果與文獻[9]進行比較,采用準(zhǔn)確率(Precision)來評價實驗結(jié)果。
式中:TP 為正檢數(shù);FP 為誤檢數(shù)。實驗結(jié)果如表2所示。
表2 車輛檢測結(jié)果Tab.2 Result of vehicle detection
由表2可以看出本文方法在前3 個測試集上的準(zhǔn)確率均優(yōu)于文獻[9]的方法,平均準(zhǔn)確率達到了94.1%。并且在霧霾行車環(huán)境下對方法進行了測試,由于能見度差導(dǎo)致圖像亮度對比度較低,使得檢測的準(zhǔn)確率只有86.9%。
為了驗證測距方法的準(zhǔn)確性,本文在平直的路面上進行實驗,在自身車輛靜止?fàn)顟B(tài)下對正前方靜止的車輛進行車距測量。實驗結(jié)果如表3所示。
表3 車距測量結(jié)果Tab.3 Results of vehicle ranging
由表3可以看出,當(dāng)車距在50 m 內(nèi)時測距精度較好。測量相對誤差不超過4%,絕對誤差保持在2 m 以內(nèi),優(yōu)于文獻[1]中的方法。車距大于50 m 時測量誤差較大。這是因為距離過遠時車底陰影在圖像中較為模糊,且單個像元所對應(yīng)的真實距離也越大導(dǎo)致測距精度下降。
本文提出了一種基于單目視覺的前方車輛檢測與測距方法。結(jié)合機器學(xué)習(xí)和圖像形態(tài)學(xué)處理,采用機器學(xué)習(xí)的方法對車輛進行初步檢測。將檢測出的區(qū)域作為感興趣區(qū)域進行直方圖均衡,閾值分割和開運算。二值化后采用灰度搜索得到車輛底部陰影區(qū)域坐標(biāo)作為車輛像素位置。測距方面,本文結(jié)合相機標(biāo)定和相機投影模型推導(dǎo)出了測距模型,改善了光軸偏差對測距效果的影響。本文在多種行車環(huán)境下進行了測試,方法具有良好的環(huán)境適應(yīng)性和檢測測距精度。