葛媛媛,張宏基
(榆林學(xué)院 現(xiàn)代設(shè)計(jì)與先進(jìn)制造技術(shù)研究中心,陜西 榆林 719000)
道路檢測(cè)技術(shù)是智能車(chē)輛視覺(jué)導(dǎo)航的關(guān)鍵技術(shù),因其具有較大的環(huán)境復(fù)雜性和智能技術(shù)的挑戰(zhàn)性而備受科研機(jī)構(gòu)以及汽車(chē)生產(chǎn)廠家研發(fā)部門(mén)的關(guān)注。利用視覺(jué)作為環(huán)境感知的主要方法是由于視覺(jué)圖像具有信息量大、易于采集和傳輸?shù)葍?yōu)點(diǎn),也被公認(rèn)為是最有效的感知方式之一[1-2]。如何快速精準(zhǔn)地識(shí)別可行駛的環(huán)境道路以及如何很好地適應(yīng)復(fù)雜多變的外界環(huán)境是目前優(yōu)秀道路檢測(cè)算法所要解決的兩個(gè)最關(guān)鍵的問(wèn)題,也即檢測(cè)算法的實(shí)時(shí)性和魯棒性。然而在城市半結(jié)構(gòu)化道路環(huán)境下,由于車(chē)輛的運(yùn)動(dòng)、環(huán)境干擾,實(shí)際路面的凹凸障礙和道路兩邊樹(shù)木等景物的變化,以及光照、道路表面紋理的取向和深度等的不同,使得被處理的圖像信號(hào)受復(fù)雜、時(shí)變和不確定性等因素影響,所以在半結(jié)構(gòu)化環(huán)境下道路識(shí)別算法變得非常困難,無(wú)法滿足實(shí)時(shí)性的技術(shù)要求。何鵬等[3]提出充分利用道路的幾何特征來(lái)完成車(chē)道線的檢測(cè)與定位。這種方法的優(yōu)勢(shì)在于定位精確,但計(jì)算量很大,需要配合特殊硬件才能實(shí)現(xiàn)。為了降低計(jì)算量,Claudio等[4]提出了基于感興趣區(qū)域的檢測(cè)方法。這種方法以空間和時(shí)間連續(xù)性作為限制,將算法的處理區(qū)域鎖定為整幅圖像中某一特定的區(qū)域,在該區(qū)域內(nèi)能更加有效地檢測(cè)出可行的道路區(qū)域。然而感興趣區(qū)域的選擇很重要,選擇不當(dāng)將會(huì)導(dǎo)致算法失效。目前用于道路檢測(cè)的算法基本可以分為兩類:基于特征的檢測(cè)算法[5]和基于模型的檢測(cè)算法[6]以及兩者相結(jié)合的方法。前者主要包括兩部分:特征提取和特征聚合。常用的基于特征的檢測(cè)算法有邊界跟蹤法和統(tǒng)計(jì)測(cè)試法等[7]。這類算法對(duì)道路形狀不敏感,但對(duì)外界環(huán)境的變化(如光照、路面水跡等)較為敏感,并且算法處理的計(jì)算量較大。而后者是通過(guò)建立道路曲線模型來(lái)求解路面,如模型匹配法和樣條函數(shù)法。這類檢測(cè)算法識(shí)別出來(lái)的道路區(qū)域較為完整,同時(shí)計(jì)算的數(shù)據(jù)量小,但模型的選擇和求解是關(guān)鍵?;谔卣骱湍P突旌系臋z測(cè)方法主要用于識(shí)別具有多種特定的環(huán)境信息和道路模型復(fù)雜多變的情況。該類算法綜合了前兩類算法的特點(diǎn),但很難在魯棒性和實(shí)時(shí)性之間取得平衡。綜上所述,目前大多數(shù)的道路檢測(cè)算法一般只注重提高算法的魯棒性而忽略了實(shí)時(shí)性,影響了算法的推廣應(yīng)用。
為了充分結(jié)合基于特征和模型檢測(cè)算法各自的優(yōu)點(diǎn),在提高算法魯棒性的同時(shí)保證實(shí)時(shí)性,研究了基于Catmull-Rom樣條曲線的城市半結(jié)構(gòu)化道路檢測(cè)算法。使用最小二乘法求解Catmull-Rom樣條曲線最優(yōu)控制點(diǎn)完成對(duì)道路的檢測(cè)。采用自適應(yīng)混合各向異性高斯濾波器保證算法的執(zhí)行效率和魯棒性。同時(shí)為了準(zhǔn)確描述多車(chē)道線存在的情況,分別對(duì)每條車(chē)道線進(jìn)行單獨(dú)建模及檢測(cè),克服了常規(guī)算法對(duì)車(chē)道線的形狀及平行性的假設(shè)。
利用Catmull-Rom樣條進(jìn)行城市半結(jié)構(gòu)化道路檢測(cè)的算法流程如圖1所示。該算法主要包括視覺(jué)標(biāo)定、圖像處理、道路識(shí)別及更新三個(gè)模塊。
為了解決算法在檢測(cè)效率和魯棒性間難以得到平衡的問(wèn)題,首先在圖像處理模塊中通過(guò)算法程序設(shè)置核心區(qū)域來(lái)減小可行道路區(qū)域的搜索范圍,提高算法效率。其次通過(guò)自適應(yīng)混合各向異性高斯濾波對(duì)傳感器采集進(jìn)來(lái)的圖像進(jìn)行預(yù)處理,提高圖像的信噪比,很好地保留道路區(qū)域的邊緣信息,從而提高檢測(cè)算法的魯棒性。通過(guò)引入Catmull-Rom樣條的道路模型來(lái)提高檢測(cè)算法對(duì)城市半結(jié)構(gòu)化道路的適應(yīng)性,能夠靈活精確地識(shí)別道路標(biāo)識(shí)線。
圖1 半結(jié)構(gòu)化道路檢測(cè)算法流程
基于Catmull-Rom樣條的城市半結(jié)構(gòu)化道路檢測(cè)算法所依賴的攝像機(jī)成像模型如圖2所示。車(chē)輛坐標(biāo)系{X0,Y0,Z0}的原點(diǎn)位于攝像機(jī)焦點(diǎn)O處,車(chē)輛的前進(jìn)方向與Y0方向相同。{X,Y,Z}為攝像機(jī)坐標(biāo),其中Z軸為攝像機(jī)光軸。攝像機(jī)安裝位置距地面的高度為h,且攝像機(jī)的滾轉(zhuǎn)角、俯仰角和偏航角分別為β和φ、θ。
圖2 攝像機(jī)成像模型
由世界坐標(biāo)系和攝像機(jī)坐標(biāo)系以及攝像機(jī)坐標(biāo)系到圖像坐標(biāo)系之間的投影關(guān)系可得真實(shí)空間與成像空間之間的對(duì)應(yīng)關(guān)系,公式如下[8]:
(1)
通過(guò)分析上式可知,當(dāng)平移變換矩陣T為零時(shí),攝像機(jī)坐標(biāo)系和圖像坐標(biāo)系之間只存在旋轉(zhuǎn)關(guān)系而無(wú)平移關(guān)系。為了簡(jiǎn)化投影模型,設(shè)世界坐標(biāo)系的原點(diǎn)和攝像機(jī)坐標(biāo)系的原點(diǎn)相互重合,這樣式1可簡(jiǎn)化為:
(2)
將式2展開(kāi),可得點(diǎn)在世界坐標(biāo)系與圖像坐標(biāo)系上的相互映射關(guān)系,如下式所示。
(3)
由幾何投影關(guān)系可知,任意空間中的平行直線組都將會(huì)在無(wú)窮遠(yuǎn)處匯交于一點(diǎn)(即W→∞),將該點(diǎn)投影到圖像平面上即為道路的消失點(diǎn)[9]。該點(diǎn)在圖像平面上的坐標(biāo)表示為:
(4)
又由于像素坐標(biāo)和圖像之間的轉(zhuǎn)換關(guān)系為:
(5)
將式4帶入式5可得消失點(diǎn)像素空間在像素空間中的位置,如下:
(6)
由于道路檢測(cè)算法處理整幅圖像需要大量的計(jì)算,通過(guò)核心區(qū)域的設(shè)定不僅可以有效避免整幅圖像中其他非道路區(qū)域噪聲的干擾,還可以顯著減少處理區(qū)域的范圍,從而提高道路檢測(cè)算法的實(shí)時(shí)性。文中在圖像預(yù)處理的不同階段,分別在采集到的圖像中設(shè)置橫向和縱向兩層核心區(qū)域。
(1)橫向核心區(qū)域的設(shè)置。根據(jù)式6計(jì)算得到圖像消失點(diǎn),將整幅圖像分為上下兩部分,選定位于消失點(diǎn)下方圖像為橫向核心區(qū)域,如圖3(a)所示??赏ㄟ^(guò)式7設(shè)定橫向核心區(qū)域:
R=(Ib,l×Ih)
(7)
其中,Ib、Ih分別為圖像的寬度和高度值;l為比例調(diào)節(jié)系數(shù)。
(2)縱向核心區(qū)域設(shè)置。橫向核心區(qū)域的設(shè)置使得位于消失點(diǎn)上方區(qū)域的圖像不參與處理計(jì)算,在一定程度上能有效減少計(jì)算量,提高檢測(cè)算法的實(shí)時(shí)性。但在城市半結(jié)構(gòu)道路環(huán)境下,位于消失點(diǎn)下方的圖像區(qū)域也存在大量非道路區(qū)域。所以這里以橫向核心區(qū)域設(shè)置結(jié)果為基礎(chǔ),設(shè)置縱向核心區(qū)域。目的就是進(jìn)一步去除橫向核心區(qū)域中的非道路區(qū)域??v向核心區(qū)域的范圍由當(dāng)前車(chē)輛狀態(tài)以及后續(xù)動(dòng)作意圖(變換車(chē)道、左/右轉(zhuǎn)彎)等決定。其中,縱向核心區(qū)域的寬度由當(dāng)前動(dòng)作意圖決定,當(dāng)車(chē)輛變換車(chē)道時(shí),由變換方向來(lái)調(diào)節(jié)系數(shù)a,使得系數(shù)b增大。高度系數(shù)h由車(chē)輛的運(yùn)行速度確定,當(dāng)運(yùn)行速度較高或加速時(shí),增大系數(shù)b'和高度系數(shù)h,為高速行駛提供更開(kāi)闊的視場(chǎng)。反之車(chē)速較低或減速時(shí)減小b'和h。縱向核心區(qū)域設(shè)置方式如圖3(b)所示。
圖3 核心區(qū)域設(shè)置
以高斯函數(shù)為尺度函數(shù),在x、y兩個(gè)方向上選取具有不同大小標(biāo)準(zhǔn)差的高斯濾波函數(shù)作為平滑濾波器,構(gòu)建混合各向異性濾波器。濾波算子表達(dá)式為[10]:
(8)
由坐標(biāo)變換可得像素坐標(biāo)與圖像坐標(biāo)的關(guān)系為
(9)
將式9帶入式8可得到旋轉(zhuǎn)角γ后的濾波算子:
Gγ(x,y,σu,σv,γ)=
(10)
為了提高濾波算法的計(jì)算速度,充分利用二維Gauss函數(shù)的圓對(duì)稱性以及可分解的特征,將其在豎直和水平方向的方向?qū)?shù)與圖像進(jìn)行卷積變換,得到圖像在水平和垂直方向的梯度分別為Ex、Ey。
(11)
其中,?G(x,y,σ)為濾波算子;I0(x,y)為原始圖像;*號(hào)表示卷積運(yùn)算。
由式11可計(jì)算(x,y)處的梯度值及梯度方向角γθ。
(12)
(13)
可以看出,γ與γθ滿足:
γ=γθ+900
(14)
通過(guò)將式14帶入式10可獲得自適應(yīng)各向異性高斯濾波算子。
Gγθ(x,y,σu,σv,γθ)=
(15)
由于在待檢測(cè)道路圖像的平滑區(qū)域內(nèi)沒(méi)有明顯的邊緣,整個(gè)圖像像素灰度的分布接近于各項(xiàng)異性分布,所以采用各項(xiàng)異性濾波方法不僅能夠很好地濾去噪聲,同時(shí)使算法具有較小的計(jì)算量。濾波結(jié)果如圖4所示。根據(jù)道路圖像梯度閾值T的不同,決定在待檢測(cè)道路圖像是采用濾波器還是濾波,所以最終的濾波器表達(dá)式為:
(16)
圖4 各向異性高斯濾波器
Catmull-Rom樣條曲線模型是利用給定一組控制點(diǎn)得到一條曲線,消除了其他曲線模型對(duì)車(chē)道線平行的假設(shè),而且使得安裝在車(chē)輛上方的視覺(jué)傳感器的角度得到降低,擴(kuò)大了該模型的適應(yīng)范圍[11]。文中通過(guò)引入Catmull-Rom樣條曲線構(gòu)造城市半結(jié)構(gòu)化道路模型,根據(jù)道路信息實(shí)時(shí)選擇模型參數(shù),確定當(dāng)前的道路模型,通過(guò)梯度方向角的過(guò)濾區(qū)分左右車(chē)道線,并將檢測(cè)結(jié)果進(jìn)行融合形成一條完整的車(chē)道標(biāo)識(shí)線。力求該算法在道路檢測(cè)的魯棒性和實(shí)時(shí)性之間尋求較好平衡。
Catmull-Rom樣條是一種3次的分段插值樣條函數(shù)[12],其原理是利用前后的2個(gè)節(jié)點(diǎn)直接計(jì)算出各點(diǎn)處的切矢量,每相鄰4個(gè)節(jié)點(diǎn)的信息就可以構(gòu)造出一段經(jīng)過(guò)中間兩點(diǎn)的3次多項(xiàng)式函數(shù),并且所構(gòu)造的每一段樣條能夠保持連續(xù)。設(shè)有一組節(jié)點(diǎn)x0,x1,x3,…,xi,…,其對(duì)應(yīng)的值分別為X0,X1,X3,…,Xi,…,通過(guò)這些節(jié)點(diǎn)的樣條值就可以唯一構(gòu)造一個(gè)n次多項(xiàng)式,設(shè)該多項(xiàng)式的系數(shù)為a,則多項(xiàng)式的函數(shù)表達(dá)式可描述為:
f(x)=a0+a1x+a2x2+…+anxn
(17)
(18)
上述4點(diǎn)可以插值P2、P3之間的曲線段,除第一個(gè)控制點(diǎn)外,該方法可以應(yīng)用到所有的曲線段。
在道路檢測(cè)中,視覺(jué)傳感器安裝在車(chē)輛正前端且焦距為f,則道路輪廓在世界坐標(biāo)系下滿足如下方程:
(19)
其中,k、m分別為曲率和斜率;bL,R為偏移量。
由世界坐標(biāo)系與圖像坐標(biāo)之間的投影關(guān)系可得:
(20)
其中,d為像素點(diǎn)之間的距離。
將式20帶入式19可得圖像平面內(nèi)道路輪廓模型為:
(21)
(22)
根據(jù)上述道路模型定義模型參數(shù)S=[K,BL,M,BR]。BL和BR分別為道路的左右標(biāo)識(shí)線。設(shè)圖像平面上的點(diǎn)到左右標(biāo)識(shí)線的距離分別為DL(S)和DR(S),則:
(23)
在此引入式24所示的函數(shù)度量上述距離:
(24)
其中,a為控制函數(shù)。
根據(jù)上述道路模型及定義的參數(shù),則可知似然函數(shù)的表達(dá)式為:
f(a,DR(S)))
(25)
如前所述,道路檢測(cè)問(wèn)題可以轉(zhuǎn)換為Catmull-Rom道路模型參數(shù)確定問(wèn)題,而模型參數(shù)確定問(wèn)題又可等價(jià)為似然參數(shù)估計(jì)問(wèn)題。
定義如式26所示的勢(shì)場(chǎng)函數(shù)[13]:
(26)
在道路模型參數(shù)的估計(jì)中,對(duì)參數(shù)的估計(jì)相當(dāng)于由殘差函數(shù)組成的目標(biāo)函數(shù)的非線性最小二乘問(wèn)題,即[14]:
(27)
r(x,y)=exp(-p(x,y,σ)|cosB(r,c)|)
(28)
由無(wú)約束優(yōu)化的最優(yōu)化條件,要使目標(biāo)函數(shù)最小,也即:
(29)
其中,ψGM(r)為ρGM(r)的微分,稱為影響函數(shù)。
由于加權(quán)函數(shù)ωGM(r)=ψGM(r)/r,則可知目標(biāo)函數(shù)ψGM(r,β)的影響函數(shù)與加權(quán)函數(shù)分別可以表示為[15]:
(30)
由此可知式27中的最優(yōu)化問(wèn)題轉(zhuǎn)化成加權(quán)最小二乘問(wèn)題。
(31)
利用Catmull-Rom樣條函數(shù)進(jìn)行道路檢測(cè)算法中控制點(diǎn)的搜索實(shí)質(zhì)是道路似然函數(shù)的最大化問(wèn)題。具體的算法流程如下:
(1)構(gòu)造初始解。構(gòu)造初始解x0={P0,P1,P2,P3},為了保證初始曲線為樣條曲線,初始解中P0、P1、P2、P3參數(shù)均不能為空。
(2)根據(jù)初始解中產(chǎn)生的控制點(diǎn)為基礎(chǔ),以道路標(biāo)線內(nèi)可運(yùn)動(dòng)范圍為區(qū)域尺度,設(shè)置期望區(qū)域。其中,控制點(diǎn)P0和P3的期望區(qū)域?yàn)?0×30的矩形,P1和P2的期望區(qū)域?yàn)閞=20的圓。
(3)在各控制點(diǎn)的期望區(qū)域尺度內(nèi),以一定的樣本搜索距離搜索各控制點(diǎn)的全局最優(yōu)解,如果搜索過(guò)程中某樣本組擬合得到的目標(biāo)函數(shù)大于閾值Sth1而小于Sth2時(shí),樣本間搜索距離降為初始值的一半,當(dāng)在搜索區(qū)域內(nèi)如果存在目標(biāo)函數(shù)大于Sth2的樣本,則表示搜索結(jié)束,否則返回繼續(xù)搜索。
實(shí)驗(yàn)測(cè)試圖像來(lái)自車(chē)載攝像機(jī)采集的普通城市道路場(chǎng)景,幀率為25幀/s。算法程序采用Visual Studio 2010平臺(tái)開(kāi)發(fā),運(yùn)行環(huán)境為Windows 7操作系統(tǒng),處理器為Intel(R)Core(TM),主頻為3.0 GHz。實(shí)驗(yàn)設(shè)定的參數(shù)如表1所示。
表1 實(shí)驗(yàn)參數(shù)
圖5為典型城市干擾工況下,道路檢測(cè)算法的實(shí)驗(yàn)結(jié)果。干擾包括樹(shù)木陰影、強(qiáng)烈陽(yáng)光照射、不同路面介質(zhì)、地面標(biāo)志、人行橫道、標(biāo)識(shí)線破損和前方車(chē)輛干擾等。算法對(duì)于城市半結(jié)構(gòu)化路面上的各種干擾,如車(chē)輛陰影、地面文字和標(biāo)識(shí)、路旁樹(shù)叢陰影、強(qiáng)烈陽(yáng)光天氣等均具有較好的穩(wěn)定性和準(zhǔn)確性。在較好路面上平均識(shí)別正確率達(dá)到95%以上,滿足了車(chē)輛車(chē)道標(biāo)識(shí)線識(shí)別要求。每幀車(chē)道線檢測(cè)平均耗時(shí)為56 ms,車(chē)道線平均跟蹤耗時(shí)為53 ms,其實(shí)時(shí)性滿足實(shí)際使用需求。實(shí)驗(yàn)結(jié)果表明,文中算法可以滿足城市半結(jié)構(gòu)化道路標(biāo)識(shí)線檢測(cè)要求。
圖5 典型半結(jié)構(gòu)化道路實(shí)驗(yàn)測(cè)試結(jié)果
針對(duì)城市半結(jié)構(gòu)化道路環(huán)境特點(diǎn),通過(guò)引入Catmull-Rom樣條曲線,提出基于Catmull-Rom樣條模型的道路檢測(cè)算法。算法一方面設(shè)置雙層核心區(qū)域,減小搜索范圍,提高效率,使得不同階段的道路檢測(cè)都能滿足較高的準(zhǔn)確性及較強(qiáng)的實(shí)用性。另一方面使用自適應(yīng)混合各向異性高斯濾波技術(shù)對(duì)圖像進(jìn)行預(yù)處理,減少噪聲干擾,提高魯棒性,在效率和魯棒性間得到較好平衡。最后對(duì)算法進(jìn)行了仿真分析和實(shí)驗(yàn)測(cè)試,并就結(jié)果進(jìn)行了分析、總結(jié)。結(jié)果表明,該算法可以滿足智能車(chē)輛導(dǎo)航的需求。