0
本文作者: AI科技評(píng)論 | 2016-06-29 10:07 |
今年8月,雷鋒網(wǎng)將在深圳舉辦盛況空前的“全球人工智能與機(jī)器人峰會(huì)”,屆時(shí)雷鋒網(wǎng)將發(fā)布“人工智能&機(jī)器人Top25創(chuàng)新企業(yè)榜”榜單。目前,我們正在拜訪人工智能、機(jī)器人領(lǐng)域的相關(guān)公司,從中篩選最終入選榜單的公司名單。
如果你也想加入我們的榜單之中,請(qǐng)聯(lián)系:2020@leiphone.com。
視覺一直是人類最主要的信息來源,研究表明,人類獲取外界信息75%依靠視覺系統(tǒng),而在駕駛汽車時(shí),這一比例甚至高達(dá)90%。對(duì)于想要代替人類司機(jī)的自動(dòng)駕駛技術(shù)來說,也是同樣。視覺對(duì)人類來說是天生的,可是要達(dá)到人類等級(jí)的視覺能力,計(jì)算機(jī)智能必須克服許多重大挑戰(zhàn),其中之一便是對(duì)圖像的深入理解,包括在障礙監(jiān)測(cè)和道路監(jiān)測(cè)等任務(wù)中。
現(xiàn)在,自動(dòng)駕駛技術(shù)已成為最火熱的領(lǐng)域之一,競(jìng)爭(zhēng)者包括谷歌等AI技術(shù)巨頭、汽車制造商以及硬件技術(shù)領(lǐng)軍人物。今年6月,芯片巨頭英特爾收購(gòu)了機(jī)器視覺公司 Itseez,并由此進(jìn)軍自動(dòng)駕駛市場(chǎng)。昨天,在年度機(jī)器視覺大會(huì)(CVPR)上,來自普林斯頓大學(xué)的學(xué)者進(jìn)行了一項(xiàng)尖端技術(shù)演示。目前自動(dòng)駕駛的視覺系統(tǒng)主要使用兩種范式,在演示中普林學(xué)者們提出了一種新范式,建立了一種簡(jiǎn)潔而完整的環(huán)境表征,并在電子游戲 TORCS 和真實(shí)世界視頻中,都證明了新范式的優(yōu)越性。在此,我們?yōu)榇蠹曳窒砻麨椤渡疃锐{駛:自動(dòng)駕駛中的學(xué)習(xí)可供性》的論文全文。
概況
如今,基于視覺的自動(dòng)駕駛系統(tǒng)有兩個(gè)主要范式:間接知覺方法,解析整個(gè)畫面來進(jìn)行駕駛決策;以及行為反射方法,通過一個(gè)回歸量,直接將輸入畫面與駕駛行為匹配。這篇論文中,我們提出第三種范式:一種直接的知覺方法,來評(píng)估駕駛的可供性。我們提出將一個(gè)輸入圖像與少量關(guān)鍵知覺指標(biāo)匹配起來,這些指標(biāo)直接指向駕駛中道路/交通狀況的可供性。我們的表征為環(huán)境提供了一種簡(jiǎn)潔而完整的描述,讓單一控制器可以進(jìn)行自動(dòng)駕駛。我們?cè)陂g接知覺表征和直接的行為反射這兩個(gè)極端之間找到第三種方法,我們的直接知覺表征提供了正確的抽象度。為證明這一點(diǎn),我們利用了人類在電子游戲中長(zhǎng)達(dá)12小時(shí)的駕駛記錄,訓(xùn)練了一個(gè)深度卷積神經(jīng)網(wǎng)絡(luò)(ConvNet),并證明我們的模型在非常多樣化的虛擬環(huán)境中可以良好駕駛車輛。我們還訓(xùn)練了一個(gè)在 KITTI 數(shù)據(jù)庫(kù)上進(jìn)行車輛距離估測(cè)的模型。結(jié)果顯示,我們的直接知覺方法可以在真實(shí)的駕駛圖像中良好地普遍應(yīng)用。源代碼和數(shù)據(jù)在我們的項(xiàng)目網(wǎng)站上可以供查閱。
1、簡(jiǎn)介
過去的十年中,在自動(dòng)駕駛領(lǐng)域取得了重大進(jìn)展。如今,大部分系統(tǒng)可以分為兩個(gè)主要范式:間接的知覺方法和行為反射方法。
間接知覺方法:
這個(gè)方法包括多個(gè)子部件,識(shí)別駕駛相關(guān)的各種物體,包括車道、交通標(biāo)識(shí)、紅綠燈、汽車、行人等等。然后,識(shí)別結(jié)果整合入一個(gè)一致的汽車周邊環(huán)境的世界表征。要控制車輛,基于 AI 的引擎在每一次決策前,會(huì)考慮進(jìn)所有這些信息。由于只有一小部分監(jiān)測(cè)到的信息會(huì)與駕駛相關(guān),這種等級(jí)的全圖像理解可能會(huì)給已屬于“高難度動(dòng)作”的自動(dòng)駕駛帶來不必要的額外復(fù)雜度。與其他機(jī)器人任務(wù)不同,駕駛汽車只需要操縱方向和速度,而間接知覺計(jì)算了高維度的世界表征,可能包括多余的信息。與其檢測(cè)汽車的邊界盒并以此估計(jì)車輛距離,為什么不簡(jiǎn)單直接地預(yù)測(cè)車輛距離?畢竟,間接知覺方法中涉及的個(gè)體子任務(wù)本身,都算是計(jì)算機(jī)視覺中的開放研究問題。雖然間接知覺是目前自動(dòng)駕駛的尖端方法,大部分這些系統(tǒng)必須依賴于激光距離探測(cè)器、GPS、雷達(dá)和非常精確的環(huán)境地圖,才能可靠地解析視野中的物體。對(duì)于一個(gè)籠統(tǒng)的圖像理解任務(wù),在一個(gè)相對(duì)簡(jiǎn)單的汽車控制問題中涉及太多的開放挑戰(zhàn),會(huì)不必要地增加系統(tǒng)的復(fù)雜度和成本。
行為反射方法:
這種方法直接將感官輸入匹配到駕駛行為。這個(gè)概念追溯到20世紀(jì)80年代后期,Pomerleau 使用了一個(gè)神經(jīng)網(wǎng)絡(luò),直接將圖像和方向盤角度匹配起來。為了學(xué)會(huì)這種模型,一個(gè)人類在路上駕駛車輛,而系統(tǒng)記錄圖像和方向盤角度作為訓(xùn)練數(shù)據(jù)。雖然這個(gè)概念非常優(yōu)雅,出于以下幾個(gè)原因,它要解決交通和復(fù)雜的駕駛操作還是有困難的:第一,對(duì)于其他路上的車輛,即便是輸入圖像非常相似,不同的人類駕駛員可能做出完全不同的駕駛決定,這導(dǎo)致了在訓(xùn)練回歸量時(shí)得使用一個(gè)錯(cuò)誤建構(gòu)的問題。舉個(gè)例子,當(dāng)前面有車輛時(shí),駕駛員可以選擇跟著車輛、從左邊超過車輛或者從右邊超過車輛。當(dāng)訓(xùn)練數(shù)據(jù)中存在幾乎一樣的圖像,卻出現(xiàn)這些不同的情況時(shí),機(jī)器學(xué)習(xí)模型會(huì)很難決定到底該怎么做。第二,行為反射的決策級(jí)別太低。直接的配對(duì)看不到大局環(huán)境。舉個(gè)例子,從模型的角度來看,要超過前面的汽車然后回到自己的車道中,只是在某一個(gè)時(shí)間段進(jìn)行一系列非常低等級(jí)的決策:將方向盤稍稍偏向某個(gè)方向,然后,再轉(zhuǎn)回另一個(gè)方向。這種抽象度不能體現(xiàn)真正發(fā)生了什么,沒必要地增加了任務(wù)的難度。最后,因?yàn)槟P洼斎氲氖钦麄€(gè)圖像,學(xué)習(xí)算法必須決定圖像的哪些部分是相關(guān)的。但是,訓(xùn)練行為反射模型的監(jiān)督等級(jí),即方向盤角度,可能太弱了,沒法強(qiáng)制算法學(xué)會(huì)這種關(guān)鍵信息。
我們渴望有一種表征可以直接預(yù)測(cè)駕駛行為的可供性,而不是視覺上解析整個(gè)圖像,或者盲目地將圖像與方向盤角度匹配起來。這篇論文中,我們提出一種自動(dòng)駕駛的直接知覺方法——在間接知覺與行為反射之間的第三類范式。我們提出學(xué)習(xí)將圖像與多個(gè)有意義的路況可供性指標(biāo)匹配起來,包括車輛相對(duì)于道路的角度、與車道標(biāo)記線之間的距離以及與目前車道和隔壁車道中車輛的距離。用這種簡(jiǎn)約但是有意義的可供性表征作為感知輸出,我們證明了一個(gè)非常簡(jiǎn)單的控制器可以進(jìn)行高等級(jí)的駕駛決策,并順利駕駛車輛。
我們的模型是基于尖端的深度卷積神經(jīng)網(wǎng)絡(luò)(ConvNet)框架,自動(dòng)化學(xué)習(xí)圖像特征,從而估計(jì)與自動(dòng)駕駛有關(guān)的可供性。為了打造我們的訓(xùn)練庫(kù),我們請(qǐng)一個(gè)人類駕駛員玩了12個(gè)小時(shí)的賽車電子游戲 TORCS,同時(shí)記錄屏幕畫面和相應(yīng)的標(biāo)簽。我們的模型與我們?cè)O(shè)計(jì)的簡(jiǎn)單控制器一起,可以為可供性指標(biāo)進(jìn)行有意義的預(yù)測(cè),并在游戲中不同的車道內(nèi)、在不同的交通情況和車道配置中自動(dòng)駕駛車輛。同時(shí),它比典型的間接感知方法享有更簡(jiǎn)單的結(jié)構(gòu)。我們還在車輛眾多的智能手機(jī)視頻和 KITTI 數(shù)據(jù)庫(kù)上測(cè)試了我們的系統(tǒng),并證明了良好的真實(shí)世界感知。我們直接的感知方法為自動(dòng)駕駛中的環(huán)境理解,提供了一個(gè)簡(jiǎn)約的、針對(duì)具體任務(wù)的可供性描述。
圖2:留個(gè)駕駛員角度的駕車情景。淺灰色標(biāo)記的車道為監(jiān)測(cè)用作駕駛決策的車道。
1.1. 相關(guān)研究
行業(yè)中大部分自動(dòng)駕駛系統(tǒng)是基于間接感知方法。在計(jì)算機(jī)視覺中,研究人員分別研究了每一個(gè)任務(wù)。車輛檢測(cè)和車道監(jiān)測(cè)是自動(dòng)駕駛系統(tǒng)中的兩個(gè)關(guān)鍵元素。典型的算法在監(jiān)測(cè)到車輛的時(shí)候輸出邊界盒,監(jiān)測(cè)車道標(biāo)記的時(shí)候輸出樣條曲線。但是,這些邊界盒和樣條曲線不是我們用來駕駛的直接可供性信息。因此,必須有一個(gè)轉(zhuǎn)化,這可能帶來額外的噪音。典型的車道監(jiān)測(cè)算法會(huì)受到錯(cuò)誤監(jiān)測(cè)的困擾,例如 Aly 提出的算法。帶有嚴(yán)格邊界的結(jié)構(gòu)——例如高速公路護(hù)欄或者瀝青表面裂痕——有可能被誤認(rèn)為是車道標(biāo)記。即便是好的車道監(jiān)測(cè)結(jié)果也可能缺少車輛定位信息。舉個(gè)例子,由于通常只能可靠監(jiān)測(cè)到兩個(gè)車道標(biāo)記,在兩車道道路上可能很難確定車輛到底在左邊、還是右邊的車道上駕駛。
要將不同的來源整合到一個(gè)統(tǒng)一的世界表征中,Geiger 等人和 Zhang 等人的研究提出了一種概率生成模型,將各種檢測(cè)結(jié)果作為輸入,并輸出十字路口的布局和路況細(xì)節(jié)。
對(duì)于行為反射方法,Pomerleau 的兩項(xiàng)研究意義巨大,其中使用了一個(gè)神經(jīng)網(wǎng)絡(luò)將圖像和方向盤角度直接匹配起來。較新的研究中,Koutnik 等人使用增強(qiáng)學(xué)習(xí)方法訓(xùn)練了一個(gè)大的循環(huán)神經(jīng)網(wǎng)絡(luò)。網(wǎng)絡(luò)的功能與 Pomerleau 相同,將圖像和方向盤角度直接匹配,目標(biāo)是讓車輛保持在路線上。與我們的研究相同,他們也使用視頻游戲 TORCS 用于訓(xùn)練和測(cè)試。
圖3:我們可供性表征的繪圖。改變車道的操作需要穿過“車道內(nèi)系統(tǒng)”和“標(biāo)記上系統(tǒng)”。(f) 展現(xiàn)了標(biāo)記處的重疊區(qū)域,讓順暢轉(zhuǎn)換成為可能。
就自動(dòng)駕駛的深度學(xué)習(xí)來說,Muller 等人的研究是一個(gè)基于 ConvNet 的行為反射方法的成功案例。他們提出一個(gè)越野駕駛機(jī)器人 DAVE,學(xué)會(huì)將圖像和人類司機(jī)的方向盤角度匹配起來。訓(xùn)練后,機(jī)器人顯示了避免障礙的能力。Hadsell 提出了一個(gè)越野駕駛機(jī)器人,針對(duì)長(zhǎng)距離視野具有自我監(jiān)督學(xué)習(xí)能力。在他們的系統(tǒng)中,一個(gè)多層卷積網(wǎng)絡(luò)用來將圖像部分分類,判斷是否是可以穿過的區(qū)域。對(duì)于深度匹配估測(cè),DeepFlow 使用 ConvNet 來在 KITTI 數(shù)據(jù)庫(kù)上的駕駛環(huán)境圖像里實(shí)現(xiàn)非常好的結(jié)果。對(duì)于圖像特征,深度學(xué)習(xí)相比于手動(dòng)功能還顯示出了顯著的提升,例如 GIST。在我們的實(shí)驗(yàn)中,我們會(huì)用駕駛情景中的直接知覺,比較習(xí)得的 ConvNet 特征和 GIST。
2、學(xué)習(xí)駕駛知覺的可供性
為了有效實(shí)施和測(cè)試我們的方法,我們使用開源駕駛游戲 TORCS (開放賽車模擬器),這在 AI 研究中有廣泛使用。對(duì)于游戲引擎,我們可以收集駕駛的關(guān)鍵指標(biāo),例如主車輛的速度、與道路中線的相對(duì)位置、與前方車輛的距離。在訓(xùn)練階段,我們?cè)谟螒蛑惺謩?dòng)駕駛一個(gè)“收集標(biāo)簽的車輛”來收集屏幕截圖(第一人稱駕駛畫面)以及選中可供性指標(biāo)的相應(yīng)地面實(shí)況值。這個(gè)數(shù)據(jù)存儲(chǔ)起來,用來訓(xùn)練模型,以監(jiān)督學(xué)習(xí)的方式估測(cè)可供性。在測(cè)試階段的每一個(gè)時(shí)間步,訓(xùn)練模型從游戲中獲取一個(gè)駕駛畫面,估測(cè)駕駛的可供性指標(biāo)。一個(gè)駕駛控制器處理指標(biāo)并計(jì)算方向和加速/剎車指令。駕駛指令然后發(fā)送回游戲中,來駕駛主車輛。地面實(shí)況標(biāo)簽也在測(cè)試階段收集起來,評(píng)估系統(tǒng)的性能。在訓(xùn)練和測(cè)試階段中,一系列預(yù)先編程的 AI 車輛放上路面,由此進(jìn)行交通流量布局。
2.1. 匹配圖像和可供性
我們使用尖端的深度學(xué)習(xí) ConvNet 作為我們直接知覺模型,來將圖像匹配到可供性指標(biāo)。在這篇論文中,我們專注于多車道高速駕駛。從駕車的第一人稱視角來看,主車輛在決策時(shí)只需要留意目前車道的路況和鄰近兩條(左/右)車道的路況。因此,我們只需要將這三條車道建模。我們訓(xùn)練一個(gè)單一的 ConvNet 一次性處理三條車道的配置:一條有一個(gè)、二個(gè)或三個(gè)車道的道路。圖2中展示了我們通常應(yīng)對(duì)的情況。偶爾有時(shí),車子必須得在車道標(biāo)記線上行駛,這種情況中只有標(biāo)記線兩側(cè)的車道需要注意,正如在圖2e 和圖2f 中顯示。
高速駕駛行為可以分為兩種主要類型:1)遵循車道中心線;2)改變車道,或者減速,從而避免與前車碰撞。為了實(shí)現(xiàn)這些行動(dòng),我們定義我們的系統(tǒng)在兩個(gè)坐標(biāo)系下有兩套表征:“車道內(nèi)系統(tǒng)“和“在標(biāo)記線上系統(tǒng)”。為實(shí)現(xiàn)兩個(gè)主要功能——車道感知和車輛感知——我們提出三種指標(biāo)來表征駕駛情況:駕駛方向、與附近車道標(biāo)記線距離和與前方車輛距離。我們一共提出了13個(gè)可供性指標(biāo)作為我們的駕駛情景表征,在圖表3中顯示。圖表4中列舉了我們可供性指標(biāo)的完整列表。它們是 ConvNet 作為我們可供性估測(cè)的輸出,同時(shí)作為駕駛控制器的輸入。
“車道內(nèi)系統(tǒng)”和“在標(biāo)記線上系統(tǒng)”在不同的情況下處于活躍狀態(tài)。為了實(shí)現(xiàn)順暢的轉(zhuǎn)換,我們定義了一個(gè)重疊區(qū)域,其中兩個(gè)系統(tǒng)都是活躍的。具體布置顯示在圖表3(f) 中。
除了駕駛方向,所有指標(biāo)可能輸出不活躍的狀態(tài)。有兩種情況下指標(biāo)會(huì)不活躍:1)當(dāng)車輛在“車道內(nèi)系統(tǒng)”和“在標(biāo)記線上系統(tǒng)”其中之一行駛,且另一個(gè)系統(tǒng)被關(guān)閉,那么所有屬于那個(gè)系統(tǒng)的指標(biāo)都是不活躍的;2)當(dāng)車輛在邊界車道行駛(最左或者最右的車道),這時(shí)沒有左側(cè)或者右側(cè)車道,那么對(duì)應(yīng)那個(gè)不存在的的鄰近車道的指標(biāo)是不活躍的。根據(jù)指標(biāo)的值和是否活躍的狀態(tài),主車輛可以在道路上精確定位。
圖4:我們直接感知表征中的可供性指標(biāo)完整列表。
2.2. 匹配可供性和行為
方向盤控制是使用汽車的位置和姿勢(shì)計(jì)算的,目標(biāo)是最小化車輛目前位置和車道中心線之間的間隙。定義 dist_center 為到車道中心線的距離,我們有
steerCmd = C * ( angle - dist_center / road_width ) (1)
其中 C 是在不同駕駛情況下變化的系數(shù),angle ∈ [ -π,π ]。當(dāng)車輛改變車道,中心線就從目前車道改為目標(biāo)車道的中心線。描述駕駛控制器邏輯的虛擬程序代碼在圖5中。
圖5:控制器邏輯。
在每一個(gè)時(shí)間步,系統(tǒng)計(jì)算 desired_speed??刂破魍ㄟ^控制加速或剎車,讓實(shí)際速度符合 desired_speed?;鶞?zhǔn) desired_speed 是72 km/h。如果車輛轉(zhuǎn)彎,desired_speed 的減速根據(jù)過去幾個(gè)方向盤的角度來計(jì)算。如果前方近距離有車輛,減速的決策發(fā)出,desired_speed 也根據(jù)與前方車輛的距離而決定。為實(shí)現(xiàn)這種情況下的跟車行為,我們通過以下模型實(shí)現(xiàn)最優(yōu)跟車速率:
其中 dist(t) 是與前方車輛的距離,vmax 是可允許的最高速度,c 和 d 是要校準(zhǔn)的系數(shù)。有了這項(xiàng)實(shí)施方式,主車輛可以在許多速度中實(shí)現(xiàn)穩(wěn)定和順暢的跟車,有需要時(shí)甚至可以完全停止。
3. 實(shí)施
我們的直接感知 ConvNet 是基于 Caffe 建造的,我們使用標(biāo)準(zhǔn) AlexNet 架構(gòu)。其中有5個(gè)卷基層,之后有4個(gè)完全聯(lián)接層,其輸出維度分別是4096、4096、256和13。歐氏距離損失函數(shù)用來作為損失函數(shù)。由于13個(gè)可供性指標(biāo)有不同的范圍,我們將其歸一化至 [ 0.1, 0.9 ] 這個(gè)范圍。
我們?cè)?TORCS 中選擇了7個(gè)跑道和22輛交通車輛來生成訓(xùn)練庫(kù),分別在圖6和圖7中顯示。我們將 TORCS 中原本的道路表面紋理替換為定制化瀝青紋理,具有超過30個(gè)不同車道配置和瀝青深度等級(jí)。我們還將不同的交通車輛駕駛行為編程,創(chuàng)造出不同的交通流量模式。我們?cè)诿總€(gè)車道上多次手動(dòng)駕駛車輛,來收集訓(xùn)練數(shù)據(jù)。駕駛時(shí),截屏同時(shí)縮減取樣至 280 x 210,并與路面實(shí)況標(biāo)簽一起儲(chǔ)存在數(shù)據(jù)庫(kù)。這個(gè)數(shù)據(jù)收集過程可以通過使用一輛 AI 車來簡(jiǎn)單地進(jìn)行自動(dòng)化。不過,在手動(dòng)駕駛時(shí),我們可以故意創(chuàng)造極端的駕駛條件(e.g. 不在路面上、與其他車輛碰撞)來收集更有效的訓(xùn)練樣本,這讓 ConvNet 更加強(qiáng)大,并有效減少訓(xùn)練時(shí)間。
圖6:訓(xùn)練使用的7個(gè)跑道例子。每一個(gè)跑道定制化為一車道、二車道或三車道的配置,并具有不同的瀝青深度。其余跑道使用在測(cè)試階段。
圖7:訓(xùn)練使用的22架車輛例子。其余車輛使用在測(cè)試階段。
我們一共收集了484,815個(gè)圖像用來訓(xùn)練。訓(xùn)練過程與在 ImageNet 數(shù)據(jù)上訓(xùn)練一個(gè) AlexNet 相似。不同之處是輸入圖像的像素是 280 x 120,而非正方形圖像。我們不使用任何裁剪或者模擬版本。我們從零開始訓(xùn)練我們的模型。我們選擇了初始學(xué)習(xí)率為 0.01,每一個(gè)迷你批次由64個(gè)從訓(xùn)練樣本中隨機(jī)選擇的圖像構(gòu)成。在140,000次迭代后,我們停止了訓(xùn)練過程。
在測(cè)試階段,當(dāng)系統(tǒng)在 TORCS 中駕駛車輛時(shí),其獲取的唯一信息是前方的圖像以及車輛的速度。當(dāng)主車輛趕上一輛在其左側(cè)或右側(cè)車道的車輛時(shí),僅僅因?yàn)橄到y(tǒng)沒法看到后面的東西,它沒法判斷移動(dòng)到這條車道是否安全。為解決這個(gè)問題,我們假設(shè)了主車輛比交通車輛更快。因此,如果超過車輛后有足夠的時(shí)間(由一個(gè)計(jì)時(shí)器顯示),要改道到那個(gè)車道就是安全的。我們系統(tǒng)中針對(duì) TORCS 的控制頻率是 10Hz,這對(duì) 80 km/h 以下的速度駕駛來說足夠了。系統(tǒng)圖解顯示在圖8中。
圖8:系統(tǒng)架構(gòu)。ConvNet 處理 TORCS 圖像,并估測(cè)13個(gè)駕駛指標(biāo)?;谥笜?biāo)和目前車速,一個(gè)控制器計(jì)算出駕駛指令,將發(fā)送回 TORCS 來駕駛其中的主車輛。
4、TORCS 評(píng)估
我們首先在 TORCS 駕駛游戲中評(píng)估我們的直接感知模型。游戲中,ConvNet 輸出可以視覺化,并可以讓控制器用來駕駛主車輛。為了測(cè)量可供性指標(biāo)的估測(cè)精度,我們打造了一個(gè)測(cè)試組,由訓(xùn)練組中未使用的跑道和車輛組成。
在 TORCS 空中視覺化圖像中(圖 10a 右側(cè)),我們將主車輛作為參照目標(biāo)。由于其垂直位置是固定的,它在水平方向移動(dòng),駕駛方向由 angle 計(jì)算出。交通車輛只垂直移動(dòng)。我們不將道路曲率視覺化,因此前方道路永遠(yuǎn)表征為一條直線。估測(cè)(空盒)和路面實(shí)況(實(shí)盒)都顯示出來。
4.1. 定性評(píng)估
我們的系統(tǒng)可以在 TORCS 中良好駕駛,沒有任何碰撞。在一些車道變換場(chǎng)景中,控制器可能輕微過沖,但是會(huì)快速恢復(fù)目標(biāo)車道中間的理想位置。正如在 TORCS 視覺化圖像中所示,車道感知模塊非常精確,車輛感知模塊可靠度高達(dá)30米遠(yuǎn)處。在30米到60米的范圍內(nèi),ConvNet 輸出變得噪音更多。在 280 x 210 的圖像中,當(dāng)交通車輛超過30米遠(yuǎn),它其實(shí)看起來是一個(gè)非常小的點(diǎn),這讓網(wǎng)絡(luò)估測(cè)距離非常困難。然而,因?yàn)橹鬈囕v的速度在我們的測(cè)試中不超過 72 km/h,30米之內(nèi)的車輛感知可以保證游戲中讓人滿意的控制質(zhì)量。
要維持順暢駕駛,我們的系統(tǒng)可以容忍指標(biāo)估測(cè)中少量的錯(cuò)誤。汽車是一個(gè)連續(xù)系統(tǒng),控制器持續(xù)改正自己的位置。即便是出現(xiàn)一些非常錯(cuò)誤的估測(cè),汽車仍然能夠順暢駕駛,不發(fā)生碰撞。
4.2. 與基準(zhǔn)比較
為了定量評(píng)估基于 TORCS 的直接感知 ConvNet 的表現(xiàn),我們將其與三個(gè)基準(zhǔn)方法進(jìn)行比較。在以下比較中,我們將我們的模型稱為“滿ConvNet”。
1)行為反射 ConvNet:
這項(xiàng)方法使用一個(gè) ConvNet 直接將圖像與方向盤匹配。我們?cè)隈{駛游戲 TORCS 上使用兩組數(shù)據(jù)來訓(xùn)練這個(gè)模型:(1)訓(xùn)練組(超過60,000個(gè)圖像)都在空白跑道駕駛中收集起來,任務(wù)是遵循跑道行駛;(2)訓(xùn)練組(超過80,000個(gè)圖像)是在有交通車輛的情況下收集起來,任務(wù)是遵循跑道行駛、在轉(zhuǎn)換車道時(shí)避免碰撞、并超過前方的慢速車。我們項(xiàng)目網(wǎng)站上的視頻顯示了典型的表現(xiàn)。對(duì)于(1),行為反射系統(tǒng)只要簡(jiǎn)單遵循空跑道駕駛。對(duì)于(2),在與收集訓(xùn)練數(shù)據(jù)的同一個(gè)跑道測(cè)試時(shí),訓(xùn)練系統(tǒng)顯示出了通過向左或向右轉(zhuǎn)避免碰撞的一些能力。但是,駕駛路線是錯(cuò)誤的。駕駛行為與正常人類司機(jī)的駕駛行為非常不同,而且無法預(yù)測(cè)——主車輛與前方車輛經(jīng)常碰撞。
2)間接感知(車道監(jiān)測(cè)):
我們?cè)?TORCS 畫面上運(yùn)行 Caltech 車道監(jiān)測(cè)器。因?yàn)橹荒芸煽勘O(jiān)測(cè)到兩個(gè)車道,我們將前兩個(gè)監(jiān)測(cè)到的車道標(biāo)記線的樣條曲線錨定點(diǎn)坐標(biāo)匹配到基于車道的可供性指標(biāo)。我們訓(xùn)練一個(gè)由8個(gè)支持向量機(jī)(SVR)和6個(gè)支持向量分類(SVC)模型組成(使用 libsvm)的系統(tǒng),來完成匹配(對(duì)于間接感知方法是必須的一步)。系統(tǒng)布局與圖9所示的基于 GIST 的系統(tǒng)(下一個(gè)部分)相似,但是沒有車輛感知。
圖9:GIST 基準(zhǔn)。使用 SVR 和 SVC 將 GIST 描述符號(hào)與13個(gè)駕駛可供性指標(biāo)的匹配過程。
因?yàn)?Caltech 車道監(jiān)測(cè)器是一個(gè)相對(duì)較弱的基準(zhǔn),為了讓任務(wù)更簡(jiǎn)單,我們創(chuàng)造了一個(gè)特別訓(xùn)練組和測(cè)試組。訓(xùn)練組(2430個(gè)樣本)和測(cè)試組(2533個(gè)樣本)都從同一個(gè)跑道收集(不在 ConvNet 的7個(gè)訓(xùn)練跑道之中),沒有交通車流,用更好的圖像像素 630 x 480。我們發(fā)現(xiàn),即便當(dāng)用同一個(gè)跑道訓(xùn)練和測(cè)試的時(shí)候,基于 Caltech 的跑道監(jiān)測(cè)器的系統(tǒng)仍比我們的模型表現(xiàn)更差。我們將我們的錯(cuò)誤度量定義為可供性估測(cè)和路面實(shí)況距離之間的絕對(duì)平均誤差(MAE)。兩個(gè)系統(tǒng)錯(cuò)誤之間的比較顯示在表格1中。
表格1:針對(duì) Caltech 車道監(jiān)測(cè)器基準(zhǔn)的測(cè)試組的絕對(duì)平均誤差(角度單位為度,其余單位都為米)。
3)用 GIST 直接感知
我們將手動(dòng)打造的 GIST 描述符號(hào)與在我們模型中 ConvNet 卷積層習(xí)得的深度特征進(jìn)行比較。一組13個(gè) SVR 和6個(gè) SVC 模型經(jīng)過訓(xùn)練,將 GIST 特征轉(zhuǎn)化為我們系統(tǒng)中定義的13個(gè)可供性指標(biāo)。過程如圖9中所示。GIST 描述符號(hào)將圖片分割為 4 x 4 的部分。因?yàn)橛筛偷?2 x 4 部分表征的地面可能與駕駛更相關(guān),我們?cè)趯?shí)驗(yàn)中嘗試了兩種設(shè)置:(1)轉(zhuǎn)化整個(gè) GIST 描述符號(hào),(2)轉(zhuǎn)化 GIST 描述符號(hào)中較低的 2 x 4 部分。我們將這兩種基準(zhǔn)分別稱為“全GIST”和“半GIST”。
由于 libsvm 的限制,如果使用包含484,815個(gè)樣本的完整數(shù)據(jù)庫(kù)就太過昂貴了。我們使用一個(gè)訓(xùn)練庫(kù)的子集,包含86,564個(gè)樣本用于訓(xùn)練。訓(xùn)練子集中的樣本在兩個(gè)雙車道配置的訓(xùn)練跑道上收集。為了進(jìn)行公平的比較,我們用同一個(gè)訓(xùn)練子集庫(kù)訓(xùn)練了另一個(gè) ConvNet,進(jìn)行了80,000次迭代(被稱為“ConvNet子集”)。測(cè)試庫(kù)是在三個(gè)雙車道配置、帶有車流的測(cè)試跑道上手動(dòng)駕駛車輛收集的,包含8,639個(gè)樣本。
表格2:針對(duì) GIST 基準(zhǔn)的測(cè)試組的絕對(duì)平均誤差(角度單位為度,其余單位都為米)。
結(jié)果如表格2所示。其中 dist (車距)錯(cuò)誤是當(dāng)?shù)孛鎸?shí)況車輛在前方 [2, 50] 米時(shí)計(jì)算的。在兩米以內(nèi),鄰近車道的車輛在圖像中不能視覺化呈現(xiàn)。
表格2所示的結(jié)構(gòu)顯示,基于 ConvNet 的系統(tǒng)比基于 GIST 的系統(tǒng)表現(xiàn)好得更多。通過比較“ConvNet子集”和“滿ConvNet”,很明顯,更多的訓(xùn)練數(shù)據(jù)能有效增強(qiáng)基于 ConvNet 的直接感知系統(tǒng)的精度。
5、用真實(shí)世界數(shù)據(jù)測(cè)試
5.1. 智能手機(jī)視頻
我們?cè)谟弥悄苁謾C(jī)攝像頭拍攝的真實(shí)駕駛視頻,測(cè)試了我們基于 TORCS 的直接感知 ConvNet。雖然在兩個(gè)不同的領(lǐng)域訓(xùn)練和測(cè)試,我們的系統(tǒng)仍顯示出了較好的性能表現(xiàn)。尤其是車道感知模塊的表現(xiàn)特別好。算法能夠決定正確的車道配置、在正確的車道定位車輛、并識(shí)別車道轉(zhuǎn)變。車輛感知模塊的噪音更多一些,可能是因?yàn)?TORCS 中的車輛計(jì)算機(jī)圖形模型看起來與真實(shí)車輛還是挺不同的。測(cè)試結(jié)果請(qǐng)參照我們項(xiàng)目網(wǎng)站上的視頻。系統(tǒng)在真實(shí)視頻上運(yùn)行的截圖展示在圖 10b 中。因?yàn)槲覀儧]有路面實(shí)況測(cè)量,只有估測(cè)進(jìn)行了視覺化。
圖10:測(cè)試基于 TORCS 的系統(tǒng)。估測(cè)作為空盒顯示,而路面實(shí)況以實(shí)盒指明。在真實(shí)視頻測(cè)試時(shí),沒有地面實(shí)況,我們只能顯示估測(cè)。
5.2. 在KITTI 數(shù)據(jù)庫(kù)進(jìn)行車距估測(cè)
為了定量分析直接感知方法在真實(shí)圖像上運(yùn)行如何,我們?cè)?KITTI 數(shù)據(jù)庫(kù)上訓(xùn)練了一個(gè)不同的 ConvNet。任務(wù)是估測(cè)前方其他車輛的距離。
KITTI 數(shù)據(jù)庫(kù)包含超過40,000個(gè)立體圖像對(duì),由一輛駕駛穿越歐洲城區(qū)的車輛拍攝。每一個(gè)立體對(duì)都伴有一個(gè) Velodyne LiDAR 3D 點(diǎn)云文件。大約12,000個(gè)立體對(duì)帶有附近車輛位置的正式 3D 標(biāo)簽,因此我們可以很容易抽取圖像中與其他車輛的位置。基于 KITTI 的 ConvNet 設(shè)置是從先前基于 TORCS 的 ConvNet 轉(zhuǎn)變而來。在大部分 KITTI 圖像上根本沒有任何車道標(biāo)記,因此我們不能定位車輛在哪一條車道行駛。對(duì)于每個(gè)圖像,我們?cè)诹愀叨绕矫嫔隙x一個(gè)2D 坐標(biāo)系統(tǒng):原點(diǎn)是主車輛的中心,y 軸是沿著主車輛的駕駛方向,x 軸是指向主車輛的右方(圖11a)。我們讓 ConvNet 估測(cè)系統(tǒng)中主車輛“前方”車輛的坐標(biāo)。
在一個(gè)典型的 KITTI 圖像中可以有很多車輛,但是只有那些與主車輛最近的才對(duì)駕駛決策有重要意義。因此,沒必要監(jiān)測(cè)所有的車輛。我們將主車輛前方的空間根據(jù) x 軸分為3個(gè)區(qū)域:1)中央?yún)^(qū)域,x ∈ [ -1.6, 1.6 ] 米,其中車輛在主車輛的直接正前方。2)左側(cè)區(qū)域,x ∈ [ -12, 1.6 ) 米,其中車輛在主車輛的左方。3)右側(cè)區(qū)域,x ∈ (1.6, 12 ] 米,其中車輛在主車輛的右方。我們不關(guān)心這些范圍以外的車輛。我們訓(xùn)練 ConvNet 來估測(cè)每一個(gè)區(qū)域(圖11a)中最近的車輛的坐標(biāo) ( x, y )。這樣,這個(gè) ConvNet 有6個(gè)輸出。
因?yàn)檩斎雸D像的低像素,遠(yuǎn)處的車輛很難被 ConvNet 所發(fā)現(xiàn)。我們采用了一個(gè)雙 ConvNet 結(jié)構(gòu)。近距離 ConvNet 覆蓋前方2-25米(在y軸),其輸入是大小調(diào)整為 497 x 150 像素的整個(gè) KITTI 圖像。遠(yuǎn)距離 ConvNet 覆蓋前方15-55米,其輸入是一個(gè)裁剪過的 KITTI 圖像,覆蓋中央 497 x 150的區(qū)域。最終距離估測(cè)是這兩個(gè) ConvNet 輸出的結(jié)合。我們?cè)诖蛟煊?xùn)練樣本時(shí),大部分是從有正式標(biāo)簽的 KITTI 圖像中來,有一些額外的樣本是我們自己標(biāo)簽。最終數(shù)量是大約14,000個(gè)立體對(duì)。這還是不足以成功訓(xùn)練 ConvNet。我們通過使用左側(cè)攝像頭和右側(cè)攝像頭的圖像,來增強(qiáng)數(shù)據(jù)庫(kù),并增加不包含任何車輛的反面樣本。我們最終的訓(xùn)練組包含61,894個(gè)圖像。兩個(gè) ConvNet 都用這組數(shù)據(jù)訓(xùn)練,進(jìn)行了50,000次迭代。我們另外給2,200個(gè)圖像做了標(biāo)簽,作為測(cè)試組,我們會(huì)用來計(jì)算數(shù)字估算錯(cuò)誤。
5.3. 與基于 DPM 的基準(zhǔn)比較
我們將我們基于 KITTI 的 ConvNet 與頂尖的 DPM 車輛檢測(cè)器(一種間接感知方法)進(jìn)行比較。DPM 汽車監(jiān)測(cè)器是由 Geiger 等人的研究提供,并為 KITTI 數(shù)據(jù)庫(kù)最優(yōu)化。我們將監(jiān)測(cè)器在全像素圖像上運(yùn)行,并通過使用校準(zhǔn)的攝像模型,將下方邊界的中點(diǎn)投射到地平面(零高度),從而將邊界盒轉(zhuǎn)化為距離測(cè)量。由于地平面是平的,投射非常精確,對(duì)于大部分 KITTI 圖像都是這樣。DPM 可以監(jiān)測(cè)到圖像中的多個(gè)車輛,我們可以選擇最近的車輛(主車輛的左側(cè)一輛、右側(cè)一輛、直接正前方一輛)來計(jì)算估測(cè)錯(cuò)誤。由于圖像是在主車輛駕駛中拍攝的,許多圖像中最近的車輛只在左下角或右下角部分出現(xiàn)。DPM 不能監(jiān)測(cè)到這些部分車輛,而 ConvNet 可以更好地處理這些情況。為了讓比較更加公平,我們只計(jì)算最近的車輛完全顯示在圖像中的錯(cuò)誤。當(dāng)交通流量車輛在前方50米以內(nèi)(在 y 坐標(biāo)上)出現(xiàn)時(shí)我們計(jì)算錯(cuò)誤。當(dāng)沒有車輛的時(shí)候,地面實(shí)況設(shè)置為50米。這樣,如果任何一個(gè)模型出現(xiàn)誤報(bào)都會(huì)被懲罰。表格3顯示 x 軸和 y 軸的 MAE、以及汽車位置的估測(cè)和路面實(shí)況之間的歐式距離 d。圖11b 顯示了一個(gè)系統(tǒng)截圖。
圖11:KITTI 數(shù)據(jù)庫(kù)上的車輛距離估測(cè)。(a)坐標(biāo)系統(tǒng)根據(jù)主車輛定義。我們將空間分割為3個(gè)區(qū)域,目標(biāo)是估測(cè)每一區(qū)域中最近車輛的坐標(biāo)。(b)我們將我們的直接感知方法與基于 DPM 的間接感知相比較。KITTI 圖像的中央裁剪部分(左上圖像中的黃色盒子所示,顯示在坐下圖像)發(fā)送至遠(yuǎn)距離 ConvNet。DPM 的邊界盒輸出,以及其在 LiDAR 視覺化(右側(cè))距離投射,顯示在紅色部分。ConvNet 輸出和路面實(shí)況分別由綠色和黑色盒子表征。
表格3:KITTI 測(cè)試組上的MAE(單位為米)。錯(cuò)誤計(jì)算是通過懲罰(1-3欄)及不懲罰誤報(bào)(4-6欄)。
從表格3中我們看到,我們的直接感知 ConvNet 與頂尖的間接感知基準(zhǔn)有類似的性能體現(xiàn)。由于 KITTI 數(shù)據(jù)庫(kù)上密集雜亂的車流以及有限的訓(xùn)練樣本,我們的 ConvNet 在一些測(cè)試樣本中有稍稍較多的誤報(bào)。如果我們不懲罰誤報(bào),ConvNet 比 DPM 基準(zhǔn)的錯(cuò)誤更少,這意味著其對(duì)于真實(shí)車輛的直接距離估測(cè)比基于 DPM 的方法更加精準(zhǔn)。從我們的經(jīng)驗(yàn)中來看,簡(jiǎn)單地加入更多訓(xùn)練樣本就能減少誤報(bào)問題。注意,DPM 基準(zhǔn)需要一個(gè)平整的地平線用于投射。如果主車輛在不平整的道理駕駛(例如小山),投射會(huì)引入非常大量的錯(cuò)誤。我們還嘗試打造 SVR 回歸模型,將 DPM 邊界盒輸出與距離測(cè)量匹配。但是最后,回歸量遠(yuǎn)沒有投射精準(zhǔn)。
6、視覺化
要理解 ConvNet 神經(jīng)元如何對(duì)輸入圖像進(jìn)行回應(yīng),我們可以將激活模式視覺化。在一個(gè)由21,100個(gè)樣本的圖像數(shù)據(jù)庫(kù)上,針對(duì)第一個(gè)完全聯(lián)接層中的4,096個(gè)神經(jīng)元中的每一個(gè),我們從數(shù)據(jù)庫(kù)中選出100個(gè)最能激活神經(jīng)元的圖像,并將其平均,獲得這個(gè)神經(jīng)元的激活模式。這樣,我們了解了這個(gè)神經(jīng)元從訓(xùn)練中學(xué)到了什么。圖12顯示了一些隨機(jī)選擇的平均圖像。我們觀察到,神經(jīng)元的激活模式與主車輛的駕駛方向、車道標(biāo)記的位置以及交通流量車輛有很強(qiáng)關(guān)聯(lián)性。因此,我們相信 ConvNet 已經(jīng)發(fā)展出了針對(duì)具體任務(wù)的特征。
圖12:神經(jīng)元的激活模式。激活模式顯示出與主車輛的駕駛方向、車道標(biāo)記的位置和交通流量車輛有很強(qiáng)關(guān)聯(lián)性。
對(duì)于 ConvNet 中的某一卷積層,可以通過以像素單位展示所有過濾回應(yīng)中的最高值,來生成一個(gè)回應(yīng)地圖。因?yàn)槌跏驾斎雸D像中的物品位置信息保存在回應(yīng)地圖中的,我們可以知道對(duì) ConvNet 來說,在進(jìn)行可供性指標(biāo)估測(cè)時(shí)圖像的異常區(qū)域在哪里。我們?cè)趫D13中顯示在 KITTI 測(cè)試圖像的樣本上,近距離 ConvNet 的第4個(gè)卷積層的回應(yīng)地圖。我們觀察到,ConvNet 對(duì)附近車輛的位置有很強(qiáng)反應(yīng),這意味著它學(xué)會(huì)了在估測(cè)距離時(shí)“看”這些車子。我們?cè)谕粋€(gè)圖表中還顯示了我們基于 TORCS 的 ConvNet 的一些回應(yīng)地圖。這個(gè) ConvNet 對(duì)車道標(biāo)記有很強(qiáng)的反應(yīng)。
圖13:我們基于 KITTI(1-3行)和 TORCS(4-5行)的 ConvNet 的回應(yīng)地圖。ConvNet 對(duì)附近車輛和撤掉標(biāo)記有很強(qiáng)的反應(yīng)。
7、結(jié)論
這篇論文中,我們基于直接感知,提出了一種新的自動(dòng)駕駛范式。我們的表征利用一個(gè)深度 ConvNet 架構(gòu)來估測(cè)駕駛行為的可供性,而非解析整個(gè)圖像(間接感知方法),或者盲目地將一個(gè)圖像與駕駛指令直接匹配起來(行為反射方法)。實(shí)驗(yàn)顯示,我們方法的性能表現(xiàn)在虛擬和真實(shí)環(huán)境中都更加出色。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。