1. 程式人生 > >LIDAR系列之2:用鐳射雷達檢測車道線

LIDAR系列之2:用鐳射雷達檢測車道線

基於視覺系統的車道線檢測有諸多缺陷,首先是視覺系統對背景光線很敏感,諸如陽光強烈的林蔭道,車道線被光線分割成碎片,致使無法提取出車道線。其次,視覺系統需要車道線的標識完整,有些年久失修的道路,車道線標記不明顯,不完整,有些剛開通幾年的道路也是如此。第三,視覺系統需要車道線的格式統一,這對按照模型庫識別車道線的系統尤其重要。有些車道線格式很奇特,比如藍顏色的車道線,很窄的車道線,模型庫必須走遍全國將這些奇特的車道線一一收錄,才能保證順利檢測。第四,視覺系統無法處理低照度環境,尤其是沒有路燈的黑夜。第五是速度,一般LKW要求時速在72公里以上才啟動,原因之一是速度比較高時人不會輕易換道,另一個原因就是比較低的車速意味著視覺系統的取樣點不足,擬合的車道線準確度較低。而鐳射雷達的有效距離一般是視覺系統的4-5倍,有效的取樣點比較多,車速較低時檢測準確度遠高於視覺系統。最後,如果車道線表面被水覆蓋,視覺系統會完全無效。

視覺系統最大的優點就是成本低。但由於以上的不足,自2008年後,學術界已經很少研究基於視覺系統的車道線檢測,轉而利用鐳射雷達檢測車道線,鐳射雷達可以解決上述所有問題,包括車道線被水覆蓋,鐳射雷達最大可穿越70米的水深。鐳射雷達唯一的缺點就是成本太高。

早期鐳射雷達檢測車道線是基於雷達掃描點密度的車道線檢測方法,該方法通過獲取雷達掃描點的座標並轉換成柵格圖,用原始資料對映柵格圖,可以是直接座標柵格圖也可以是極座標柵格圖,按照後期處理需要進行選擇,極座標柵格圖被直接用於車道線識別,即有多個點對映的柵格就被認為是車道線點,該識別方法對特徵提取的要求很高,且受距離影響嚴重,因為極座標柵格距離越近柵格精度越高,車道線識別的精度越高,距離越遠柵格精度越低導致識別車道線的精度就越低然後利用柵格圖中點的密度提取車道線。對於點密度的求取可以採用直方圖統計的方式,通過直方圖統計點密度快捷直觀,容易理解。由於基於掃描點密度的檢測方法沒有很複雜的中間過程,所以實時性高,在快速檢測中受到大家的青睞,但是該方法只獲取了掃描點的位置資訊,對於雷達反饋的其他資訊都沒有進一步分析,容易把一些與車道線掃描點密度類似的道路資訊混進車道線檢測結果中;或者在車道線與其他障礙物靠近或重合時,無法區分出障礙物和車道線,他們只能被當作一個整體保留或剔除,所以此方法的抗干擾能力差,容易出現誤檢。這種方法目前已經不常使用。

目前鐳射雷達檢測車道線主要有四種方法,一是根據鐳射雷達回波寬度;二是根據鐳射雷達反射強度資訊形成的灰度圖,或者根據強度資訊與高程資訊配合,過濾出無效資訊;三是鐳射雷達SLAM與高精度地圖配合,不僅檢測車道線還進行自車定位;四是利用鐳射雷達能夠獲取路沿高度資訊或物理反射資訊不同的特性,先檢測出路沿,因為道路寬度是已知,根據距離再推算出車道線位置。對於某些路沿與路面高度相差低於3釐米的道路,這種方法無法使用。後三種方法需要多線鐳射雷達,最少也是16線鐳射雷達。前者可以使用4線或單線鐳射雷達,考慮到奧迪A8已經開始使用4線鐳射雷達,4線鐳射雷達已經進入實用階段。 當然了,這四種方法也會混合使用。

車道線檢測基本分兩部走,第一步提取幾何或物理特徵,第二步利用離散資料擬合成車道線。無論是視覺還是鐳射雷達,通常都是用最小二乘法擬合車道線。

IBEO是最適合第一種方法的鐳射雷達。IBEO的鐳射雷達特有三次回波技術。每點鐳射返回三個回波,返回資訊能夠更加可靠地還原被測物體,同時能夠精確分析相關物體資料,並能識別雨、霧、雪等不相關物體的資料,如圖所示,其中W表示回波脈衝寬度,d表示掃描目標的距離。反射率作為物體的固有屬性,受物體材質、顏色等的影響,能夠很好地反映物體特徵,不同顏色,密度的物體的反射率都有一定的差異,物體反射率決定IBEO回波脈衝寬度特性,路面和車道線有著明顯的差異,所以可以利用回波脈衝寬度的差異對目標進行區分。

下面為典型的車道線標識。

它們的回波寬度如下:

很明顯,路面的回波寬度在2米左右,車道線的回波寬度在4米左右。

根據IBEO的特性知道其垂直方向上的掃描角度為3.2度,共分四層掃描,即每層0.80,在IBEO水平安裝的情況下,並考慮到實際情況一一IBE0的高度受車體的限制,其下面兩層(一、二層)主要返回道路表面的資訊,而上面兩層(三、四層)主要返回有一定高度的道路資訊。並且根據鐳射雷達的特性知道鐳射束掃描到物體會立即產生回波,所以一二兩層的掃描距離遠小於三四兩層。通過理論分析和實驗驗證可知一二兩層返回的資訊主要包括路面、車道線、少量障礙物和邊界資料;三四兩層主要返回道路邊界、障礙物和少量路表資訊,所以在特徵種子點提取階段需要重點分析一二兩層的雷達資料,這部分資料中對於車道線檢測最大的干擾在於路面,提取車道線種子點特徵的重點就是分離車道線特徵與路面特徵。

通過最小類內方差演算法找到路面與車道線的分割閾值,然後利用誤差分析原理剔除車道線集合範圍內的粗大誤差,即剔除干擾資訊,提取出車道線特徵種子點。然後再擬合成車道線。最小類內方差是一種自適應閾值的求取方法,也是一種模糊聚類方法。其基本思想是使用一個閾值將整體資料分成兩個類,因為方差是數值分佈是否均勻的度量,兩個類的內部的方差和越小,則每一類內部的差別就越小,那麼兩個類之間的差別就越大,如果存在一個閾值使得類內方差和最小則說明這個閾值就是劃分兩類的最佳閡值,使用最佳閾值劃分意味著劃分兩類出現偏差的概率最小。通過回波脈衝寬度,利用最小類內方差演算法建模分割車道線特徵與路面特徵,剔除車道線特徵提取的最大幹擾。對回波脈衝寬度進行統計分析,並劃分脈衝寬度級別,因為直接使用脈衝寬度值其分佈不利於統計,採用對脈衝寬度平均區域劃分即脈衝寬度級,統計各級內的點數,從而得到回波脈衝寬度分佈直方圖。再利用諸如模糊聚類分析方法剔除干擾值。

最小二乘法近似求解不斷優化靠近真實值的數學方法,它可以利用己知資料簡便地求得未知資料,並不斷優化保證求得的資料與真實資料問的誤差的平方和最小。利用最小二乘法擬合曲線,就是不斷優化求取某條曲線使其最能體現已有資料點的變化趨勢,具體過程是利用已知的資料點優化求取最優的未知資料合成一條最佳的曲線,並保證已有資料點到曲線的距離的平方和最小。也就是說,曲線擬合不要求近似曲線過所有資料點,只需要己知的資料點的距離在這條曲線的不遠處,即這條曲線能反映資料點的整體分佈,又不至於出現較大的區域性波動,已知資料與曲線的偏差的平方和達到最小就能有效控制波動。簡而言之,最小二乘法擬合就是利用最小化誤差的平方和求取資料的最佳函式匹配。

再來看根據反射強度值做的車道線檢測,在車載鐳射雷達獲取的道路周圍環境點雲數中,可以輕鬆區分出道路與車道線。

具體到車載鐳射雷達獲取的道路周圍環境三維點雲資料中,可以看作一個區域性均值變點模型,每一鐳射層採集的可行駛區域內回波強度值就是一組輸出序列,其回波強度值變化的點就是所要求的車道標線點集,現在只須在每一鐳射層採集的可行駛區域內回波強度值輸出序列中檢測是否有變化點,若存在則標記並提取這些變點。基於車載雷達獲取的智慧車感興趣區域內海量點雲資料中的T座標值有一定高程特點進行濾波,確定可行駛區域,進而剔除與車道標線回波強度值相近的障礙物。

上圖為簡單濾波後粗提取的車道線回波強度值投影圖(全域性圖)

由於車載鐳射雷達獲取的道路周圍環境點雲資料是分層儲存的,不同鐳射層獲取的道路 周圍環境點雲資料相鄰兩點間距與到雷達座標系原點的距離有關,距離越遠間距越大。考慮到安裝在正常行駛上的鐳射雷達獲取的車道標線曲率變較小,所以利用文獻提出的基於車道標線方向的EM最大期望聚類演算法對粗提取車道標線點雲資料進行聚類。通過在聚類過程中估計車道標線方向來對粗提取的車道標線點雲資料集進行分類去噪。然後再利用最小二乘法進行車道線擬合。

再來看先檢測路沿,再根據路寬推測車道線的方法。

鐳射雷達通過乙太網與計算機連線,點雲資料以 UDP 的方式進行傳送。鐳射雷達的資料通過兩個埠傳送出來,埠 2368 負責傳送點雲資料,埠 8308 傳送 GPS 資料還有位置資料。

根據廠商提供的資料包格式說明,每個資料包包含一個包頭,有效資料的載荷以及狀態資料。一個數據包集合 12 次發射接收到的所有資料,接收到的距離以及強度資訊是按照錯開的順序進行接收的( 0, 16, 1, 17, 2, 18...15,31)。根據資料包的格式,進行相應的接收和儲存。點雲資料包含一束鐳射點達到反射點反饋到的距離資訊、強度資訊以及偏轉角度,由此可以得到反射點到鐳射雷達中心的距離、垂直平面上的角度以及水平面上的角度。若使用車輪與地面接觸的四個點所在的平面作為空間直角座標系的 xOy 平面,通過鐳射雷達中心所在位置並且垂直於 xOy 平面的一條直線作為 z 軸,由此便構成了如圖的空間座標系。

利用點雲資料,distance 表示鐳射點到鐳射雷達中心的直線距離,α是垂直方向上的夾角, β是水平方向上的夾角。由於雷達內部發射器之間存在偏差(如上圖 (b)),需要進行內部校正 , calibration_x 、 calibration_y 以 及calibration_z 分別為在 xyz 方向上所對應的內部校正引數,通過公式求得每個點在空間中的座標( x, y, z)

依次遍歷每一個數據點,就可以完成對鐳射雷達資料的解析,利用接收到的資料重構出 3D點雲。

多線鐳射雷達採集到的 3D 點雲資料能夠提供了大量的資訊,但是處理這些資料也帶來了巨大的運算量,這是造成許多基於多線鐳射雷達的演算法實時性比較差的重要原因。因此,減少運算量是提升多線鐳射雷達的實時性與可用性的關鍵。對於這個問題,通過劃分網格的方法,減少運算量。一種網格是方框型,一種是扇形。方形網格是以鐳射雷達的位置(或者說車體位置為)地圖中心,將鐳射雷達周圍的環境劃分為大小相等的網格。進行方形網格劃分之後,將解析雷達資料得到的 3D點雲投影到網格當中。扇形網格是以鐳射雷達的位置為圓心,用不同的半徑的同心圓將鐳射雷達周圍的環境進行劃分。一個網格是由同心圓以及從圓心出發的射線組成如圖中的紅色部分。因為鐳射雷達可以測量的最大範圍可以到達 80 米到 100 米,所以設定最大的一個同心圓的半徑為 80 米,最小的同心圓的半徑為 0.5米, 相鄰同心圓半徑差作為一個引數,將 3D點雲中的每個點投影到網格當中。

基於方形網格的劃分,將全圖分割為大小相同的網格,對於遠近的障礙物處理比較公平;缺點是運算量大。基於扇形網格進行劃分,呈現近處網格小而密集,從圓心開始越往外,網格越大。扇形網格的優勢在於對於近處的障礙物有良好的精度,能夠分辨較小的障礙物,在減少運算量的同時對障礙物的處理有所側重,缺點在於可能無法識別遠處的較小的障礙物。

常見的路沿有人行道的路沿石、綠化帶、隔離柵欄等,除此之外,道路環境中,常見的障礙物還有路燈、行道樹、消防栓、垃圾桶等。因此,路沿識別,需要找到人行道、綠化帶、隔離柵欄這類物體。道路環境中的物體的高度大致可以分為三個層次,路燈、行道樹等物體高度分類為高,綠化帶、隔離柵欄、消防栓等物體高度分類為中,人行道旁邊的路沿石的高度則劃分為低。因此將高度作為篩選路沿的第一個特徵,但如果直接使用每個點的高度資訊,接下來做聚類處理時會產生巨大的運算量,因此在上一步進行網格劃分之後,就可以將點的聚類轉為對網格的聚類。由於網格的數量遠遠小於點的數量,因而可以大大減少聚類所需要的運算量。因此要將點的高度資訊對映為網格的高度資訊。

完成高程資訊統計以後,會出現一個明顯的問題:行道樹會有一些樹枝延伸到道路上,此時,高程資訊會顯示路上有障礙物,實質上由於樹枝是懸空的,並不會阻礙汽車的正常的行駛,因此,需要對這一類誤判的障礙物進行中空識別,並將這一部分重新劃分為可行駛區域。演算法的思路是,遍歷每個標定為障礙物的網格,檢測網格內的點的高度分佈,如果在地面以上 10cm(障礙物高度) 至地面以上 2.4 米(鐳射雷達的頂端距離地面的高度)之內的點進行統計,如果數量少於 10%,則認為該網格是中空的障礙物網格,車輛能夠正常通過,因此重新將該網格歸為可通行區域。

在高度資訊統計中,給每一個網格維護一個標誌位,該標誌位用來指示網格是否符合常見路沿的高度限制要求。如果滿足,則該標誌位為真,否則為假。完成了所有的障礙物高度資訊統計以後,也就是對所有的網格都進行了標記,此時考慮路沿的第二個特徵:在一段距離內維持相似高度。只滿足路沿的第一特徵的物體可能會是消防栓、路過的小孩和垃圾箱等物品,因此需要路沿的第二個特徵進行進一步區分,將鄰近網格聚類成群落,當群落中的網格的數量大於路沿的連續閾值時,才能認為是路沿。聚類流程如下圖所示,遞迴地搜尋所有網格,直到周圍沒有新的可聚類網格就終止。 如果一個標誌位為真的網格的鄰近網格的標誌位同樣為真,就將它放入叢集當中。進行群落檢查的時候,如果群落中的網格數大於設定的閾值,則可認為是路沿。

我國高速公路設計標準為, 車道寬度 3.75米,應急車道為 2.5 米。如下圖所示, L1 為鐳射雷達檢測的車體到左側路沿的距離, L2 為鐳射雷達檢測的車體到右側鐳射雷達的距離,設道面總寬度 L, 則 L 可由公式得到:L =L1 + L2 。考慮到並非所有的所有道路均設定緊急車道,使用求模運算進行估計,設餘數為 M,則餘數M 可由公式得到:M = L % 3.75如果 M 約等於 2.5,則認為存在應急車道,否則認為不存在。若存在時,路面寬度由公式L = L −2.5,設車道數為 N,使用路面寬度除以 3.75,並向下取整,因為在道路設計中,路面與路沿之間存在一小段距離,則車道數可有公式N= ⌊L⁄3.75⌋計算出,根據車道數即可劃分出車道線,車道線的寬度一般為15-20釐米。

由於車道與路沿的距離長短不一,因此這種方法在非標準道路上準確度不高,倒是路沿的檢測準確度比較高。

未來固態鐳射雷達也很適合檢測車道線,固態鐳射雷達的FOV比較窄反而是個優勢,等於過濾掉了很多無關資料。不過單光子鐳射雷達通常採用計數器的方式讀出資料,不能檢測回波強度或回波寬度,不能檢測車道線。線性APD固態鐳射雷達就很合適。