在最近的一款汽車應(yīng)用產(chǎn)品中,我們用卷積神經(jīng)網(wǎng)絡(luò)(CNNs)將車前部攝像頭捕捉到的原始像素圖映射為汽車的方向操控命令。這種強(qiáng)大的端到端技術(shù)意味著,只需要人們提供少量的訓(xùn)練數(shù)據(jù),系統(tǒng)就能自動(dòng)學(xué)會(huì)駕駛技術(shù),無(wú)論有沒(méi)有車道標(biāo)志線,無(wú)論是在普通公路還是高速公路。這套系統(tǒng)還可以工作在視線不清晰的區(qū)域,比如停車場(chǎng)或者崎嶇的道路上。
圖1 行駛中的NVIDIA自動(dòng)駕駛汽車
我們?cè)O(shè)計(jì)的這套端到端學(xué)習(xí)系統(tǒng)使用了NVIDIA DevBox,用Torch 7進(jìn)行訓(xùn)練。一臺(tái) NVIDIA DRIVE PX 自動(dòng)駕駛汽車計(jì)算機(jī)用于判斷汽車行駛的方向,工作時(shí)它每秒需要處理30幀的數(shù)據(jù),同樣使用Torch 7處理。這套系統(tǒng)經(jīng)過(guò)訓(xùn)練,自動(dòng)學(xué)會(huì)了方向操縱指令的表達(dá),比如檢測(cè)有效道路的特征,輸入的訓(xùn)練信號(hào)僅僅只是人工操控方向盤的角度。我們并沒(méi)有直接訓(xùn)練這個(gè)系統(tǒng)來(lái)識(shí)別道路邊界等特征。相反的,不同于直接人工將問(wèn)題拆解,比如拆解成車道標(biāo)記檢測(cè)、線路規(guī)劃、車輛控制等子任務(wù),我們的端到端系統(tǒng)同時(shí)能優(yōu)化所有的操縱過(guò)程。
我們相信應(yīng)用端到端的學(xué)習(xí)方法能取得更好的效果,系統(tǒng)也將變得更小巧。效果更好是因?yàn)閮?nèi)部組件自動(dòng)地對(duì)系統(tǒng)全局性能做了優(yōu)化,而不只是優(yōu)化人們選擇的條件標(biāo)準(zhǔn),比如車道檢查。這類可解釋的標(biāo)準(zhǔn)雖然易于人的理解,但并不能保證系統(tǒng)處于全局最優(yōu)狀態(tài)。更小巧的系統(tǒng)是因?yàn)檎麄(gè)系統(tǒng)學(xué)習(xí)用最少的處理步驟來(lái)解決問(wèn)題。
這篇文章是基于NVIDIA的論文《End to End Learning for Self-Driving Cars》。具體細(xì)節(jié)可以參考論文原文。
卷積神經(jīng)網(wǎng)絡(luò)處理視覺(jué)數(shù)據(jù)
卷積神經(jīng)網(wǎng)絡(luò)模型顛覆了計(jì)算機(jī)模式識(shí)別領(lǐng)域。在CNNs被廣泛應(yīng)用前,大多數(shù)的識(shí)別任務(wù)都是先經(jīng)過(guò)人工特征提取步驟,然后用分類器判斷。CNNs的重大突破在于它能自動(dòng)地從訓(xùn)練樣本中學(xué)習(xí)特征。由于卷積運(yùn)算能夠捕捉圖像的二維屬性,CNN方法在圖像識(shí)別任務(wù)上尤其顯得強(qiáng)大。用卷積核掃描整張圖片之后,需要學(xué)習(xí)的參數(shù)比原來(lái)大大減少。
盡管CNNs模型已經(jīng)被商業(yè)化使用了二十多年,但直到近些年才被大規(guī)模地應(yīng)用,這主要是因?yàn)閮身?xiàng)重要的突破。首先,大規(guī)模的人工標(biāo)注數(shù)據(jù)集很容易獲取,比如ImageNet大規(guī)模視覺(jué)識(shí)別挑戰(zhàn)(ILSVRC),這些數(shù)據(jù)可以作為訓(xùn)練集和驗(yàn)證集。其次,CNN學(xué)習(xí)算法現(xiàn)在能夠在大規(guī)模并行圖形處理單元(GPUs)上運(yùn)行,極大地提高了學(xué)習(xí)效率和預(yù)測(cè)能力。
我們這里所講述的CNNs模型不局限于基本的模式識(shí)別。我們開(kāi)發(fā)了一套系統(tǒng),可以學(xué)習(xí)自動(dòng)駕駛汽車的整個(gè)工作流程。這個(gè)項(xiàng)目的基礎(chǔ)工作十年前在國(guó)防高級(jí)研究項(xiàng)目機(jī)構(gòu)(Defense Advanced Research Projects Agency,DARPA )的自動(dòng)化車輛項(xiàng)目中就已經(jīng)完成,這個(gè)項(xiàng)目被稱為DAVE,此項(xiàng)目中一輛微縮的遙控車行駛通過(guò)擺放了障礙物的小路。DAVE使用在了類似環(huán)境下采集的若干個(gè)小時(shí)的人工駕駛數(shù)據(jù)進(jìn)行訓(xùn)練,但環(huán)境并不完全相同。訓(xùn)練數(shù)據(jù)包括兩臺(tái)攝像機(jī)采集的視頻數(shù)據(jù)和人操控方向的命令。
在許多方面,DAVE的靈感都來(lái)自于Pomerleau開(kāi)創(chuàng)性的工作,Pomerleau在1989年用神經(jīng)網(wǎng)絡(luò)搭建了一套自動(dòng)駕駛系統(tǒng)(Autonomous Land Vehicle in a Neural Network,ALVINN)。ALVINN是DAVE的先驅(qū)產(chǎn)品,它首次證實(shí)了端到端訓(xùn)練的神經(jīng)網(wǎng)絡(luò)模型終將在某一天能夠操控汽車行駛在公路上。DAVE展示了端到端的學(xué)習(xí)潛能,而且它還用來(lái)證明DARPA Learning Applied to Ground Robots 項(xiàng)目的啟動(dòng),但是DAVE的性能不足夠可靠,在非公路環(huán)境下不能完全替代多模塊方式的駕駛。(在復(fù)雜環(huán)境下,DAVE在碰撞之間的平均距離約有20米。)
大約在一年之前我們開(kāi)始重新著力于提升原始版DAVE的性能,構(gòu)建一套能夠在公路上駕駛的強(qiáng)健系統(tǒng)。這項(xiàng)工作的初始動(dòng)機(jī)是為了避免識(shí)別特定的人工設(shè)計(jì)特征標(biāo)志,比如車道標(biāo)記、隔離護(hù)欄和其它車輛,也避免基于這些觀察到的特征指定一套“如果……那么……否則……”的規(guī)則系統(tǒng)。我們很高興能夠分享這一新的努力的初步結(jié)果,即DAVE-2。
DAVE-2系統(tǒng)
圖2展示了DAVE-2系統(tǒng)的訓(xùn)練數(shù)據(jù)采集模塊的塊狀示意圖。數(shù)據(jù)采集車的擋風(fēng)玻璃后面固定了三臺(tái)攝像機(jī),在攝像機(jī)采集視頻數(shù)據(jù)的同時(shí),此系統(tǒng)也記錄駕駛員操控方向盤的偏轉(zhuǎn)角度。方向控制命令是從汽車的控制網(wǎng)絡(luò)(Controller Area Network,CAN)總線獲取。為了使我們的系統(tǒng)能夠獨(dú)立于汽車的幾何尺寸,我們用1/r來(lái)表示方向控制命令,其中r是以米為單位的轉(zhuǎn)彎半徑。我們使用1/r而不是r的目的是防止在直線行駛時(shí)出現(xiàn)奇點(diǎn)(直線行駛的轉(zhuǎn)彎半徑無(wú)限大)。左轉(zhuǎn)彎的1/r值為負(fù)數(shù),右轉(zhuǎn)彎的值為正數(shù)。
圖2 數(shù)據(jù)采集系統(tǒng)的結(jié)構(gòu)圖
訓(xùn)練數(shù)據(jù)包括從視頻中采樣得到的單幀視頻,以及對(duì)應(yīng)的方向控制命令(1/r)。只用駕駛員操作的數(shù)據(jù)訓(xùn)練遠(yuǎn)遠(yuǎn)不夠;網(wǎng)絡(luò)模型還需要學(xué)習(xí)如何糾正錯(cuò)誤的操作,否則汽車就會(huì)慢慢偏離公路了。于是,訓(xùn)練數(shù)據(jù)額外補(bǔ)充了大量圖像,包括汽車從車道中心的各種偏移和轉(zhuǎn)彎。
兩個(gè)特定的偏離中心的圖像可以從左和右兩臺(tái)相機(jī)得到。攝像機(jī)之間的其它偏離以及所有的旋轉(zhuǎn)都靠臨近攝像機(jī)的視角變換來(lái)仿真。精確的視角轉(zhuǎn)換需要具備3D場(chǎng)景的知識(shí),而我們卻不具備這些知識(shí),因此我們假設(shè)所有低于地平線的點(diǎn)都在地平面上,所有地平線以上的點(diǎn)都在無(wú)限遠(yuǎn)處,以此來(lái)近似地估計(jì)視角變換。在平坦的地區(qū)這種方法沒(méi)問(wèn)題,但是對(duì)于更完整的渲染,會(huì)造成地面上物體的扭曲,比如汽車、樹(shù)木和建筑等。幸運(yùn)的是這些扭曲對(duì)網(wǎng)絡(luò)模型訓(xùn)練并無(wú)大礙。方向控制會(huì)根據(jù)變換后的圖像迅速得到修正,使得汽車能在兩秒之內(nèi)回到正確的位置和方向。
圖3是我們的訓(xùn)練系統(tǒng)。圖像輸入到CNN網(wǎng)絡(luò)計(jì)算方向控制命令。預(yù)測(cè)的方向控制命令與理想的控制命令相比較,然后調(diào)整CNN模型的權(quán)值使得預(yù)測(cè)值盡可能接近理想值。權(quán)值調(diào)整是由機(jī)器學(xué)習(xí)庫(kù)Torch 7的后向傳播算法完成。
圖3 訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型
訓(xùn)練完成后,模型可以用中心的單個(gè)攝像機(jī)數(shù)據(jù)生成方向控制命令。圖4顯示了這個(gè)過(guò)程。
圖4 訓(xùn)練得到的模型可以用正前方的單個(gè)攝像機(jī)的數(shù)據(jù)生成方向控制命令
數(shù)據(jù)采集
訓(xùn)練數(shù)據(jù)是在各種路段和不同燈光和天氣條件下采集得到的。我們?cè)谛聺晌髦葜胁坎杉值缆访鏀?shù)據(jù),在伊利諾伊、密歇根、賓夕法尼亞和紐約州采集高速公路的數(shù)據(jù)。其它道路類別包括兩車道道路(有車道標(biāo)志或者沒(méi)有標(biāo)志),路邊有車停放的居民區(qū)道路,隧道和不平整道路。采集數(shù)據(jù)時(shí)的天氣狀況有晴天、多云、霧天、雪天和雨天,白天和晚上都有。在某些情況下,太陽(yáng)接近地平線,導(dǎo)致有路面反射的光線和擋風(fēng)玻璃的散射。
我們采集數(shù)據(jù)的車輛是2016款 Lincoln MKZ,或者2013款Ford Focus,后者攝像頭的安放位置與前者相似。我們的系統(tǒng)不依賴與任何的汽車制造商或是型號(hào)。我們要求駕駛員盡可能地集中注意力。截止2016年3月28日,共采集了72小時(shí)的行駛數(shù)據(jù)。
網(wǎng)絡(luò)結(jié)構(gòu)
我們訓(xùn)練網(wǎng)絡(luò)的權(quán)重值,使得網(wǎng)絡(luò)模型輸出的方向控制命令與人工駕駛或者調(diào)整后的控制命令的均方誤差最小。圖5是網(wǎng)絡(luò)的結(jié)構(gòu)圖,一共包括九層,包括一個(gè)歸一化層,五個(gè)卷積層和三個(gè)全連接層。輸入圖像被映射到Y(jié)UV平面,然后傳入網(wǎng)絡(luò)。
圖5 CNN結(jié)構(gòu)。這個(gè)網(wǎng)絡(luò)有大約2700萬(wàn)個(gè)連接和25萬(wàn)個(gè)參數(shù)
網(wǎng)絡(luò)的第一層對(duì)輸入圖像做歸一化。歸一化層是硬編碼的,在學(xué)習(xí)過(guò)程中不會(huì)變化。在網(wǎng)絡(luò)模型中進(jìn)行歸一化可以使得歸一化過(guò)程根據(jù)網(wǎng)絡(luò)結(jié)構(gòu)調(diào)整,而且能用GPU加速處理過(guò)程。
卷積層是用來(lái)提取特征的,它是根據(jù)一些列參數(shù)實(shí)驗(yàn)的結(jié)果憑經(jīng)驗(yàn)選擇的。然后我們對(duì)前三個(gè)卷積層使用了strided卷積,其中stride是2x2,卷積核是5x5,后兩層選用了unstrided卷積,卷積核是3x3。
在五層卷積之后又接了三個(gè)全連接層,最后輸出一個(gè)控制數(shù)字,即轉(zhuǎn)彎半徑的倒數(shù)。全連接層的設(shè)計(jì)意圖是作為方向控制器,但是我們發(fā)現(xiàn)用端到端的方式訓(xùn)練系統(tǒng),網(wǎng)絡(luò)模型的特征提取器和控制器這兩部分很難明確地區(qū)分開(kāi)來(lái)。
訓(xùn)練細(xì)節(jié)
數(shù)據(jù)選擇
訓(xùn)練神經(jīng)網(wǎng)絡(luò)的第一步就是選擇使用視頻的哪些幀。我們采集的數(shù)據(jù)標(biāo)記了道路類型、天氣條件、駕駛員行為(保持車道行駛、更換車道、轉(zhuǎn)彎等等)等標(biāo)簽。用CNN訓(xùn)練保持車道的行駛,我們就只挑選駕駛員保持同一車道行駛的數(shù)據(jù),拋棄剩余部分。然后我們以10FPS對(duì)視頻降采樣,因?yàn)橛酶卟蓸勇实玫降膱D像相似度非常高,并不能帶來(lái)很多有用的信息。為了消除直線行駛的偏置,很大一部分訓(xùn)練圖像包含了有弧度的道路。
數(shù)據(jù)補(bǔ)充
選定最終的圖像集之后,我們?nèi)斯ぬ砑恿艘恍┢坪托D(zhuǎn)來(lái)補(bǔ)充數(shù)據(jù),教會(huì)網(wǎng)絡(luò)如何修復(fù)較差的姿勢(shì)和視角。調(diào)整的幅度按照正態(tài)分布隨機(jī)選取。分布的均值為零,標(biāo)準(zhǔn)差是駕駛員操作數(shù)據(jù)的標(biāo)準(zhǔn)差的兩倍。人工補(bǔ)充的數(shù)據(jù)隨著幅度的增加確實(shí)會(huì)引入一些不理想的因素(正如我們之前提到的)。
仿真
在上路測(cè)試訓(xùn)練得到的CNN之前,我們首先仿真測(cè)試網(wǎng)絡(luò)的性能。圖6是簡(jiǎn)化的仿真系統(tǒng),圖7是交互式仿真器的界面截圖。
圖6 駕駛仿真器的示意圖
仿真器采用預(yù)先用數(shù)據(jù)采集車的前置攝像機(jī)錄制的視頻數(shù)據(jù),然后根據(jù)圖像用CNN模型預(yù)測(cè)操控命令。這些錄制視頻的時(shí)間軸與駕駛員操控命令的時(shí)間軸保持一致。
由于駕駛員不總是將車輛保持在車道的中心,我們必須人工校準(zhǔn)車道的中心,因?yàn)樗c模擬器所采用的視頻的每一幀都關(guān)聯(lián)。我們把這個(gè)姿態(tài)稱為“對(duì)照數(shù)據(jù)”。
模擬器對(duì)原始圖像做了變形來(lái)模仿車輛偏離對(duì)照姿態(tài)。請(qǐng)注意,這種變形也包括了駕駛員行駛路徑與對(duì)照數(shù)據(jù)之間的任何差異。圖像變形的方法在前幾節(jié)已經(jīng)介紹過(guò)了。
模擬器讀取保存的測(cè)試視頻,以及與拍攝視頻同步記錄的方向控制命令。該模擬器發(fā)送所選擇的測(cè)試視頻的第一幀,針對(duì)任何偏離對(duì)照數(shù)據(jù)的情況做修正,然后輸入到訓(xùn)練好的CNN模型,模型輸出一條操控指令。模型輸出的命令與存儲(chǔ)的駕駛員操控命令一起被送入車輛的動(dòng)態(tài)模型,更新仿真車輛的位置和方向。
圖7 模擬器交互模式的截圖。右側(cè)是操縱性能的文字描述評(píng)價(jià)。左側(cè)綠色區(qū)域是由于視角變換導(dǎo)致的不可見(jiàn)區(qū)域。地平線下方明亮的矩形區(qū)域就是傳入CNN模型的圖像
接著,模擬器調(diào)整測(cè)試視頻的下一幀圖像,使得所呈現(xiàn)的圖像如同是CNN模型輸出的操縱命令所控制的結(jié)果。新的圖像又被傳回CNN模型,重復(fù)處理過(guò)程。
模擬器記錄車輛偏離距離(車輛偏離車道中心的距離),偏航角度和仿真車輛的行駛距離。當(dāng)偏離中心的距離超過(guò)一米時(shí),就會(huì)觸發(fā)虛擬人的干預(yù),仿真車輛的位置和方向就會(huì)重置成原視頻對(duì)應(yīng)幀的對(duì)照數(shù)據(jù)。
評(píng)測(cè)
我們分兩步來(lái)評(píng)測(cè)我們的網(wǎng)絡(luò)模型:首先是仿真測(cè)試,接著是上路測(cè)試。
在仿真階段,我們使用了在新澤西州蒙茅斯縣錄制的視頻數(shù)據(jù),總共大約持續(xù)三個(gè)小時(shí),行駛了100英里。測(cè)試數(shù)據(jù)在各種燈光和天氣條件下采集,包括了高速公路、普通公路和居民區(qū)道路。
我們通過(guò)計(jì)算虛擬人干預(yù)車輛行駛的次數(shù)來(lái)估計(jì)網(wǎng)絡(luò)模型能夠自動(dòng)駕駛汽車的時(shí)間段占比。我們假設(shè)在現(xiàn)實(shí)情況下發(fā)生一次人工干預(yù)需要六秒:這個(gè)時(shí)間包括駕駛員接管操縱車輛、糾正車輛位置、重新進(jìn)入自動(dòng)駕駛模式。我們是這樣計(jì)算自動(dòng)駕駛比例的,把人工干預(yù)的次數(shù)乘以六秒,除以總的模擬時(shí)間,然后與1相減:
因此,如果觸發(fā)了100次干預(yù)耗時(shí)600秒,自動(dòng)駕駛的比例為
上路測(cè)試
當(dāng)網(wǎng)絡(luò)模型訓(xùn)練得到較好的性能之后,我們把它加載到測(cè)試車輛的DRIVE PX上,進(jìn)行上路測(cè)試。我們用車輛自動(dòng)駕駛的時(shí)間比例來(lái)衡量性能。這個(gè)時(shí)間不包括變換車道和轉(zhuǎn)彎。以我們位于霍姆德?tīng)柕霓k公室到大西洋高地的一趟普通行程為例,大約有98%的時(shí)間保持自動(dòng)駕駛。我們也在花園州際公路(一條有坡度的多車道高速公路)上完成了10英里的自動(dòng)駕駛。
視頻:https://youtu.be/NJU9ULQUwng(自備云梯)
CNN模型內(nèi)部狀態(tài)可視化
圖8和圖9分別展示了兩張不同輸入圖片在前兩層網(wǎng)絡(luò)的激活狀態(tài),分別是在土路上和森林里。在土路的例子中,特征圖片清晰地勾畫出路的邊界,而在森林的例子中夾雜了大量噪音,CNN模型從圖中找不到有用的信息
這表明CNN自動(dòng)學(xué)會(huì)了識(shí)別有用的道路特征,只提供人工操控方向的角度作為訓(xùn)練信號(hào)。我們從未直接訓(xùn)練模型來(lái)識(shí)別道路邊界。
圖8 CNN模型眼中的土路。上方:由攝像機(jī)輸入CNN模型的圖像。左下:第一層特征映射的激活狀態(tài)。右下:第二層特征映射的激活狀態(tài)。
圖9 沒(méi)有路的圖片示例。前兩層特征映射幾乎都是噪聲,CNN模型無(wú)法從圖片中識(shí)別出有用的特征。
總結(jié)
我們的經(jīng)驗(yàn)表明,神經(jīng)網(wǎng)絡(luò)能學(xué)習(xí)完整的保持車道駕駛的任務(wù),而不需要人工將任務(wù)分解為道路和車道檢測(cè)、語(yǔ)義抽象、道路規(guī)劃和控制。從不到一百小時(shí)的少量訓(xùn)練數(shù)據(jù)就足以訓(xùn)練在各種條件下操控車輛,比如在高速公路、普通公路和居民區(qū)道路,以及晴天、多云和雨天等天氣狀況。CNN模型可以從非常稀疏的訓(xùn)練信號(hào)(只有方向控制命令)中學(xué)到有意義的道路特征。
例如,系統(tǒng)不需要標(biāo)注數(shù)據(jù)就學(xué)會(huì)了識(shí)別道路邊界。
還需要做大量工作來(lái)提升網(wǎng)絡(luò)模型的健壯性,尋找驗(yàn)證系統(tǒng)健壯性的方法,以及提升網(wǎng)絡(luò)內(nèi)部狀態(tài)可視化的程度。
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:端到端深度學(xué)習(xí)在自動(dòng)駕駛汽車上的應(yīng)用
本文網(wǎng)址:http://www.ezxoed.cn/html/news/10515520055.html