天天看點

深度學習技術在自動駕駛中的應用與挑戰

導讀:深度學習技術經過近幾年井噴式的發展,在很多領域都得到了廣泛的應用。在自動駕駛系統中,深度學習技術也起到了至關重要的作用,同時也面臨着非常多的挑戰。我們一直在探索,在一個安全、穩定的自動駕駛産品中,深度學習技術應該有着怎樣的作用邊界,又如何能最好地發揮其優勢。本次分享的主題為深度學習技術在自動駕駛中的應用與挑戰,主要包括:

深度學習技術

端到端:從感覺到控制

深度學習的特點

應用政策

01 深度學習技術

深度學習技術在自動駕駛中的應用與挑戰

深度學習技術在2012年開始爆發,由AlexNet在ImageNet資料集上達到了一個很高的分類準确率,橫掃各種CV、NLP任務,在強化學習領域也大展身手,尤其擅長玩遊戲,比如deepmind最近在研究打星際争霸。右邊是各種網絡圖,大家可以參考文末的連結。

02 端到端:從感覺到控制

深度學習技術在自動駕駛中的應用與挑戰

16年的時候,英偉達研究了end to end神經網絡,左側輸入左中右三個Camera的image,直接通過CNN輸出轉向的指令。如demo截圖中,測試人員把手伸出了天窗,表示他沒有操控車輛,然後車輛自動實作轉向。不過這種方式存在2個隐患:

① 因為是end to end 如果出現問題,完全不知道是哪裡出了問題,很難去校正模型。

② 對于轉向這個指令,需要考慮的因素非常多,一些微小的場景變化就會引發不同的轉向指令(如路上多了一個石塊),是以,必須覆寫到所有的情況,才可以把這個模型訓練的非常好,這需要海量的資料。

03 深度學習的特點

優勢:

自主挖掘資料中存在的特征和模式,大幅降低人工特征工程的需求

對于定義清晰的問題,有較強的可擴充性(加資料或資料增強)

局限性:

可解釋性差,可能會“放飛自我”,不太可控

算力要求較高

04 應用政策

在要求很高穩定性和安全性的自動駕駛應用中,如何發揮深度學習的優勢,以及規避深度學習的弱點,我們總結了幾點應用政策,這裡和大家分享下:

1. 盡量應用于定義清晰的基本任務

深度學習技術在自動駕駛中的應用與挑戰

基本任務,是指隻需要回答“是什麼”或者“在哪”的任務。定義清晰,是指有明确的目标或者監督資訊,在強化學習語境中,就是有明确的reward function。如CV中的目标檢測、圖像分割等。下面分享下應用執行個體:

① 圖像中的車道檢測

深度學習技術在自動駕駛中的應用與挑戰

Demo

點選原文

檢視

Demo是我們用分割模型做的Ego lane drivable area segmentation;上圖右側是我們做的instance level lane marker segmentation,網絡結構如圖所示,它是一個encoder decoder based,然後做一個segmentation branch和一個embedding branch,最後将2個結果合起來。

② 圖像中的障礙物檢測

深度學習技術在自動駕駛中的應用與挑戰

上圖是一些比較有挑戰的場景:擁擠的路況、遠處的障礙物、雨天、穿過高架橋等。障礙物檢測比較成熟,這裡不再細講,常用的算法有:

Anchor based:YOLO v1,v2,v3/SSD/Faster RCNN

Anchor free:Centernet/FoveaBox

2. 多方法融合,彌補單一模型錯誤,覆寫長尾場景

深度學習技術在自動駕駛中的應用與挑戰

在實際應用中,目标檢測模型難免會産生誤檢和漏檢,如左圖中的皮卡和卡車很明顯就被漏掉了。另外,對于訓練集少見或沒見過的特殊場景,深度神經網絡往往無能為力,一旦出現這種情況,往往非常危險。對應的,我們的思路是:

① 結合其他任務模型,輔助降低漏檢率

深度學習技術在自動駕駛中的應用與挑戰

比如,有另外的一個模型可以識别出可行駛區域(也就是路,除了路以外的都是障礙物),再加上我們的目标檢測,就可以對之前的案例進行彌補,如上圖所示。

② 結合其他傳感器,多傳感器融合

深度學習技術在自動駕駛中的應用與挑戰

另一種更常用,更安全的方法就是雷射雷達,進行多傳感器融合,如将雷射雷達投影到image,可以很輕松的模組化出可行駛的道路和障礙物。

3. 拆分任務,增加模型的可解釋性和可控性

深度學習技術在自動駕駛中的應用與挑戰

将end2end模型任務拆分成更加基本定義、更加清晰的多階段子任務,增加整體任務的可解釋性,減輕模型的學習負擔。同時也更加友善地利用其他算法和規則對深度學習模型的輸出結果做限制,防止其“放飛自我”。

① 自車行駛路徑參考線:

深度學習技術在自動駕駛中的應用與挑戰

我們在做Planning時,我們需要做一個自己車本身軌迹的參考線,以其為參考生成最終的軌迹,并且做一些速度的規劃。如果我們沒有高精地圖,我們可能會采用E2E approach的方法,感覺到一張圖檔之後利用deep CNN直接生成參考軌迹(如上圖最右側),這樣單獨的參考線通常是不能用的。是以我們需要把任務進行拆解。

深度學習技術在自動駕駛中的應用與挑戰

拆解:

  • 車道識别+車輛跟蹤:先識别車道再識别車
  • 利用車道與車輛資訊拟合路徑:把車道和車放入場景中,再利用車的朝向、軌迹、速度分布以及車道線的幾何形狀拟合出最終的路徑參考線。

這是一個更可控的方案。

② 其他車輛軌迹預測

深度學習技術在自動駕駛中的應用與挑戰

在學術界有一些E2E approach的方法,利用深度學習模型直接預測車輛軌迹,從過去的軌迹直接預測出未來的軌迹。

深度學習技術在自動駕駛中的應用與挑戰

我們認為更好的方式,還是進行拆分:

  • 意圖預測(橫向、縱向),利用RNN、CNN先做一些意圖預測(左轉、右轉或者直行),縱向就是勻速、加速或者減速,做這種簡單的意圖分類,将這個問題的次元縮小。
  • 然後,利用車輛(如動力學)模型、車道資訊生成平滑預測軌迹。

最後,我們還在和機器一起學習成長。今天的分享就到這裡,謝謝大家。

05 參考資料

  1. https://deepmind.com/blog/article/alphastar-mastering-real-time-strategy-game-starcraft-ii
  2. https://en.wikipedia.org/wiki/Deep_learning
  3. http://ml.world/2016/09/neural-network-zoo/
  4. End to End Learning for Self-Driving Cars
  5. Towards End-to-End Lane Detection: an Instance Segmentation Approach
  6. An Empirical Evaluation of Generic Convolutional and Recurrent Networks for Sequence Modeling

轉載自公衆号: DataFunTalk

阿裡巴巴開源大資料技術團隊成立Apache Spark中國技術社群,定期推送精彩案例,技術專家直播,問答區近萬人Spark技術同學線上提問答疑,隻為營造純粹的Spark氛圍,歡迎釘釘掃碼加入!

深度學習技術在自動駕駛中的應用與挑戰

對開源大資料和感興趣的同學可以加小編微信(下圖二維碼,備注“進群”)進入技術交流微信群。

深度學習技術在自動駕駛中的應用與挑戰

繼續閱讀