基于單目視覺(jué)的汽車(chē)追尾預(yù)警系統(tǒng)研究
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:汽車(chē)追尾預(yù)警是智能車(chē)輛視覺(jué)導(dǎo)航系統(tǒng)中的重要研究?jī)?nèi)容。設(shè)計(jì)了一個(gè)應(yīng)用于結(jié)構(gòu)化道路環(huán)境,基于單目視覺(jué)的汽車(chē)追尾預(yù)警系統(tǒng)。該系統(tǒng)按照攝像機(jī)提供的道路圖像序列,首先利用一種新的邊緣檢測(cè)算法識(shí)別前方道路,然后利用灰度、邊緣和對(duì)稱(chēng)性等特征識(shí)別前方車(chē)輛,接下來(lái)根據(jù)前后車(chē)距判斷其威脅等級(jí),最終向駕駛員提供相應(yīng)的聲光報(bào)警信號(hào)。該系統(tǒng)已在合肥的高速公路上進(jìn)行了實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果顯示,系統(tǒng)運(yùn)行速度達(dá)到車(chē)輛駕駛的實(shí)時(shí)性要求,能夠完成車(chē)輛檢測(cè)和碰撞預(yù)警的任務(wù)。
關(guān)鍵詞:車(chē)輛檢測(cè);碰撞預(yù)警;單目視覺(jué);智能車(chē)輛
0 引言
基于計(jì)算機(jī)視覺(jué)的高速公路防撞系統(tǒng)是當(dāng)前智能交通管理系統(tǒng)研究的熱點(diǎn)之一。如何在多變的環(huán)境下快速準(zhǔn)確地從視頻圖像里檢測(cè)到車(chē)道和前方車(chē)輛是實(shí)現(xiàn)這類(lèi)系統(tǒng)面臨的最關(guān)鍵問(wèn)題。近20年來(lái),國(guó)內(nèi)外很多研究人員對(duì)這個(gè)問(wèn)題進(jìn)行了大量研究,提出了多種多樣的實(shí)用算法并成功開(kāi)發(fā)了一些視覺(jué)系統(tǒng)。這些系統(tǒng)所采用的算法基本上可以分為基于雙目視覺(jué)的方法、基于運(yùn)動(dòng)的方法、基于外形的方法和基于知識(shí)的方法?;陔p目立體視覺(jué)的方法計(jì)算量大,需要特殊硬件支持;基于運(yùn)動(dòng)的方法,無(wú)法檢測(cè)靜止目標(biāo)且實(shí)時(shí)性差;基于外形的方法,因建立有效的培訓(xùn)樣本仍然是需要研究的問(wèn)題;基于知識(shí)的方法,在障礙物數(shù)量較少時(shí)效率較高,但復(fù)雜環(huán)境下錯(cuò)誤率有所增加。
針對(duì)常規(guī)算法的不足,本文設(shè)計(jì)了一種精度高,穩(wěn)定性好的基于單目視覺(jué)的車(chē)載追尾預(yù)警系統(tǒng)。它利用一種新的邊緣檢測(cè)算法識(shí)別前方道路,然后利用陰影檢測(cè)與跟蹤相結(jié)合的方法識(shí)別前方車(chē)輛,接下來(lái)根據(jù)前后車(chē)距判斷其威脅等級(jí),最終向駕駛員提供相應(yīng)的聲光報(bào)警信號(hào)。
1 系統(tǒng)工作原理
系統(tǒng)硬件部分包括MCC-4060型CCD攝像機(jī)、VT-121視頻采集卡、GPS、PC-104工控機(jī)和顯示終端。GPS通過(guò)串口向工控機(jī)發(fā)送本車(chē)車(chē)速信息,安裝在車(chē)內(nèi)擋風(fēng)玻璃后的CCD攝像機(jī)將圖像幀通過(guò)視頻采集卡送入工控機(jī),經(jīng)過(guò)軟件的處理分析后,在顯示終端上標(biāo)注出前車(chē)障礙物和道路標(biāo)線,同時(shí)根據(jù)車(chē)速、間距等判斷危險(xiǎn)等級(jí),發(fā)出相應(yīng)的聲光報(bào)警信號(hào);
系統(tǒng)的軟件部分包括道路檢測(cè)、道路跟蹤、車(chē)輛檢測(cè)、車(chē)輛跟蹤、測(cè)距、決策和報(bào)警等模塊。當(dāng)車(chē)速達(dá)到60km/h時(shí),系統(tǒng)開(kāi)始處理實(shí)時(shí)采集到的圖像序列。對(duì)于每一幀圖像,首先檢測(cè)并跟蹤圖像中的車(chē)道白線,然后在車(chē)道確定的感興趣區(qū)域內(nèi)檢測(cè)車(chē)輛。如果存在疑似障礙車(chē)輛,則啟動(dòng)車(chē)輛跟蹤,利用跟蹤信息進(jìn)一步排除虛警。在實(shí)現(xiàn)對(duì)障礙車(chē)輛穩(wěn)定跟蹤后,估算出兩車(chē)間距和相對(duì)運(yùn)動(dòng)速度,判定其威脅等級(jí),并發(fā)出相應(yīng)的報(bào)警信號(hào)。
2 系統(tǒng)關(guān)鍵技術(shù)
2.1 道路檢測(cè)
目前,車(chē)道線檢測(cè)算法主要適用于光照充足的環(huán)境下。由于車(chē)道線與路面之間對(duì)比度大,因此很容易利用各種常規(guī)邊緣檢測(cè)算子獲得清晰的車(chē)道輪廓信息,然后選取合適的閾值對(duì)圖像進(jìn)行二值化處理,最后采用Hough變換識(shí)別車(chē)道線。然而在復(fù)雜光照環(huán)境下,圖像會(huì)受到各種光線直射和物體多次反射形成雜散光的干擾,圖像光強(qiáng)不能反映車(chē)道本身突變性質(zhì),導(dǎo)致無(wú)法正確檢測(cè)出車(chē)道。
本系統(tǒng)采用了一種利用光密度差得到車(chē)道標(biāo)線與路面反射率差,進(jìn)而進(jìn)行非線性邊緣檢測(cè),再進(jìn)行Hough變換的車(chē)道檢測(cè)算法。此算法可以有效解決在復(fù)雜光照條件下的車(chē)道檢測(cè),也可以用于夜間的車(chē)道檢測(cè)。
另外,目前車(chē)道線的跟蹤研究主要采用固定區(qū)域法或者Kalman濾波法,根據(jù)前一幀車(chē)道線檢測(cè)的結(jié)果來(lái)劃分感興趣區(qū)域,以實(shí)時(shí)跟蹤車(chē)道線。然而,固定區(qū)域法對(duì)2幀圖像的相關(guān)性依賴大,劃分感興趣區(qū)域大,實(shí)時(shí)性差;而Kalman濾波法劃分感興趣區(qū)域小,容易產(chǎn)生檢測(cè)誤差,而造成跟蹤誤差累積,跟蹤正確率不高。因此,本系統(tǒng)在跟蹤車(chē)道線時(shí)采用了一種融合固定區(qū)域法和KaIman濾波法劃分感興趣區(qū)域的新方法。
一般來(lái)說(shuō),只將車(chē)道邊界線交點(diǎn)(即滅點(diǎn))以下、2車(chē)道線之間的區(qū)域作為感興趣區(qū)域,考慮到跨道行駛的車(chē)輛依然對(duì)本車(chē)有威脅,算法把兩車(chē)道線分別向兩側(cè)平移40個(gè)像素,使感興趣區(qū)域擴(kuò)展到可以覆蓋跨道車(chē)輛的范圍。
2.2 車(chē)輛檢測(cè)
圖像中包含車(chē)輛前方很大視野內(nèi)的物體,如道路、樹(shù)木、護(hù)欄、標(biāo)牌以及其他車(chē)輛,要從中準(zhǔn)確檢測(cè)出前方車(chē)輛是一項(xiàng)困難的工作,而本文的車(chē)輛檢測(cè)模塊會(huì)根據(jù)圖像背景自動(dòng)改變?cè)O(shè)置參數(shù),以適應(yīng)不斷變化的道路場(chǎng)景和光照條件。
要實(shí)現(xiàn)車(chē)輛的快速檢測(cè),首先需要根據(jù)車(chē)輛的基本特征進(jìn)行初步檢測(cè),將所有可能的疑似車(chē)輛區(qū)域從圖像中提取出來(lái),然后再根據(jù)其他特征對(duì)疑似區(qū)域進(jìn)行篩選排除。
2.2.1 車(chē)輛初步檢測(cè)
初步檢測(cè)采用的特征是車(chē)輛陰影,即一塊位于目標(biāo)車(chē)輛底部、灰度值明顯比附近路面區(qū)域低的區(qū)域。在一般環(huán)境條件下,大部分車(chē)輛都具有這一顯著特征。
車(chē)輛初步檢測(cè)的流程如圖1所示。車(chē)輛陰影和車(chē)道一樣具有灰度突變的特點(diǎn),因此可以調(diào)用車(chē)道檢測(cè)算法對(duì)圖2(a)中的原始圖像做二值化處理,得到圖2(b)中的邊緣二值化圖像。同時(shí)還要對(duì)原始圖像進(jìn)行灰度二值化,得到圖2(c)中的灰度二值化圖像。為提高檢測(cè)實(shí)時(shí)性,以本車(chē)附近路面區(qū)域的平均灰度作為二值化閾值。由于邊緣二值化圖像和灰度二值化圖像都包括了車(chē)輛的下底邊,將這兩幅圖像進(jìn)行“或”運(yùn)算,就可以得到如圖2(d)所示的車(chē)輛陰影圖像。
在陰影圖像中由下至上逐行搜索,尋找連續(xù)陰影點(diǎn)超過(guò)一定閾值的線段,并以此線段為底邊劃出一個(gè)矩形區(qū)域作為疑似車(chē)輛區(qū)域。為保證疑似區(qū)域包含車(chē)輛整體,矩形的寬度比線段稍寬,高度由寬度按比例給出。為避免重復(fù)搜索,將已搜索到的疑似區(qū)域內(nèi)陰影完全抹去。由于同一車(chē)輛的各個(gè)部分可能分別被檢測(cè)為疑似目標(biāo),因此還需要對(duì)各個(gè)相交的疑似區(qū)域進(jìn)行合并。由于前方車(chē)輛的遮擋,可能會(huì)將多個(gè)目標(biāo)認(rèn)定為一個(gè)目標(biāo),但是對(duì)本車(chē)的安全無(wú)影響。
2.2.2 篩選驗(yàn)證
如果單純采用陰影特征進(jìn)行車(chē)輛檢測(cè),在保證較低“漏警”率的同時(shí),也造成了較高的“虛警”率,因此還需要對(duì)疑似區(qū)域進(jìn)行篩選和驗(yàn)證。
對(duì)于結(jié)構(gòu)化道路,車(chē)輛寬度與車(chē)道寬度的比值應(yīng)該是大致固定的,那么當(dāng)攝像機(jī)的焦距、俯仰角等參數(shù)固定后,圖像上車(chē)道寬度(像素?cái)?shù))與車(chē)輛寬度(像素?cái)?shù))也滿足這個(gè)比例。根據(jù)之前檢測(cè)的車(chē)道方程,就可以計(jì)算出感興趣區(qū)域內(nèi)任意縱坐標(biāo)上車(chē)輛圖像寬度的范圍,并剔除寬度不在此范圍內(nèi)的疑似區(qū)域。
在以往的車(chē)輛驗(yàn)證方法中,最常用的是對(duì)稱(chēng)性測(cè)度驗(yàn)證。這種算法的計(jì)算量較大,且對(duì)于背景復(fù)雜,對(duì)稱(chēng)度差圖像的驗(yàn)證效果不盡人意。為了解決這個(gè)問(wèn)題,該系統(tǒng)采用了一種基于邊緣二值化圖像,通過(guò)搜索車(chē)輛左右邊緣進(jìn)行驗(yàn)證的算法。
假設(shè)疑似區(qū)域的寬度為W,區(qū)域左邊緣的坐標(biāo)為(X1,Y1),右邊緣的水平坐標(biāo)為(X2,Y2)。定義函數(shù):
式中:f(x,y)為(x,y)點(diǎn)的灰度值。在區(qū)間(X1-W/4,X1+W/4)內(nèi)搜索g(u)的最大值點(diǎn),該點(diǎn)對(duì)應(yīng)的水平坐標(biāo)X1’就是車(chē)輛的左邊緣坐標(biāo)。同理也可以搜索到車(chē)輛的右邊緣X2’。如果左右邊緣的g(u)值均大于某閾值,那么就可以認(rèn)定該車(chē)輛確實(shí)存在。實(shí)驗(yàn)證明,該算法能排除掉大量的“虛警”區(qū)域并得到真實(shí)車(chē)輛的兩側(cè)邊緣。
2.3 車(chē)輛跟蹤
現(xiàn)關(guān)心的是前方車(chē)輛與本車(chē)相對(duì)的二維位置和速度,因此只需要使用卡爾曼濾波器預(yù)測(cè)橫坐標(biāo)x、橫向速度Vx、縱坐標(biāo)y、縱向坐標(biāo)Vy這四個(gè)狀態(tài)向量。此外由于x方向和y方向的狀態(tài)向量沒(méi)有直接聯(lián)系,所以可以將其分為兩組分別處理。
在車(chē)輛行駛過(guò)程中,由于顛簸或遮擋等原因,系統(tǒng)可能會(huì)將路牌、灌木叢等物體誤認(rèn)為是車(chē)輛檢測(cè)出來(lái),產(chǎn)生虛警。而這些虛警物體往往只能在連續(xù)數(shù)幀圖像中存在。如果不采取措施,系統(tǒng)就會(huì)時(shí)常產(chǎn)生短促的報(bào)警。
當(dāng)圖像采樣間隔足夠短時(shí),相鄰幀內(nèi)同一車(chē)輛的位置會(huì)具有很大的相關(guān)性。
系統(tǒng)采用檢測(cè)與跟蹤相結(jié)合的方法,根據(jù)第n幀圖像獲得的信息,預(yù)測(cè)車(chē)輛在第n+1幀圖像中的位置等信息,并與n+1幀圖像中實(shí)際檢測(cè)到的結(jié)果進(jìn)行比對(duì)。如果二者匹配度最大且超出一定值,則認(rèn)定為同一車(chē)輛,繼續(xù)進(jìn)行跟蹤、報(bào)警,否則認(rèn)為此車(chē)已被遮擋或消失,暫時(shí)不做處理,數(shù)幀后被剔除出去。
2.4 測(cè)距報(bào)警
車(chē)間測(cè)距通常采用幾何投影模型,采用了一種簡(jiǎn)化的車(chē)距模型公式L×W=C,其中L為兩車(chē)間距,單位為m;W為圖像上目標(biāo)車(chē)輛處車(chē)道寬度,單位為pixel;C為常數(shù),可通過(guò)事先的標(biāo)定獲得。然而兩車(chē)間安全車(chē)距S采用文獻(xiàn)推導(dǎo)的臨界安全車(chē)距公式動(dòng)態(tài)得到。
式中:Vr為相對(duì)車(chē)速,由對(duì)測(cè)出車(chē)距求導(dǎo)得到相對(duì)車(chē)速后進(jìn)行卡爾曼濾波得到;Vb為本車(chē)車(chē)速,由GPS得到。
如果告警頻率過(guò)高,容易使駕駛員麻痹大意,過(guò)低可能使駕駛員來(lái)不及做出反應(yīng),因此該系統(tǒng)采用由遠(yuǎn)至近的三段報(bào)警。
若車(chē)距d≥1.5S,判定為3級(jí)威脅,發(fā)出長(zhǎng)而緩的報(bào)警聲,提醒駕駛員前方有障礙物,但暫無(wú)危險(xiǎn);若車(chē)距S≤d≤1.5S,判定為2級(jí)威脅,發(fā)出較急促的報(bào)警聲,提醒駕駛員減速;若車(chē)距d≤S,判定為1級(jí)威脅,發(fā)出短而急的報(bào)警聲,提醒駕駛員制動(dòng);3種狀態(tài)下的告警聲差異很大,駕駛員可以很容易地根據(jù)報(bào)警聲判斷威脅等級(jí)。
3 試驗(yàn)結(jié)果
系統(tǒng)框架及所有算法在Boiland C++ Builder 6環(huán)境下編譯完成。為了驗(yàn)證系統(tǒng)算法的可靠性和實(shí)時(shí)性,利用在合肥市環(huán)城高速公路上采集不同車(chē)型、不同路段、不同環(huán)境光下多組道路圖像作為測(cè)試序列,進(jìn)行了大量實(shí)驗(yàn)。
圖3為典型道路場(chǎng)景下的實(shí)驗(yàn)結(jié)果,圖3(a)為大型卡車(chē);(b)為小型面包車(chē);(c)為遠(yuǎn)距離處;(d)為近距離處的檢測(cè)結(jié)果。系統(tǒng)將檢測(cè)到的目標(biāo)用黑框標(biāo)記出來(lái)。
可以看出,系統(tǒng)能夠檢測(cè)到本車(chē)道內(nèi)不同距離上的各種車(chē)型車(chē)輛。在高速公路上的實(shí)驗(yàn)結(jié)果表明,在最大車(chē)速100 km/h的情況下,系統(tǒng)在Celeron M 600 MHz處理器上的處理速度為8 j/s左右,也就是說(shuō)處理一幀圖像的時(shí)間內(nèi)車(chē)輛行駛3~4 m,基本滿足實(shí)時(shí)報(bào)警的要求。在一般光照條件下,系統(tǒng)正常報(bào)警的縱向距離超過(guò)200 m,視場(chǎng)角遠(yuǎn)遠(yuǎn)大于雷達(dá)(一般為±7°)。
為了驗(yàn)證單目視覺(jué)測(cè)距準(zhǔn)確性,在市內(nèi)道路上采集了前車(chē)與本車(chē)距離從5~100 m的一組圖像。對(duì)采集的圖像進(jìn)行處理后,根據(jù)公式推導(dǎo)出本車(chē)與前車(chē)距離以及實(shí)際距離見(jiàn)表1。表中數(shù)據(jù)顯示,單目視覺(jué)測(cè)距的相對(duì)誤差都在5%以內(nèi),可以滿足實(shí)際工作中測(cè)距告警的需要。
4 結(jié)語(yǔ)
本文設(shè)計(jì)了一個(gè)基于單目視覺(jué)的汽車(chē)追尾預(yù)警系統(tǒng)。該系統(tǒng)采用了一種基于光密度差的道路檢測(cè)算法,并使用了一種以車(chē)輛陰影檢測(cè)為主、左右邊緣檢測(cè)為輔的車(chē)輛探測(cè)方法,同時(shí)采用了簡(jiǎn)單、實(shí)用的測(cè)距和報(bào)警方法。高速公路上的實(shí)驗(yàn)結(jié)果證明了該系統(tǒng)的實(shí)時(shí)性、魯棒性和準(zhǔn)確性。該系統(tǒng)目前還沒(méi)有在雨霧天氣或缺少照明的夜間環(huán)境下進(jìn)行試驗(yàn),未來(lái)我們將針對(duì)這些使用環(huán)境對(duì)系統(tǒng)做進(jìn)一步改進(jìn)和優(yōu)化。