對我們許多人來說,學開車這檔子事就像是長大成人的一種儀式,一開始你會緊張兮兮、小心翼翼,開了一陣子後就漸入佳境;你學會查覺箇中細微之處、各項因素怎麼影響著你的前進路線,還有你要如何加以因應。
那麼要是我們將相同的概念用在自動駕駛車上呢?
過去曾是貝爾實驗室的一處辦公室,恰巧也是目前橫掃科技界之深度學習革命旋風發源地的 NVIDIA 紐澤西辦公室裡有一群工程師,決定運用深度學習技術來教自動駕駛車如何駕車。他們使用卷積神經網路(CNN)來學習駕駛車輛所需的整個處理流水線。
這個稱為「DAVE2」的企劃案,是NVIDIA 在九個月前展開之 DAVE(DARPA 自動駕駛車)研究的一部分,目的是為自動駕駛車在公共道路上行駛一事打造一套健全的系統,主要動機是無需以程式寫死如何偵測車道標線、護欄或其它車輛等明確特徵,還有避免寫出近乎無限數量的「如果,然後,或者」陳述句,這在說明路上可能發生的隨機情況時簡直就是不切實際。
二月展開實驗時,研究人員在各種路況、照明和天候條件下行駛以收集訓練資料,在中紐澤西收集大多數路況資料,而路況變數包括雙線道(有或無車道標線)、有車輛停放著的住宅區巷道、隧道,甚至是未鋪設的路面;另外還收集日間和夜間在晴朗、多雲,加上有著霧、雪和雨的天候資料。
在經歷過約三千英哩及72小時的行車時間後,能導航車輛在錐形路標內、有鋪設和未鋪設的路面上,以及在多種天候條件下行駛。
那麼我們的測試車輛是如何通過考驗的?
運用 NVIDIA DevBox 與 Torch 7(一項機器學習函式庫)進行訓練,以及一具 NVIDIA DRIVE PX 自動駕駛車電腦來處理所有資料,NVIDIA 的研究團隊在攝影機拍攝的影片上同時加上時間碼和人類駕駛採用的行車角度,並且不斷將資料投入 CNN。
接著他們在經過訓練的 CNN 實際上路測試前,運用模擬裝置來評估神經網路的運作效能。模擬裝置採用預先在人類駕駛用來收集資料的車輛上所拍攝的影片,產生出接近要是 CNN 接手駕駛車輛時可能會出現的情境影像。
要是經訓練過的 CNN 在模擬裝置中有不錯的表現,便會將 CNN 載入 DRIVE PX 進行道路實測。在反覆調整的情況下,CNN 開始學習自行偵測有用的道路特徵。
車輛很快地便能自己在多種道路上行駛,在花園州高速公路上也是完美演出。有趣的是工程團隊從未明確訓練 CNN 如何偵測道路輪廓,而是它觀察人類的駕駛角度,開始理解車輛如何與道路更貼近的規則。
如需更多詳情,請見 NVIDIA 研究報告《End to End Learning for Self-Driving Cars》一文。