閱讀283 返回首頁    go 阿裏雲 go 技術社區[雲棲]


你聽過無人駕駛,但你了解無人駕駛的算法嗎?

引言:我們已經拉開了全自動無人駕駛的序幕,在幕布之後是我們精彩的未來,但你可能不知道的是無人駕駛係統是一個複雜的係統,係統主要由三部分組成:算法端、Client端和雲端。算法端從傳感器原始數據中提取有意義的信息以了解周遭的環境情況,並根據環境變化做出決策。跟隨本文一起簡單了解下無人駕駛算法吧。
本文選自《第一本無人駕駛技術書》。

  算法係統由幾部分組成:第一,傳感,並從傳感器原始數據中提取有意義信息;第二,感知,以定位無人車所在位置及感知現在所處的環境;第三,決策,以便可靠、安全地抵達目的地。

1.傳感

  通常來說,一輛無人車裝備有許多不同類型的主傳感器。每一種類型的傳感器各自有不同的優劣,因此,來自不同傳感器的傳感數據應該有效地進行融合。現在無人駕駛中普遍使用的傳感器包括以下幾種。
  (1)GPS/IMU:GPS/IMU 傳感係統通過高達200 Hz頻率的全球定位和慣性更新數據,以幫助無人車完成自我定位。GPS是一個相對準確的定位用傳感器,但是它的更新頻率過低,僅有10Hz,不足以提供足夠實時的位置更新。IMU的準確度隨著時間降低,因此在長時間距離內並不能保證位置更新的準確性;但是,它有著GPS所欠缺的實時性,IMU的更新頻率可以達到200Hz或者更高。通過整合GPS與IMU,我們可以為車輛定位提供既準確又足夠實時的位置更新。
  (2)LIDAR:激光雷達可被用來繪製地圖、定位及避障。雷達的準確率非常高,因此在無人車設計中雷達通常被作為主傳感器使用。激光雷達是以激光為光源,通過探測激光與被探測物相互作用的光波信號來完成遙感測量。激光雷達可以用來產生高精度地圖,並針對高精地圖完成移動車輛的定位,以及滿足避障的要求。以Velodyne 64-束激光雷達為例,它可以完成10Hz旋轉並且每秒可達到130萬次讀數。
  (3)攝像頭:攝像頭被廣泛使用在物體識別及物體追蹤等場景中,在車道線檢測、交通燈偵測、人行道檢測中都以攝像頭為主要解決方案。為了加強安全性,現有的無人車實現通常在車身周圍使用至少八個攝像頭,分別從前、後、左、右四個維度完成物體發現、識別、追蹤等任務。這些攝像頭通常以60Hz的頻率工作,當多個攝像頭同時工作時,將產生高達1.8GB每秒的巨額數據量。
  (4)雷達和聲呐:雷達把電磁波的能量發射至空間中某一方向,處在此方向上的物體反射該電磁波,雷達通過接收此反射波,以提取該物體的某些有關信息,包括目標物體至雷達的距離、距離變化率或徑向速度、方位、高度等。雷達和聲呐係統是避障的最後一道保障。雷達和聲呐產生的數據用來表示在車的前進方向上最近障礙物的距離。一旦係統檢測到前方不遠有障礙物出現,則有極大的相撞危險,無人車會啟動緊急刹車以完成避障。因此,雷達和聲呐係統產生的數據不需要過多的處理,通常可直接被控製處理器采用,並不需要主計算流水線的介入,因此可實現轉向、刹車或預張緊安全帶等緊急功能。

2.感知

  在獲得傳感信息之後,數據將被推送至感知子係統以充分了解無人車所處的周遭環境。在這裏感知子係統主要做的是三件事:定位、物體識別與追蹤。

1)定位

  GPS以較低的更新頻率提供相對準確的位置信息,IMU則以較高的更新頻率提供準確性偏低的位置信息。我們可以使用卡爾曼濾波整合兩類數據各自的優勢,合並提供準確且實時的位置信息更新。如下圖所示,IMU每5ms更新一次,但是期間誤差不斷累積精度不斷降低。所幸的是,每100ms,我們可以得到一次GPS數據更新,以幫助我們校正IMU積累的誤差。因此,我們最終可以獲得實時並準確的位置信息。然而,我們不能僅僅依靠這樣的數據組合完成定位工作。原因有三:其一,這樣的定位精度僅在一米之內;其二,GPS信號有著天然的多路徑問題將引入噪聲幹擾;其三,GPS必須在非封閉的環境下工作,因此在諸如隧道等場景中GPS都不適用。
  基於GPS/IMU定位的原理圖
                基於GPS/IMU定位的原理圖
                 
因此作為補充方案,攝像頭也被用於定位。
  基於立體視覺測距的流程圖
               基於立體視覺測距的流程圖
               
  簡化來說,基於視覺的定位由三個基本步驟組成:① 通過對立體圖像的三角剖分,首先獲得視差圖用以計算每個點的深度信息;② 通過匹配連續立體圖像幀之間的顯著特征,可以通過不同幀之間的特征建立相關性,並由此估計這兩幀之間的運動情況;③ 通過比較捕捉到的顯著特征和已知地圖上的點計算車輛的當前位置。然而,基於視覺的定位方法對照明條件非常敏感,因此其使用受限且可靠性有限。
  因此,借助於大量粒子濾波的激光雷達通常被用作車輛定位的主傳感器。由激光雷達產生的點雲對環境進行了“形狀化描述”,但並不足以區分各自不同的點。通過粒子濾波,係統可將已知地圖與觀測到的具體形狀進行比較以減少位置的不確定性。
為了在地圖中定位運動的車輛,可以使用粒子濾波的方法關聯已知地圖和激光雷達測量過程。粒子濾波可以在10cm的精度內達到實時定位的效果,在城市的複雜環境中尤為有效。然而,激光雷達也有其固有的缺點:如果空氣中有懸浮的顆粒(比如雨滴或者灰塵),那麼測量結果將受到極大的擾動。
         圖片描述
                定位中的多傳感器融合
  
  因此,我們需要利用多種傳感器融合技術進行多類型傳感數據融合,處理以整合所有傳感器的優點,完成可靠並精準的定位。

2)物體識別與跟蹤

  激光雷達可提供精準的深度信息,因此常被用於在無人駕駛中執行物體識別和追蹤的任務。近年來,深度學習技術得到了快速的發展,通過深度學習可達到較顯著的物體識別和追蹤精度。
卷積神經網絡(CNN)是一類在物體識別中被廣泛應用的深度神經網絡。通常,CNN由三個階段組成:① 卷積層使用不同的濾波器從輸入圖像中提取不同的特征,並且每個過濾器在完成訓練階段後都將抽取出一套“可供學習”的參數;② 激活層決定是否啟動目標神經元;③ 匯聚層壓縮特征映射圖所占用的空間以減少參數的數目,並由此降低所需的計算量;④ 一旦某物體被CNN識別出來,下一步將自動預測它的運行軌跡或進行物體追蹤。
               物體識別和跟蹤示意
                物體識別和跟蹤示意
  
  物體追蹤可以被用來追蹤鄰近行駛的車輛或者路上的行人,以保證無人車在駕駛的過程中不會與其他移動的物體發生碰撞。近年來,相比傳統的計算機視覺技術,深度學習技術已經展露出極大的優勢,通過使用輔助的自然圖像,離線的訓練過程可以從中學習圖像的共有屬性以避免視點及車輛位置變化造成的偏移,離線訓練好的模型直接應用在在線的物體追蹤中。

3.決策

  在決策階段,行為預測、路徑規劃及避障機製三者結合起來實時地完成無人駕駛動作規劃。

1)行為預測

  在車輛駕駛中主要考驗的是司機如何應對其他行駛車輛的可能行為,這種預判斷直接影響司機本人的駕駛決策,特別是在多車道環境或者交通燈變燈的情況下,司機的預測決定了下一秒行車的安全。因此,過渡到無人駕駛係統中,決策模塊如何根據周圍車輛的行駛狀況決策下一秒的行駛行為顯得至關重要。
  為了預測其他車輛的行駛行為,可以使用隨機模型產生這些車輛的可達位置集合,並采用概率分布的方法預測每一個可達位置集的相關概率。
       圖片描述
               麵向行為預測的隨機模型示意
               

2)路徑規劃

  為無人駕駛在動態環境中進行路徑規劃是一件非常複雜的事情,尤其是在車輛全速行駛的過程中,不當的路徑規劃有可能造成致命的傷害。路徑規劃中采取的一個方法是使用完全確定模型,它搜索所有可能的路徑並利用代價函數的方式確定最佳路徑。然後,完全確定模型對計算性能有著非常高的要求,因此很難在導航過程中達到實時的效果。為了避免計算複雜性並提供實時的路徑規劃,使用概率性模型成為了主要的優化方向。

3)避障

  安全性是無人駕駛中最重要的考量,我們將使用至少兩層級的避障機製來保證車輛不會在行駛過程中與障礙物發生碰撞。第一層級是基於交通情況預測的前瞻層級。交通情況預測機製根據現有的交通狀況如擁堵、車速等,估計出碰撞發生時間與最短預測距離等參數。基於這些估計,避障機製將被啟動以執行本地路徑重規劃。如果前瞻層級預測失效,則第二級實時反應層將使用雷達數據再次進行本地路徑重規劃。一旦雷達偵測到路徑前方出現障礙物,則立即執行避障操作。

  本文選自《第一本無人駕駛技術書》,點此鏈接可在博文視點官網查看此書。
               圖片描述

  想及時獲得更多精彩文章,可在微信中搜索“博文視點”或者掃描下方二維碼並關注。
                       圖片描述

最後更新:2017-05-26 11:31:47

  上一篇:go  【全套攻略】關於建站、虛擬機、服務器你想知道的都在這裏!
  下一篇:go  這屆數博會,阿裏雲展了什麼?