李會(huì)賓,史 云,張文利,項(xiàng)銘濤,劉含海
(1.北京工業(yè)大學(xué) 信息學(xué)部,北京 100124;2.中國(guó)農(nóng)業(yè)科學(xué)院 農(nóng)業(yè)資源與農(nóng)業(yè)區(qū)劃研究所,北京 100081)
隨著人們對(duì)無(wú)人駕駛的日益關(guān)注,基于道路的三維信息檢測(cè)技術(shù)成為自主導(dǎo)航中一項(xiàng)重要技術(shù),其中道路邊界檢測(cè)是道路三維信息檢測(cè)中的重點(diǎn)。在城市交通環(huán)境中,道路邊界劃分了道路區(qū)域和非道路區(qū)域,同時(shí)凸起的道路邊界也是行駛過(guò)程中的障礙物[1-2],檢測(cè)道路邊界不僅能夠保證車輛在可行駛區(qū)域內(nèi)行駛,還可以控制車輛與道路邊界的距離,保障行車安全。
當(dāng)前多種類型的傳感器被用于道路邊界的檢測(cè),其中包括單目相機(jī)或雙目相機(jī)、LiDAR或者LiDAR和相機(jī)結(jié)合的雙傳感器[3]等?;谙鄼C(jī)的道路邊界檢測(cè)算法中,大多采用基于圖像的邊緣提取技術(shù)[4-5]或者從深度圖像的數(shù)字高程模型中提取道路邊界的技術(shù)[6],由于相機(jī)易受外界光照影響,會(huì)造成圖像模糊和畸變,導(dǎo)致道路邊界誤檢或無(wú)法檢測(cè)。隨著近年來(lái)LiDAR點(diǎn)云數(shù)據(jù)采集技術(shù)的發(fā)展,國(guó)內(nèi)外研究者對(duì)基于LiDAR的道路邊界檢測(cè)技術(shù)進(jìn)行了大量研究,并取得較好結(jié)果。文獻(xiàn)[7]和文獻(xiàn)[8]根據(jù)道路邊界高程跳變特性及斜率特征獲取道路邊界點(diǎn),然后進(jìn)行道路邊界點(diǎn)跟蹤優(yōu)化去除異常邊界點(diǎn),最后利用線性分析擬合出道路邊界。文獻(xiàn)[9]根據(jù)距離判別法和霍夫變換法提取激光掃描線中道路邊界點(diǎn),最后將道路邊界點(diǎn)作為種子點(diǎn),通過(guò)高斯迭代回歸過(guò)程擬合出道路邊界。文獻(xiàn)[10]使用道路邊界點(diǎn)的高程跳變、強(qiáng)度特征提取道路邊界點(diǎn),最后通過(guò)道路拓?fù)涮卣鱽?lái)優(yōu)化道路邊界點(diǎn)?;贚iDAR和相機(jī)雙傳感器結(jié)合的方法[11]雖然結(jié)合兩者各自的優(yōu)點(diǎn),但是該類方法將高分辨率的圖像和點(diǎn)云處理數(shù)據(jù)融合時(shí)算法復(fù)雜,道路邊界的二維邊緣變化特征以及三維結(jié)構(gòu)特征的同時(shí)檢測(cè)會(huì)造成檢測(cè)效率低下。
在城市交通環(huán)境中,道路邊界附近往往會(huì)存在綠化帶,綠化帶生長(zhǎng)過(guò)程中會(huì)出現(xiàn)遮擋道路邊界的現(xiàn)象,前人基于LiDAR進(jìn)行道路邊界檢測(cè)的算法中較少考慮道路邊界被綠化帶遮擋的情況,如圖1所示,本文主要針對(duì)這一情況,提出基于車載LiDAR的道路邊界檢測(cè)算法。本文算法主要利用道路邊界的局部三維結(jié)構(gòu)特征和道路邊界分布特征來(lái)準(zhǔn)確地檢測(cè)道路邊界。首先根據(jù)行駛軌跡獲取道路的橫切面,然后通過(guò)單線點(diǎn)云獲取道路橫切面輪廓,之后根據(jù)道路橫切面中的高程變化特征、斜率變化特征和道路邊界分布特征來(lái)檢測(cè)道路邊界點(diǎn),最后通過(guò)回歸擬合的算法獲取完整的道路邊界線。算法流程如圖2所示。
圖1 道路邊界遮擋情況下的檢測(cè)模型
圖2 算法流程
如圖3所示,在道路橫切面獲取模型中,道路橫切面由道路初始橫切面與道路垂直相交而形成,道路橫切面能反映地物高程變化的情況。道路初始橫切面中的虛線代表道路橫切面,道路平面和道路凸起處的交線為道路邊界線,道路邊界線上的點(diǎn)為道路邊界點(diǎn),每個(gè)道路初始橫切面上存在一個(gè)車輛軌跡點(diǎn),兩個(gè)相鄰車輛軌跡點(diǎn)間的箭頭代表車輛的運(yùn)動(dòng)方向。道路橫切面具體獲取方式如下:首先根據(jù)車輛軌跡點(diǎn)獲取道路初始橫切面方向向量;然后根據(jù)方向向量和車輛軌跡點(diǎn)確定道路初始橫切面;在道路初始橫切面前后一定范圍內(nèi)存在道路上點(diǎn)云數(shù)據(jù),最后將臨近的點(diǎn)云數(shù)據(jù)向道路初始橫切面垂直投影,最終獲得較為稠密的道路橫切面。
圖3 道路橫切面獲取模型
1.1.1 道路初始橫切面法向量獲取
相鄰兩個(gè)軌跡點(diǎn)之間的道路橫切面方向向量算式為
(1)
(xi,yi,zi)和(xi+1,yi+1,zi+1)分別是第i個(gè)和第i+1個(gè)軌跡點(diǎn)坐標(biāo),n(xid,yid,zid)是兩軌跡點(diǎn)之間道路初始橫切面的方向向量。
1.1.2 道路橫切面鄰域點(diǎn)投影
選取道路初始橫切面前后一定范圍內(nèi)的點(diǎn)云數(shù)據(jù),向道路初始橫切面上進(jìn)行垂直投影,獲取道路初始橫切面上的投影點(diǎn)集合形成最終的道路橫切面,本文選取道路初始橫切面前后0.05m范圍內(nèi)的點(diǎn)云數(shù)據(jù)。
道路初始橫切面的方程為
ax+by+cz+d=0,
d=-(axi+byi+czi).
(2)
a,b和c的值在本文中分別為xid,yid和cid。(xi,yi,zi)為道路橫切面對(duì)應(yīng)的軌跡點(diǎn)。
每個(gè)初始三維點(diǎn)的投影算式為
xp=-(axi+byi+czi+d)asabc+xsi,
yp=-(axi+byi+czi+d)bsabc+ysi,
(3)
zp=-(axi+byi+czi+d)csabc+zsi,
式中:(xsi,ysi,zsi)為橫切面鄰域內(nèi)三維點(diǎn)的坐標(biāo);(xp,yp,zp)為(xsi,ysi,zsi)投影后的坐標(biāo)。
道路邊界檢測(cè)的關(guān)鍵是道路橫切面中的道路邊界點(diǎn)檢測(cè)。在城市道路環(huán)境中,道路邊界附近一般會(huì)存在綠化帶等障礙物遮擋道路邊界,導(dǎo)致道路邊界的上平面出現(xiàn)大量雜點(diǎn)。道路邊界結(jié)構(gòu)的變化會(huì)嚴(yán)重影響道路邊界的高程變化和斜率特征,使得道路邊界點(diǎn)檢測(cè)難度大大提升。為了避免綠化帶等對(duì)道路邊界遮擋帶來(lái)的影響,本文提出通過(guò)單線點(diǎn)云自底向上從道路平面底部提取道路橫切面輪廓,然后從道路橫切面輪廓中提取道路邊界點(diǎn)。該方法可以完整地提取道路橫切面的輪廓,在道路邊界存在遮擋的情況下也能保留道路邊界的高程變化和斜率等屬性信息,同時(shí)也可去除道路平面以上障礙物信息。
1.2.1 單線點(diǎn)云生成
單線點(diǎn)云上的三維點(diǎn)依次排列,其長(zhǎng)度由車輛軌跡點(diǎn)起向左右拓展長(zhǎng)度的總和,與道路橫切面共面且位于道路底面下方,單線點(diǎn)云中相鄰點(diǎn)的間隔為dm,單線點(diǎn)云初始狀態(tài)如圖4所示。單線點(diǎn)云生成過(guò)程如下:首先獲取單線點(diǎn)云上的初始點(diǎn),將車輛軌跡點(diǎn)(激光器坐標(biāo)點(diǎn))垂直下降(H+h)m后,得到初始點(diǎn),其中H為激光器距離地面高度,h為初始點(diǎn)相對(duì)于地面下降的距離;然后確定單線點(diǎn)云的斜率,由于單線點(diǎn)云的高度值已確定,所以只需確定單線點(diǎn)云在xy方向的斜率,單線點(diǎn)云和道路橫切面屬于同一個(gè)平面,則道路橫切面中xy方向的斜率即為單線點(diǎn)云的斜率;之后以初始點(diǎn)為基準(zhǔn),確定單線點(diǎn)云左右拓展的長(zhǎng)度;最后根據(jù)單線點(diǎn)云的初始點(diǎn)、斜率、左右拓展的長(zhǎng)度和以及相鄰點(diǎn)的間隔獲取單線點(diǎn)云上其他所有點(diǎn)。本文中d,H和h分別為0.02、2.3和0.3。
1.2.2 單線點(diǎn)云定位
本文提出采取單線點(diǎn)云自底向上包圍道路橫切面的方式獲取道路橫切面輪廓。單線點(diǎn)云上升過(guò)程中采取“遇則停,停則定位”的策略,如圖4所示,道路橫切面和單線點(diǎn)云分別以星形點(diǎn)和圓形點(diǎn)表示,單線點(diǎn)云垂直上升向道路底面靠近,在上升過(guò)程中,利用 kd-tree近似最鄰近鄰域搜索算法[12],對(duì)單線點(diǎn)云中每個(gè)點(diǎn)的鄰域進(jìn)行搜索,查找是否存在道路上地物的點(diǎn)云數(shù)據(jù),若存在,則停止向下搜索,執(zhí)行定位操作,單線點(diǎn)云上剩余點(diǎn)的繼續(xù)上升搜索,直到所有點(diǎn)都執(zhí)行了定位操作。單線點(diǎn)云每次上升的高度為Hcm,本文中Hc為0.02,通過(guò)定位操作使單線點(diǎn)云更加靠近道路橫切面,保證道路輪廓的完整性和平滑性。單線點(diǎn)云定位是將單線點(diǎn)云中的每個(gè)點(diǎn)根據(jù)其鄰域點(diǎn)分配新的位置,算式為
(4)
式中:n為單線點(diǎn)云中的每個(gè)點(diǎn)鄰域中點(diǎn)的數(shù)量;(xsi,ysi,zsi)為每個(gè)點(diǎn)鄰域中三維點(diǎn)的坐標(biāo)。圖4描述了單線點(diǎn)云逐漸上升獲取道路橫切面輪廓的過(guò)程,最終單線點(diǎn)云完整地附著在道路橫切面輪廓的表面,成型后的單線點(diǎn)云即為道路橫切面輪廓。
圖4 道路橫切面輪廓提取
道路邊界具有明顯的特征,首先道路邊界區(qū)域內(nèi)高程變化較大,其次道路邊界點(diǎn)和相鄰的路面點(diǎn)存在較大的斜率[13-14],最后道路邊界點(diǎn)平滑延伸分布。基于以上發(fā)現(xiàn),本文選取道路邊界點(diǎn)高程跳變特征、斜率變化特征和道路邊界點(diǎn)的分布特征,然后采用雙窗口法在道路橫切面中對(duì)道路邊界點(diǎn)進(jìn)行檢測(cè),如圖5所示。在窗口1和窗口2雙窗口內(nèi),道路上下邊界點(diǎn)存在較大的高程變化和斜率,本文利用這兩個(gè)特征檢測(cè)出道路下邊界點(diǎn),然后根據(jù)道路邊界點(diǎn)的分布特征剔除錯(cuò)誤的道路邊界點(diǎn)。
圖5 雙窗口法檢測(cè)道路邊界點(diǎn)
1.3.1 高程跳變
如圖5所示,道路邊界的高程跳變存在兩個(gè)窗口中。高程跳變算式為
Δz1=|zmax(win1)-zmin(win1)|,
Δz2=|zmax(win2)-zmin(win2)|,
(5)
Δz12=|zmax(win1)-zmin(win2) |.
其中zmax(win1)和zmin(win1)分別是窗口1中的最大和最小z值,zmax(win2)和zmin(win2)分別是窗口2中的最大和最小z值,Δz1和Δz2分別是窗口1和窗口2存在的最大高程差,Δz12為窗口1與窗口2之間存在的最大高程差,道路邊界的高度設(shè)定范圍為H1和H2。如果H1<Δz1
1.3.2 斜率
由圖5可知,由于道路的上邊界點(diǎn)和下邊界點(diǎn)之間存在明顯的高程差且水平方向距離較小,可知道路上下邊界點(diǎn)之間存在較大斜率值。斜率s的算式為
(6)
道路邊界點(diǎn)的斜率閾值為sT,如果s>sT,則所得道路邊界點(diǎn)滿足道路邊界點(diǎn)斜率的特征,同時(shí)也驗(yàn)證了利用高程跳變獲取的道路邊界點(diǎn)的準(zhǔn)確性。
1.3.3 道路邊界點(diǎn)的分布
道路邊界具有連續(xù)延伸的特征,相鄰道路橫切面上同側(cè)道路邊界點(diǎn)在道路延伸的方向會(huì)存在較大的距離,在其它兩個(gè)方向的距離較小,如圖3所示:道路邊界點(diǎn)的分布特征為兩個(gè)相鄰的邊界點(diǎn)在y方向上存在較大的距離,在x和z方向存在較小的距離,根據(jù)道路邊界點(diǎn)的分布特征來(lái)剔除誤差較大的邊界點(diǎn)。
相鄰邊界點(diǎn)y方向的距離算式為
Disy=|yc(i)-yc(i+1)|.
(7)
相鄰邊界點(diǎn)xz方向的距離算式為
Disxz=|xc(i)-xc(i+1)|+
|zc(i)-zc(i+1)|.
(8)
如果Disy>DT1且Disxz 本算法在道路邊界點(diǎn)檢測(cè)的結(jié)果中會(huì)存在少量外點(diǎn),所以需要對(duì)道路邊界點(diǎn)檢測(cè)結(jié)果進(jìn)行優(yōu)化,然后對(duì)優(yōu)化后的道路邊界點(diǎn)進(jìn)行擬合。由于道路形狀多種多樣,本文利用RANSAC算法,對(duì)道路邊界點(diǎn)分段優(yōu)化和道路邊界線參數(shù)的獲取。首先將全部道路邊界點(diǎn)進(jìn)行分段處理,即整條道路劃分為多條較小長(zhǎng)度的道路段,這樣道路邊界線可以近似于多條折線段組成,然后對(duì)每段道路邊界點(diǎn)進(jìn)行直線參數(shù)提取并繪制直線,最終形成多條折線段,多條折線段合并可形成較完整的道路邊界。道路邊界點(diǎn)擬合的效果如圖6所示,RANSAC算法成功地排除誤差較大的邊界點(diǎn),獲取較為完整的道路邊界線。 本文的實(shí)驗(yàn)數(shù)據(jù)是基于“全景激光測(cè)量”車輛實(shí)驗(yàn)平臺(tái)獲取的,該平臺(tái)主要配備了全景相機(jī)、VLP-16LiDAR、慣導(dǎo)系統(tǒng)和GPS天線。LiDAR的測(cè)量范圍為0~200 m,測(cè)量精度為±0.03 m,每秒鐘可獲取30萬(wàn)個(gè)點(diǎn)。實(shí)驗(yàn)平臺(tái)如圖7所示,矩形框內(nèi)為“全景激光測(cè)量”系統(tǒng)。 圖6 道路邊界點(diǎn)擬合結(jié)果 圖7 實(shí)驗(yàn)平臺(tái) 本文實(shí)驗(yàn)測(cè)試數(shù)據(jù)為北京市三環(huán)附近路段,在整個(gè)道路環(huán)境內(nèi)存在大量城市中的地物,例如道路、建筑、電線桿和樹木等其它道路組件,整條道路長(zhǎng)約2 km,存在約3 752.7萬(wàn)個(gè)點(diǎn)。道路場(chǎng)景存在2類道路邊界,分別是無(wú)綠化帶遮擋的道路邊界和被綠化帶遮擋的道路邊界,如圖8所示。圖8(a)中白色邊框中是無(wú)遮擋的道路邊界,即為規(guī)則的道路邊界。圖8(b)白色邊框中,道路邊界的上平面由于雜草覆蓋而存在大量無(wú)規(guī)則的雜點(diǎn)。本文中數(shù)據(jù)處理PC配置為Intel Core i5-6500 3.2 GHz處理器、8 GB內(nèi)存。 無(wú)綠化帶遮擋的道路邊界的數(shù)據(jù)及檢測(cè)結(jié)果,如圖9所示,圖9(a)中的道路邊界結(jié)構(gòu)完整度高,且沒有雜草覆蓋的影響,圖9(b)中白色直線為檢測(cè)到的道路邊界,本文算法對(duì)于無(wú)遮擋的道路邊界獲取了良好的檢測(cè)結(jié)果,道路邊界檢測(cè)結(jié)果準(zhǔn)確地與實(shí)際道路邊界相統(tǒng)一。 圖8 兩種類型的道路邊界 圖9 無(wú)綠化帶遮擋的道路邊界數(shù)據(jù)及檢測(cè)結(jié)果 存在綠化帶遮擋的道路邊界數(shù)據(jù)及檢測(cè)結(jié)果,如圖10所示,圖10(a)中道路左邊界完整度高,道路右邊界出現(xiàn)綠化帶遮擋,白框區(qū)域?yàn)榫G化帶遮擋區(qū)域,存在大量的雜點(diǎn)。雖然右邊道路邊界存在大量的雜點(diǎn),導(dǎo)致道路邊界上平面的平整性受到破壞,但是道路邊界的下平面形態(tài)仍然保存完整。本文根據(jù)這一特征,通過(guò)單線點(diǎn)云從道路平面下方逐漸上升獲取道路的整體輪廓,避免道路上平面出現(xiàn)遮擋時(shí)對(duì)道路邊界檢測(cè)的影響,通過(guò)本算法獲取良好的道路邊界檢測(cè)結(jié)果,道路邊界檢測(cè)結(jié)果準(zhǔn)確地與實(shí)際道路邊界相統(tǒng)一,檢測(cè)結(jié)果如圖10(b)中白線所示。 該路段全部數(shù)據(jù)及檢測(cè)結(jié)果,如圖11所示,該路段存在綠化帶遮擋的道路邊界區(qū)域和無(wú)綠化帶遮擋區(qū)域,如圖11(b)所示,在復(fù)雜的道路區(qū)域環(huán)境中,本文算法對(duì)道路邊界的檢測(cè)結(jié)果整體完整度較高,道路邊界的誤檢率較低,但是結(jié)果中存在少量雜點(diǎn),這是一些路口存在類似于道路邊界特征的障礙物引起的,分散性大,較難去除。 為驗(yàn)證本文算法的性能,本文首先從初始道路數(shù)據(jù)中手工提取了真實(shí)的道路邊界作為參考值,將參考值和本文算法、VRMesh軟件中道路邊界檢測(cè)算法以及Fang等人[10]算法的道路邊界檢測(cè)結(jié)果分別從道路邊界完整率、正確率兩個(gè)方面進(jìn)行了對(duì)比,評(píng)估算法由文獻(xiàn)[15]提出,被廣泛地用于道路邊界檢測(cè)結(jié)果的評(píng)估。實(shí)驗(yàn)對(duì)比結(jié)果如表1所示。 圖10 綠化帶遮擋的道路邊界數(shù)據(jù)及檢測(cè)結(jié)果 圖11 全路段數(shù)據(jù)及道路邊界檢測(cè)結(jié)果 表1 本文算法和VRMesh中道路邊界檢測(cè) 初始道路數(shù)據(jù)及三種算法檢測(cè)結(jié)果,如圖12所示,圖12(a)中道路的左邊界存在綠化帶的遮擋,而右邊界不存在綠化帶的遮擋,F(xiàn)ang等人算法對(duì)于較好的道路邊界模型,即需要平整的上下道路邊界平面才能獲取較好的檢測(cè)結(jié)果,左道路邊界上的綠化帶雜點(diǎn)導(dǎo)致道路邊界的高程發(fā)生無(wú)規(guī)則變化,同時(shí)雜草的強(qiáng)度值也和路面存在明顯差異,所以該算法在右邊界有較好的檢測(cè)結(jié)果,但是左邊界檢測(cè)結(jié)果就存在大量的錯(cuò)點(diǎn),如圖12(b)所示。VRMesh中道路邊界檢測(cè)算法通過(guò)檢測(cè)道路邊緣的凸起和路面的交界位置來(lái)確定道路邊界,該方法需要人為干預(yù)選擇兩個(gè)邊界點(diǎn),然后跟蹤延伸形成道路邊界,該算法受綠化帶遮擋影響較小,但是部分檢測(cè)結(jié)果和實(shí)際道路邊界存在較大的偏移,如圖12(c)所示,并且遇到路口位置會(huì)造成道路邊界檢測(cè)提前中斷,需要人工多次選擇,才能獲得較好的道路邊界檢測(cè)結(jié)果。如圖12(d)所示,在道路邊界存在綠化帶遮擋時(shí),本文算法在檢測(cè)道路邊界過(guò)程中,減小了綠化帶雜點(diǎn)的影響,最終在道路橫切面輪廓中準(zhǔn)確地檢測(cè)到道路邊界點(diǎn),并且本文算法在道路邊界無(wú)遮擋時(shí)也獲得較好的檢測(cè)結(jié)果。同時(shí)如表1所示,對(duì)比3個(gè)算法檢測(cè)結(jié)果的完整率和正確率,通過(guò)對(duì)比發(fā)現(xiàn)本文算法在道路邊界檢測(cè)的準(zhǔn)確率和完整率上表現(xiàn)較好。 圖12 初始道路數(shù)據(jù)及三種算法道路邊界檢測(cè)結(jié)果 本文針對(duì)道路邊界易受到綠化帶等障礙物遮擋的情況,設(shè)計(jì)出一種基于車載LiDAR的道路邊界檢測(cè)算法。通過(guò)實(shí)際道路場(chǎng)景的實(shí)驗(yàn)結(jié)果,驗(yàn)證了本文算法在道路邊界無(wú)綠化帶遮擋和被遮擋的情況下檢測(cè)的準(zhǔn)確性和有效性,同時(shí)與以往的算法相比,本文算法提高了道路邊界檢測(cè)的準(zhǔn)確率和完整率,能夠滿足實(shí)際工程需要,但是該算法檢測(cè)結(jié)果還存在少量的誤檢邊界點(diǎn)。1.4 道路邊界點(diǎn)線性擬合
2 實(shí)驗(yàn)分析
2.1 實(shí)驗(yàn)平臺(tái)
2.2 實(shí)驗(yàn)數(shù)據(jù)和處理平臺(tái)
2.3 實(shí)驗(yàn)結(jié)果和分析
3 結(jié) 論