Uploads%2farticles%2f13149%2f6368081272724171771695603
|
2019-05-15

百度阿波羅榮國棟:如何基于 Unity 打造自動駕駛仿真

如何高效構(gòu)建一個真實的場景主卫,如何對虛擬喚醒中的傳感器信息進行仿真?又該如何評估仿真的效果鹃愤?

在自動駕駛領域簇搅,由于路測效率慢、局限性多软吐,因此瘩将,仿真測試成為自動駕駛測試中非常重要的手段“及遥基于仿真平臺姿现,我們可以訓練自動駕駛汽車在面對不同路況、不同天氣使兔、不同場景的感知建钥、決策等能力,也能檢測自動駕駛算法虐沥。2018 年 12 月熊经,百度阿波羅宣布與 Unity 達成合作泽艘,雙方一起研發(fā)實時仿真產(chǎn)品,以實現(xiàn)開發(fā)人員在現(xiàn)實模擬環(huán)境中測試自動駕駛汽車镐依,以此來增強自動駕駛汽車的安全性和可靠性匹涮。

如今,這一項目進度如何槐壳?阿波羅為什么要使用 Unity 這樣的游戲引擎進行仿真然低?如何高效構(gòu)建一個真實的場景,如何對虛擬喚醒中的傳感器信息進行仿真务唐?又該如何評估仿真的效果雳攘?針對上述問題,在 Unity Shanghai 2019 現(xiàn)場枫笛,百度美國首席工程師榮國棟為我們深入的講解吨灭。

百度美國首席工程師榮國棟

為什么用游戲引擎做自動駕駛仿真?

與其他仿真平臺相比刑巧,基于 Unity 等游戲引擎可以高效地產(chǎn)生一個全棧閉環(huán)仿真喧兄,尤其在感知模塊仿真。因為游戲引擎像建立一個賽車游戲一樣啊楚,可以重構(gòu)三維環(huán)境吠冤,在三維環(huán)境里面模擬相機、激光雷達等信號恭理,這可以大大簡化自動駕駛仿真場景制作的工作量拯辙。

另一方面,游戲引擎可以產(chǎn)生大量的真值(ground truth)蚯斯。榮國棟表示薄风,自動駕駛訓練大量運用了深度學習和神經(jīng)網(wǎng)絡方法,這需要大量帶有標注的數(shù)據(jù)進行訓練拍嵌。目前遭赂,大量數(shù)據(jù)標注都是采用手工標注的方式,耗時横辆、耗力撇他、耗錢。而基于游戲引擎進行仿真訓練過程中狈蚤,可以輸出最準確的真值困肩,包括了不同時間、天氣脆侮、路況锌畸、交通流等數(shù)據(jù)信息馍悟,這同樣可以減少工作量瓶籽。

Unity 有完善的圖形渲染和交互引擎,基于此,我們可以快速搭建高質(zhì)量的仿真環(huán)境艇潭。同時 Unity Asset Store 資源商店中有大量第三方插件資源榜旦,我們可以使用各種資源方便的實現(xiàn)不同的天氣肚邢、路況诈铛、材質(zhì)等效果,加速了開發(fā)的進度谐岁。

如何高效構(gòu)建一個真實的場景醋奠?

構(gòu)建仿真場景的流程大概總結(jié)為:先使用高精度的數(shù)碼相機拍攝大量圖像,再通過軟件重構(gòu)出三維模型伊佃。然而窜司,在實際操作中,這個操作絕非像描述的這么簡單锭魔,三維模型非常復雜的例证,在操作中需要對模型進行簡化,再通過 xNormal 等軟件貼圖迷捧,最后再進行 Cleanup。

而這一系列操作之后胀葱,我們依然沒有辦法得到一個非衬铮「真實」的仿真場景,因為現(xiàn)實世界中會存在各種光照條件——針對這一問題抵屿,還需要用高動態(tài)途徑渲染方式來達到逼真渲染效果庆锦。

在自動駕駛仿真中,最重要的一步是路網(wǎng)構(gòu)建轧葛,這需要高精地圖搂抒,需要了解車道線的連接關系,還要知道紅綠燈交通信息尿扯。目前求晶,百度阿波羅使用的工具是 VectorZeroR 公司的RoadRunner軟件≈运瘢基于這個軟件芳杏,我們可以把 OpenDRIVE 地圖格式轉(zhuǎn)化成阿波羅的高精地圖格式,并展示車道連接關系辟宗,甚至實現(xiàn)對復雜的轉(zhuǎn)盤路況的支持爵赵。

另外,在進行三維環(huán)境生成過程中泊脐,如果對現(xiàn)實世界進行一對一的復現(xiàn)空幻,會導致大量的工作量,因此容客,我們需要將真實世界做了簡化秕铛,以此提高效率约郁。比如說有一條高速公路,大部分路段都是很簡單的路況如捅,只有路口棍现、匝道等區(qū)域路況比較復雜。那么镜遣,我們只需要把這些路口挑選出來己肮,中間簡單的路況可以大大縮短,用很短路把復雜路連接起來悲关。

如何使用構(gòu)建好的場景進行基于攝像頭的仿真谎僻?

在真實場景中,相機捕捉到的畫面是會有畸變的寓辱,包括徑向畸變和切向畸變艘绍,以及 Tone mapping 曲線。然而秫筏,通過 Unity 渲染出來的場景卻沒有畸變诱鞠。因此,在使用 Unity 模擬各種相機的輸出時这敬,需要補充這一部分畸變的信息航夺。

以徑向畸變中的桶形畸變?yōu)槔壳鞍俣劝⒉_有兩種畸變的模擬方式:

  • 反向畸變:我們對輸出圖像的每一個像素用一個反向畸變的公式來進行計算崔涂,得到它在沒有畸變前的圖像位置阳掐,從而讀取該像素點的 RGB 從而實現(xiàn)畸變模擬;
  • 前向畸變:將沒有畸變的圖像用一個稀疏網(wǎng)格來代表冷蚂,然后將每一個網(wǎng)格的頂點根據(jù)畸變公式計算畸變后的位置缭保,然后將網(wǎng)格進行變形,從而實現(xiàn)畸變效果蝙茶。

值得注意的是艺骂,桶形畸變會把圖像縮小一點,所以如果我們要輸出一個 1920*1080 的圖片尸闸,我們實際上需要渲染一個稍微大一點的圖片彻亲。另外,我們可以調(diào)整參數(shù)來實現(xiàn)不同相機的模擬效果吮廉。

如何在虛擬場景里面對感知結(jié)果進行可視化和評估苞尝?

在評估虛擬場景里的感知結(jié)果時,可以將感知模塊識別出來的結(jié)果與 3D 仿真的真值進行評估宦芦。以障礙物比對為例宙址,我們可以將返回包圍盒和真值進行求交,看二者公共部分的體積调卑,公共部分越大越好抡砂。而對于車道線來說大咱,可以通過對車道線采樣,如果采樣點在足夠近的距離有真實車道線則代表這個感知結(jié)果是正確的注益。

同時碴巾,在評估過程中我們可以將感知結(jié)果可視化。值得注意的是丑搔,可視化過程中厦瓢,感知模塊進行在感知計算并返回的過程中需要一段時間,如果直接將感知結(jié)果顯示則會出現(xiàn)結(jié)果與跟屏幕上的車和環(huán)境無法對應的問題啤月。因此煮仇,在實際操作中,我們需要用一個隊列存儲一定時間的環(huán)境谎仲、障礙物的信息浙垫,當感知結(jié)果返回后,通過時間戳找到對應真值郑诺,再將感知結(jié)果和真值進行變換夹姥。

阿波羅自動駕駛仿真的下一步是什么?

目前辙诞,阿波羅已經(jīng)基于 Unity 構(gòu)建了高精度的基于攝像頭的仿真并且對接阿波羅項目的感知模塊佃声。下一步,阿波羅將為感知模塊輸出大大量有標注的數(shù)據(jù)倘要,以供感知算法進行訓練,提高感知結(jié)果十拣。另外封拧,我們也將增加對更多傳感器的支持,比如激光雷達夭问、超聲波等泽西。同時,我們也跟百度研究院合作缰趋,采用數(shù)據(jù)驅(qū)動方式來模擬更加真實的交通流捧杉,提供更加用戶友好的工具,讓用戶更好定制傳感器位置秘血、車流場景味抖、白天黑夜等各種因素。

未來灰粮,百度希望這一仿真作為云服務開放給第三方的開發(fā)者來使用仔涩,并把已經(jīng)標注的數(shù)據(jù)開放出來,甚至幫助定制自己的數(shù)據(jù)集粘舟。用戶可能有自己不同的相機熔脂,不同的激光雷達參數(shù)佩研,利用我們的感知模塊可以生成定制的代表數(shù)據(jù)。

百度將深度結(jié)合 Unity 強大的游戲引擎霞揉,完成更多的原型工作旬薯,為自動駕駛實現(xiàn)更多的功能。

>>
Back to top btn
亚洲AV无码国产精品网址,久久亚洲AV成人出白浆无码国产,日韩AV美乳欧美,永久免费AV无码软件app下载