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