1. 程式人生 > >【自動駕駛】深度學習用於自動駕駛技術 DeepDriving(ICCV 2015)

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

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

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

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.

結束