論文筆記:Planning and Decision-Making for Autonomous Vehicles

        這兩天讀了一篇MIT關於無人車規劃與決策方面的綜述文章,寫的非常全面,讀完酣暢淋漓。讀到了很多復現過以及剛產生idea就發現被人做了的工作,有必要在這裏進行一些總結,同時作爲讀完文章的一個規整。在下文中對原文的翻譯與轉述將用黑色字體,個人的一些看法與評價將用紅色字體。

        這篇綜述發表在《Annual Review of Control, Robotics, and Autonomous Systems》期刊中,是2018年剛發出的文章,因此其中的很多引用都非常新。同時作者眼光非常毒,很多本綜述發表時還掛在arxiv上的文章現在也都紛紛出現在了NIPS、RSS、IJRR等頂刊頂會上。下面將依照論文行文順序進行介紹。

 

                              自動駕駛中的規劃與決策:綜述


一、簡介

        隨着車輛的增多,道路惡性事故也在逐年遞增,帶來了巨大的人員傷亡。而無人駕駛技術在解決這一問題上具有很大的潛力,同時爲人類的出行帶來了極大便利,因此我們需要研究無人駕駛問題。但同時這也是一個非常宏大的問題,涉及到很多領域例如:車輛設計、車輛控制、感知、規劃……

        在本篇文章中,我們主要着眼於以下幾個問題:

  1. 無人車如何決定下一步去哪裏?
  2. 如何利用感知信息進行決策?
  3. 與其他行駛車輛的交互會怎樣影響決策?
  4. 如何從自身/他人的行駛數據中學習自動駕駛?
  5. 自動駕駛如何保證正確性與安全性?
  6. 怎樣實現高效的合作共融式自動駕駛?

        自動駕駛的5級分類早已經成爲評判自動駕駛“自動程度”的一個準則,這裏我們的研究目標是第五級即完全的自動駕駛,不需要人的干預。早在2004-2007年,美國就多次舉行DARPA無人車挑戰賽,從沙漠環境到城市環境,美國國防部先進研究部門爲此投入了巨大的資金與政策支持,這也成爲自動駕駛21世紀的第一個技術井噴期。然而必須要指出的是,DARPA挑戰賽是有很大侷限性的,由於其“比賽”式的行駛,決定了很多隊伍會使用一些工程上的tricks,實用性上有所欠缺。更嚴重的侷限在於DARPA挑戰賽的環境大多是低速、無擁堵環境,技術難度相對較低,因此還需要研究更普適的自動駕駛方法。

        真正的完全自動駕駛需要在不可預測的環境中根據感知及時、安全地作出決策,並控制無人車貫徹決策,這其中包含着巨大的技術挑戰。

        將自動駕駛問題看作一個從感知輸入到控制輸出的系統問題,則對此問題的解決思路有如圖三種,分別是:

  1. 傳統方法:感知層->行爲選擇層->運動規劃層->反饋控制層
  2. 行爲-意識方法:將1中行爲選擇與運動規劃融爲一體
  3. 端對端方法:直接從傳感器輸入映射出控制輸出

        也許是沒有看出這篇文章的內在邏輯,個人感覺本文寫的有些凌亂,其中第一章即本章簡要介紹了本文內容與結構。第二章介紹了運動規劃與控制的綜述,可以近似認爲對上述的傳統方法做一總結,但同時還夾雜着一些別的方法。第三章又從感知講起,帶入到端對端方法,包含了上述的第三條。第四章講了基於“行爲-意識”的運動規劃方法,近似與上述第二條。後面五六章簡要的介紹了可靠性證明與安全性保證的一些方法,以及整個自動駕駛系統架構的一些框架。最後對文章進行了總結。需要指出的是,雖然大致分割如此,但作爲一篇宏大的綜述文章,在每一個小章節中又夾雜着一些擦邊的內容,讓本文的結構稍顯混亂。

 

二、運動規劃與控制

       本章主要講了傳統的一些運動規劃與控制方法,包括車輛動力學與控制、人車配合關係、傳統自動駕駛的運動規劃。

2.1、車輛動力學與控制

        這方面的研究主要着眼於如何通過車輛動力學模型將車輛控制到期望的狀態,例如姿態、位置、速度等。文中介紹比較簡略,主要有PID、非線性控制、MPC、反饋-前饋控制等方法,倒是控制系的老本行,但個人對這方面興趣不大,因此不過多研究。

         前面幾種方法都是基於模型的方法,因此通常需要先對模型做系統辨識,而對車輛這樣龐大的模型做系統辨識是一項想想就頭大的工程,還設計低速-高速工作點漂移等諸多問題。當前的主流方法分爲基於最優化與基於學習兩條路,選擇哪條需要看具體需求與實際情況,例如帶估參數過多的話也許最優化方法算不過來。同時對工作點漂移等問題,終身系統辨識等方法也在被研究。

2.2、人車關係

        說實話我不清楚這一小節是怎麼被塞進“運動規劃與控制”這個章節的,不過看起來確實塞哪裏都不太合適,還是尊重作者吧。

        當前的駕駛員(人類)與駕駛算法之間的關係大致可以分爲三種:

  1. 串聯關係:即人類作出決策,駕駛算法去負責下層執行,這是目前最經常看到的一種關係,但也是智能程度最低的一種關係。、
  2. 交替式關係:即人類與駕駛算法交替式控制車輛,可以想見的一點是通常駕駛算法負責的控制過程應該是難度較低的一段,例如無車高速上長時間的定速巡航等。
  3. 平行式關係:這也是本節本來想着重講的一個問題,即算法與駕駛員進行平行決策,在駕駛安全收到威脅的時候算法主動幫助駕駛員解決緊急問題,提升駕駛安全性。例如倒車防撞系統等。這也是最近的一個研究方向。

2.3、自動駕駛中的傳統運動規劃

        首先這裏給出了兩篇對傳統運動規劃的綜述文章,在傳統路徑規劃/軌跡規劃上這兩篇文章介紹的更加全面一些。傳統的路徑規劃問題有三種常見解決方案:

  1. 空間離散化+碰撞檢測: 即A*那個流派,對地圖先進行離散,再在裏面依靠碰撞檢測進行路徑搜索。這是一種非常高效的方法,在高速路這樣的簡單環境中有着很大的應用空間。但其通常適用環境比較小,對觀測要求比較高。
  2. 隨機規劃方法: 即RRT那個流派,應該也是先對地圖離散出障礙物,但其通過隨機撒點與優化,可以在更大的搜索空間中實現規劃(雖然確實對算力消耗很大但還是可以搞的)。
  3. 約束最優化&滾動優化方法:利用最優化進行運動規劃,這個與前兩中個人認爲放在一起比較牽強,前兩種更多是應用於尋路中,而這種方法通常使用在路徑跟蹤中(例如變道過程中的軌跡優化)。

        同時需要指出,在自動駕駛中,“找到路”不一定意味着這樣的路可以走,因爲還有各種交通規則的約束。於是如何將“交通規則”融合入運動規劃中就成爲了一個需要研究的問題。同時,有時交通規則並不是一定需要遵守的,尤其是在別的車已經違反交通規則並帶來一定危險性的情況下,輕微的違反交通規則來確保安全是可以接受的。於是如何在平衡規則與安全性也是正在被研究的。

 

在整個第二章中,大部分方法都是在靜態或者可以估計的動態環境中展開研究的,但在真實道路環境中,動態物體很多且難以預測,擁擠環境更是成爲自動駕駛的噩夢,因此在下章將着眼於通過端對端方法研究這一問題。

 

三、融合感知與規劃

        本章主要講了如何將感知與規劃進行融合,分爲兩大塊,首先是對感知方法的一個簡要講解,接着介紹了端對端的感知-規劃方法。

3.1、從傳統感知到當前基於神經網絡的感知方法與挑戰

        首先給出了一個近期對感知方法進行總結的一篇綜述,其中包括了物體識別、運動估計、目標跟蹤、場景理解以及對各種數據集的端對端學習等方面,包含了KITTI、ISPRS、MOT、Cityscapes等多個數據集的介紹。

        傳統的視覺方法通常是基於特徵點的,例如SIFT、BRISK、SURF、ORB等人爲設計的特徵點提取方法是這些方法最底層的組成。接着通過追蹤、匹配這些特徵點,可以實現定位、位姿估計以及建圖、包括即時定位與建圖(SLAM)等高級任務。一些典型的SLAM方法如ORB-SLAM 1\2、 LSD-SLAM、SVO等都是基於特徵點方法的。隨着激光的發展與小型化、平民化,人們也開始研究多傳感器融合定位、建圖、導航等問題。

        建圖當然具有其必要性,如果對於任意一個環境我們都能建立起足夠精度的地圖,那麼一切導航規劃問題都變成了搜索問題,然而要建立其這樣的地圖是不現實的。因爲首先地圖的更新不能保證實時,而自動駕駛中要求的反應時間通常是百毫秒級別的。同時地圖尤其是融合了視覺點、關鍵幀與激光點雲的地圖在建立、存儲和傳輸中都很不方便。因此通常我們只保存一個輕量級的帶語義地圖,而對於其他動態特徵,我們通常需要進行實時的感知。

        這裏作者推薦了關於道路與車道線檢測的另一篇綜述,個人認爲對相關方向的研究非常有參考價值。在目前檢測領域中,基於深度學習的方法佔有統治性地位,如Faster RCNN等方法在逐漸統治相關挑戰賽。

        然而目前的一個有挑戰的問題在於高分辨率圖片的語義分割,目前先進的方法如ResNet系列與PSPNet等可以實現80%以上的mIOU,其他ENet、ICNet也有其適用性。

        深度神經網絡需要解決的一個重要問題就是跨域間的結果穩定性。這牽扯到監督數據從何而來的問題。這裏不妨介紹幾個不錯的自動駕駛數據集:

  1. Kitty: 這是當前幾乎SLAM、目標檢測等領域最常用的數據集,包括了多道路場景下多傳感器的數據,同時有比較成熟的標註,主要應用於雙目、光流、目標檢測與跟蹤、SLAM等領域。
  2. CityScapes: 這個數據集在圖像分割領域有着和kitty相似的地位,都是相關領域的不二之選。
  3. Oxford RoboCar數據集(IJRR 2017):這個數據集是牛津花了一年時間在其內部道路上進行了百餘次採集組成的多傳感器(2D、3D lidar,GPS+Inertial,VO等)數據集定位感知數據集。其主要優勢在於對同一地點的近百次經過,提供了各種天氣、各種光照下的數據,可以作爲算法魯棒性的測試數據集。但英國是靠左行駛,也許對一些駕駛決策類任務該數據集不適合國內使用。
  4. ApolloScape(CVPR 2018):百度發佈的對標kitty的數據集,大致看起來與kitty比較類似。
  5. DBNet(CVPR 2018):上交-廈大聯合發佈的一個數據集,與上述不同之處在於這個數據是面向自動駕駛決策而採集的,只有他錄入了行駛過程中對應每一幀圖像和激光下人類司機的動作指令(速度、方向盤角度),其他數據集則必須通過軌跡等進行逆向恢復,可能存在一些誤差。

        同時本文還提到一些基於貝葉斯方法和蒙特卡羅方法的域遷移和域適應,個人不是很感興趣,域適應還得靠GAN。

3.2、端對端規劃

         傳統自動駕駛框架中,感知和規劃控制之間是有明顯界限的,但隨着深度學習、神經網絡的發展,搞圖像的那幫人越搞越膨脹了,經典的目標檢測、跟蹤、語義分割乾的人太多了,一部分人就被擠到規劃控制領域了。這樣的工作這兩年來層出不窮,例如ITSC2017的一篇利用駕駛數據集中駕駛軌跡作爲真值進行端對端軌跡預測的弱監督學習,以及一衆利用採集數據過程中的假設進行自動標籤標註的弱監督學習,背後都有相似的神韻。同時這些原來搞圖像的人還不甘心之搞端對端規劃學習,往往還給學習網絡旁邊掛一些”輔助任務“比如”場景語義分割輔助駕駛行爲預測“,”定位與深度估計輔助導航決策”等。但這種方法通常是一通分析很有道理,一看結果象徵性提高一個點。

        接着談談端對端這種把黑箱進行到底的方法,這種方法在決策問題中也可以稱爲“行爲映射法”(behavior reflect approach),早在1989年就有人用神經網絡開始做了(ALVINN, Autonomous Land Vehicle in a Neural Network)。隨着GPU算力越來越猛,搞圖像的那幫人覺得自己不但可以預測分類這種簡單問題了還可以解決直接給出駕駛行爲預測這樣的問題了。問題是人家真的可以搞出來,NVIDIA 2016年的那件工作幾乎是這些年類似工作的一個縮影,將圖像與控制命令作爲數據餵給模型,然後一通優化居然就真的能用了,不過人家確實也有自己的東西,並不是粗暴只把行駛中正前方的攝像頭的圖像數據扔進網絡,而且還在偏左與偏右方向各設置了一個攝像頭相當於生成一些繞動後的數據並進行反方向標註,這樣等於在工作點附近生成了大量的糾正樣本,這個操作是極重要的。

        同時也有人對端對端這種方法的“黑箱”性質提出了問題,有的人提出要打開黑箱,看看裏面的特徵,比如Bojarski M等人關於卷積神經網絡在駕駛學習中特徵可解釋性的工作。也有人更進一步要打破這個黑箱,又回到感知-規劃分離的框架中,比如肖建雄ICCV-2015的一篇文章就提出要將感知適應自動駕駛需求,利於去學習一些“距離前車距離”、“距離車道中心距離”這樣的一般搞視覺的人不太重視的中間結果,再用這些中間結果去知道自動駕駛系統進行行爲決策。

        對於規劃到哪一個級別這個問題,有人搞的是規劃到“控制層”即速度和方向盤角度,也有人規劃到“決策層”即直行、左右轉之類,也有厲害的兩個都做,比如Xu等人CVPR-2017的一個工作,通過視頻直接分別去學離散的決策和連續的控制,還去做了比較。他們也是之前那個非要給裏面整個語義分割任務輔助預測的,不過看看他們只通過”上一時刻速度“一個特徵就可以估計下一時刻速度到80%的準確率,其他加入的各種結構和特徵感覺都有點沒事找事的感覺。

        不只是傳統的監督學習,一些強化學習和模仿學習的工作也需要依靠端對端方法。例如DAgger這種"專家"手把手教"網絡"的方法,個人認爲這種方法有其獨特之處,是一種有前途的方法。因爲監督學習一般是不會有agent的現場探索過程的,都是離線學習離線測試的,誰也不知道真正拉到路上能不能工作,而強化學習雖然是把”探索“提高到了史無前例的指導地位,但沒人敢把無人車開上馬路讓他自己探索,Deepmind這種在倉庫裏搞幾十個機械臂”真-強化學習“的團隊也不敢在無人車上這麼搞。那麼怎麼樣能讓agent既實現了真實環境探索又不會惹事呢?DAgger這種旁邊坐一個教練的方法還真的是目前最靠譜的。

        不只是在無人駕駛領域,在他的兄弟領域——移動機器人領域這種端對端方法也是常規操作。例如Pffeifer等人ICRA-2017的一篇文章就通過對2D激光雷達用一個CNN去學然後跟目標點信息一個全聯接,直接數據速度、角速度信息,可以實現在室內環境中對移動機器人的”數據驅動導航避障規劃“。

        在搞感知出發的端對端學習過程中必須考慮的一個問題還是域遷移問題,因爲圖像的各種光照、天氣影響是常有的,不如”前車距離“這種信息這麼普適。搞域遷移的方法還是那麼幾種,值得一提的是最近很多人搞的從仿真到真實環境的域遷移問題。如果這種域遷移可以比較高效真實的完成的話,強化學習就有希望從”遊戲“變成真實的控制策略。兩種思路,一種是在仿真環境中進行進行強化學習,在真實環境中應用時需要把真實圖像遷移到仿真環境中,讓機器人在自己適應的域中進行決策。另一種是直接在訓練的時候對仿真環境中採集到的數據進行域遷移,讓訓練環境更加真實。但個人感覺可能效果都不會太好,畢竟”統一場理論“到現在都還完善不了。

 

四、行爲意識運動規劃

        第二章的大部分方法需要對其他交通參與者未來的行爲進行預測,然而當環境擁擠時,預測每一個動態物體的運動是不現實的。因此我們需要一些行爲意識上的方法。例如人類司機在駕駛時通常會通過一些車輛行爲進行個人意識的表達,這在擁堵場景中是比較實用的。

4.1、合作與協同

        我不搞這一方面,可能理解有一些偏差。

        首先在複雜環境下進行溝通與協作是非常有必要的,在一個對他人意圖不確定的環境中進行駕駛的應對方法主要有以下幾條:

  1. 用更好的模型估計運動:這條和沒有一樣,如果有更好的模型就不叫複雜環境了。
  2. 假設所有其他機器人都是可控的:這會讓策略非常激進。
  3. 通過聯合分佈:聯合概率分佈法。

4.2、博弈論方法

        這種方法有一個前提假設即所有的agent都會採用”最優策略“,立足這一假設可以從對方的角度進行推斷,這樣可以很大程度上避免極端情況的產生。

        儘管從博弈論上思考這個問題是一個有趣的方向,但隨着參與博弈的個體增多,問題逐漸變得不有趣了。因爲可以證明這個博弈問題的複雜度會隨着參與者的增加而指數增加,最終變得不能暴力優化。於是一些奇奇怪怪的優化方法就出現了,比如決策樹剪枝之類的方法,即使是圍棋那麼大複雜度的問題AlphaGo的蒙特卡羅搜索都可以解決。

        還有人用”斯坦克爾伯格模型“來對問題進行建模,其核心就是孫子兵法的”知己知彼”思想在自動駕駛(與企業經營)中的應用。

4.3、概率論方法

        研究這些方法的人都很厲害。尤其是概率圖模型之類的解法根本看不懂。

4.4、POMDP模型

        還有一些明白人指出這自動駕駛決策問題其實是一個POMDP問題,即部分觀測馬爾科夫決策過程。同理解決完全的POMDP問題過於複雜了,因此通常將“求解”轉化爲“估計”,畢竟求解Bellman方程很難,估計這種方程是個人都行,估計不準再慢慢優化唄。

4.4、基於學習的方法

        當然學習的方法還是我們關注的焦點,實質上各種方法的一個主要區別在於是“模型驅動”還是“數據驅動”。僅目前從表現來看還是數據驅動更勝一籌,因爲隱含在數據中的模型往往勝過人類找到的描述模型。

        這裏面的做法包括通過學習從經過的軌跡中進行未來駕駛行爲的預測;同時一個新興的方向是通過逆強化學習進行人類示教數據的學習,最終找到一個指導人類駕駛行爲的核心Reward function。

        RSS-2016的一篇文章和我之前的想法和做法很相似,他們直接通過對人遙控小車數據的逆強化學習學得了人類的駕駛行爲,再以此爲baseline學習到了一種“主動式的駕駛交互”,說白了就是學到你怎麼開車之後就可以通過各種操作逼你停車、變道等,是一個有意思的想法。

       這一方面比較有搞頭的一條線大概是IRL->DIRL->GAIL,其中IRL是提出比較早的,但一個很大的侷限性在於它的reward是對手工提取特徵的線性組合,那這個能不能擬合出真實的reward就值得懷疑了。而通過引入深度神經網絡,我們實際上是替換掉了之前的線性映射層,這樣可以通過神經網絡的萬能擬合能力進行reward的學習。有了reward之後怎麼用呢,我們可以再通過正向的強化學習,但這樣幹總覺得中間繞了點彎路,於是有人提出了GAIL的方法,可以從數學上證明GAIL中存在是另一種形式的IRL。需要注意的是IL代表Imitation Learnging而IRL則是Inverse Reinforcement Learning。

 

五/六、安全性與系統框架

        研究興趣不大。

 

七、總結

        根據以上歸納,可以總結出當前自動駕駛領域規劃與決策方面亟待解決的一些問題:

  1. 數據驅動方法,即學習之類的方法能搞的部分被人開發的七七八八了,學界需要下一波的技術創新,至於是Reinforcement Learnig 還是Meta Learing,抑或是真實環境中的在線學習,總之我們需要下一個上升驅動力。
  2. 各種方法的可證明性、安全性、可解釋性的研究亟待提升,現在相當多的工作出現了可以用但不知道爲什麼可以用的現象,這要是有隱藏的暗門bug還是很恐怖的。
  3. 泛化能力。反而是搞圖像的人對這個提的比較多,可能是高強化學習的人已經在泛化能力上無慾無求了。

        同時文章也對未來很有希望的一些領域進行了提點例如:

  1. 在擁擠環境下的社會行爲
  2. 在不確定性環境的安全性問題
  3. 面對極端天氣、極端事件的魯棒性
  4. 學習方法還需要繼續打磨
  5. 證明與安全保證
  6. 體系化的系統而不是隻爲demo而生

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章