李靜, 石欣欣, 程志鵬,王軍政
(北京理工大學(xué) 自動(dòng)化學(xué)院,北京 100081)
依靠視覺(jué)傳感器檢測(cè)道路并進(jìn)行定位是無(wú)人運(yùn)動(dòng)平臺(tái)自主導(dǎo)航的關(guān)鍵技術(shù)之一,尤其是在GPS和慣性導(dǎo)航系統(tǒng)缺失的環(huán)境中. SLAM地圖缺失車(chē)道線信息,因此在導(dǎo)航過(guò)程中無(wú)法參考車(chē)道信息,是當(dāng)前需要解決的問(wèn)題之一[1]. 將車(chē)道線定位至地圖中,可以增加地圖信息,對(duì)無(wú)人駕駛意義重大. 視覺(jué)系統(tǒng)分為單目視覺(jué)和多目視覺(jué),其中單目視覺(jué)雖然成本最低,但在視覺(jué)導(dǎo)航中存在尺度漂移問(wèn)題,精度不足. 雙目視覺(jué)在多目視覺(jué)系統(tǒng)中應(yīng)用最多,綜合了傳感器成本低和人眼雙目測(cè)距優(yōu)勢(shì),是目前感知環(huán)境中應(yīng)用廣泛的一種視覺(jué)系統(tǒng). 在城市結(jié)構(gòu)化道路中,主要通過(guò)檢測(cè)車(chē)道線確定道路可通行區(qū)域,為無(wú)人運(yùn)動(dòng)平臺(tái)提供導(dǎo)航信息[2-3]. 本文利用雙目視覺(jué)檢測(cè)車(chē)道線,依據(jù)極線約束關(guān)系進(jìn)行車(chē)道線定位,并將其投影至SLAM算法構(gòu)建的三維地圖中[1,4-5],實(shí)現(xiàn)環(huán)境地圖與車(chē)道線信息的融合.
道路車(chē)道線檢測(cè)主要是提取車(chē)道的位置寬度等信息,為無(wú)人運(yùn)動(dòng)平臺(tái)的局部導(dǎo)航提供導(dǎo)航信息[6],因此對(duì)車(chē)道線提取的精度和實(shí)時(shí)性都具有較高的性能要求. 采用單一方法檢測(cè)車(chē)道線對(duì)環(huán)境變換尤其是光照變化的抗干擾性差[7-8],本文根據(jù)車(chē)道線的邊界、顏色以及邊緣梯度信息利用圖像閾值分割在左右相機(jī)圖像中融合提取出車(chē)道線的像素,以保證算法的魯棒性,讓其在光照出現(xiàn)變化、周邊草木陰影遮擋、新舊道路連接處等惡劣環(huán)境都有良好的表現(xiàn). 具體的算法框圖如圖1所示.
首先對(duì)圖像進(jìn)行中值濾波操作,保留源圖像的細(xì)節(jié),增強(qiáng)道路前景信息,弱化背景干擾. 隨后運(yùn)用多通道閾值聯(lián)合二值化的方法,提取車(chē)道線像素. 每一種閾值處理都會(huì)生成一副二值圖像,最后將多種閾值處理后的圖像進(jìn)行融合. 多閾值處理主要包括邊緣提取Sobel算子在水平和垂直方向閾值處理、HLS空間V(明度)通道以及n階梯度差分閾值處理. 假定待處理的源圖像如圖2所示.
由于車(chē)道線大多為黃色或者白色,而黃色和白色中紅色通道像素值較為明顯,與背景差異較大,因此將相機(jī)采集的彩色圖像中的紅色通道進(jìn)行分離,作為Sobel邊緣檢測(cè)的源圖像. 邊緣檢測(cè)可以利用圖像的灰度值梯度來(lái)表示,對(duì)于圖像f(u,v)其在像素(u,v)坐標(biāo)處的一階梯度為
(1)
梯度的幅值和方向?yàn)?/p>
(2)
假設(shè)IX(u,v),IY(u,v)表示閾值處理后的像素,Ix(u,v)表示Sobel算子卷積運(yùn)算后的幅值,Sobel算子的x和y方向幅值閾值處理公式如下
(3)
如圖3所示是用Sobel算子在水平和垂直方向上卷積運(yùn)算后的圖像.
道路中車(chē)道線與路面對(duì)光線的反射率不一樣,因此圖像中車(chē)道線的明度和飽和度都與路面背景和周?chē)h(huán)境相區(qū)別,可以將攝像機(jī)采集的RGB空間圖像轉(zhuǎn)換到HLS空間,并提取出其中的S通道進(jìn)行閾值操作.
假定Ibin(u,v)表示S通道閾值處理后的像素,Is(u,v)表示轉(zhuǎn)化為HLS色彩空間后S通道的像素值,則HLS通道的閾值處理公式如下
n階梯度差分法是將車(chē)道線源圖像轉(zhuǎn)換為灰度圖,n階梯度差分法是根據(jù)車(chē)道線寬度w對(duì)灰度圖進(jìn)行圖像列差分操作. 其中,In(u,v)表示n階梯度差分后的圖像像素值,Ig(u,v)表示灰度圖像素值,則有n階梯度差分法處理公式為
In(u,v)=Ig(u,v)-Ig(u,v-w).
(5)
然后對(duì)差分后的圖像采用大津法進(jìn)行二值化操作,得到閾值處理結(jié)果.HLS的S通道閾值處理和n階差分閾值處理結(jié)果如圖3(b)所示.
假設(shè)IX、IY、Is、In分別為4個(gè)閾值操作后圖像在坐標(biāo)為(u,v)處的像素值,則將進(jìn)行4次閾值處理后的二值圖像進(jìn)行融合,計(jì)算公式如下
(6)
根據(jù)上面的4種閾值處理可以看出,在x邊緣方向上的閾值處理效果在受到陰影干擾時(shí)效果不好,但是由于運(yùn)用到了多閾值分割保證了算法的魯棒性,可以適用于較為復(fù)雜的環(huán)境,最終閾值處理的結(jié)果如圖4(a)所示,可以看出算法仍能較好地分割出車(chē)道線部分.
車(chē)道線通常分布在圖像下半部分,因此可根據(jù)其分布范圍確定透視變換區(qū)域,利用透視變換將原先在圖像中成平行的車(chē)道線變換成大致平行的兩條車(chē)道線以便于后續(xù)車(chē)道線像素的提取. 透視變換后的圖像與源圖像分辨率大小相同,經(jīng)過(guò)透視變換后的圖像如圖4(b)所示.
根據(jù)透視變換后的圖像中車(chē)道線基本呈豎直平行的特征,因此考慮下列步驟對(duì)車(chē)道線像素進(jìn)行框選:
① 計(jì)算圖像下半部分的直方圖,因?yàn)橥敢曌儞Q后的車(chē)道線下半部分可以確定車(chē)道線在圖像底部的起始位置,也即統(tǒng)計(jì)每列的白色像素點(diǎn)個(gè)數(shù);
② 將圖像在豎直方向上分成50個(gè)水平滑窗,圖像中彎曲的車(chē)道線經(jīng)過(guò)透視變換后在圖中并不是豎直平行的,利用滑窗框選車(chē)道線像素能有效地去除周?chē)蓴_像素;
③ 從圖像的底部開(kāi)始,在直方圖的左側(cè)峰值和右側(cè)峰值周?chē)胖靡粋€(gè)像素寬w的窗口(將直方圖垂直分割為1/2),即認(rèn)為圖像直方圖中的左右最大值位置是車(chē)道線的起始位置;
④ 將窗口沿著水平方向滑動(dòng),尋找可能成為左右車(chē)道部分的像素,由于車(chē)道線是連續(xù)變化的曲線,因此經(jīng)過(guò)透視變換之后相鄰的滑窗之間的偏移量較少,因此滑窗通過(guò)少量偏移即可選定合適的位置從而框選到絕大部分的車(chē)道線.
如圖5(a)所示,實(shí)驗(yàn)中選用的淺色框是寬為160個(gè)像素的滑窗,滑窗內(nèi)部像素部分即為車(chē)道線的像素. 通過(guò)滑窗滑動(dòng)能夠?qū)⑼敢曌儞Q后圖像中的車(chē)道線部分框選中,如圖所示車(chē)道線的變化趨勢(shì)總是朝一個(gè)方向變化的,也即在圖像采集的區(qū)域內(nèi)車(chē)道線不會(huì)發(fā)生方向上的突變,因此可以用最小二乘法二次多項(xiàng)式對(duì)車(chē)道線像素進(jìn)行曲線擬合. 當(dāng)前擬合的車(chē)道線仍只是在透視變換后的圖像中,此時(shí)利用前面投影變換的矩陣的逆作為此次透視變換的變換矩陣即可將擬合的車(chē)道線投影至原圖像中,如圖5(b)所示.
本文利用車(chē)道線擬合得到的信息和雙目相機(jī)標(biāo)定信息根據(jù)極線約束關(guān)系恢復(fù)車(chē)道線三維坐標(biāo),再利用矩陣關(guān)系將其投影至SLAM地圖中.
計(jì)算車(chē)道線的三維信息需要將左右圖像中的車(chē)道線對(duì)應(yīng)像素點(diǎn)相匹配. 點(diǎn)匹配主要是根據(jù)雙目相機(jī)模型以及左右圖像之間的極線約束關(guān)系進(jìn)行搜索匹配. 極線約束表達(dá)的是點(diǎn)對(duì)直線的約束關(guān)系,在立體匹配中有著極其重要的技術(shù),將從整副圖像中尋找匹配點(diǎn)的計(jì)算量壓縮至從極線上搜索.
如圖6所示,點(diǎn)P為車(chē)道線的某一三維點(diǎn),左右兩幅圖中的粗線表示擬合的車(chē)道線,車(chē)道線的三維信息恢復(fù)即是求取點(diǎn)P相對(duì)左相機(jī)的三維坐標(biāo),左圖上的車(chē)道線像素點(diǎn)Pl(ul,vl)其在右圖中對(duì)應(yīng)的極線即為如圖6中的右邊虛線,則該極線與右圖中擬合的車(chē)道線交點(diǎn)Pr即為對(duì)應(yīng)的匹配點(diǎn).
假設(shè)右極線的直線方程為
v=ku+b,
(7)
同時(shí),右圖中擬合的車(chē)道線方程為
v=a1u2+a2u+a3.
(8)
(9)
得到車(chē)道線相對(duì)左攝像機(jī)的三維信息后,可將其投影至地圖中. 本文所用地圖是采用雙目立體視覺(jué)傳感器,提取三維ORB特征點(diǎn)及關(guān)鍵幀作為初始地圖信息而構(gòu)建的周?chē)h(huán)境的稀疏SLAM地圖,并采用了圖優(yōu)化方法稀疏地圖進(jìn)行優(yōu)化. 將車(chē)道線加入地圖中需要將其關(guān)聯(lián)拍攝當(dāng)前幀圖像的位姿信息.
如圖7(a)所示,空間中的粗線條表示車(chē)道線中的左車(chē)道,并且其在左右相機(jī)成像平面上的映射曲線也用粗線標(biāo)示,對(duì)于世界坐標(biāo)系下的車(chē)道線上任意一點(diǎn)P(Xw,Yw,Zw),其在左右相機(jī)中對(duì)應(yīng)的點(diǎn)分別為P(Xl,Yl,Zl)和P(Xr,Yr,Zr).
如圖7(b)所示,空間點(diǎn)P在左右相機(jī)上的投影點(diǎn)橫坐標(biāo)分別為ul和ur,并且OlOr之間的距離為基線長(zhǎng)b,三角形POlOr和PPlPr在同一平面上,并且具有相似三角形的關(guān)系,則根據(jù)相似三角形可得
z=fb/d,d=ul-ur.
(10)
式中:z為空間點(diǎn)在左相機(jī)坐標(biāo)系下的深度坐標(biāo);d為左右圖視差.
假設(shè)當(dāng)前幀圖像到世界坐標(biāo)系之間的轉(zhuǎn)換關(guān)系用4×4的矩陣Tcw進(jìn)行描述,由此可知該車(chē)道線點(diǎn)相對(duì)左相機(jī)的三維坐標(biāo)為
(11)
式中cx,cy分別為光心與圖像原點(diǎn)的橫縱偏移量.
由此可知,點(diǎn)P的世界坐標(biāo)為
(12)
式中:Rwc為T(mén)cw左上角3×3矩陣的轉(zhuǎn)置,表示世界坐標(biāo)系到圖像坐標(biāo)系的旋轉(zhuǎn)關(guān)系;tcw為T(mén)cw右上角3×1的矩陣,表示世界坐標(biāo)系到圖像坐標(biāo)系的平移關(guān)系.
首先通過(guò)雙目相機(jī)采集到的部分原始圖如圖8(a)所示. 原始圖像存在畸變,并且兩個(gè)相機(jī)圖像像素不對(duì)齊,因此需要根據(jù)雙目相機(jī)標(biāo)定參數(shù)對(duì)圖像進(jìn)行畸變校正和對(duì)齊校正,然后進(jìn)行車(chē)道線檢測(cè). 從圖8(b)中可看到,算法在車(chē)道線附近存在干擾的情況下也有較好的檢測(cè)效果,由此即可根據(jù)極線約束關(guān)系恢復(fù)車(chē)道線的三維信息,圖9(a)是最后生成的車(chē)道線點(diǎn)云. 為進(jìn)一步確定車(chē)道線定位的精度,在圖9(a)上選取幾個(gè)點(diǎn)進(jìn)行了三維坐標(biāo)求解,以此確定算法定位精度,如圖9(b)所示.
如圖所示選取的5個(gè)數(shù)據(jù)點(diǎn),其中5個(gè)點(diǎn)的X和Y實(shí)際坐標(biāo)都為2 141 mm和1 092 mm,其實(shí)際Z坐標(biāo)與計(jì)算坐標(biāo)如表1所示.
表1 車(chē)道線像素點(diǎn)坐標(biāo)Tab.1 Lane line pixel coordinates
從表中可看到X坐標(biāo)最大誤差為37 mm,Y坐標(biāo)最大誤差15 mm,而Z坐標(biāo)的最大誤差出現(xiàn)在實(shí)際距離為12 m的車(chē)道線點(diǎn),誤差達(dá)到792 mm. 無(wú)人平臺(tái)的導(dǎo)航所需要的信息主要是當(dāng)前平臺(tái)在近距離X方向的信息,即無(wú)人平臺(tái)在車(chē)道線中的位置,由表可看到水平方向最大誤差為37 mm,定位精度較高,能為無(wú)人平臺(tái)的導(dǎo)航提供較為精確的車(chē)道線信息,能滿(mǎn)足實(shí)驗(yàn)室機(jī)器人在進(jìn)行路徑規(guī)劃時(shí)的需求.
將檢測(cè)并定位得到的車(chē)道線信息投影到SLAM地圖中,實(shí)現(xiàn)了車(chē)道線與地圖信息的融合,如圖10所示.
采用了雙目視覺(jué)系統(tǒng)作為無(wú)人視覺(jué)導(dǎo)航的傳感器進(jìn)行環(huán)境信息感知,檢測(cè)城市結(jié)構(gòu)化道路中的車(chē)道線信息,并進(jìn)行定位,最后將其投影至地圖中. 主要的研究?jī)?nèi)容有:
① 提出基于多通道融合二值化的閾值分割方法,利用透視變換、圖像直方圖統(tǒng)計(jì)和滑窗搜索的方法精確的提取車(chē)道線像素,保證算法在城市道路環(huán)境中具有樹(shù)木陰影、新舊路面背景突變、光照變化等影響時(shí)也能良好的分理出車(chē)道線,并運(yùn)用多項(xiàng)式最小二乘法對(duì)車(chē)道線像素進(jìn)行擬合.
② 提出利用極線約束關(guān)系和車(chē)道線擬合信息快速求取道路的三維信息并將其投影至SLAM構(gòu)建的三維地圖,有效地將車(chē)道線信息與地圖信息進(jìn)行了融合.