吳 彬, 劉 翔, 尚巖峰, 湯 顯
(1.上海工程技術大學 電子電氣工程學院,上海 201620;2.公安部第三研究所 物聯(lián)網(wǎng)技術研發(fā)中心,上海 200031)
車道偏離預警系統(tǒng)是解決汽車駕駛安全的重要手段,其研究的關鍵是快速、準確的車道線檢測算法以及偏離預警策略。近年來,車道線檢測算法廣泛采取基于邊緣[1]、顏色[2]等特征來提取道路上的車道線區(qū)域,引入Hough[3]變換或隨機抽樣一致性算法[4]獲取直線方程,但均以整幅圖像作為處理背景,增加了算法的計算量。
為了提高算法的效率以及魯棒性,使用動態(tài)感興趣區(qū)域(dynamic region of interest,DROI)的方法逐漸增多,文獻[5]利用柵格法劃分初始感興趣區(qū)域(region of interest,ROI),對像素點進行剔除與保留,實時動態(tài)的產(chǎn)生少量窗口;文獻[6]基于Hough變換找到整個結(jié)構(gòu)化道路圖像的消隱點。但以整個道路作為處理對象,會存在路面干擾,并且運算量仍有改進的空間。文獻[7]根據(jù)幾何特性制定多項約束條件,去除干擾點,文獻[8]設計了極角約束算法,對候選車道線進行篩選,但均忽略了來自車輛以及路面標識引導線的干擾;文獻[4,9]基于投影幾何建立數(shù)學模型以檢測車道線,但這對成像系統(tǒng)的穩(wěn)定性有一定要求。
車道偏離預警的主要方法有:基于車輛當前位置的方法(current car position,CCP)[10],基于車輛偏離時間的方法(time to lane crossing,TLC)[11]等。CCP是基于車輛與車道線的當前位置關系判定車輛是否發(fā)生偏離的方法,不能提前預警;TLC是根據(jù)車輛與車道線位置關系與車輛速度,預測偏離事件的發(fā)生,不過基于當前車道線位置信息可能會因為單幀的檢測誤差或車輛擺動的瞬時變化帶來虛警。
本文針對DROI的選取問題,依據(jù)攝像機三維空間坐標系去除攝像機視野底部車頭區(qū)域,基于累計概率霍夫變換(progressive probabilistic Hough transform,PPHT)確定當前車道的DROI,有效克服了車輛較多時來自其他車道的干擾;使用動態(tài)規(guī)劃法建立車道線檢測優(yōu)選模型,解決路面灌木、路標等干擾,找出最優(yōu)線段;進一步準確提取車道中心線,根據(jù)其方向與位置偏差建立車道偏離預警模型,決策是否發(fā)生車道偏離。
在結(jié)構(gòu)化的公路上,車道線信息主要集中在圖像中下部。
1)初始化DROI
為去除攝像機視野底部的車頭區(qū)域,本文建立空間坐標和圖像坐標系,基于針孔相機模型,根據(jù)三維空間幾何位置信息反推圖像信息,如圖1所示。
圖1 攝像機安裝坐標模型
以攝像機為原點O建立三維空間坐標系,攝像機朝向為z軸,與地面相交A點,過O點向路面作垂線交于B點,OB為攝像機高度h,α為攝像機俯角。在ABO平面,作OC垂直于OA交地面于C點,OC定義為y軸,過O點作zOy的垂線為x軸,構(gòu)成xyz三維空間直角坐標系。在圖像平面建立二維坐標系,以O為原點,橫、縱坐標軸分別為u,v。基于針孔相機模型,攝像機視野中任一空間點P(x,y,z),在圖像坐標中為P(u,v),u=fx/z,v=fy/z其中f為成像系統(tǒng)的焦距。
記錄攝像頭的安裝高度h、車頭寬度a和俯角α,E為車頭頂點,EF⊥OB交OB于點F,使OF=OB/3,D為OE延長至與地面的交點,安裝示意圖如圖2所示。
圖2 攝像機安裝示意
可見,三維空間車頭區(qū)域點D(0,y0,z0),投影在二維圖像平面中為D(0,v0),計算得到
(1)
調(diào)整攝像機的外部參數(shù),使選取的ROI為道路部分,如圖3(a)所示,給定初始的ROI位置為(0,H/2),寬和高分別為wr=W,hr=H/2-v0,其中,W,H分別為攝像機視野的寬和高。
2)確定DROI
假設Xl,Xr分別為第i幀PPHT所檢測出的左右兩條車道線中x軸的坐標集合,τ為DROI最小寬度。則第i+1幀的DROI位置為(xmin,H/2),xmin為車道線x軸最小值。所選DROI如圖3(b)所示,公式為
(2)
圖3 確定DROI
實驗中設置τ=w/3。與一般以固定ROI以及整個路面作為DROI相比,本文提出的基于車道線位置信息計算出的DROI更具針對性性、魯棒性。
本文采用文獻[6]中的方法得到黃色、白色車道線的二值圖,考慮到道路裂紋、路面污染等干擾,進一步對圖像下采樣,結(jié)合形態(tài)學運算進行車道線邊緣檢測。以有效濾除噪聲,連接邊緣處的斷點,豐富邊緣信息,與原二值圖像相減,可提取車道邊緣。車道線邊緣檢測流程圖如圖4所示。
圖4 車道線邊緣檢測效果
由于現(xiàn)實車道路況復雜,灌木、圍欄、路樁以及路面標識等干擾嚴重影響車道線檢測的準確性。為提高算法的魯棒性,基于動態(tài)規(guī)劃算法和PPHT建立車道線檢測優(yōu)選模型,尋找一組優(yōu)選線段,進而對車道偏離預警提供依據(jù)。
PPHT是Hough變換的一個改進[12]。不同是選擇擬合點時采用了隨機抽取的方式,并加入累加器,當某一條直線被擬合出的次數(shù)達到一定閾值時,便取出這條直線,完成一條直線的擬合。不僅執(zhí)行效率較高,而且能檢測到直線的兩個端點[13]。動態(tài)規(guī)劃在最優(yōu)值尋找方面具有確定性,參數(shù)對結(jié)果的影響可預期,因而比較適合優(yōu)選線段的迭代查找。本文使用PPHT檢測出圖4中的候選線段,結(jié)合動態(tài)規(guī)劃算法從候選線段中篩選出優(yōu)選線段。步驟如下:
1)定義最優(yōu)車道線
a.自適應PPHT投票參數(shù)lineVote
(3)
b.定義線段起點與終點
通過PPHT檢測出的每一條線具有4個元素矢量(xi1,yi1,xi2,yi2),其中(xi1,yi1),(xi2,yi2)分別為每條線段的起點與終點,其中最靠近二維圖像中原點O'的為起點,較遠的為終點。
c.定義候選線段為集合L,其中,l1,l2,…,ln由PPHT得到
βli∈[βdown,βup]}
(4)
d.定義候選車道線的代價函數(shù)lineCost(L)
lineCost(L)=γD*(li)+δA*(li)
(5)
式中 當lineCost(L)小于閾值Thrp,最優(yōu)車道線li為lineCost(L)取值最小的一條。γ,δ分別為距離與偏差的權重。
e.定義候選線段與攝像機視野中心線距離函數(shù)distanceCost(li)
(6)
歸一化
(7)
f.定義候選線段角度βi與標準角度angleStan偏差函數(shù)angleCost(li)
(8)
歸一化
(9)
2)求解最優(yōu)車道線
在DROI中的車道線,用動態(tài)規(guī)劃算法以攝像機視野中心線為界分2次向兩側(cè)迭代,每次在每側(cè)嘗試尋找符合條件的最優(yōu)線段。若找到則得到所求優(yōu)選線段,若找到多個則選取lineCost最小的,停止迭代;否則繼續(xù)迭代。
a.為每條線l段定義代價函數(shù)cost(l)
cost(l)=min{lineCost(L)|L={l1,l2,…,ln}}
(10)
b.計算每條線段的cost值。
若存在cost值小于Thp,則表示找到線段中的最后一條候選線段,若其中多條線段滿足優(yōu)選線段條件,則選擇cost的最小值,優(yōu)選線段的lineCost即為該線段的cost值。實驗中初始化lineVotenum=80,設置篩選閾值Thndownmin=6,Thndownmax=10,Thp=2,γ=15,δ=10,右側(cè)車道線的βdown=-70°,βup=-20°,左側(cè)車道線的βdown=20°,βup=70°。
c.檢測結(jié)果如圖5所示。
圖5 車道線檢測結(jié)果
目前,車道偏離預警較多考慮車道線與車輛位置關系,參數(shù)較多且對成像系統(tǒng)穩(wěn)定性有較高要求。本文以車道中心線提取為基礎,通過中心線的角度偏差與位置偏差,建立車輛偏離預警模型。步驟如下:
1)假設車道中心線偏離角度為θ,偏離位置為Δx,則
(11)
式中xA,yA為車道中心線起點坐標,xB,yB為車道中心線終點坐標。
2)中心線提取
左右車道優(yōu)選線段分別為Ll,Lr以較短車道線為基準,任意取點C,D,C',D'。
(12)
同理,可得yA,xB,yB,中心線提取原理圖如圖6(a)所示,檢測結(jié)果如圖6(b)所示。
圖6 中心線提取原理與檢測結(jié)果
3)車道偏離預警
本文測試視頻滿足了實時性要求,平均幀率為25幀/s,駕駛員在不同工況下的反應時間平均值分布在1.02~1.32 s之間[14],為了減少虛警率,設置車道偏離時間閾值Thrt=0.75 s。根據(jù)實驗設定相對偏離閾值Thrθ0=20°,Thrθ1=-20°,引入符號函數(shù)sgn(θ,Δx,t),通過方向偏差和位置偏差決策車輛是否發(fā)生偏離,輸出1表示偏左,-1表示偏右,0表示車輛行駛正常,即當車輛在連續(xù)時間內(nèi)偏離安全閾值才會發(fā)出預警,否則即使間隔幾次超過安全閾值,但并沒有產(chǎn)生持續(xù)位置偏離,也表明車輛正常行駛,不發(fā)出報警
(13)
為了驗證本算法的有效性,通過車載攝像機采集大量道路視頻,視頻平均幀率為25幀/s。實驗樣本來源于3輛車,共4段總計60 min的視頻,每隔5幀截取共17 775幀圖片,包括城鎮(zhèn)道路中的典型車道狀況(普通環(huán)境、車輛較多、高架、隧道口等)。在CPU為i5—4570,8 GB內(nèi)存的64位Windows操作系統(tǒng)上運行,平均每幀耗時為30.6 ms,通過分析檢測結(jié)果并與人工判斷比較,車道中心線提取的準確率達到93 %,其中能夠正確做出車道偏離預警的達到91 %,滿足實際需求。部分代表性結(jié)果如圖7所示。
圖7 車道偏離預警結(jié)果
本文提出的一種車道線快速檢測算法,能夠動態(tài)選取當前車道更加理想的DROI,大大減少算法的運算量并避免其他車道的干擾;基于動態(tài)規(guī)劃與PPHT算法,建立車道線檢測優(yōu)選模型,有效解決特殊路面的干擾(包括圍欄、灌木、路面標識等);依據(jù)優(yōu)選線段,準確提取車道中心線,根據(jù)方向與位置偏差進行車道偏離預警。未來,針對車道線嚴重退化、彎道較多等情況下的車道偏離預警,引入預測方案,設計多次樣條優(yōu)化模型,進一步準確提取車道線,提高汽車輔助駕駛的安全性。