淺嘗端到端自動駕駛

初探:

NOTE: 該文適合手端咖啡劲妙,在暖和的下午慢慢享用煞烫,語言較為通俗隨性昏滴,更像是一篇故事猴鲫。要了解更多的技術(shù)細(xì)節(jié),可以移步文末的技術(shù)報告與代碼鏈接(https://github.com/huangchaoxing/Vision-based-steering-angle-prediction)谣殊》鞴玻【備好梯子,部分鏈接需要上墻】

最近這一年對端到端的自動駕駛比較感興趣。所謂端到端自動駕駛姻几,就是模型直接通過輸入的圖像或者視頻信息得到汽車駕駛行為的指令(方向盤轉(zhuǎn)角宜狐,油門大小,踩剎車的程度)蛇捌。在 deep learning 時代之前抚恒,許多汽車自動駕駛行為的指令需要通過圖像的預(yù)處理得到一些人工的特征信息進(jìn)而計算得出。其實(shí)络拌,神經(jīng)網(wǎng)絡(luò)直接開車早在1989年就已經(jīng)實(shí)現(xiàn)了俭驮,當(dāng)時的模型很淺而且輸入也是作了簡化的。2016年的時候,英偉達(dá)率先提出了利用CNN(卷積神經(jīng)網(wǎng)絡(luò))直接將車載攝像頭的圖像映射到方向盤轉(zhuǎn)角的方法混萝,這讓整個過程變得省時省力又舒心:)遗遵。 這種自動駕駛行為其實(shí)是一種模仿學(xué)習(xí)(或者叫行為克隆)逸嘀,需要事先收集人類開車時的圖像以及這幅圖所對應(yīng)的方向盤轉(zhuǎn)角车要,然后通過監(jiān)督學(xué)習(xí)學(xué)習(xí)的方法讓CNN去擬合一個從圖像到方向盤轉(zhuǎn)角的映射~ 這樣我們就能隨意逮蝦戶了。


英偉達(dá)模型崭倘。來源:英偉達(dá)的paper

我本人第一次接觸到這個領(lǐng)域完全是出于對GTA V這款游戲的喜愛翼岁。一次偶然的機(jī)會我在Python 博主 sentdex的youtube頻道上看到了一個用分類方法玩GTA 的視頻(基于tensorflow)。后來我自己又如法炮制地用Pytorch制作了一個用CNN分類的方法在GTA V里開飛機(jī)的玩具project司光。這個開飛機(jī)的模型其實(shí)十分簡陋琅坡,唯一能做到的就是讓飛機(jī)在天上別掉下來(當(dāng)然也可以避開高樓,高山和大海哈)飘庄,當(dāng)然還是有一定的娛樂性的脑蠕,畢竟你要先親自玩游戲開飛機(jī)呀。2019年春節(jié)的時候跪削,我在參加澳大利亞機(jī)器人視覺中心的機(jī)器人視覺夏令營時,有一個workshop的環(huán)節(jié)需要訓(xùn)練一個CNN然后把它部署到一個小車上迂求,從而讓小車可以在車道上安全行駛碾盐。這個其實(shí)可以說是英偉達(dá)模型的玩具版本。我們要實(shí)現(xiàn)在車道上遙控開車揩局,然后讓CNN去擬合小車根據(jù)輸入圖像的行為毫玖。在這里放一個鏈接給大家過過眼癮。我訓(xùn)練的模型比較菜(最終比賽成績排名9/13,逃)凌盯,這個效果是來自帝國理工的博士生和田健太郎先生的作品付枫。


來源:https://github.com/wkentaro/RVSS2019-WS


真實(shí)世界:

隨著一個男人的成長,他的玩具也會一直變大驰怎。轉(zhuǎn)眼到了做computer vision學(xué)期project的時候了阐滩,我也決定探索一下真實(shí)世界里的開車。2月底的一個下午县忌,我和同學(xué)驅(qū)車到堪培拉Fyshwick入手了RTX2070+9代i5掂榔,折騰正式開始。在端到端駕駛領(lǐng)域症杏,有幾個benchamark的數(shù)據(jù)集:Udacity装获,Comma-aidbnet, DeepDrive 等厉颤。我嘗試地在Comma-ai上訓(xùn)練了一下英偉達(dá)的結(jié)構(gòu)穴豫,但發(fā)現(xiàn)這個數(shù)據(jù)集里低速情況和人為的規(guī)劃性故意直角轉(zhuǎn)彎實(shí)在有點(diǎn)多,模型非常難收斂逼友。低速行駛下的行為以及直角轉(zhuǎn)彎等往往會被視作是一種人類提前規(guī)劃的行為精肃,而非單一的被動反應(yīng)秤涩。經(jīng)過幾番權(quán)衡后,我啟用了一個叫SullyChen的數(shù)據(jù)集肋杖。這個數(shù)據(jù)集是由美國學(xué)生SullyChen收集的溉仑。駕駛的地方是洛杉磯的市郊,有著開闊的視野和眾多彎曲的海岸山路(腦海里一片加州陽光的美景状植,這不就是現(xiàn)實(shí)版的GTA V 洛圣都嗎)浊竟。這里總共是兩個數(shù)據(jù)集共10萬余張車載照相機(jī)以20 Hz收集到的圖像以及對應(yīng)的方向盤轉(zhuǎn)角。然而津畸,并不是所有的數(shù)據(jù)都適合拿來進(jìn)行訓(xùn)練和測試的振定。在6萬張的數(shù)據(jù)集中,因?yàn)楫?dāng)中有很長一段的山間停車場小路的兜兜轉(zhuǎn)轉(zhuǎn)(甚至有大角度掉頭)肉拓,我們不得不把這段予以剔除后频。然而,這就導(dǎo)致了整個視頻的不完整暖途,會給后期利用視頻流的訓(xùn)練帶來麻煩卑惜。于是乎我們干脆把這個數(shù)據(jù)集作為測試集的來源,在其中挑選了兩段分別代表城市行駛和盤山公路行駛的視頻片段作為測試集(共33000幀左右)驻售。另外一個擁有四萬多幀的數(shù)據(jù)集名正言順地成為了訓(xùn)練集露久,其中最開始的在地下車庫駛出路面的片段被剔除。至于數(shù)據(jù)增廣欺栗,我們采用的是亮度抖動以模擬路面陽光和陰影的變化毫痕。我們還對圖像實(shí)施了拉伸(壓扁)以凸顯路面的趨勢。


數(shù)據(jù)集樣圖

在模型結(jié)構(gòu)上迟几,我們決定采用比較淺的模型消请,畢竟英偉達(dá)的模型也不是很深,幾層足矣类腮‰總的來說是兩塊卷積塊+兩個全連接層。因?yàn)樽詈笠敵鲆粋€方向盤的數(shù)值(回歸問題)存哲,所以最后的輸出個數(shù)設(shè)置為一因宇。自然而然地,損失函數(shù)采用L2范數(shù)祟偷,即prediction和ground-truth的差之平方察滑。首先,我們采取的是單幀輸入得到方向盤輸出的方法修肠。實(shí)際的效果并不算太理想贺辰,方向盤轉(zhuǎn)角誤差可達(dá)20度。其實(shí),人類在真實(shí)開車過程中往往不會一幀一幀地想我需要怎么去操作方向盤饲化,而是會基于一種短期的變化趨勢來決定自己的操作莽鸭。我們抱著試試看看的態(tài)度把三幀的圖像堆疊到了一起并送入神經(jīng)網(wǎng)絡(luò),城市公路上的誤差一下子去到了7點(diǎn)多度吃靠,而山路上的誤差也去到了15度以下硫眨。這證明序列性的信息對開車是很有幫助的!

時光記憶

如何利用時間上的信息來提升模型性能成了我們要考慮的問題巢块。RNN(循環(huán)神經(jīng)網(wǎng)絡(luò))和LSTM(長短時記憶)的名字此時不時回蕩在耳邊礁阁,但梯度累計消失(爆炸),過擬合以及不穩(wěn)定的問題同樣是要考慮的問題族奢。最終姥闭,還是簡單主義占了上風(fēng)。雙流CNN的方法進(jìn)入了我們的視野(如下圖)越走。

所謂雙流CNN,便是使用兩組CNN棚品,一組CNN提取的是RGB信息(普通照片)的特征,而另一組CNN負(fù)責(zé)提取時間信息(通常是光流廊敌,把兩幀之間像素的移動速度投影到圖像空間)中的特征铜跑。最后兩組特征融合在一起并得到要輸出的值。該方法一開始用于視頻動作識別和動作預(yù)測骡澈。相應(yīng)地疼进,在這里我們的RGB流輸入的是三診堆疊的圖像,時間流則是體現(xiàn)三幀之間變化的兩幀光流圖秧廉。

來源:Two-Stream Convolutional Networksfor Action Recognition in Videos
實(shí)際RGB圖


對應(yīng)光流圖

廢話不多說,直接上演示結(jié)果:

https://www.bilibili.com/video/av53174716

好八拣帽,一個學(xué)期下來實(shí)在太累了疼电,細(xì)節(jié)的東西就不寫了。更多的就看項(xiàng)目鏈接里的內(nèi)容吧减拭。我要和朋友開車去新南威爾士州吃飯了(餓)蔽豺。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市拧粪,隨后出現(xiàn)的幾起案子修陡,更是在濱河造成了極大的恐慌,老刑警劉巖可霎,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件魄鸦,死亡現(xiàn)場離奇詭異,居然都是意外死亡癣朗,警方通過查閱死者的電腦和手機(jī)拾因,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人绢记,你說我怎么就攤上這事扁达。” “怎么了蠢熄?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵跪解,是天一觀的道長。 經(jīng)常有香客問我签孔,道長叉讥,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任骏啰,我火速辦了婚禮节吮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘判耕。我一直安慰自己透绩,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布壁熄。 她就那樣靜靜地躺著帚豪,像睡著了一般。 火紅的嫁衣襯著肌膚如雪草丧。 梳的紋絲不亂的頭發(fā)上狸臣,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天,我揣著相機(jī)與錄音昌执,去河邊找鬼烛亦。 笑死,一個胖子當(dāng)著我的面吹牛懂拾,可吹牛的內(nèi)容都是我干的煤禽。 我是一名探鬼主播,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼岖赋,長吁一口氣:“原來是場噩夢啊……” “哼檬果!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起唐断,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤选脊,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后脸甘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體恳啥,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年斤程,在試婚紗的時候發(fā)現(xiàn)自己被綠了角寸。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片菩混。...
    茶點(diǎn)故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖扁藕,靈堂內(nèi)的尸體忽然破棺而出沮峡,到底是詐尸還是另有隱情,我是刑警寧澤亿柑,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布邢疙,位于F島的核電站,受9級特大地震影響望薄,放射性物質(zhì)發(fā)生泄漏疟游。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一痕支、第九天 我趴在偏房一處隱蔽的房頂上張望颁虐。 院中可真熱鬧,春花似錦卧须、人聲如沸另绩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽笋籽。三九已至,卻和暖如春椭员,著一層夾襖步出監(jiān)牢的瞬間车海,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工隘击, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留侍芝,地道東北人。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓埋同,卻偏偏與公主長得像竭贩,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子莺禁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評論 2 355

推薦閱讀更多精彩內(nèi)容