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