程 騰,蔣亞西,吳勃夫,王靜靜,朱西漢,杜卿宇
(合肥工業(yè)大學(xué)汽車(chē)與交通工程學(xué)院,合肥 230009)
據(jù)統(tǒng)計(jì),我國(guó)所有高速公路交通事故中,34.29%為追尾碰撞[1-3]。由于駕駛員注意力不集中導(dǎo)致的大量追尾事故已被認(rèn)定為汽車(chē)主要的安全問(wèn)題。因此準(zhǔn)確的預(yù)警對(duì)減少交通事故起到了重要作用。
精確的車(chē)輛跟蹤與碰撞的預(yù)警密切相關(guān),不精確的跟蹤一方面會(huì)產(chǎn)生報(bào)警不及時(shí),無(wú)法有效避免交通事故,另一方面會(huì)產(chǎn)生誤報(bào),降低駕駛員的駕駛舒適性。傳統(tǒng)的 meanshift跟蹤算法簡(jiǎn)單,魯棒性好,但在跟蹤過(guò)程中由于窗口寬度大小保持不變,當(dāng)背景復(fù)雜,目標(biāo)尺度變化時(shí),跟蹤就會(huì)失敗,無(wú)法實(shí)現(xiàn)后續(xù)的計(jì)算[4-5];CMT[6]算法是一種基于特征點(diǎn)的跟蹤方法,使用了經(jīng)典的光流法,可跟蹤任何場(chǎng)景下任何物體,且跟蹤框能隨目標(biāo)尺度的變化而變化。但在實(shí)際應(yīng)用時(shí),該算法耗時(shí)較長(zhǎng),在遠(yuǎn)距離跟蹤時(shí)跟蹤不準(zhǔn)確,無(wú)法有效實(shí)現(xiàn)遠(yuǎn)距離車(chē)輛碰撞預(yù)警,同時(shí)計(jì)算目標(biāo)尺寸縮放時(shí)選取的是所有特征點(diǎn)計(jì)算結(jié)果的中值為縮放值,存在一定誤差。
為解決上述問(wèn)題,本文中提出一種基于數(shù)字圖像相關(guān)(DIC)的高精度車(chē)輛跟蹤算法,以檢測(cè)到的車(chē)輛為跟蹤目標(biāo),在目標(biāo)區(qū)域周?chē)M(jìn)行亞像素級(jí)別的搜索匹配并不斷更新跟蹤框大小,在保證算法實(shí)時(shí)性的同時(shí)提高了車(chē)輛跟蹤的精度,實(shí)現(xiàn)更為準(zhǔn)確的預(yù)警,以提高駕駛安全性。
數(shù)字圖像相關(guān)方法(DIC)[7]于20世紀(jì)80年代被提出來(lái),作為一種基于數(shù)字圖像處理和高精度數(shù)值計(jì)算的先進(jìn)光學(xué)測(cè)量技術(shù),已在工業(yè)上得到廣泛應(yīng)用[8]。數(shù)字圖像相關(guān)方法處理的是變形前后物體表面的數(shù)字圖像,通常變形前后的圖像分別稱(chēng)為“參考圖像”和“變形后圖像”,其基本原理如圖1所示。在參考圖像f(x,y)中選取以待求點(diǎn)(xc,yc)為中心、大小為(2M+1)×(2M+1)的區(qū)域?yàn)閰⒖紙D像子區(qū),通過(guò)一定的搜索方法按照預(yù)先定義的相關(guān)函數(shù)進(jìn)行計(jì)算,尋找與參考圖像子區(qū)的相關(guān)系數(shù)為最大值或最小值的、以(xc′,yc′)為中心的目標(biāo)圖像子區(qū),從而確定參考圖像子區(qū)中心點(diǎn)的x和y方向的位移分量[9-11]。
圖1 變形前后圖像子區(qū)示意圖
文獻(xiàn)[12]中顯示,零均值歸一化最小平方距離函數(shù)(ZNSSD)相關(guān)函數(shù)與常用的零均值歸一化互相關(guān)(ZNCC)函數(shù)等價(jià),但ZNSSD相關(guān)函數(shù)對(duì)于目標(biāo)圖像子區(qū)灰度的線(xiàn)性變化不敏感,抗干擾能力強(qiáng),因此本文中使用ZNSSD相關(guān)函數(shù)作為評(píng)價(jià)變形前后的圖像子區(qū)相似程度的相關(guān)函數(shù)。
式中:f(x,y),g(x,y)分別為參考圖像和目標(biāo)圖像子區(qū)中對(duì)應(yīng)點(diǎn)的灰度;fm,gm分別為參考圖像和目標(biāo)圖像子區(qū)灰度平均值;p為待求變形參數(shù)矢量,即p=(u,ux,uy,v,vx,vy)。當(dāng)變形前后圖像子區(qū)最為相似時(shí),相關(guān)系數(shù)Cf,g(p)取最小值。
參考圖像子區(qū)變形后,中心位置和整個(gè)子區(qū)形狀都可能發(fā)生變化,而使用位移形函數(shù)[13-14]可表示這種變化。當(dāng)僅考慮圖像目標(biāo)子區(qū)僅發(fā)生剛體位移、拉伸、彎曲和剪切等變形時(shí),可采用1階位移形函數(shù)[15-17]:
如圖2所示,w1和w2分別為前車(chē)距相機(jī)鏡頭D1和D2處時(shí)相機(jī)圖像中的車(chē)寬;o為相機(jī)光軸與成像平面的交點(diǎn)?;谛】壮上竦脑韀18],主車(chē)距前車(chē)的距離與圖像中車(chē)寬的關(guān)系為
式中:W為前車(chē)寬度;D為距前車(chē)距離;f為相機(jī)焦距;w為前車(chē)車(chē)寬在成像平面中的大小。
利用4對(duì)透視變換前后對(duì)應(yīng)點(diǎn)的坐標(biāo),通過(guò)二維透視變換公式[19-20],即可得到透視變換矩陣。采用獲得的透視變換矩陣實(shí)現(xiàn)相機(jī)圖像向?qū)嶋H空間俯視圖圖像的轉(zhuǎn)換[21]。透視變換如下:
圖2 成像幾何示意圖
相機(jī)圖像中道路上某點(diǎn)(x0,y0)對(duì)應(yīng)的實(shí)際前車(chē)距離為式中:ym為實(shí)際空間中縱向距離1m對(duì)應(yīng)俯視圖中像素個(gè)數(shù);Dhead為相機(jī)圖像底端在實(shí)際空間中對(duì)應(yīng)的位置到車(chē)頭的距離。
本文中采用的視頻分辨率為752×480,實(shí)驗(yàn)中計(jì)算的透視變換矩陣為
Dhead=1.8m,ym=10個(gè)像素,前車(chē)位于主車(chē)正前方,選取前車(chē)輪胎與地面接觸點(diǎn)連線(xiàn)的中點(diǎn)(x0,y0)計(jì)算車(chē)距。實(shí)際行駛過(guò)程中前車(chē)遠(yuǎn)離主車(chē)時(shí)x0變化較小,而y0值越來(lái)越小。實(shí)驗(yàn)中某一幀對(duì)應(yīng)的x0=434,y0=181,由式(7)可得距離 D11=105.671m,當(dāng)前車(chē)?yán)^續(xù)遠(yuǎn)離本車(chē),x0保持不變,y0變化一個(gè)像素即y0=180時(shí),帶入式(7)可得 D22=114.402m。由此可見(jiàn)前車(chē)距本車(chē)較遠(yuǎn)時(shí),圖像中單位像素的變化對(duì)應(yīng)實(shí)際距離較大,若仍采用像素級(jí)計(jì)算前車(chē)距離會(huì)產(chǎn)生較大誤差,因此在圖像分辨率確定條件下必須采用亞像素級(jí)精度計(jì)算。
對(duì)式(4)求導(dǎo)可得式中:w′為單位時(shí)間車(chē)寬像素變化個(gè)數(shù),像素/s;vr為相對(duì)速度,m/s;T為預(yù)碰撞時(shí)間,s。
對(duì)式(8)兩端同時(shí)除以幀率fps可得連續(xù)兩幀之間圖像中車(chē)寬像素變化個(gè)數(shù)p,即
由式(9)可以看出,p與D,T,fps成反比,與f,W成正比,當(dāng)相機(jī)完成標(biāo)定后,f為定值,同時(shí)fps和W也為定值。當(dāng)要求的碰撞預(yù)警時(shí)間固定時(shí),預(yù)警距離越大,相鄰兩幀之間車(chē)寬像素變化個(gè)數(shù)越少。同理預(yù)警距離固定時(shí),要求的碰撞預(yù)警時(shí)間越長(zhǎng),車(chē)寬像素變化個(gè)數(shù)也越少,實(shí)際的預(yù)警可通過(guò)跟蹤框?qū)挾鹊淖兓瘉?lái)實(shí)現(xiàn)。
將式(7)代入式(9)可得
同時(shí),利用跟蹤框的縮放[18],可計(jì)算相對(duì)速度。
將式(7)代入式(12)可得
式中ε為相鄰兩幀之間車(chē)寬變化率,通過(guò)DIC方法可直接輸出得到。通過(guò)式(13)可計(jì)算兩車(chē)的相對(duì)速度。
本文中f=750個(gè)像素,W=1.68m,fps=20幀/s,在第1.2節(jié)空間距離計(jì)算中可知,x0=434,y0=181時(shí),D11=105.671m,若要實(shí)現(xiàn)在距離D11處滿(mǎn)足預(yù)警時(shí)間T=3s,代入式(10)可得p=0.199個(gè)像素,即連續(xù)兩幀相機(jī)圖像中車(chē)寬變化|w2-w1|為0.199個(gè)像素,像素級(jí)精度已不能滿(mǎn)足精度要求,同時(shí)由式(10)知p與D有關(guān),在距離分析中,像素級(jí)精度在距離計(jì)算上也會(huì)產(chǎn)生較大誤差,這樣進(jìn)一步增加了p計(jì)算的不準(zhǔn)確度。
從式(13)可知,相對(duì)速度的計(jì)算與距離、跟蹤框的縮放和視頻幀率有關(guān),要獲得精準(zhǔn)的相對(duì)速度計(jì)算,必須滿(mǎn)足高精度的距離和跟蹤框縮放的計(jì)算。通過(guò)上述分析可知,在典型的相機(jī)分辨率下,像素級(jí)精度已不能滿(mǎn)足要求。因此,提出一種基于DIC的高精度車(chē)輛跟蹤算法,由式(2)可得
DIC方法中Δx′可滿(mǎn)足0.001個(gè)像素的精度,不論是在距離還是車(chē)寬縮放計(jì)算上都能很好地滿(mǎn)足遠(yuǎn)距離時(shí)前車(chē)的準(zhǔn)確跟蹤計(jì)算。
本實(shí)驗(yàn)采用主頻3.4GHz CPU,內(nèi)存8G的計(jì)算機(jī)為硬件平臺(tái),Windows7操作系統(tǒng)為軟件平臺(tái),編譯環(huán)境采用VS2012配置opencv2.4.9,視頻分辨率為752×480,幀率為20幀/s。實(shí)驗(yàn)中使用Adaboost+Haar特征檢測(cè)算法進(jìn)行車(chē)輛檢測(cè),以檢測(cè)到的車(chē)輛作為初始跟蹤區(qū)域,檢測(cè)結(jié)果為正方形區(qū)域。為提高車(chē)輛跟蹤的精度,同時(shí)降低耗時(shí),本文中提出的跟蹤算法如下。
首先,考慮到檢測(cè)的車(chē)輛區(qū)域邊界部分包含的背景較多,以檢測(cè)到的車(chē)輛區(qū)域的中心為中心,邊長(zhǎng)為原邊長(zhǎng)的0.8倍作為最終的車(chē)輛區(qū)域。其次將截取后的車(chē)輛區(qū)域縮放到23×23大小,采用同樣的縮放比例對(duì)原圖進(jìn)行縮放。之后以縮放后的車(chē)輛區(qū)域?yàn)閳D像參考子區(qū),以參考圖像子區(qū)中心點(diǎn)為中心,在縮放后的原圖中選取35×35大小為感興趣區(qū)域,在該區(qū)域內(nèi)采用DIC的方法進(jìn)行亞像素級(jí)別的搜索匹配,尋找目標(biāo)圖像子區(qū),當(dāng)ZNSSD大于或等于設(shè)定的閾值時(shí)表示跟蹤成功,當(dāng)小于閾值時(shí)則表示跟蹤失敗,本文中設(shè)定的閾值為0.88。實(shí)驗(yàn)證明該閾值能達(dá)到很好的跟蹤效果。隨后在滿(mǎn)足跟蹤條件下,采用DIC方法的同時(shí)得出目標(biāo)圖像子區(qū)在x和y方向的縮放大小。經(jīng)過(guò)大量實(shí)驗(yàn)證明,x方向的縮放更符合實(shí)際情況,因此使用x方向的縮放作為車(chē)輛跟蹤框的最終縮放值。根據(jù)最終輸出的ε值,利用式(13)可實(shí)現(xiàn)相對(duì)速度的計(jì)算。
實(shí)驗(yàn)設(shè)置為前方車(chē)輛在距本車(chē)10m處以30km/h的相對(duì)車(chē)速遠(yuǎn)離本車(chē),分別采用本文的算法與CMT算法進(jìn)行跟蹤,統(tǒng)計(jì)圖像中跟蹤框?qū)挾?、中心點(diǎn)位置變化以及跟蹤耗時(shí)。如圖3所示,圖3(a)和圖3(b)分別為采用基于DIC的跟蹤算法和采用CMT算法在視頻中第22,78,98幀的跟蹤效果圖。從圖中可以看出,基于DIC的跟蹤算法能夠?qū)崿F(xiàn)遠(yuǎn)距離高精度跟蹤,而CMT算法進(jìn)行跟蹤時(shí)在遠(yuǎn)距離處無(wú)法準(zhǔn)確跟蹤。
圖3 基于DIC的跟蹤算法與CMT算法第22,78,98幀實(shí)時(shí)跟蹤對(duì)比
圖4為本文提出的基于DIC的跟蹤算法與CMT算法在跟蹤框?qū)挾葁和跟蹤框中心點(diǎn)y坐標(biāo)的比較。其中圖4(a)為跟蹤框?qū)挾葁隨幀數(shù)變化的比較,圖4(b)為跟蹤框中心點(diǎn)y坐標(biāo)隨幀數(shù)變化的比較。從圖中可以看出,在第37幀到第47幀期間由于路面不平導(dǎo)致主車(chē)輕微振動(dòng),基于DIC的跟蹤算法受其影響較小,跟蹤框尺度縮放平穩(wěn),而CMT算法在跟蹤過(guò)程中受其影響較大,同時(shí)從第89幀到第99幀可以看出,基于DIC的跟蹤算法能進(jìn)行精確的遠(yuǎn)距離跟蹤,跟蹤框?qū)挾入S著前方車(chē)輛的遠(yuǎn)離不斷減小,而CMT算法在遠(yuǎn)距離處未能有效實(shí)現(xiàn)準(zhǔn)確跟蹤。圖5為基于DIC的跟蹤算法與CMT算法在跟蹤耗時(shí)上的對(duì)比。圖中顯示在耗時(shí)方面基于DIC的跟蹤算法明顯優(yōu)于CMT算法,同時(shí)CMT算法的耗時(shí)受特征點(diǎn)的影響,特征點(diǎn)越多,耗時(shí)越長(zhǎng)。綜合分析本研究算法在跟蹤精度與耗時(shí)方面均優(yōu)于CMT算法,而跟蹤精度能很好滿(mǎn)足與前車(chē)碰撞報(bào)警的要求。
圖4 基于DIC的跟蹤算法與CMT算法跟蹤框?qū)挾葁與中心點(diǎn)y坐標(biāo)對(duì)比
圖5 基于DIC的跟蹤算法與CMT算法跟蹤耗時(shí)對(duì)比
針對(duì)現(xiàn)有的車(chē)輛跟蹤算法跟蹤精度不高的問(wèn)題,本文中提出一種基于DIC的高精度車(chē)輛跟蹤算法,跟蹤框的縮放可達(dá)到2%像素精度。實(shí)驗(yàn)結(jié)果表明,該算法能很好地實(shí)現(xiàn)高精度車(chē)輛跟蹤,同時(shí)與CMT算法相比,大大降低跟蹤耗時(shí),在保證精度的同時(shí)縮短了跟蹤時(shí)間,有助于低成本開(kāi)發(fā),降低對(duì)相機(jī)高分辨率的依賴(lài),具有很好的應(yīng)用價(jià)值。