儘管Waymo已經在開放道路上積累超過10 Million Miles,Waymo的工程師們仍然發現有層出不窮的新自動駕駛場景待解決。安全
場景一:一個騎自行車的人手中拿着一個Stop Sign標識牌。咱們不知道它什麼時候會舉起標識牌。無人車必須理解這種場景,即便他舉起了Stop Sign標識牌,自動駕駛汽車也不該該停下來。網絡
場景二: 迎面而來的車輛上裝載的塑料管子撒了一地,自動駕駛汽車必須學會應對這種突發狀況,而且避開它們對無人車行駛的影響。機器學習
場景三:因爲道路施工等因素,路面佈滿錐桶。無人車必須正確識別這些場景,在佈滿路面錐桶的場景下實現合理駕駛。工具
場景四:路口綠燈,無人車擁有路權,雖然咱們的無人車先到達路口,但必須爲稍後到達的特種車輛讓行。學習
場景五: 路口綠燈,無人車準備左轉,遇到闖紅燈高速經過的社會車輛,無人車須要識別這種場景,並及時停車避讓違規車輛。測試
Perception、Prediction和Planning模塊是自動駕駛的核心模塊,每一個模塊都存在巨大的挑戰。優化
Perception輸入:傳感器(激光雷達)輸入信息以及場景的先驗信息。網站
Perception輸出:道路交通對象(行人、車輛等),對道路場景的語義分割和理解。設計
Perception自己是一個很是複雜、高難度的問題,它必須可以識別各類形態萬千、不一樣種類的對象。好比下左一圖,一羣穿着恐龍服的行人,感知必須可以正確識別它們。3d
相同的物體在不一樣的時間、不一樣的季節它們的外觀表現也會有很大的差別,這會對Perception帶來巨大挑戰。
各類複雜場景的分割理解難度極高。以下圖左一:一個搬着箱子的人;下圖左三:騎馬的人。Perception必須可以正確的分割識別這些場景,而不會由於遮擋致使出現識別的錯誤。
Perception對檢測到的物體進行下一步行爲的預測,以輔助自動駕駛車輛進行合理的行爲決策。
Perception要考慮物體的歷史行爲,好比車輛不會在短期內實現90度的轉彎,所以咱們能夠假設車輛在短期內仍然按照當前的朝向和速度前進;要對場景有更高語義層面的理解;要可以關注到不一樣對象的屬性差別和視覺線索,好比車輛大機率是會在車道上行駛上,行人會走斑馬線,車輛的朝向可以大機率反應它的意圖,若是行人作出停車的手勢,大機率是要過馬路;要可以解決待預測物體與其它物體的行爲交互。
以下圖所示,路邊有一輛靜止的車輛,騎自行車的人在靠近靜止車輛時,會侵入無人車車道。Perception模塊須要正確理解這些場景,並生成合理的預測曲線。
如何可以準確的預測社會車輛的行爲仍然是一個存在巨大挑戰的開放性問題。
Planning是Decision Making Machine,它基於Perception和Prediction的輸出,規劃車輛的行爲,並輸出Control模塊,控制車輛的加減速、剎車等行爲。
Planning首要考慮的是安全(safe),其次要考慮駕乘的溫馨性(comfortable),再次要可以與其它交通參與者正確交互,最後要保證乘客送達目的地。如何可以知足這些條件實現良好的Planning效果仍然是一個開放性的問題。
Machine Learning是解決自動駕駛長尾問題的一種有效工具。利用Machine Learning技術能夠實現從數據採集、標註、訓練、車端部署的閉環循環流程,從而實現Case的不斷積累,模型的不斷完善。
Waymo使用了Automated Machine Learning技術生成和優化針對無人車的數據模型,極大提高了模型訓練的效率。
機器學習模型不能解決全部的問題,但咱們須要的是一個安全的自動駕駛系統,因此必須有其它措施來補充ML的不足。
首先能夠藉助於冗餘互補的傳感器輔助解決這個問題。車輛同時配備了視覺、Lidar、Radar系統,各個系統彼此獨立,相互補充,以最大限度保證無人車不會缺失任何信息。
其次,咱們能夠採用ML和Non-ML混合系統,利用專家系統來彌補ML的不足。
首先Waymo有龐大的自動駕駛車隊,能夠支撐大規模的測試。
有些場景在實際道路上出現的機率很低,爲了測試驗證這些低頻問題,須要本身構建場景,進行結構化測試。
仿真是一種重要的驗證測試手段,能夠輕量級安全的構造各類各樣的測試場景。
自動駕駛仿真必須可以真實模擬車輛和行人的行爲。這僅僅依靠簡單的規則模型是不夠的,咱們須要更加複雜的模型,Waymo使用一種Mid-2-Mid的Drive Agent機器學習模型,它接收定位、感知等信息,輸出更加擬人化的運動規劃。
Waymo提出的ChauffeurNet將Map、交通規則、道路環境等信息轉化爲圖像信息,從而能夠最大限度的利用比較成熟的機器學習模型,最終輸出Agent的Trajectory。
ChauffeurNet能夠解決大部分簡單場景下的Prediction和Planning問題。
固然ChauffeurNet也有其侷限性,好比如下複雜場景目前還不能很好的處理。
對自動駕駛測試來說,最大的挑戰在於很難收集到全部Corner Case。以下圖所示,是人類駕駛行爲分佈,要通過很是長時間的積累才能獲得一些Corner的駕駛行爲Case。
在自動駕駛網絡的神經網絡模型中,可能有上千萬的參數,若是Corner Case的樣本數量太少,就難以保證網絡模型可以學會這些Corner場景。
在神經網絡模型覆蓋長尾Case前,如何來解決長尾Case呢?專家系統是一個選擇。專家系統融入專業的知識,經過小批量的樣本就能夠得到效果比較好的參數。
好比咱們計劃獲得實現一個軌跡優化機器學習模型,在基於運動控制理論和一系列的約束設計好專家模型以後,經過採集歷史車輛軌跡,咱們就能夠調整參數最小化Cost的方法,使得專家系統的軌跡輸出儘量的逼近人類駕駛軌跡。
軌跡優化專家系統的另外一種模型是Inverse Reinforcement Learning技術,經過歷史駕駛軌跡訓練模型參數,使得它的輸出儘量的逼近預期效果。
以下圖所示,紅色的主車,藍色的是社會車輛。左圖的社會車輛更加保守,右側的社會車輛更加激進。用保守的軌跡訓練出的模型表現就趨於保守,用激進的軌跡訓練出的模型表現就趨於激進。
不論是專家系統,仍是神經網絡,它們都在努力模擬人的駕駛行爲,使Agent變得聰明起來,聰明的Agent能夠輔助自動駕駛技術快速規模化。
我的博客網站地址: http://www.banbeichadexiaojiubei.com