1. 程式人生 > >端到端深度學習在自動駕駛汽車上的應用

端到端深度學習在自動駕駛汽車上的應用

在最近的一款汽車應用產品中,我們用卷積神經網路(CNNs)將車前部攝像頭捕捉到的原始畫素圖對映為汽車的方向操控命令。這種強大的端到端技術意味著,只需要人們提供少量的訓練資料,系統就能自動學會駕駛技術,無論有沒有車道標誌線,無論是在普通公路還是高速公路。這套系統還可以工作在視線不清晰的區域,比如停車場或者崎嶇的道路上。

圖片描述

圖1:行駛中的NVIDIA自動駕駛汽車

我們設計的這套端到端學習系統使用了NVIDIA DevBox,用Torch 7進行訓練。一臺NVIDIA DRIVE PX 自動駕駛汽車計算機用於判斷汽車行駛的方向,工作時它每秒需要處理30幀的資料,同樣使用Torch 7處理。這套系統經過訓練,自動學會了方向操縱指令的表達,比如檢測有效道路的特徵,輸入的訓練訊號僅僅只是人工操控方向盤的角度。我們並沒有直接訓練這個系統來識別道路邊界等特徵。相反的,不同於直接人工將問題拆解,比如拆解成車道標記檢測、線路規劃、車輛控制等子任務,我們的端到端系統同時能優化所有的操縱過程。

我們相信應用端到端的學習方法能取得更好的效果,系統也將變得更小巧。效果更好是因為內部元件自動地對系統全域性效能做了優化,而不只是優化人們選擇的條件標準,比如車道檢查。這類可解釋的標準雖然易於人的理解,但並不能保證系統處於全域性最優狀態。更小巧的系統是因為整個系統學習用最少的處理步驟來解決問題。

卷積神經網路處理視覺資料
DAVE-2系統
資料採集
網路結構
訓練細節
資料選擇
資料補充
模擬
評測
上路測試
CNN模型內部狀態視覺化
總結
參考文獻

  1. Y. LeCun, B. Boser, J. S. Denker, D. Henderson, R. E. Howard, W. Hubbard, and L. D. Jackel. Backprop- agation applied to handwritten zip code recognition. Neural Computation, 1(4):541–551, Winter 1989. URL:
    http://yann.lecun.org/exdb/publis/pdf/lecun-89e.pdf
    .
  1. Alex Krizhevsky, Ilya Sutskever, and Geoffrey E. Hinton. Imagenet classification with deep convolutional neural networks. In F. Pereira, C. J. C. Burges, L. Bottou, and K. Q. Weinberger, editors, Advances in Neural Information Processing Systems 25, pages 1097–1105. Curran Associates, Inc., 2012. URL:
    http://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf
    .
  1. L. D. Jackel, D. Sharman, Stenard C. E., Strom B. I., , and D Zuckert. Optical character recognition for self-service banking. AT&T Technical Journal, 74(1):16–24, 1995.
  1. Net-Scale Technologies, Inc. Autonomous off-road vehicle control using end-to-end learning, July 2004. Final technical report. URL:http://net-scale.com/doc/net-scale-dave-report.pdf.
  1. Dean A. Pomerleau. ALVINN, an autonomous land vehicle in a neural network. Technical report, Carnegie Mellon University, 1989. URL:http://repository.cmu.edu/cgi/viewcontent. cgi?article=2874&context=compsci.
  1. Danwei Wang and Feng Qi. Trajectory planning for a four-wheel-steering vehicle. In Proceedings of the 2001 IEEE International Conference on Robotics & Automation, May 21–26 2001. URL:http://www.ntu.edu.sg/home/edwwang/confpapers/wdwicar01.pdf.

卷積神經網路模型[1]顛覆了計算機模式識別領域[2]。在CNNs被廣泛應用前,大多數的識別任務都是先經過人工特徵提取步驟,然後用分類器判斷。CNNs的重大突破在於它能自動地從訓練樣本中學習特徵。由於卷積運算能夠捕捉影象的二維屬性,CNN方法在影象識別任務上尤其顯得強大。用卷積核掃描整張圖片之後,需要學習的引數比原來大大減少。

儘管CNNs模型已經被商業化使用了二十多年[3],但直到近些年才被大規模地應用,這主要是因為兩項重要的突破。首先,大規模的人工標註資料集很容易獲取,比如ImageNet大規模視覺識別挑戰(ILSVRC)[4],這些資料可以作為訓練集和驗證集。其次,CNN學習演算法現在能夠在大規模並行圖形處理單元(GPUs)上執行,極大地提高了學習效率和預測能力。

我們這裡所講述的CNNs模型不侷限於基本的模式識別。我們開發了一套系統,可以學習自動駕駛汽車的整個工作流程。這個專案的基礎工作十年前在國防高階研究專案機構(Defense Advanced Research Projects Agency,DARPA )的自動化車輛專案中就已經完成,這個專案被稱為DAVE[5],此專案中一輛微縮的遙控車行駛通過擺放了障礙物的小路。DAVE使用在了類似環境下采集的若干個小時的人工駕駛資料進行訓練,但環境並不完全相同。訓練資料包括兩臺攝像機採集的視訊資料和人操控方向的命令。

在許多方面,DAVE的靈感都來自於Pomerleau開創性的工作[6],Pomerleau在1989年用神經網路搭建了一套自動駕駛系統(Autonomous Land Vehicle in a Neural Network,ALVINN)。ALVINN是DAVE的先驅產品,它首次證實了端到端訓練的神經網路模型終將在某一天能夠操控汽車行駛在公路上。DAVE展示了端到端的學習潛能,而且它還用來證明DARPA Learning Applied to Ground Robots 專案的啟動,但是DAVE的效能不足夠可靠,在非公路環境下不能完全替代多模組方式的駕駛。(在複雜環境下,DAVE在碰撞之間的平均距離約有20米。)

大約在一年之前我們開始重新著力於提升原始版DAVE的效能,構建一套能夠在公路上駕駛的強健系統。這項工作的初始動機是為了避免識別特定的人工設計特徵標誌,比如車道標記、隔離護欄和其它車輛,也避免基於這些觀察到的特徵指定一套“如果……那麼……否則……”的規則系統。我們很高興能夠分享這一新的努力的初步結果,即DAVE-2。

圖2展示了DAVE-2系統的訓練資料採集模組的塊狀示意圖。資料採集車的擋風玻璃後面固定了三臺攝像機,在攝像機採集視訊資料的同時,此係統也記錄駕駛員操控方向盤的偏轉角度。方向控制命令是從汽車的控制網路(Controller Area Network,CAN)匯流排獲取。為了使我們的系統能夠獨立於汽車的幾何尺寸,我們用1/r來表示方向控制命令,其中r是以米為單位的轉彎半徑。我們使用1/r而不是r的目的是防止在直線行駛時出現奇點(直線行駛的轉彎半徑無限大)。左轉彎的1/r值為負數,右轉彎的值為正數。

圖片描述

圖2:資料採集系統的結構圖。

訓練資料包括從視訊中取樣得到的單幀視訊,以及對應的方向控制命令(1/r)。只用駕駛員操作的資料訓練遠遠不夠;網路模型還需要學習如何糾正錯誤的操作,否則汽車就會慢慢偏離公路了。於是,訓練資料額外補充了大量影象,包括汽車從車道中心的各種偏移和轉彎。

兩個特定的偏離中心的影象可以從左和右兩臺相機得到。攝像機之間的其它偏離以及所有的旋轉都靠臨近攝像機的視角變換來模擬。精確的視角轉換需要具備3D場景的知識,而我們卻不具備這些知識,因此我們假設所有低於地平線的點都在地平面上,所有地平線以上的點都在無限遠處,以此來近似地估計視角變換。在平坦的地區這種方法沒問題,但是對於更完整的渲染,會造成地面上物體的扭曲,比如汽車、樹木和建築等。幸運的是這些扭曲對網路模型訓練並無大礙。方向控制會根據變換後的影象迅速得到修正,使得汽車能在兩秒之內回到正確的位置和方向。

圖3是我們的訓練系統。影象輸入到CNN網路計算方向控制命令。預測的方向控制命令與理想的控制命令相比較,然後調整CNN模型的權值使得預測值儘可能接近理想值。權值調整是由機器學習庫Torch 7的後向傳播演算法完成。

圖片描述

圖3:訓練神經網路模型

訓練完成後,模型可以用中心的單個攝像機資料生成方向控制命令。圖4顯示了這個過程。

圖片描述

圖4:訓練得到的模型可以用正前方的單個攝像機的資料生成方向控制命令。

訓練資料是在各種路段和不同燈光和天氣條件下采集得到的。我們在新澤西州中部採集街道路面資料,在伊利諾伊、密歇根、賓夕法尼亞和紐約州採集高速公路的資料。其它道路類別包括兩車道道路(有車道標誌或者沒有標誌),路邊有車停放的居民區道路,隧道和不平整道路。採集資料時的天氣狀況有晴天、多雲、霧天、雪天和雨天,白天和晚上都有。在某些情況下,太陽接近地平線,導致有路面反射的光線和擋風玻璃的散射。

我們採集資料的車輛是2016款 Lincoln MKZ,或者2013款Ford Focus,後者攝像頭的安放位置與前者相似。我們的系統不依賴與任何的汽車製造商或是型號。我們要求駕駛員儘可能地集中注意力。截止2016年3月28日,共採集了72小時的行駛資料。

我們訓練網路的權重值,使得網路模型輸出的方向控制命令與人工駕駛或者調整後的控制命令的均方誤差最小。圖5是網路的結構圖,一共包括九層,包括一個歸一化層,五個卷積層和三個全連線層。輸入影象被對映到YUV平面,然後傳入網路。

圖片描述

圖5:CNN結構。這個網路有大約2700萬個連線和25萬個引數。

網路的第一層對輸入影象做歸一化。歸一化層是硬編碼的,在學習過程中不會變化。在網路模型中進行歸一化可以使得歸一化過程根據網路結構調整,而且能用GPU加速處理過程。

卷積層是用來提取特徵的,它是根據一些列引數實驗的結果憑經驗選擇的。然後我們對前三個卷積層使用了strided卷積,其中stride是2x2,卷積核是5x5,後兩層選用了unstrided卷積,卷積核是3x3。

在五層卷積之後又接了三個全連線層,最後輸出一個控制數字,即轉彎半徑的倒數。全連線層的設計意圖是作為方向控制器,但是我們發現用端到端的方式訓練系統,網路模型的特徵提取器和控制器這兩部分很難明確地區分開來。

訓練神經網路的第一步就是選擇使用視訊的哪些幀。我們採集的資料標記了道路型別、天氣條件、駕駛員行為(保持車道行駛、更換車道、轉彎等等)等標籤。用CNN訓練保持車道的行駛,我們就只挑選駕駛員保持同一車道行駛的資料,拋棄剩餘部分。然後我們以10FPS對視訊降取樣,因為用高取樣率得到的影象相似度非常高,並不能帶來很多有用的資訊。為了消除直線行駛的偏置,很大一部分訓練影象包含了有弧度的道路。

選定最終的影象集之後,我們人工添加了一些偏移和旋轉來補充資料,教會網路如何修復較差的姿勢和視角。調整的幅度按照正態分佈隨機選取。分佈的均值為零,標準差是駕駛員操作資料的標準差的兩倍。人工補充的資料隨著幅度的增加確實會引入一些不理想的因素(正如我們之前提到的)。

在上路測試訓練得到的CNN之前,我們首先模擬測試網路的效能。圖6是簡化的模擬系統,圖7是互動式模擬器的介面截圖。

圖片描述

圖6:駕駛模擬器的示意圖。

模擬器採用預先用資料採集車的前置攝像機錄製的視訊資料,然後根據影象用CNN模型預測操控命令。這些錄製視訊的時間軸與駕駛員操控命令的時間軸保持一致。

由於駕駛員不總是將車輛保持在車道的中心,我們必須人工校準車道的中心,因為它與模擬器所採用的視訊的每一幀都關聯。我們把這個姿態稱為“對照資料”。

模擬器對原始影象做了變形來模仿車輛偏離對照姿態。請注意,這種變形也包括了駕駛員行駛路徑與對照資料之間的任何差異。影象變形的方法在前幾節已經介紹過了。

模擬器讀取儲存的測試視訊,以及與拍攝視訊同步記錄的方向控制命令。該模擬器傳送所選擇的測試視訊的第一幀,針對任何偏離對照資料的情況做修正,然後輸入到訓練好的CNN模型,模型輸出一條操控指令。模型輸出的命令與儲存的駕駛員操控命令一起被送入車輛的動態模型,更新模擬車輛的位置和方向。

圖片描述

圖7:模擬器互動模式的截圖。右側是操縱效能的文字描述評價。左側綠色區域是由於視角變換導致的不可見區域。地平線下方明亮的矩形區域就是傳入CNN模型的影象。

接著,模擬器調整測試視訊的下一幀影象,使得所呈現的影象如同是CNN模型輸出的操縱命令所控制的結果。新的影象又被傳回CNN模型,重複處理過程。

模擬器記錄車輛偏離距離(車輛偏離車道中心的距離),偏航角度和模擬車輛的行駛距離。當偏離中心的距離超過一米時,就會觸發虛擬人的干預,模擬車輛的位置和方向就會重置成原視訊對應幀的對照資料。

我們分兩步來評測我們的網路模型:首先是模擬測試,接著是上路測試。

在模擬階段,我們使用了在新澤西州蒙茅斯縣錄製的視訊資料,總共大約持續三個小時,行駛了100英里。測試資料在各種燈光和天氣條件下采集,包括了高速公路、普通公路和居民區道路。

我們通過計算虛擬人干預車輛行駛的次數來估計網路模型能夠自動駕駛汽車的時間段佔比。我們假設在現實情況下發生一次人工干預需要六秒:這個時間包括駕駛員接管操縱車輛、糾正車輛位置、重新進入自動駕駛模式。我們是這樣計算自動駕駛比例的,把人工干預的次數乘以六秒,除以總的模擬時間,然後與1相減:

圖片描述

因此,如果觸發了100次干預耗時600秒,自動駕駛的比例為

圖片描述

當網路模型訓練得到較好的效能之後,我們把它載入到測試車輛的DRIVE PX上,進行上路測試。我們用車輛自動駕駛的時間比例來衡量效能。這個時間不包括變換車道和轉彎。以我們位於霍姆德爾的辦公室到大西洋高地的一趟普通行程為例,大約有98%的時間保持自動駕駛。我們也在花園州際公路(一條有坡度的多車道高速公路)上完成了10英里的自動駕駛。

圖8和圖9分別展示了兩張不同輸入圖片在前兩層網路的啟用狀態,分別是在土路上和森林裡。在土路的例子中,特徵圖片清晰地勾畫出路的邊界,而在森林的例子中夾雜了大量噪音,CNN模型從圖中找不到有用的資訊

這表明CNN自動學會了識別有用的道路特徵,只提供人工操控方向的角度作為訓練訊號。我們從未直接訓練模型來識別道路邊界。

圖片描述

圖8:CNN模型眼中的土路。上方:由攝像機輸入CNN模型的影象。左下:第一層特徵對映的啟用狀態。右下:第二層特徵對映的啟用狀態。

圖片描述

圖9:沒有路的圖片示例。前兩層特徵對映幾乎都是噪聲,CNN模型無法從圖片中識別出有用的特徵。

我們的經驗表明,神經網路能學習完整的保持車道駕駛的任務,而不需要人工將任務分解為道路和車道檢測、語義抽象、道路規劃和控制。從不到一百小時的少量訓練資料就足以訓練在各種條件下操控車輛,比如在高速公路、普通公路和居民區道路,以及晴天、多雲和雨天等天氣狀況。CNN模型可以從非常稀疏的訓練訊號(只有方向控制命令)中學到有意義的道路特徵。

例如,系統不需要標註資料就學會了識別道路邊界。

還需要做大量工作來提升網路模型的健壯性,尋找驗證系統健壯性的方法,以及提升網路內部狀態視覺化的程度。

相關推薦

深度學習自動駕駛汽車應用

在最近的一款汽車應用產品中,我們用卷積神經網路(CNNs)將車前部攝像頭捕捉到的原始畫素圖對映為汽車的方向操控命令。這種強大的端到端技術意味著,只需要人們提供少量的訓練資料,系統就能自動學會駕駛技術,無論有沒有車道標誌線,無論是在普通公路還是高速公路。這套系統還可以工作在視線不清晰的區域,比如停車場或者崎

Velodyne Lidar專家將在IDTechEx探討自動駕駛汽車的感知突破

首席技術官Anand Gopalan和機械工程總監Stephen Nestinger將探討鐳射雷達在推動真正自主駕駛方面的作用   加州聖何塞--(美國商業資訊)--全球最大的新興技術盛會IDTechEx Show!將帶來來自Velodyne Lidar, Inc.的兩位資深專

手機開發深度學習應用

第一步模型壓縮 將深度學習模型應用到手機、嵌入式裝置,我們應該減少模型記憶體封裝,減少推斷時間和減少能源使用。有許多方式解決這些問題,例如量子化,權重簡直或者distilling 大模型到小模型. 本文使用在Tensorflow中的量子化工具壓縮模型。縮減到

強化學習AI,20分鐘可學會開自動駕駛汽車

本文由人工智慧觀察編譯譯者:Sandy據外媒報道,來自英國的一組研究人員在短短20分鐘之內就教會

深度強化學習及其在自動駕駛中的應用: DRL&ADS系列之(2): 深度強化學習DQN原理

專欄系列文章規劃 上一篇文章《DRL&ADS系列之(1): 強化學習概述》已經講解了利用神經網路近似值函式的方法,即: V̂ (s,w)≈Vπ(s)q̂ (s,a,w)≈qπ(s,a)(1)(1)V^(s,w)≈Vπ(s)q^(s,a,w)≈

Android實現深度學習

這裡截取了本人畢業設計關於移動端實現深度學習的章節。本章節將詳細介紹如何實現移動端呼叫深度學習模型進行使用,簡單來說就是兩個步驟,生成可供呼叫的模型和呼叫模型。這裡我們用到的人臉檢測模型為第三章節訓練出來的mAP最高的模型。 4.1 固定模型 為了使a

記錄:簡介 深度學習自動駕駛中的應用

自動駕駛 · 級別分類 SAE 5層 * L0:無自動化,完全由人類駕駛者完成操作。 * L1:駕駛支援:通過駕駛環境對方向盤和加減速中的一項操作提供駕駛支援,其他的駕駛動作都由人類駕駛員進行操作

TensorFlow-實戰Google深度學習框架 筆記(

當我 日誌 不一定 rain 如何 validate .config 存儲 構建 TensorFlow TensorFlow 是一種采用數據流圖(data flow graphs),用於數值計算的開源軟件庫。在 Tensorflow 中,所有不同的變量和運算都是儲存在計算圖

Win10深度學習環境配置(篇):python3 + curl + pip + Jupyter notebook

好記性不如爛筆頭,純粹為自己的學習生活記錄點什麼! 本次記錄win10下安裝python3+curl+pip+jupyter,以及修改右鍵快捷開啟cmd 對於大多數的學習者,還是習慣選擇在ubuntu系統上學習深度學習,主要還是因為絕大多數演算法實現都是ubunt

Waymo獲得加州首個完全自動駕駛汽車許可證

Waymo已獲得加利福尼亞州機動車輛部(DMV)的自動駕駛測試許可證,這是第一家獲得許可的公司,允許公司在加州公路上測試其Chrysler Pacifica自動駕駛小型貨車。 Waymo表示,由40輛全自動駕駛汽車組成的車隊將徹夜在城市街道,鄉村道路和高速公路上行駛,最初在山景城,桑尼維爾

百度和福特宣佈為期兩年的合作,在中國測試自動駕駛汽車

百度和福特汽車公司今天宣佈啟動為期兩年的聯合自動駕駛汽車測試專案,兩家公司將進一步推動該專案的開發,並在中國進行自動駕駛汽車道路試驗。 此次合作與福特進一步推進和推廣自動駕駛汽車技術的計劃保持一致,支援公司設計智慧汽車的願景。 “與百度等領先的技術合作夥伴合作,使我們能夠利用中國的新機

11月7日科技聯播:騰訊在美國招自動駕駛汽車工程師;馬化騰表示將推VR版微信

騰訊無人車開進矽谷,在美組建團隊招聘人才;馬化騰出席烏鎮網際網路大會,表示將推出VR版微信;微軟虛擬助手不及siri和Alexa,智慧助理副總裁宣佈辭職;特斯拉競爭對手推出氫動力卡車;巨頭反壟斷案新進展,法院判高通必須給對手技術授權,一起來看今天的科技快訊: 騰訊在美國招自動駕駛汽車工程師:至少9類工程崗位

自動駕駛汽車與智慧機器人比較

自動駕駛是目前比較火的方向,我自己也是做智慧機器人運動控制的,這裡在這裡將兩者比較下,可能也沒什麼可比性。 一:感知 自動駕駛感測器包括: 1. 車身運動狀態感測器:速度感測器,角度感測器,慣性導航,全球定位系統 2. 環境感知感測器: 鐳射雷達,超聲波,攝像頭,毫米波雷達,V2X

Uber申請恢復路測自動駕駛汽車:前排將有兩名司機

“90後”女大學生放棄北大保送復旦!她到底有多厲害?  東北網12月6日訊(記者 姜姍姍) 在東北農業大學有這樣一個自強不息的女大學生,她放棄北大直博被保送到復旦大學藥學院。她本科期間獲得國家獎學金、國家勵志獎學金、新東方自強獎學金、第一屆全國大學生生命聯賽國家二等獎……被評為黑龍江省“三好學生”。她就是生命

TactileMobility使用“觸覺感知”方案,為自動駕駛汽車實時提供路況資訊

Tactile Mobility(以前的MobiWize)是一家位於以色列海法的創業公司,成立於2012年,開發了一種稱為“觸覺感知”的解決方案。通過收集非可視資料,如車輪速度,車輪角度,轉速,槳位和齒輪定位和執行復雜的分析,它能夠實時生成可操作的見解。 該公司今天公佈

深度學習之在iOS執行CNN

1 引言 作為曾經的iOS開發者,在研究深度學習的時候,總有一個想法就是在iPhone上執行深度學習,不管是在手機上訓練還是利用訓練好的資料進行測試。 因為iOS的開發環境支援C++,因此,只要你的程式碼是C/C++,本質上就可以在iOS上執行。 怎麼才能

基於ROS的Most Stars開原始碼彙總(自動駕駛汽車+RGBDSLAMv2+ROS2+人識別與跟蹤等)

Star 200+ https://github.com/CPFL/Autoware Autoware 用於城市自主駕駛的整合開源軟體,由第四層維護。支援以下功能: 3D本地化 3D對映 路徑規劃 路徑跟隨 加速/制動/轉向控制 資料記錄 汽車

Waymo在美國推出自動駕駛汽車共享服務

經過數月的測試和數百萬英里的無人駕駛汽車技術開發,Waymo 正式在美國推出了具有商業性質的自動駕駛汽車的共享服務。 該公司的 Waymo One 專案將為客戶提供 24 小時自動駕駛汽車服務。最初,這項服務將僅限於菲尼克斯周邊城市,包括坦佩 (Tempe)、梅薩

深度學習在推薦系統應用

深度學習最近大紅大紫,深度學習的爆發使得人工智慧進一步發展,阿里、騰訊、百度先後建立了自己的AI

自動駕駛汽車懂得倫理道德嗎?

汽車製造商會告訴自動駕駛汽車什麼是倫理道德嗎? 在一場車禍中,自動駕駛汽車能決定什麼人被救、什麼人應該受傷嗎? 美國運輸安全高價官員對此表示懷疑,他們更相信聯邦政府的規定。 自動駕駛的快速進步帶來了憂慮,人們擔心未來的汽車將不得不做出道德選擇,比如,為了防