黃孝慈 舒方林 曹文冠
(上海工程技術(shù)大學(xué),上海 201620)
主題詞:雙目視覺 車輛測(cè)距 Haar-like特征 特征匹配 平均視差
前方碰撞預(yù)警(Forward Collision Warning,F(xiàn)CW)系統(tǒng)的應(yīng)用可以有效減少交通事故,提高道路通行效率[1]。自車與前車間的距離計(jì)算是FCW 系統(tǒng)的核心組成部分,可為后續(xù)預(yù)警和控制提供依據(jù)。目前,距離計(jì)算方法主要分為基于主動(dòng)傳感器的方法和基于視覺的方法[2-4]。前者主要使用毫米波雷達(dá)和激光雷達(dá)等主動(dòng)傳感器,雖然可以準(zhǔn)確計(jì)算車距,但高成本和目標(biāo)車輛數(shù)據(jù)的采集阻礙了其廣泛應(yīng)用;后者通常使用單目視覺和雙目視覺,以低成本的優(yōu)勢(shì)逐漸成為研究熱點(diǎn)。單目視覺通過建立幾何模型估計(jì)車距,精度低、遠(yuǎn)距離測(cè)量誤差大[5-6]。雙目視覺通過左、右圖像的立體匹配生成目標(biāo)車輛的視差圖,根據(jù)三角測(cè)量法直接計(jì)算車距,因此計(jì)算過程更加直觀、準(zhǔn)確[7-8]?;陔p目視覺的車距測(cè)量關(guān)鍵在于能否迅速提取車輛特征并實(shí)現(xiàn)準(zhǔn)確的匹配。目前通常利用車輛的局部特征或全局特征進(jìn)行車距測(cè)量,如車牌、車輛尾燈、車輛尾部標(biāo)志、加速魯棒特征(Speeded Up Robust Features,SURF)以及定向二進(jìn)制描述符(Oriented FAST and Rotated BRIEF,ORB)特征等[9]。Zhang等人[10]根據(jù)車牌與車身顏色的差異提取車牌特征,利用車牌中心點(diǎn)坐標(biāo)實(shí)現(xiàn)車輛的測(cè)距;Seo等人[11]采用方向梯度直方圖特征檢測(cè)前方車輛,通過提取左、右相機(jī)中車輛尾燈中心點(diǎn)特征進(jìn)行立體匹配,從而計(jì)算車距;Hou 等人[12]提取車標(biāo)作為左、右圖像的匹配特征實(shí)現(xiàn)車輛測(cè)距。上述利用車輛局部特征進(jìn)行車距測(cè)量的3種方法只適用于近距離車距測(cè)量,遠(yuǎn)距離的車輛局部特征難以精準(zhǔn)提取,往往造成較大的測(cè)距誤差。此外,單一特征的匹配極易造成測(cè)距誤差大幅波動(dòng)。因此,不少學(xué)者使用車輛的全局特征進(jìn)行車距測(cè)量研究:李建[13]、顏佳桂[14]分別通過提取車輛的ORB 與SURF 特征點(diǎn)并利用特征點(diǎn)的平均視差計(jì)算車距;張琦等人[15]通過提取車輛的SURF 特征點(diǎn)進(jìn)行三維重建確定其質(zhì)心位置,利用質(zhì)心進(jìn)行立體匹配計(jì)算車距。相較于利用車輛尾部某種顯著局部特征的測(cè)距方法,基于車輛全局特征匹配的測(cè)距方法精度更高、魯棒性更好。然而,如何快速提取特征并進(jìn)行精確匹配仍然是其面臨的主要問題。
針對(duì)上述問題,本文提出一種基于機(jī)器學(xué)習(xí)和改進(jìn)ORB 算法的雙目視覺車輛測(cè)距方法,包括車輛檢測(cè)和特征提取與匹配兩個(gè)核心部分。首先通過正、負(fù)樣本集離線訓(xùn)練車輛檢測(cè)分類器,利用該分類器快速確定車輛在左、右圖像中的位置;然后提取車輛ORB特征點(diǎn)進(jìn)行匹配得到平均視差,根據(jù)雙目測(cè)距模型計(jì)算車距。由于傳統(tǒng)ORB 算法提取的特征點(diǎn)極易出現(xiàn)數(shù)量龐大、聚集扎堆的問題,提出動(dòng)態(tài)閾值法改善特征點(diǎn)提取質(zhì)量;在特征匹配階段,使用漸進(jìn)一致采樣(Progressive Sample Consensus,PROSAC)算法減少誤匹配來提高視差計(jì)算精度,從而提高前車測(cè)距精度。方法流程如圖1所示。
圖1 前車測(cè)距總體流程
考慮到自車與前車間距離較小,在雙目相機(jī)視野內(nèi)可清楚地觀測(cè)到前車尾部特征,使用車輛Haar-like 特征與AdaBoost算法訓(xùn)練分類器快速定位前方運(yùn)動(dòng)車輛。
Haar-like 特征是一種黑白矩形特征,適用于檢測(cè)在垂直、水平以及對(duì)角方向上有較為顯著像素梯度變化的目標(biāo)[16],與車輛尾部特征相契合。如圖2所示,本文通過邊緣、中心、線性以及對(duì)角線4 類基礎(chǔ)Haar 特征構(gòu)建了能夠更加精確描述車輛尾部特征的Haar-like特征。
圖2 車輛尾部的Haar-like特征描述
AdaBoost 能通過多次學(xué)習(xí)將弱分類器提升為強(qiáng)分類器,本文利用該算法訓(xùn)練車輛檢測(cè)分類器。
3.2.1 弱分類器構(gòu)造
構(gòu)造弱分類器的目的是尋找特征的最優(yōu)分類閾值,保證該分類器對(duì)正、負(fù)樣本分類效果達(dá)到最優(yōu),其定義為:
式中,x為某個(gè)訓(xùn)練樣本子窗口;f為對(duì)應(yīng)的特征;λ為方向符號(hào),取值1或-1;θ為分類閾值。
3.2.2 強(qiáng)分類器訓(xùn)練
弱分類器不能滿足車輛檢測(cè)的精度要求,通過AdaBoost 算法訓(xùn)練能夠獲得檢測(cè)精度更高的強(qiáng)分類器,步驟如下:
a.構(gòu)建樣本集。假設(shè)給定的樣本訓(xùn)練集為{(x1,y1),(x2,y2),(x3,y3),…,(xn,yn)},其中,xi(i=1,2,3,…,n)為樣本向量,yi(i=1,2,3,…,n)為分類標(biāo)簽,yi=0表示非車輛,yi=1表示車輛;
b.均勻分配樣本權(quán)重:
式中,N為樣本總數(shù)。
c.進(jìn)行T次循環(huán)迭代:
訓(xùn)練歸一化權(quán)重后的樣本獲得弱分類器ym(x):x→{0,1}(m為分類器編號(hào)),則最小分類誤差為:
計(jì)算該分類器在最后強(qiáng)分類器中的權(quán)重αm:
更新所有訓(xùn)練樣本的權(quán)重:
式中,zm為歸一化因子。
d.按權(quán)重分配將全部弱分類器進(jìn)行組合:
則最終的強(qiáng)分類器為:
3.2.3 強(qiáng)分類器級(jí)聯(lián)
相對(duì)弱分類器而言,強(qiáng)分類器在檢測(cè)性能上已經(jīng)得到了很大提升,但仍然無法滿足車輛在實(shí)際行駛環(huán)境中的檢測(cè)精度要求。因此,需要將多個(gè)強(qiáng)分類器以串聯(lián)的方式形成高性能的級(jí)聯(lián)分類器。如圖3所示,當(dāng)待檢測(cè)圖像通過級(jí)聯(lián)分類器時(shí),經(jīng)過每層強(qiáng)分類器的篩選可以剔除大量的非車輛區(qū)域,順利通過每層強(qiáng)分類器后即可得到目標(biāo)車輛在圖像中的準(zhǔn)確位置。
圖3 級(jí)聯(lián)分類器檢測(cè)車輛過程
視差計(jì)算是雙目測(cè)距的核心部分,基于尺度不變特征變換(Scale-invariant Feature Transform,SIFT)、SURF和ORB 的特征匹配算法均為局部立體匹配算法,能夠快速獲得目標(biāo)的視差??紤]到前方車輛測(cè)距的實(shí)時(shí)性要求,本文選用速度最快的ORB 特征匹配算法計(jì)算視差,并對(duì)其進(jìn)行改進(jìn)來提高測(cè)距精度。
雙目視覺通過左、右相機(jī)獲得目標(biāo)的視差,并根據(jù)相似三角形原理計(jì)算物體在其坐標(biāo)系下的距離。如圖4所示,在平行雙目視覺系統(tǒng)中,假設(shè)S為三維空間中的某一點(diǎn),其在左、右相機(jī)成像平面上的投影點(diǎn)分別為Sl和Sr,分別以O(shè)l和Or為原點(diǎn)建立左、右相機(jī)坐標(biāo)系,可得Sl和Sr的橫坐標(biāo)依次為xl、xr,成像視差為d=xl-xr。設(shè)D為左、右相機(jī)光心距離,c為焦距,由三角形相似原理可推導(dǎo)出點(diǎn)S到左、右相機(jī)光心連線的垂直距離Z:
圖4 三角測(cè)量原理
ORB 算法在特征點(diǎn)檢測(cè)部分采用FAST(Features from Accelerated Segment Test)檢測(cè)算法,其尋找特征點(diǎn)的原理如圖5所示,即以中心像素點(diǎn)P為圓心,以3個(gè)像素單位為半徑畫圓,將位于圓周上的像素點(diǎn)灰度值大小與中心像素點(diǎn)灰度值大小進(jìn)行比較,并將它們分為3類:
圖5 FAST特征點(diǎn)檢測(cè)原理
式中,d、s、b分別為3 種對(duì)應(yīng)類別中像素點(diǎn)的數(shù)量;IP為中心像素點(diǎn)P的灰度值;IP→k為圓周任一像素點(diǎn);t為系統(tǒng)設(shè)定的閾值。
若d+b>M(通常取M=9),則P點(diǎn)被判定為特征點(diǎn)。此外,算法還使用了一種高效分類策略:首先根據(jù)式(9)利用像素點(diǎn)1、5 迅速剔除非特征點(diǎn),然后檢測(cè)像素點(diǎn)9和13,若像素點(diǎn)1、5、9、13 中至少有3 個(gè)滿足|IP→k-IP|>t,則該點(diǎn)為候選點(diǎn),最后對(duì)候選點(diǎn)進(jìn)行全面測(cè)試,根據(jù)上述原理判斷該點(diǎn)是否為特征點(diǎn)。
經(jīng)上述分析可知,F(xiàn)AST 算法判斷某像素點(diǎn)是否為特征點(diǎn)的依據(jù)是該點(diǎn)與其定義域上像素點(diǎn)的灰度差異,因此使得特征點(diǎn)提取效果極易受圖像對(duì)比度的影響,采用固定的閾值難以獲得理想的特征點(diǎn)提取結(jié)果。當(dāng)圖像對(duì)比度較小時(shí),像素點(diǎn)之間的灰度值差異也會(huì)相應(yīng)減小,甚至小于系統(tǒng)設(shè)定的閾值,一些原本是特征點(diǎn)的像素點(diǎn)被判定為非特征點(diǎn),導(dǎo)致提取的特征點(diǎn)數(shù)量大幅減少,出現(xiàn)誤排除現(xiàn)象。同理,當(dāng)圖像對(duì)比度較大時(shí),像素點(diǎn)之間的灰度值差異也會(huì)相應(yīng)增大,一些原本不是特征點(diǎn)的像素點(diǎn)被判定為特征點(diǎn),導(dǎo)致提取的特征點(diǎn)數(shù)量大幅度增加,出現(xiàn)誤提取現(xiàn)象。針對(duì)上述問題,受自適應(yīng)閾值分割思想的啟發(fā),本文基于FAST 算法提出一種動(dòng)態(tài)閾值的特征點(diǎn)檢測(cè)方法。動(dòng)態(tài)閾值即對(duì)圖像中不同的像素點(diǎn)設(shè)置不同的閾值,減小圖像對(duì)比度變化對(duì)特征點(diǎn)提取產(chǎn)生的影響。動(dòng)態(tài)閾值t定義為:
式中,ξ為自適應(yīng)參數(shù);Imax、Imin分別為中心像素點(diǎn)定義域上灰度值最大和最小的像素點(diǎn)的灰度值;IAVG為除去Imax、Imin后余下14個(gè)像素點(diǎn)的灰度均值。
改進(jìn)后FAST特征點(diǎn)檢測(cè)算法的主要步驟如下:
a.選取中心像素點(diǎn)P,分別計(jì)算像素點(diǎn)1、5、9、13的灰度值IP→1、IP→5、IP→9、IP→13;
b.判斷像素點(diǎn)1、5、9、13 的灰度值是否滿足|IP→k-IP|>t,假設(shè)有任意3 個(gè)位置同時(shí)滿足,則該中心像素點(diǎn)是候選特征點(diǎn);
c.分別計(jì)算像素點(diǎn)2、3、4、6、7、8的灰度值;
d.判斷步驟c中6個(gè)像素點(diǎn)的灰度值是否全部滿足|IP→k-IP|>t,若全部滿足,則P是特征點(diǎn),反之,則不是。
特征點(diǎn)提取后通過匹配即可得到視差。特征點(diǎn)匹配采用漢明距離,并且為了加快匹配速度,使用最近鄰(Best-Bin First,BBF)搜索策略代替ORB算法中的線性掃描策略。由于光照、噪聲以及相機(jī)抖動(dòng)等的影響,特征點(diǎn)的誤匹配難以避免,這將直接降低視差計(jì)算的精度,以至于影響測(cè)距的精度。故引入PROSAC算法剔除誤匹配點(diǎn),主要過程為:
a.將所有匹配點(diǎn)按照漢明距離進(jìn)行降序排列;
b.設(shè)定內(nèi)點(diǎn)誤差、內(nèi)點(diǎn)數(shù)量閾值和最大迭代次數(shù)的初始值;
c.根據(jù)隨機(jī)抽樣一致(Random sample consensus,RANSAC)算法抽樣策略從數(shù)據(jù)集中隨機(jī)抽取數(shù)量為q的數(shù)據(jù)進(jìn)行模型擬合,由內(nèi)點(diǎn)誤差閾值計(jì)算內(nèi)點(diǎn)數(shù)量并判斷兩者的大小關(guān)系,若前者大,則繼續(xù)迭代,反之,則返回內(nèi)點(diǎn)數(shù)量;
d.如當(dāng)前迭代次數(shù)大于最大迭代次數(shù),則返回內(nèi)點(diǎn)數(shù)最大的擬合模型,反之,跳轉(zhuǎn)至步驟c繼續(xù)迭代。
圖6所示為搭建的試驗(yàn)平臺(tái)與測(cè)試場(chǎng)景,雙目相機(jī)和筆記本電腦分別用于圖像數(shù)據(jù)的采集和處理,詳細(xì)參數(shù)如表1所示。
圖6 試驗(yàn)平臺(tái)與測(cè)試場(chǎng)景
表1 試驗(yàn)設(shè)備參數(shù)
為確保車輛測(cè)距的精度,對(duì)所提出的基于Haar-like特征與AdaBoost 算法的車輛檢測(cè)方法進(jìn)行試驗(yàn)驗(yàn)證。使用本文創(chuàng)建的正、負(fù)樣本集對(duì)用于車輛檢測(cè)的分類器進(jìn)行離線訓(xùn)練,其中正樣本集包括17 275張前方車輛圖片,負(fù)樣本集包括8 610張不含車輛信息但與車輛行駛環(huán)境密切相關(guān)的背景圖片,如建筑物、非機(jī)動(dòng)車、路面標(biāo)線、交通指示牌等。測(cè)試樣本是利用雙目相機(jī)在上海市高速公路上采集的3段行車視頻,利用該樣本和離線訓(xùn)練好的14階級(jí)聯(lián)分類器進(jìn)行試驗(yàn),結(jié)果如表2所示。
由表2可知,本文所提出的車輛檢測(cè)算法在保證平均誤檢率僅為1.08%的情況下,平均檢測(cè)率可達(dá)95.32%,且平均每幀耗時(shí)僅為24.58 ms,可滿足FCW 系統(tǒng)車輛檢測(cè)的精確性和實(shí)時(shí)性要求?;谏鲜龇椒?,對(duì)圖6所示場(chǎng)景中不同距離段的目標(biāo)車輛進(jìn)行了測(cè)試,結(jié)果表明,該方法同樣可以快速準(zhǔn)確地定位目標(biāo)車輛,可視化結(jié)果如圖7所示。
表2 車輛檢測(cè)結(jié)果
圖7 不同距離段車輛檢測(cè)結(jié)果
在準(zhǔn)確檢測(cè)到目標(biāo)車輛后,通過提取車輛的ORB特征點(diǎn)計(jì)算平均視差,并根據(jù)式(8)計(jì)算距離。試驗(yàn)主要通過比較基于傳統(tǒng)ORB算法與本文算法測(cè)距的精度來驗(yàn)證本文方法的優(yōu)越性。為了準(zhǔn)確計(jì)算目標(biāo)車輛在任意時(shí)刻與雙目相機(jī)的距離,限定目標(biāo)車輛以30 km/h的速度經(jīng)過雙目相機(jī)并始終保持該速度向前行駛,共采集了120 幀連續(xù)的圖像序列。利用這些圖像數(shù)據(jù)進(jìn)行了ORB特征點(diǎn)提取與匹配以及測(cè)距對(duì)比試驗(yàn)。
5.2.1 ORB特征點(diǎn)提取與匹配結(jié)果分析
圖8展示了傳統(tǒng)ORB算法與本文算法特征點(diǎn)提取與匹配的效果,從圖8中可以看出:傳統(tǒng)ORB算法提取的特征點(diǎn)堆積情況顯著,重復(fù)提取情況嚴(yán)重,且存在很多誤匹配,本文算法有效改善了這一問題,使特征點(diǎn)分布均勻合理,并利用PROSAC算法去除了大量誤匹配點(diǎn)。
圖8 特征點(diǎn)提取與匹配對(duì)比
5.2.2 測(cè)距結(jié)果分析
分別利用傳統(tǒng)ORB算法和本文算法對(duì)其中90幀連續(xù)圖像序列中的行駛車輛進(jìn)行測(cè)距,每12幀抽取1幀進(jìn)行記錄,結(jié)果如表3 所示,本文算法測(cè)距可視化結(jié)果如圖9所示,測(cè)距誤差如圖10所示。
表3 傳統(tǒng)ORB算法與本文算法測(cè)距結(jié)果對(duì)比
圖9 本文算法車輛測(cè)距結(jié)果
圖10 測(cè)距誤差
由表3 可知:在14 m 距離范圍內(nèi),本文算法的測(cè)距誤差在2%以內(nèi),傳統(tǒng)ORB 算法的最高測(cè)距誤差可達(dá)8%,遠(yuǎn)高于本文算法;本文算法的處理速度可達(dá)32幀/s,略高于傳統(tǒng)ORB 算法,滿足前車測(cè)距的實(shí)時(shí)性要求。此外,由圖10 可知:在不同距離范圍內(nèi),本文算法均可保持較高的測(cè)距精度,尤其當(dāng)距離小于3 m 時(shí),測(cè)量距離接近真實(shí)值;而當(dāng)距離大于1.5 m 時(shí),傳統(tǒng)ORB 算法的測(cè)距誤差明顯增大;與傳統(tǒng)ORB算法相比,本文算法在不同距離段的測(cè)距平均誤差明顯降低,精度遠(yuǎn)高于傳統(tǒng)ORB算法。
本文基于雙目視覺測(cè)距模型,提出了一種基于機(jī)器學(xué)習(xí)和改進(jìn)ORB算法的前車測(cè)距方法。通過搭建雙目系統(tǒng)試驗(yàn)平臺(tái)進(jìn)行了實(shí)車測(cè)距試驗(yàn)分析,結(jié)果表明:在14 m的距離范圍內(nèi),所提出方法的測(cè)距誤差在2%以內(nèi),與基于傳統(tǒng)ORB 特征匹配測(cè)距的方法相比,測(cè)距平均誤差降低了4.11 百分點(diǎn);該測(cè)距方法具有較高的實(shí)時(shí)性,能夠?qū)崟r(shí)有效地為前方碰撞預(yù)警系統(tǒng)提供精準(zhǔn)的前車距離信息。此外,本文試驗(yàn)驗(yàn)證中所使用的雙目相機(jī)距離測(cè)量范圍有限,而且尚未考慮到多車輛以及車輛間相互遮擋情況下的測(cè)距,因此復(fù)雜場(chǎng)景下的遠(yuǎn)距離測(cè)距將是后續(xù)研究的重點(diǎn)。