自動駕駛技術|機器之心
自動駕駛汽車,是無人地面載具(Unmanned ground vehicle)的一種,具有傳統汽車的運輸能力。作為自動化載具,自動駕駛汽車不需要人為操作即能感測其環境及導航。完全的自動駕駛汽車仍未全面商用化,大多數均為原型機及展示系統,部分可靠技術才下放至量產車型,但有關于自駕車逐漸成為現實,已經引起了很多有關于道德的討論。
自動駕駛汽車能以雷達、光學雷達、GPS 及計算機視覺(computer vision)等技術感測其環境。先進的控制系統能將感測資料轉換成適當的導航道路,以及障礙與相關標志。根據定義,自動駕駛汽車能透過感測輸入的資料,更新其地圖資訊,讓交通工具可以持續追蹤其位置,即使條件改變,或汽車駛進了未知的環境內。
在美國,美國國家公路交通安全管理局(NHTSA)已提出正式的自動駕駛五等級分類系統(2016年版本):
- 等級0:即無自動。駕駛隨時掌握著車輛的所有機械、物理功能,僅配備警報裝置等無關主動駕駛的功能也算在內。
- 等級1:駕駛人操作車輛,但個別的裝置有時能發揮作用,如電子穩定程式(ESP)或防鎖死剎車系統(ABS)可以幫助行車安全。
- 等級2:駕駛人主要控制車輛,但系統階調地自動化,使之明顯減輕操作負擔,例如主動式巡航定速(ACC)結合自動跟車和車道偏離警示,而自動緊急煞停系統(AEB)透過盲點偵測和汽車防撞系統的部分技術結合。
- 等級3:駕駛人需隨時準備控制車輛,自動駕駛輔助控制期間,如在跟車時雖然可以暫時免于操作,但當汽車偵測到需要駕駛人的情形時,會立即回歸讓駕駛人接管其后續控制,駕駛必須接手因應系統無力處理的狀況。
- 等級4:駕駛人可在條件允許下讓車輛完整自駕,啟動自動駕駛后,一般不必介入控制,此車可以按照設定之道路通則(如高速公路中,平順的車流與標準化的路標、明顯的提示線),自己執行包含轉彎、換車道與加速等工作,除了嚴苛氣候或道路模糊不清、意外,或是自動駕駛的路段已經結束等等,系統并提供駕駛人“足夠寬裕之轉換時間”,駕駛應監看車輛運作,但可包括有旁觀下的無人停車功能。(有方向盤自動車)
- 等級5:駕駛人不必在車內,任何時刻都不會控制到車輛。此類車輛能自行啟動駕駛裝置,全程也不須開在設計好的路況,就可以執行所有與安全有關之重要功能,包括沒有人在車上時的情形,完全不需受駕駛意志所控,可以自行決策。(無需方向盤自動車)
這是根據國際自動機工程師學會(SAE International)依據這五個不同程度(從駕駛輔助至完全自動化系統)發布另一種分類系統而編修而成,設計理念是‘誰在做,做什么’的分類法。
[描述來源: 維基百科 URL:https://en.wikipedia.org/wiki/Self-driving_car]
自動駕駛系統通常有一個非常經典的、模塊化的流水線。
首先是感知模塊(perception stack),感知模塊將地圖、三維傳感器、二維傳感器中的信息給到「世界模型」(world model),世界模型將上述信息,匯總在一張地圖中,理解每一個時刻不同的物體相對于路面、道線等的位置,預測下一刻的可選路徑都有哪些。隨后是一個規劃模塊(planning model),進行決策。決策的內容也是分層級的。粗粒度的決策需要決定如何從 A 點到 B 點,完成的是類似 GPS 的工作。除此之外還有諸多細粒度的決策工作,例如決定走哪一條車道,是否要暫時占用對向車道完成超車,車速應該設定為多少等。最后是控制模塊(control module),控制模塊操縱所有的控制器,有高層的控制器,比如電子穩定系統 ESP,也有最基層的控制器,比如控制每一個輪子進行加速和剎車的控制器。
目前正在發展的計算機視覺技術對自動駕駛系統的發展非常關鍵。想要讓一個自動駕駛系統作出正確的決策,主要涉及到以下計算機視覺任務:
首先是車輛定位:衡量車輛的運動并在地圖中進行定位。完成這部分工作的是視覺測距(visual odometry)系統和定位(localization)系統。二者的區別是,視覺測距估計的是車輛相對于前一時間步進行的相對運動,而定位是對車輛在地圖中的運動進行全局的估計。定位是可以精確到厘米級的,車輛相對于一些地圖中固定的物體(例如電線桿)的距離已經是已知的,基于這些信息,車輛已經可以進行相當不錯的路徑規劃了。
然后是三維視覺重建,重建范圍通常在 50-80 米,具體需求視行駛速度而定。大部分 STOA 自動駕駛系統會使用激光雷達(LiDAR)進行三維重建。不過也有少部分團隊試圖直接從圖像中恢復三維信息。由于圖像中的數據相比之下更為嘈雜,因此完全基于圖像的重建是一項更具有挑戰性的工作。
除了重建之外,你也需要對車輛正前方正在發生的事有充分的理解。因此,你需要進行物體檢測,也需要在理解物體是什么的基礎上對其進行進一步的分類,而檢測和分類會幫助預測其未來軌跡。進行檢測和分類的方式是多樣的,你可以給每一個物體畫一個邊界框(bounding box):這是最常見的方式,但是自動駕駛需要在三維的物理世界中進行運動規劃,所以你至少要需要一個三維的邊界框。
更精確的是實例分割(instance segmentation)和語義分割(semantic segmentation)。當物體是形狀為凹或者是隧道之類需要穿行的物體時,邊界框顯然是不夠的。實例分割將圖像里屬于一些特定目標類別的每個實例的所有像素分為一類。實例分割通常在二維圖像上進行,但也有三維版本,三維實例分割基本等同于物體重建。而語義分割為圖像里每一個像素分配一個語義標簽,同一類別的不同實例不做區分。除此之外,全景分割(panoptic segmentation)基本上可以視作實例分割和語義分割的結合。全景分割對那些沒有實例只有整體的類別也進行區分,例如天空和植被。天空無法用一個邊界框框柱,而植被需要在平時避開,但系統也需要知道在緊急情況下汽車沖上草坪并無大礙(相比之下撞上樹或者行人就有很大問題了)。因此語義信息是必要的。
接下來是運動估計。根據之前的一幀或數幀,預估視野里的每一個點,或者說每一個物體,在下一幀的位置。一些物體,例如車輛,它們的移動是比較容易預判的,因此運動模型可以進行準確率較高的預測。而另外一些物體,例如行人,會非常突然地變更其運動軌跡,導致運動模型的建立更為艱難。即便如此,較短時間區間(2-3 秒)的動作預測,在動態物體較多的擁擠場景下的決策過程中也仍然扮演著至關重要的角色。
上述任務都是各自獨立的,但是實際上,收集上述信息的系統并不是各自獨立運轉的。因此情境推理(contextual reasoning)也有助于給出更準確的預測。例如一群行人通常會同時等紅燈、同時過馬路,一輛車試圖并線時另一輛車會剎車讓路,以這些外部信息、先驗知識做約束,理解復雜場景會變得更為容易。
最后,一個還沒有引起較多重視的領域是不確定性推理(reasoning under uncertainty)。人類感官或者車輛傳感器拿到的數據中必然包含著不確定性,因此,如何準確地評估不確定性,并兼顧「最小化風險」和「完成任務」,是一個重要的話題。理想情況下,所有上述檢測、分割、重建、定位任務都應該在不確定性約束下進行,系統在行進之前應該知道它可能犯哪些錯誤。