1、第一步,攝像頭采集圖像信息。與人類駕駛員學習駕駛一樣,輔助駕駛系統也需要先認識路牌、道路規則、行人等后再進行判斷。這個時候,汽車的感知系統負責“認識”,探測車輛內外環境,包括駕駛員操作行為、車輛定位、環境可見度、路障等。感知系統由大量傳感器組成,包括攝像頭、激光雷達、毫米波雷達、地圖定位等。目前自動駕駛環境感知的技術路線主要有兩種,一種是使用視覺主導的多傳感器融合方案,另一種則以激光雷達為主導,特斯拉為第一種方案。2014 年特斯拉推出了 Autopilot1.0 版本,當時的主要傳感器是“前置攝像頭”,配備 1 個前置攝像頭、1 個前向毫米波雷達、車身一周 12 個超聲波雷達。視覺主導方案技
2、術比較成熟,成本較低,但攝像頭成像受環境光照的影響較大。2016 年 5 月美國佛羅里達,一輛 Model S 在 Autopilot 開啟狀態下與一輛卡車相撞、車主死亡,主要因為在天氣影響下攝像頭沒有識別出和環境顏色相似的卡車(均為亮白色),導致汽車在速度過快的情況下撞上卡車,因此事后官方調查說明的是“在天空明亮光線的照射之下,自動駕駛功能和駕駛員都未能發現掛車的白色面,因此剎車功能就沒能啟動?!笔鹿屎?,特斯拉將主要傳感器換成毫米波雷達,Autopilot 2.0 的配置為 1 個毫米波雷達、8 個攝像頭(3 個前置、2 個側邊、3 個后置)、12 個超聲波雷達、1個后置倒車雷達。目前,除了
3、 Model 3 增添了一個車內攝像頭以外,特斯拉最新 Autopilot 3.0 版本的配置基本保持不變。第二步,利用“總-分”結構的神經網絡進行深度學習來提取圖像特征。在車輛駕駛環境中,道路情況和駕駛情況相當復雜,攝像頭采集的信息和圖像往往非常龐大,輔助駕駛系統需要同時處理幾十乃至上百的運算任務,為了提高效率并且降低任務處理難度,特斯拉采用 HydraNets 架構的深度學習神經網絡,概括來說,是一個“總-分”結構的神經網絡?!翱偂贝硎紫葘⑦\算任務輸入到一個大型的共享骨干網絡上,總的骨干網絡共有 8 個小網絡,運算任務也將被分成 8 份到各個小網絡中,以降低整體運算難度、提升運算效率?!?/p>
4、分”是每個小網絡單獨訓練和學習那一小部分的圖像和信息、提取有效特征(例如物體外部特征、距離等信息)。第三步,采用 PyTorch 進行分布式訓練。隨著車輛增多、數據提取量提升,簡單收集所有汽車的所有數據是遠遠不夠的,并且任何因素都會導致上傳數據,例如司機急剎車、道路上遇到某樣物體等。過多的數據添加會占用數據集容量。此外,單純的通過真實數據進行邏輯判斷也會隨著數據量提升而產生運算壓力,因此,特斯拉認為“需要縮小數據收集范圍”,除了真實數據以外還需要具備預測能力。特斯拉利用 PyTorch 進行分布式訓練,不斷訓練計算機自主對路徑、外界物體的判斷和規劃能力,畢竟與其人工對每一種駕駛行為進行編碼,并
5、且是否對每一種駕駛行為都進行編碼還有待商榷,還不如訓練算法,讓算法自動的從數據中學習并能判斷這些行為,模仿學習的使用可以很大程度減少工程師投入到路徑規劃上的工作量。備注:PyTorch 是一個開源的 Python 機器學習庫,用于自然語言處理等應用程序,目前被廣泛用于深度學習領域。第四和第五步,模擬結果和實際結果進行評估、對比,對錯誤部分進行修正。特斯拉認為需要縮小數據收集范圍,即并非所有的數據都會被采集,特斯拉通過訓練神經網絡來模仿真實駕駛行為,車輛行駛的時候,后臺神經網絡就開始運行,只有當模擬結果和駕駛員真實操作相違背的時候,相關數據才會被上傳,因為這部分的數據是算法預測錯誤的,也是最有價值的部分。修正神經網絡學習結果并為數據打上標簽,為下次相似操作提供更好的依據,這個模式也被稱為“影子模式”。