【自動駕駛】深度學習用於自動駕駛技術 DeepDriving(ICCV 2015)

無人駕駛技術在最近幾年得到了迅猛發展,今天將分享 ICCV 2015 的一篇有關方面的論文:

DeepDriving: Learning Affordance for Direct Perception in Autonomous Driving

有興趣的讀者可以參考其官網鏈接。本文並非完全翻譯該論文,主要說明其思想和創新點。

1. 相關研究論述

目前相關研究主要集中於兩種方法,第一種方法基於中間的檢測方法,第二種方法基於直接映射法。本文作者提出了第三種方法,作者通過提出一組可用於自動駕駛的場景描述指標,通過精確的學習這些指標的值,最後完成決策。

1.1 基於中間檢測的方法

這種方法需要通過計算機視覺中的檢測方法檢測與駕駛相關的各種目標,包括標誌線,交通標誌,信號燈,其他車輛,行人等等。將這些目標檢測出來之後,通過一種方法將其合併到最終的決策。

這種方法的缺點在於,爲了進行自動駕駛,算法必須將所有的信息考慮在內。實際上,無人車所處的環境中大部分信息都是無用信息,即對無人車的駕駛沒有幫助,考慮全部的信息顯然會增加算法的複雜程度。

無人車駕駛有一個鮮明的特點,就是其輸出的信息維度很低。我們只需要速度和方向這兩個指標就可以進行無人車駕駛。但是基於中間檢測的方法提供了一個非常高維度的中間信息,因此含有很多冗餘。

實際上,目前的目標檢測方法一般都是將障礙物用矩形框框起來表示,實際上在無人駕駛中,我們更需要的是障礙物與無人車之間的距離,而並不需要知道障礙物的具體位置。因此,本文的方法中並沒有直接套用傳統的障礙物檢測方法,而是直接學習障礙物與自身的距離。

另外,作者指出,這種系統僅靠視覺做決策在真實環境中效果不佳,往往需要依賴其他傳感器的信息,包括激光、GPS、雷達等。

1.2 直接映射方法

這種方法的輸入時當前無人車視場中的圖像,輸出是當前的轉向角度,中間使用一個ConvNet進行學習。這種方法相對簡單,其需要的訓練數據是人駕駛車輛進行一段時間的圖像採集,同時記錄人爲控制時轉向的角度,即可作爲訓練數據進行學習。

這種方法的缺陷是其對無人車駕駛場景的抽象能力極爲有限,在面對複雜的駕駛情況時難以做出決策:

  • 不同的駕駛人在面對相同情況時可能做出不同的決策。因此,訓練數據中很可能會存在衝突的現象發生,使得這一學習過程稱爲了一個病態問題。例如:當前方出現車輛時,有的人會選擇超車,有的人會選擇跟車。
  • 將圖像直接映射爲轉向角度的抽象程度太低,這種描述無法提供對當前環境的完整描述。例如:在這種方法中,超車這一完整動作將被視爲先左轉,然後直行,一段時間後再右轉。僅此而已,缺乏更強的表達能力。

2.方法

2.1 數據來源

數據從無人駕駛仿真平臺 TORCS(The Open Racing Car Simulator) 中採集。這其實是一個賽車遊戲,通過人爲進行賽車遊戲,在遊戲中記錄作者定義的各種指標,完成數據採集。

2.2 將圖像映射到自定義的affordance

本文使用了一個卷積神經網絡(ConvNet)來講原始的圖像映射到定義的狀態指示器(affordance indicators)。本文重點模擬高速公路的行駛場景,在高速公路上,需要無人車對當前車道和旁邊兩個車道的狀況進行記錄,根據這三個車道的信息進行決策。常見的情況如下圖所示:
這裏寫圖片描述

高速公路的駕駛狀態可以被分類爲兩個類別:
- in lane system
- on marking system (遇到障礙物需要變道超車或跟車行駛)

爲了支持這兩種行爲,我們定義了一個系統來表達這兩種系統之間的協調關係。本文共定義了13個indicator來指示當前的駕駛環境,根據不同indicator的輸出來最終決策。
這裏寫圖片描述

這13個indicator在不同的駕駛狀態下部分可能處於激活狀態,而另一部分可能處於不活躍狀態。

2.3 通過indicator來控制無人車

當計算出文中定義的13個indicator之後,可以將這些指標用於轉向控制。

我們的目標是最小化無人車當前位置與當前車輛中心線的距離。用 discenter 表示當前無人車與中心線的距離。則轉向角度爲:

steerCmd=C(angledistcenter/roadwidth)

其中 C 是一個係數。當無人車變道時,目標道路也隨之改變。

在每一幀中,系統將會計算理想的速度,通過理想速度與當前速度的關係來控制無人車當前需要加速或者減速。

文中定義了通過13個indicator到車輛動作的控制器:
這裏寫圖片描述

3.實現

卷積神經網絡的實現基於Caffe,網絡結構使用標準的 AlexNet。含有5個卷積層,其後含有4個全連接層。全連接層的維度分別爲4096,4096,256和13。輸出層爲13分別表示13個indicator的值。損失函數使用歐幾里得函數。因爲這13個indicator的值有不同的取值範圍,因此我們將其歸一化到[0.1, 0.9]。

我們選擇了 7 種車和 22 種地圖,如下。
這裏寫圖片描述

ConvNet 的輸入圖像是經過下采樣的原始圖像,大小爲 280*210。同時訓練數據中加入了極端的駕駛條件,如 off the road 以及 collide with other cars 等,通過這些使得神經網絡更具魯棒性。

共計採集了48W+圖像,訓練過程與AlexNet非常相似,不同之處在於訓練樣本並非方形而是長方形。同時,我們沒有在原始數據樣本中做任何形變處理。將數據打亂進行訓練,初始的 learning rate=0.1,batch_size=64。經過了140000次迭代後停止。

在測試過程中遇到的問題: 當超車時,由於無人車無法感知到位於車輛後方的環境的信息,而僅通過正前方的信息進行決策,因此無無人車在超車時無法知道附近車道是否安全,後方是否會有速度更快的車。

4. 在Torcs虛擬環境中的測試和評價

在Torcs提供的虛擬環境中,ConvNet被用作車輛的控制器。爲了評價我們的13個indicator的值是否能對外界環境有完整的描述能力,我們在測試時選用了訓練數據中不存在的的樣本。

這裏寫圖片描述

在實驗中做了如下假設:把當前車作爲參考目標,其在垂直方向的位置是固定的,僅僅水平移動(根據算法提供的角度angle)。交通中的其他車輛僅僅垂直移動。

4.1 定性描述

經過測試,我們的系統可以在Torcs中完成各種地圖並且沒有任何碰撞發生,當處於變道超車操作時,車輛在變道時會發生稍微偏離道路中心線的情況,但是能夠很快矯正過來。我們定義的模型在探測距離無人車周圍30m內的其他車輛時非常精確,在30m-60m的範圍內漸漸存在一些噪聲。因爲在280*210的圖像中,處於30m之外的其他車輛在圖像中會變成一個非常小的點,使得神經網絡很難去估計距離。然而,由於無人車的速度不會超過72km/h,因此僅僅探測30m之內的其他車輛對於我們的系統來說已經足夠。

爲了平穩駕駛,我們的系統可以忍受indicator測量的適當的誤差。無人車系統是一個連續的系統,即使偶爾某幾次出現了測量錯誤,也不會影響其平穩駕駛。

整個系統架構如下所示:
這裏寫圖片描述

4.2 與baseline進行比較

爲了定量描述在Torcs測試中的效果,我們與其他baseline方法進行如下比較。

1. Behavior reflex ConvNet

這種方法將圖像直接映射成轉向角度,完全依靠一個神經網絡進行學習。我們在Torcs中訓練這個模型,基於如下假設:

(1) 訓練樣本全部在空的道路上採集,即沒有其他車輛。無人車僅需要跟隨標誌線駕駛。
(2)訓練樣本在真是的交通環境中採集,無人車的任務是跟隨標誌線,同時完成超車動作。

在任務1的測試中,這種 behavior reflex 系統能夠完成任務。在任務2中,系統表現出了一定的跟車和超車的能力,但是發生了碰撞,同時其駕駛行爲是不穩定的。這種不穩定的駕駛決策不同於人在駕駛時的行爲。

2. mediated perception(基於標誌線檢測)

我們根據【文末參考文獻1】中的方法完成標誌線檢測。

(建議讀者閱讀這篇文獻,否則可能無法理解該方法)

因爲僅有左右兩條標誌線的檢測比較可靠,因此我們通過SVC(支持向量分類)和SVR(支持向量迴歸)將標誌點檢測映射到我們定義的13個indicator中。

我們訓練了一個系統,包括 8 個支持向量迴歸(SVR) 和 6 個支持向量分類器,使用libsvm工具完成。系統模型如下:
這裏寫圖片描述


因爲標誌線檢測的baseline在效果方面可能較弱,因此我們創建了訓練數據和測試數據來使得這個任務更簡單。所有訓練數據(2430 samples)和測試數據(2533 samples)都通過同一輛車來收集。在實驗中發現,即使訓練數據和測試數據都出自於同一輛車,這種標誌線檢測方法仍然很容易發生錯誤,我們定義錯誤矩陣爲平均絕對值誤差(MAE),代表13個指標的檢測結果與真實值的距離。下圖是比較結果:
這裏寫圖片描述

3. Direct Perception with GIST(略)

5. 在真實環境中測試

5.1 真實視頻測試

在真實環境的測試中,我們選用了一段蒐集拍攝的視頻作爲測試。雖然訓練是在Torcs中,而測試是在真實環境中,但在測試中其表現也很好。尤其是關於標誌線檢測的幾個indicator表現穩定,能夠爲無人車提供可靠的位置信息。車輛檢測的幾個indicator的表現稍微含有一些噪聲,因爲torcs中的車輛和真實環境中的車輛有些不同。

5.2 KITTI測試集中測試車輛距離

爲了定性的描述我們的方法在真實數據集中對於車輛距離的檢測是否準確,我們使用 KITTI 數據集進行測試,測試無人車在行進過程中與前方車輛的距離。

KITTI 數據集包括了超過 40000 個雙目立體視覺圖片,在歐洲的城市道路上拍攝,每一組圖片都有點雲文件,通過點雲可以採集出於前方車輛的距離。

在KITTI數據集上測試時,我們搭建的神經網絡不同於之前的神經網絡,因爲在大多數KITTI的圖像中,並沒有標誌線的存在,因此我們無法通過檢測標誌線來定位車輛。 在每張圖片中,我們定義了一個二維座標系:座標系的原點是無人車,y軸指向無人車的前方,x軸指向無人車的右側方向。卷積神經網絡的優化的目標是找到前方車輛在這個座標系中的(x,y) 座標。座標系的定義如下圖所示:
這裏寫圖片描述

在原始的 KITTI 圖像中有許多圖片,但是僅僅部分情況下,即當前方車輛與無人車相距較近且位於同一車道時,對前方車輛的位置檢測是必要的。因此我們根據座標系的定義將無人車周圍的車輛分爲三種區域。

1)中心區域,xϵ[1.6,1.6] ,前方車輛與無人車處於同一個車道上
2)左側區域,xϵ[12,1.6] ,前方車輛處於無人車的左側
3)右側區域,xϵ[1.6,12] ,前方車輛處於無人車的右側

我們不考慮這三種區域之外的其他區域的車輛。我們訓練了一個卷積神經網絡來估計(x,y) 座標,因此神經網絡有6個輸出。

我們採用了兩個卷積神經網絡,近距離範圍的卷積神經網絡用於探測 2-25m 的距離內的車輛,選用圖像分辨率爲 497*150,遠距離的神經網絡用於探測 15-55m 的區域,其輸入時經過剪裁後的圖片,僅包括中心區域。最終的距離估計是這兩個神經網絡的輸出的結合。

同時在訓練時由於訓練樣本不足以訓練一個網絡,文章對訓練數據進行了一些處理。

5.3 與基於 DPM 的目標檢測方法相比較

我們比較了KITTI數據集上訓練的卷積神經網絡與基於DPM的車輛檢測方法。我們在完整的分辨率圖像上運行DPM算法,該算法可以產出圖中每一個車輛的位置信息,用標誌框表示。然後我們再通過投影中心店到無窮遠處的方法將標誌框的位置轉換成與無人車的距離。這一過程使用了攝像機標定模型。這種投影方法在當參考平面是水平的時候非常準確。

DPM算法可以在圖像中探測多個目標,同時在無人車的前方,左側和右側選擇與無人車距離最近的目標,來計算誤差。

由於我們的圖片是在實際駕駛過程中拍攝的,因此與無人車相距最近的目標一般出現在圖片的左下角或者右下角,DPM算法無法探測處於這些地方的無人車,但是卷積神經網絡能夠很好的解決這些情況。

兩種方法的比較結果如下表:
這裏寫圖片描述

在表中,我們觀察到兩種方法的表現類似。分析其原因,發現卷積神經網絡比DPM算法有更多的假正(false positive)樣本。根據我們的經驗來看,假正樣本的出現主要是由於沒有更多的訓練樣本導致的。

另外,DPM在探測目標時,需要一個平坦的地面作爲投影來計算距離,因此在不平坦的路面上,如山地等,這種方法表現糟糕。

6. 神經網絡的可視化

爲了理解卷積神經網絡對於輸入圖像的反饋,我們可視化了激活的pattern,即卷積神經網絡的特徵。在21100的數據集中,爲每一個全連接層的的神經元,我們選擇了100個最能激活該神經元的樣本,然後取平均值。通過這種方法,我們可以大略的認識到卷積神經網絡學到了什麼。

下圖隨機的展示了幾個激活pattern,可以看到神經元會被無人車的方法、標誌線的位置、交通中的其他目標所激活,因此我們相信,卷積神經網絡已經學習到了能夠用於自動駕駛的特徵。

在卷積神經網絡的每一層中,一個response map可以被表示成在所有filter對每一個輸入像素激活值最高的值。我們選擇了幾張輸入圖片,第四個卷積層的response map如下圖所示。可以看出卷積神經網絡對附近的車輛有很高的激活值。同時對標誌線的檢測也有很高的激活值。

這裏寫圖片描述

7. 結論

直接看原文吧

In this paper, we propose a novel autonomous driving paradigm based on direct perception. Our representation leverages a deep ConvNet architecture to estimate the affordance for driving actions instead of parsing entire scenes (mediated perception approaches), or blindly mapping an image directly to driving commands (behavior reflex ap- proaches). Experiments show that our approach can per- form well in both virtual and real environments.

結束

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章