1. 程式人生 > >【無人駕駛系列】鐳射雷達(LiDAR)在無人駕駛技術中的應用

【無人駕駛系列】鐳射雷達(LiDAR)在無人駕駛技術中的應用

無人駕駛汽車的成功涉及高精地圖、實時定位以及障礙物檢測等多項技術,而這些技術都離不開光學雷達(LiDAR)。本文將深入解析光學雷達是如何被廣泛應用到無人車的各項技術中。文章首先介紹光學雷達的工作原理,包括如何通過鐳射掃描出點雲;然後詳細解釋光學雷達在無人駕駛技術中的應用,包括地圖繪製、定位以及障礙物檢測;最後討論光學雷達技術目前面臨的挑戰,包括外部環境干擾、資料量大、成本高等問題。

無人駕駛技術簡介

無人駕駛技術是多個技術的整合,包括了感測器、定位與深度學習、高精地圖、路徑規劃、障礙物檢測與規避、機械控制、系統整合與優化、能耗與散熱管理等等。雖然現有的多種無人車在實現上有許多不同,但是在系統架構上都大同小異。圖1顯示了無人車的通用系統架構,系統的感知端(圖1左)由不同的感測器組成,其中GPS用於定位,光學雷達(Light Detection And Ranging,簡稱 LiDAR)用於定位以及障礙物檢測,

照相機用於基於深度學習的物體識別以及定位輔助

圖片描述

圖1 無人車通用系統架構

在感測器資訊採集後,我們進入了感知階段,主要是定位與物體識別(圖1中)。在這個階段,我們可以用數學的方法,比如Kalman Filter與 Particle Filter等演算法,對各種感測器資訊進行融合,得出當前最大機率的位置。如果使用LiDAR為主要的定位感測器,我們可以通過LiDAR掃描回來的資訊跟已知的高精地圖做對比,得出當前的車輛位置。如果沒有地圖,我們甚至可以把當前的LiDAR掃描資訊與之前的掃描資訊用ICP演算法做對比,推算出當前的車輛位置。在得出基於LiDAR的位置預測後,可以用數學方法與其它感測器資訊進行融合,推算出更精準的位置資訊。

最後,我們進入了計劃與控制階段(圖1右)。在這個階段,我們根據位置資訊以及識別出的影象資訊(如紅綠燈)實時調節車輛的行車計劃,並把行車計劃轉化成控制訊號操控車輛。全域性的路徑規劃可以用類似A-Star的演算法實現,本地的路徑規劃可以用DWA等演算法實現。

光學雷達基礎知識

先來了解下光學雷達的工作原理,特別是產生點雲的過程。

工作原理

光學雷達是一種光學遙感技術,它通過首先向目標物體發射一束鐳射,再根據接收-反射的時間間隔來確定目標物體的實際距離。然後根據距離及鐳射發射的角度,通過簡單的幾何變化可以推匯出物體的位置資訊。由於鐳射的傳播受外界影響小,LiDAR能夠檢測的距離一般可達100m以上。與傳統雷達使用無線電波相比較,LiDAR使用鐳射射線,商用LiDAR使用的鐳射射線波長一般在600nm到1000nm之間,遠遠低於傳統雷達所使用的波長。因此LiDAR在測量物體距離和表面形狀上可達到更高的精準度,一般可以達到釐米級。

LiDAR系統一般分為三個部分:第一是鐳射發射器,發射出波長為600nm到1000nm之間的鐳射射線;第二部分是掃描與光學部件,主要用於收集反射點距離與該點發生的時間和水平角度(Azimuth);第三個部分是感光部件,主要檢測返回光的強度。因此我們檢測到的每一個點都包括了空間座標資訊(x, y, z)以及光強度資訊(i)。光強度與物體的光反射度(reflectivity)直接相關,所以根據檢測到的光強度也可以對檢測到的物體有初步判斷。

什麼是點雲?

無人車所使用的LiDAR並不是靜止不動的。在無人車行駛的過程中,LiDAR同時以一定的角速度勻速轉動,在這個過程中不斷地發出鐳射並收集反射點的資訊,以便得到全方位的環境資訊。LiDAR在收集反射點距離的過程中也會同時記錄下該點發生的時間和水平角度(Azimuth),並且每個鐳射發射器都有編號和固定的垂直角度,根據這些資料我們就可以計算出所有反射點的座標。LiDAR每旋轉一週收集到的所有反射點座標的集合就形成了點雲(point cloud)。

圖片描述

圖2 點雲的產生

如圖2所示,LiDAR通過鐳射反射可以測出和物體的距離distance,因為鐳射的垂直角度是固定的,記做a,這裡我們可以直接求出z軸座標為sin(a)*distance。由cos(a)*distance我們可以得到distance在xy平面的投影,記做xy_dist。LiDAR在記錄反射點距離的同時也會記錄下當前LiDAR轉動的水平角度b,根據簡單的集合轉換,可以得到該點的x軸座標和y軸座標分別為cos(b)*xy_dist和sin(b)*xy_dist。

LiDAR 在無人駕駛技術中的應用領域

接下來介紹光學雷達如何應用在無人駕駛技術中,特別是面向高精地圖的繪製、基於點雲的定位以及障礙物檢測。

高清地圖的繪製

這裡的高清地圖不同於我們日常用到的導航地圖。高清地圖是由眾多的點雲拼接而成,主要用於無人車的精準定位。高清地圖的繪製也是通過LiDAR完成的。安裝LiDAR的地圖資料採集車在想要繪製高清地圖的路線上多次反覆行駛並收集點雲資料。後期經過人工標註,過濾一些點雲圖中的錯誤資訊,例如由路上行駛的汽車和行人反射所形成的點,然後再對多次收集到的點雲進行對齊拼接形成最終的高清地圖。

基於點雲的定位

首先介紹定位的重要性。很多人都有這樣的疑問:如果有了精準的GPS,不就知道了當前的位置,還需要定位嗎?其實不然。目前高精度的軍用差分GPS在靜態的時候確實可以在“理想”的環境下達到釐米級的精度。這裡的“理想”環境是指大氣中沒有過多的懸浮介質而且測量時GPS有較強的接收訊號。然而無人車是在複雜的動態環境中行駛,尤其在大城市中,由於各種高大建築物的阻攔,GPS多路徑反射(Multi-Path)的問題會更加明顯。這樣得到的GPS定位資訊很容易就有幾十釐米甚至幾米的誤差。對於在有限寬度上高速行駛的汽車來說,這樣的誤差很有可能導致交通事故。因此必須要有GPS之外的手段來增強無人車定位的精度。

上文提到過,LiDAR會在車輛行駛的過程中不斷收集點雲來了解周圍的環境。我們可以很自然想到利用這些環境資訊來定位。這裡我們可以把這個問題用一個簡化的概率問題來表示:已知t0時刻的GPS資訊,t0時刻的點雲資訊,以及t1時刻無人車可能所在的三個位置:P1、P2和P3(這裡為了簡化問題,假設無人車會在這三個位置中的某一個)。求t1時刻車在這三點的概率。根據貝葉斯法則,無人車的定位問題可以簡化為如下概率公式:

圖片描述

右側第一項表示給定當前位置,觀測到點雲資訊的概率分佈。其計算方式一般分區域性估計和全域性估計兩種。區域性估計較簡單的做法就是通過當前時刻點雲和上一時刻點雲的匹配,藉助幾何推導,可以估計出無人車在當前位置的可能性。全域性估計就是利用當前時刻的點雲和上面提到過的高清地圖做匹配,可以得到當前車相對地圖上某一位置的可能性。在實際中一般會兩種定位方法結合使用。右側第二項表示對當前位置預測的概率分佈,這裡可以簡單的用GPS給出的位置資訊作為預測。通過計算P1、P2和P3這三個點的後驗概率,就可以估算出無人車在哪一個位置的可能性最高。通過對兩個概率分佈的相乘,可以很大程度上提高無人車定位的準確度,如圖3所示。

圖片描述

圖3 基於點雲的定位

障礙物檢測

眾所周知,在機器視覺中一個比較難解決的問題就是判斷物體的遠近,基於單一攝像頭所抓取的2D影象無法得到準確的距離資訊。而基於多攝像頭生成深度圖的方法又需要很大的計算量,不能很好地滿足無人車在實時性上的要求。另一個棘手的問題就是光學攝像頭受光照條件的影響巨大,物體的識別準確度很不穩定。圖4展示了光線不好的情況下影象特徵匹配的問題:由於相機曝光不充分,左側圖中的特徵點在右側圖中沒有匹配成功。圖5左側展示了2D物體特徵匹配成功的例子:啤酒瓶的模板可以在2D影象中成功識別。但是如果將鏡頭拉遠,如圖5右所示,我們只能識別出右側的啤酒瓶只是附著在另一個3D物體的表面而已。2D物體由於維度缺失的問題很難在這個情境下做出正確的識別。

圖片描述

圖4 暗光條件下影象特徵匹配的挑戰 
圖片描述

圖5 2D影象識別的問題

利用LiDAR所生成的點雲可以很大程度上解決上述兩個問題,藉助LiDAR的特性,我們可以對反射障礙物的遠近、高低甚至是表面形狀有較為準確的估計,從而大大提高障礙物檢測的準確度,而且這種方法在演算法的複雜度上低於基於攝像頭的視覺演算法,因此更能滿足無人車的實時性需求。

LiDAR技術面臨的挑戰

前文我們專注於LiDAR對無人駕駛系統的幫助,但是在實際應用中,LiDAR也面臨著許多挑戰,包括技術、計算效能以及價格挑戰。要想把無人車系統產品化,我們必須解決這些問題。

技術挑戰:空氣中懸浮物

LiDAR的精度也會受到天氣的影響。空氣中懸浮物會對光速產生影響。大霧及雨天都會影響LiDAR的精度,如圖6所示。

圖片描述

圖6 外部環境對LiDAR測量的影響 
圖片描述

圖7 雨量對LiDAR測量影響的量化

圖7測試中使用了A和B兩個來自不同製造廠的LiDAR,可以看到隨著實驗雨量的增大,兩種LiDAR的最遠探測距離都線性下降。雨中或霧中的傳播特性最近幾年隨著鐳射技術的廣泛應用越來越受到學術界的重視。研究表明:雨和霧都是由小水滴構成的,雨滴的半徑直接和其在空中的分佈密度直接決定了鐳射在傳播的過程中與之相撞的概率。相撞概率越高,鐳射的傳播速度受影響越大。

計算效能挑戰:計算量大

從表1可以看到,即使是16線的LiDAR每秒鐘要處理的點也達到了30萬。要保證無人車定位演算法和障礙物檢測演算法的實時性,如此大量的資料處理是面臨的一大挑戰。例如,之前所說的LiDAR給出的原始資料只是反射物體的距離資訊,需要對所有產生的點進行幾何變換,將其轉化為位置座標,這其中至少涉及4次浮點運算和3次三角函式運算,而且點雲在後期的處理中還有大量座標系轉換等更復雜的運算,這些都對計算資源 (CPU、GPU、FPGA) 提出了很大的需求。

型號 Channel 數量 每秒產生點數
Velodyne HDL-64E 64 Channels 2,200,000
Velodyne HDL-32E 32 Channels 700,000
Velodyne VLP-16 16 Channels 300,000

成本挑戰:造價昂貴

LiDAR的造價也是要考慮的重要因素之一。上面提到的Velodyne VLP-16 LiDAR官網報價為稅前7999美元,而Velodyne HDL-64E LiDAR預售價在10萬美元以上。這樣的成本要加在本來就沒有很高利潤的汽車價格中,無疑會大大阻礙無人車的商業化。

展望未來

儘管無人駕駛技術漸趨成熟,但LiDAR始終是一個繞不過去的坎。純視覺與GPS/IMU的定位以及避障方案雖然價格低,卻還不成熟,很難應用到室外場景中;但同時LiDAR價格高居不下,消費者很難承受動輒幾十萬美元定價的無人車。因此,當務之急就是快速把系統成本特別是LiDAR的成本大幅降低。其中一個較有希望的方法是使用較低價的LiDAR,雖然會損失一些精確度,但可以使用其它的低價感測器與LiDAR做資訊混合,較精準地推算出車輛的位置。換言之,就是通過更好的演算法去彌補硬體感測器的不足,我們相信這是無人車近期的發展方向。而高精度LiDAR的價格由於市場需求大增也將會在未來的一兩年內出現降幅,為無人車的進一步普及鋪路。

作者簡介:

  • 劉博聰,百度公司美國研發中心架構師,目前主要負責百度無人車系統架構。卡內基梅隆大學電子與計算機工程碩士,研究方向包括嵌入式系統,機器學習演算法研究。曾在Qualcomm從事手機晶片和車載晶片的工作。

  • 劉少山,PerceptIn公司聯合創始人。加州大學歐文分校計算機博士,研究方向包括智慧感知計算、系統軟體、體系結構與異構計算(FPGA、GPU)。現在PerceptIn主要專注於增強現實、虛擬現實、機器人的核心SLAM技術及其在智慧硬體上的實現與優化。創立PerceptIn之前在百度美國研發中心工作。

  • James Peng,百度公司首席架構師。清華大學本科,紐約州立大學碩士,斯坦福大學博士,雲端計算平臺,深度學習,資料建模,大規模資料庫等。曾在谷歌工作多年,參與和負責完成多個專案。

無人駕駛技術系列後續的文章將討論ROS系統、高精地圖、路徑規劃、底層控制和視覺識別等技術,敬請期待:

  1. Lidar
  2. ROS
  3. Map
  4. GPS + IMU
  5. Camera
  6. Planning
  7. Control
  8. Data platform
  9. Simulation
  10. Communications