Google 自動駕駛/無人駕駛車用到哪些演算法?

&>&> 本問題已加入 人工智慧 · 自動駕駛 圓桌中,歡迎關注圓桌參與更多討論 &<&<


谷歌的無人駕駛汽車項目已經從谷歌分離出來成為 Alphabet 的子公司 Waymo 了,不過成果基本上還是作為谷歌無人車的時候實現的。我們可以先看一下無人車的這兩種車型。

這是原型車(prototype vehicle)

這是 Chrysler Pacifica Hybrid,谷歌之前用的是 Lexus RX450h SUV


無人駕駛車是一個複雜的軟硬體系統,它涉及到的技術和方法不是能簡單概括的,很多內容不作為內部的技術人員很難準確的知道和理解的。不過,谷歌和 Waymo 開放了許多資料和視頻,我們還是能從中得知他們團隊對無人車的思考以及使用或可能使用的技術。

谷歌的無人車使用了三種主要的感測器 :攝像頭(cameras),激光雷達(lidars)和 測距雷達(radars) 。激光雷達(lidars)就是那種很貴的,價格可高達幾十萬,能夠用來形成周圍物體的三維特徵。測距雷達(radars)與普通汽車上的倒車雷達類似,用來探測前面的車的距離和車速。

激光雷達圖像

那麼我就從我查到的資料來簡單的舉一些典型或者有意思的例子來說明谷歌設計無人車時的思路和方法:

1. 為無人車建立專屬地圖(BUILDING MAPS FOR A SELF-DRIVING CAR - report0316)

谷歌會為他的無人車建造地圖,和我們使用的谷歌地圖或者高德地圖的 app 不同,無人車使用的地圖會包含更多的信息,如路緣的高度,十字路口的寬度,交通標誌、紅綠燈的高度和準確位置等信息。

這些地圖信息不是無人車在行駛的過程中自己生成的,當谷歌的無人車將要進入一個新的環境測試的時候,他們會開著自己的無人車用車上的激光雷達收集周圍環境的三維數據,之後會對這些數據進行標定和分類,比如道路線的狀態,路燈高度,路邊的消防栓等。

這麼做的好處是無人車在真正上路的時候能夠知道自己在什麼樣的位置時會遇到什麼東西,也能更專註於處理移動的目標,比如行駛的車輛和行人等,還有本不該出現的障礙物等,還可以減少路面永久性(這裡的永久指長時間不會改變)的物體對無人車真正上路進行識別定位其它車輛、行人、障礙物時的干擾。

2. 鳴笛演算法(Honking Algorithms - report 0516)

谷歌的無人車還被設計了鳴笛演算法以提醒其他司機注意自己的存在,比如當一輛車突然轉向進入它的車道時。雖然被鳴笛提醒往往是一種不好的體驗,不過谷歌希望它的無人車的鳴笛演算法是禮貌且細心周到的,並且只在鳴笛能夠讓大家更安全的情況下進行。

谷歌會教無人車區分真正需要鳴笛的情景和看起來需要但是並不需要的情景,比如車在掉頭的時候你需要等待而不是鳴笛,但是車跑在了錯誤的車道時候你可能就需要鳴笛提醒。在進行鳴笛演算法測試的時候,谷歌會讓測試駕駛員記錄無人車每一次鳴笛的情況以幫助工程師優化演算法。

3. 谷歌無人車的三點掉頭(THE THREE-POINT TURN)

谷歌希望無人車能夠給人提供到位的服務,你出家門就可以坐到車它能夠把你直接送到公司門口或者衚衕里聚會的小酒吧門口。所以三點掉頭是無人車必須要掌握的技能。

三點掉頭指的是從馬路的最右側做迴轉,當接觸到最左側的路沿時做後退動作,同時在後退時繼續將車頭進行調整,最後換成前進檔,繼續完成掉頭動作。人在進行三點掉頭的時候會使車子向前向後多次移動來觀察整個路況然後調整角度和距離來掉頭,不過無人車有360度的視角,能夠計算出最短或最快路徑,如下圖的紫色和綠色的細線(圖中紫色的方塊是障礙物)。不過無人車並沒有這麼做,為了讓車上的乘客感覺起來更舒適,谷歌選擇教無人車模仿人掉頭的方式,如下圖中寬的車道。

4. 試圖理解其他移動物體的目的(Understanding other Vehicles』 intention)

谷歌的無人車會根據其他的車或行人已經作出的一些行為或指示來預測這個車將要做什麼,比如下圖中無人車依據右前方的這個車的一些微小的位移等預測它將要變道到自己的車道上來,於是無人車減速配合其順利變道。

又比如下面這張圖片中,無人車探測到在它前方的自行車手(紅色方框標出)的手勢可能是要到馬路對面去,於是減速留出足夠的空間讓自行車順利通過。

以上的內容希望能對大家理解谷歌的無人車有所幫助。無人車要應對的場景繁多且複雜,有一些可以寫成固定的演算法,比如三點掉頭的方法,面對信號燈或交通標誌的行為;還有一些從未遇到的場景可能就需要像上面那樣試圖預測移動物體的下一步行為,比如一隻過馬路的狗狗。

谷歌在它的無人車月度報告中多次使用了【taught】這個詞,幾乎可以肯定很多重要的演算法都是基於深度學習的。最後大家可以看這一段來自 Waymo 官網的視頻,感受一下這些演算法在實際中的應用 &>&>&> Navigating city streets


參考資料及所有圖片來源:

  • Waymo 官網
  • Waymo Medium Blog
  • Google Self-Driving Car Project Monthly Report

感謝 Udacity 學生 @楊培文 投稿,歡迎進行交流討論~


谷歌具體的演算法不知道,文獻資料太少,大家都知道是深度學習或人工智慧,但是具體是什麼怎麼做的大體原理還是不知道,不過百度的倒是了解一些,百度在一個專利裡面提到一嘴,說是通過,支持向量機和神經網路組合的一個決策系統。我個人的理解是通過向量機分場景,通過神經網路進行決策行為或控制,個人理解不一定準確,放出來的資料和文獻太少。


Deep Learning and some high Tech。


我頂一下,我也想知道。估計用了bayesian 網路吧


推薦閱讀:

如何看待谷歌在2017年IO大會上以小米和三星為例演示桌面圖標不匹配問題?
如何看待特斯拉自動駕駛的第一起命案?
谷歌收購了 Boston Dynamics,該公司的機器人在業界屬於什麼水平?
在移動設備上「搜索」的重要性和 PC 互聯網一樣高嗎?如果不是,為什麼?
為什麼只是稍微 Google 搜索了幾次美帝藤校,隔天就有留學機構的諮詢電話?

TAG:演算法 | 谷歌Google | 自動駕駛 | 無人駕駛車 | waymo |