Deepdrive on Unreal Engine 虛幻4無人駕駛模擬-Introduction

Deepdrive on Unreal Engine 虛幻4無人駕駛模擬-Introduction

5 人贊了文章

很多人提到Deepdrive的第一印象應該是Priceton的Deepdriving項目,以及C. Chen論文《DeepDriving: Learning Affordance for Direct Perception in Autonomous Driving》

論文鏈接:DeepDriving --Proceedings of 15th IEEE International Conference on Computer Vision (ICCV2015)

Princeton的Deepdriving數據是從無人駕駛模擬平台TORCS(The Open Racing Car Simulator)中採集。

Torcs interface

TORCS是一個賽車遊戲,通過人為進行賽車遊戲,在遊戲中記錄作者定義的各種指標,完成數據採集。TORCS - The Open Racing Car Simulator

先不說這些,我最初接觸到的無人駕駛是Craig的Deepdrive 2.0。鏈接:Deepdrive

在2017年,Craig創建了完全開源的GTA訓練項目(Deepdrive 1.0、Deepdrive universe ),通過 OpenAI 的 AI 訓練架構 Universe(極光日報:Universe - AI 訓練平台) 來供研究者在複雜的遊戲中實現類似Deep reinforcement learning等演算法的無人駕駛模擬。


之後由於許可權問題,該項目無法繼續使用GTAV。

後來在Uber的支持下,Craig在Unreal Engine上重建了Deepdrive,也就是現在的Deepdrive 2.0 版本。Animated GIF - Find & Share on GIPHY

採用模擬器旨在提高無人駕駛算真在現實環境中得performance,因為在模擬器中我們可以獲得更精確的控制(Action)來進行Imitation learning。那麼,我們就需要驗證agents can transfer between real and virtual environments。

作者發現,只由真實環境數據訓練的Network在模擬器中的performance也是相當不錯。因此,作者大膽認為:Network由虛擬環境遷移到真實環境的performance是promising的(virtual -> real)。

無論是在虛擬還是真實環境,無人駕駛的問題是相似的(訓練過程中的樣本),但解決方法大相近庭。

例如:在Imitation learning中,當訓練數據和測試數據不是獨立同分布(independently and identically distributed)時,我們就需要Reduce Sampling error。

在真實環境中,通過相機是否移位(即假設視角不變,安裝在車上的左右相機是否朝視野中間移動)來判斷車的左右轉向。然後產生一個糾正方向的action,使車回到路中間行駛,並將這一幀作為一個extra lable。Viewpoint transformation can then interpolate between camera offsets, given the road is flat, to generate additional corrective labels using the same process. 論文鏈接:[1604.07316] End to End Learning for Self-Driving Cars

End to End Learning for Self-Driving Cars

在虛擬環境下:我們只需使汽車偏離路徑,看Oracle path-following Agent是如何糾正路線的。This works on hills, with corrective actions other than lane following, and in general allows for much better imitation learning as we can safely put the car into bad spots and get labels from it.

作者在這裡討論了real world的flat road 還有virtual的hills。

作者從[1504.00702] End-to-End Training of Deep Visuomotor Policies得到靈感:通過motion capture sensors 來訓練神經網路,訓練好的network就可以模仿這些sensors(then swap out those sensors with a network which has learned to mimic them),即在測試的時候,只需要相機作為輸入。

作者把這種想法運用到自動駕駛中: 我們可以通過模擬器中所有可得的數據(any state:3D or planning trajectories)來訓練Agent, providing we can also learn to generate that information from sensors we have in the real-world,簡而言之就是相機。使得訓練時有更多的數據。

接下來要做的就是提升模擬器中的虛擬環境的真實度,逼近真實世界。實現模擬其中的訓練結果也能轉換到真實環境中使用。

而這一步可通過GANs來實現。This is where GANs(Generative Adversarial Nets生成對抗網路)and style transfer methods could help generate contextually realistic training data.


GANs由Ian Goodfellow提出,論文鏈接:Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks 作為一個生成模型,GAN最直接的應用,就是用於真實數據分布的建模和生成,包括可以生成一些圖像和視頻等。通過GANs可使得模擬的數據更加逼真,與真實圖像的差異性盡量小。

參考論文鏈接:

[1707.09405v1] Photographic Image Synthesis with Cascaded Refinement Networks

[1703.10593] Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks

傳統的無監督學習演算法存在兩大難以解決的問題:

  1. 用大量的已知知識對真實環境進行建模,而建模的好壞將直接影響生成模型的表現;
  2. 真實環境數據往往很複雜,使用無監督學習擬合模型的方式計算量非常龐大。

而在GANs對抗網路中,由於判別器的存在,生成器不再需要對於真實環境的先驗知識和複雜建模,也能學習去逼近真實環境,最終讓其生成的數據達到以假亂真的地步。

通過GANs對GTA遊戲中採集的遊戲畫面數據生成逼近真實的場景

  • 參考Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks

The GTA → Cityscapes results of CycleGAN can be used for domain adaptation for segmentation. A segmentation model trained on the Cityscapes-style GTA images yields mIoU of 37.0 on the segmentation task on Cityscapes.

這樣就假裝在模擬器中訓練和在真實環境下的訓練所差無幾了吧。


推薦閱讀:

Automotive radar 信號處理 第8課 目標跟蹤
2017: The Year of Self-driving Car
激光雷達:谷歌Uber曾為此打得不可開交,馬斯克卻說它是無人車的拐杖
簡論智能物流系統的四大元素 -- 倉儲, 物流, 交通, 駕駛
無人駕駛來了,安全怎麼保障?

TAG:虛幻引擎 | 自動駕駛 | 無人駕駛車 |