像訓練Dota2一樣訓練真實機器人?Gibson Environment環境瞭解一下

ofollow,noindex" target="_blank">機器之心 轉載
夏斐 何志揚 作者
像訓練Dota2一樣訓練真實機器人?Gibson Environment環境瞭解一下
本文是對斯坦福人工智慧實驗室 Silvio Savarese 教授團隊開發的模擬環境——Gibson Environment 的介紹。原文作者是夏斐,何志揚。該模擬環境的優點在於它是基於真實環境渲染而獲得的,因此在該環境中訓練的智慧體具備很好的真實環境遷移特性,這對於自動駕駛、機器人等技術的低風險、低成本研發都有很大的應用價值。該專案於 9 月初在 GitHub 完全開源,並同時公開了目前最大的 3D 室內資料集。專案網址 gibson.stanford.edu,相關論文曾發表在 CVPR 2018 上。
很高興給大家介紹我們 CVPR 2018 的專案 Gibson Environment。這是一個主要適用於機器人導航任務的模擬平臺。我們在傳統的圖形學渲染 pipeline 基礎上進行了創新,使用神經網路作為渲染引擎 (neural network rendering engine),達到了近乎真實環境的渲染效果。通過和物理引擎的融合,我們可以做到在計算機裡 1:1 地模擬真實環境:
效果圖:我們動態地模擬了斯坦福計算機系 (Gates Building) 一樓的真實場景,讓虛擬機器器人可以在其中進行探索,學習真實世界。我們在 Gibson Environment 裡可以同時「啟用」大量類似的機器人。喜歡電影黑客帝國的讀者可能對這個概念並不陌生。
通過 Gibson Environment,我們可以把真實的場景 (例如家庭住宅,學校,辦公室) 虛擬化,以節約大量在真實環境訓練機器人的資源。另一方面,我們可以把虛擬環境中訓練出來的機器人部署到真實環境。這為實現真實的強化學習提供了有力的基礎。
使用我們的開源平臺來探索啟用的和真實世界的感知。上圖展示了 Gibson 中的兩個智慧體。這兩個智慧體是啟用的、嵌入式的,並服從物理定律和空間(a,b)的約束。它們源源不斷地接收視覺觀察,就好像佩戴了攝像頭,並以第一人稱視角來觀察環境(c)。除了(c)中的 RGB 通道模態,它們還能接收其它模態的觀察,如(d)深度、(e)語義標籤、(f)表面法線。該虛擬環境是通過掃描真實建築得到的。
-
專案網址:http://gibson.vision
-
3D 資料集地址:http://gibson.vision/database
-
論文地址:http://gibson.vision/Gibson_CVPR2018.pdf
-
Github 地址:https://github.com/StanfordVL/GibsonEnv
背景
2016 年起,伴隨深度強化學習的興起,計算機視覺領域的研究重心從靜態影象處理開始轉向動態視覺控制。大量的模擬模擬平臺湧現而出 (例如虛擬駕駛平臺 Carla, 虛擬無人機平臺 Airsim)。
傳統機器人領域傾向於將一個複雜的任務分成感知(perception) 模組和決策 (planning) 模組,而強化學習讓我們可以端到端地學習到更復雜的控制 (end to end control/sensorimotor control),即輸入感測器資訊,然後直接輸出控制訊號。
目前最前沿的強化學習演算法已經在很多端到端任務上獲得了的成功,例如在遊戲中學會解迷宮,在不平的路面上學會行走。在自動駕駛中,從攝像頭拍到的畫面,我們可以直接預測方向盤的轉角和油門剎車。
這樣的任務無法在靜態的資料集(例如ImageNet)中學習。我們需要在一個可互動式的動態環境中訓練智慧體。
上圖涵蓋了目前主流的模擬環境,包括遊戲類的毀滅戰士(VIZdoom)、俠盜獵車(GTA)、駕駛類的 CARLA,物理類的 Roboschool 等。之前提到的解迷宮、行走智慧體就出自這些環境。有了這些成果,我們能不能將智慧體應用於實際生活中,解決駕駛、機器人行走的問題呢?
事實告訴我們,部署到實際中的智慧體往往會因為觀測到的畫素不同而導致結果不理想,甚至失靈。例如在 GTA 中訓練的自動駕駛汽車到了真實世界中,看到從沒有見過的場景,會不幸成為馬路殺手。
可遷移已訓練智慧體的學習環境需要具備三個主要特性:(1)來自真實世界並反映其語義複雜性;(2)具有確保在實際部署結果之前不需要進一步的域適應的機制;(3)智慧體可在環境中具象化,並服從空間和物理定律的約束。
針對這個問題,我們設計了 Gibson Environment,以解決模擬平臺的環境不夠真實 (photorealisitic) 的問題。目前大部分的模擬平臺都是基於計算機圖形學的方法 (例如 THOR, House3D, Carla),而使用這種方法通常很難遷移到真實環境。在我們的工作中,我們使用基於圖片的渲染 (IBR) 方法,結合神經網路,達到了高效和真實的渲染。
Gibson Environment 的名字來源於美國認知心理學之父 James J. Gibson。他提出認知 (perception) 和 行動 (action) 具有非常緊密的聯絡,嬰兒需要通過主動玩耍才能學會識別各種物體。這對於人工智慧也是一樣的。Gibson Environment 的科研價值在於它正是這樣一個環境,讓智慧體可以同時學習認知和行動。
方法
為了渲染出看起來更加真實的畫面,計算機圖形學領域主要有兩條主要的技術線路,一種是通過更仔細的建模和更好的光線追蹤演算法來實現渲染。這種方法在電影製作中十分常見,通常需要消耗大量的計算資源和資金,不適合用於實時渲染的模擬環境。
另一種方法是直接從真實環境中採集圖片,把渲染的問題定義為「視角合成」問題,即給定幾個從已有的視角採集的圖片,合成一個新的視角。我們採用了這種方法作為渲染方法,示意圖如下:
該方法的輸入是環境的 3D 模型(比較粗糙)和從一系列視角採集到的圖片。對於要渲染的任意一個視點,我們選取周圍的 k 個視點,將每個視點的每個畫素投射到 3D 模型上,得到一個三維點雲。之後,我們對 3D 點雲進行簡單的雙線性插值,得到一個初步的渲染結果。
不同於常見 3D 模型材質渲染的方法,我們對於不同的視點選取材質的方法是自適應的(更近的視點取樣更多)。受掃描位置稀疏性、裝置、重建演算法、偽像等因素的限制,植被和小物體等細節大多數時候都無法正確重建。反射表面,例如窗戶和檯面,將在重建的網格上留下孔。這些都導致了渲染輸出的不完整。
為此,我們使用一個卷積神經網路對渲染進行後處理。我們採用兩階段方法,第一階段是點雲的純幾何渲染。我們的 CUDA 點雲渲染器可以以 80fps 渲染 10M 個點的 1024x2048 視訊流。
我們專案的另一個創新是把畫素級域適應 (pixel level domain adaptation) 的機制嵌入到渲染引擎當中。對於渲染影象 I_s 和真實影象 I_t,我們的後處理網路 f 可以讓渲染影象看起來像真實世界中的照片,即 f(I_s)≈I_t。與此同時,我們還訓練了另外一個網路 u,讓真實世界中的照片看上去像我們的渲染影象,即 u(I_t)≈f(I_s)(此處「≈」僅非嚴謹地代表「相似」)。
在深度估計任務上的 Gibson 到真實環境的遷移實驗結果表明,f(I_s) 域和 u(I_t) 域能很好地對齊。
這樣做簡化了機器人在真實世界的部署:只需要在機器人的感測器上接入我們的網路,就能給機器人戴上了一副虛擬的「眼鏡」(goggles),令其在真實環境中感知和 Gibson Environment 一樣的環境。
特性
物理具象化
下圖展示了火柴人從樓梯跌落時的場景,上行的火柴人動作軌跡看上去很符合物理定律,下行是對應的火柴人視角的觀察。
為了使智慧體受到物理和空間的約束,我們將 Gibson 環境與物理引擎相結合。這使我們能夠將智慧體暴露於物理現象,如碰撞、重力、摩擦等。我們的物理模擬器支援剛體和軟體模擬,具有離散和連續的碰撞檢測。使用 GPU 和 OpenGL 優化,我們的環境支援以 100 倍實時速度學習物理相互作用。由於掃描模型預設情況下不具備材料屬性,因此我們的空間不提供真實的物理屬性,例如材料摩擦。我們在物理引擎中預設使用庫侖摩擦模型來模擬它。為了降低計算複雜度,除非使用者啟用,否則我們也不會在物理引擎中對氣流進行建模。相對地,我們為剛體運動提供線性阻尼函式。
優化速度
渲染幀數對於強化學習很關鍵,我們希望能實現更快於實時的模擬幀數。為此,我們實現了 CUDA-優化的渲染 pipeline。在最消耗計算資源的後處理網路執行中,我們在 RGBD 資料上取得了幾十到上百幀數的渲染效能。
強化學習任務
該視訊展示了在 Gibson Environment 中訓練的強化學習策略的一些結果。智慧體執行的是視覺區域性規劃和避障的任務。
資料集
近年來隨著實景掃描技術的進步,有大量的樓房、住宅、真實場所被掃描並儲存成了虛擬檔案。最初,這樣的檔案主要被應用於房地產網路銷售。
斯坦福視覺實驗室(Stanford Vision Lab)是最早將這樣的資料應用於科研的實驗室。在 Stanford 2D3DS 專案中,研究院將斯坦福大學 6 棟主要建築進行了掃描,並取得了一系列突破。在此之後,被應用於科研的實景掃描資料量呈指數式增長。
Stanford 2D3DS:http://buildingparser.stanford.edu/dataset.html
Gibson Environment 可以模擬任何被掃描過的真實環境,這是它的一個巨大優點。你完全可以掃描自己的房子,然後用 Gibson Environment 為之生成一個虛擬的環境,訓練你的掃地機器人。
在我們這次的 release 中,我們收集並開源了 572 個建築物(1440 層)的掃描。作為現有最大的資料集,我們比同類資料集(例如 matterport3D)大一個數量級。
其中每個建築物的虛擬環境資料包含了完整的 3D 網格,如下圖所示:
當智慧體在環境中探索時,可以隨自身的探索觀察到不同型別的動態檢視:
從左到右依次是 RGB 檢視、深度檢視和表面法線檢視。
下圖是該環境的全景展示:
目前我們已經在 GitHub 專案中釋出了一小部分資料集作為環境 Beta 測試的一部分,主要的資料集將會在近期釋出。
討論
在文中,我們對渲染方法做了各種測試,包括速度、和真實影象的差距、以及域適應能否成功實現等,有興趣的讀者可以參考我們的文章。不過由於時間的限制,在 CVPR 的文章裡我們並沒有在機器人上做實驗,近期我們正在進行這些實驗,包括語義導航、語義建圖、目標驅動的三維重建等任務。
ROS Demo
由於面向的是機器人的應用,我們集成了 Gibson 模擬環境和機器人作業系統,ROS 的使用者可以方便地使用 Gibson Env 作為模擬器,來模擬攝像頭或者 kinect 輸入。下圖是用 Gibson 模擬器模擬機器人建圖 (mapping) 的一個簡單 demo:
理論 模擬環境 CVPR 2018 斯坦福大學 計算機視覺
相關資料
Artificial Intelligence
在學術研究領域,人工智慧通常指能夠感知周圍環境並採取行動以實現最優的可能結果的智慧體(intelligent agent)
來源: Russell, S., & Norvig, P. (2003). Artificial Intelligence: A Modern Approach.
Autonomous cars
自動駕駛汽車,又稱為無人駕駛汽車、電腦駕駛汽車或輪式移動機器人,是自動化載具的一種,具有傳統汽車的運輸能力。作為自動化載具,自動駕駛汽車不需要人為操作即能感測其環境及導航。
來源: 維基百科
Neural Network
(人工)神經網路是一種起源於 20 世紀 50 年代的監督式機器學習模型,那時候研究者構想了「感知器(perceptron)」的想法。這一領域的研究者通常被稱為「聯結主義者(Connectionist)」,因為這種模型模擬了人腦的功能。神經網路模型通常是通過反向傳播演算法應用梯度下降訓練的。目前神經網路有兩大主要型別,它們都是前饋神經網路:卷積神經網路(CNN)和迴圈神經網路(RNN),其中 RNN 又包含長短期記憶(LSTM)、門控迴圈單元(GRU)等等。深度學習是一種主要應用於神經網路幫助其取得更好結果的技術。儘管神經網路主要用於監督學習,但也有一些為無監督學習設計的變體,比如自動編碼器和生成對抗網路(GAN)。
來源:機器之心
Computer Vision
計算機視覺(CV)是指機器感知環境的能力。這一技術類別中的經典任務有影象形成、影象處理、影象提取和影象的三維推理。目標識別和麵部識別也是很重要的研究領域。
來源:機器之心
Drones
無人機(Uncrewed vehicle、Unmanned vehicle、Drone)或稱無人載具是一種無搭載人員的載具。通常使用遙控、導引或自動駕駛來控制。可在科學研究、軍事、休閒娛樂用途上使用。
來源: 維基百科
ImageNet
Deep reinforcement learning
強化學習(Reinforcement Learning)是主體(agent)通過與周圍環境的互動來進行學習。強化學習主體(RL agent)每採取一次動作(action)就會得到一個相應的數值獎勵(numerical reward),這個獎勵表示此次動作的好壞。通過與環境的互動,綜合考慮過去的經驗(exploitation)和未知的探索(exploration),強化學習主體通過試錯的方式(trial and error)學會如何採取下一步的動作,而無需人類顯性地告訴它該採取哪個動作。強化學習主體的目標是學習通過執行一系列的動作來最大化累積的獎勵(accumulated reward)。 一般來說,真實世界中的強化學習問題包括巨大的狀態空間(state spaces)和動作空間(action spaces),傳統的強化學習方法會受限於維數災難(curse of dimensionality)。藉助於深度學習中的神經網路,強化學習主體可以直接從原始輸入資料(如遊戲影象)中提取和學習特徵知識,然後根據提取出的特徵資訊再利用傳統的強化學習演算法(如TD Learning,SARSA,Q-Learnin)學習控制策略(如遊戲策略),而無需人工提取或啟發式學習特徵。這種結合了深度學習的強化學習方法稱為深度強化學習。
來源: Scholarpedia
Convolutional neural network
卷積神經網路(Convolutional Neural Network, CNN)是一種前饋神經網路,它的人工神經元可以響應一部分覆蓋範圍內的周圍單元,對於大型影象處理有出色表現。卷積神經網路由一個或多個卷積層和頂端的全連通層(對應經典的神經網路)組成,同時也包括關聯權重和池化層(pooling layer)。這一結構使得卷積神經網路能夠利用輸入資料的二維結構。與其他深度學習結構相比,卷積神經網路在影象和語音識別方面能夠給出更好的結果。這一模型也可以使用反向傳播演算法進行訓練。相比較其他深度、前饋神經網路,卷積神經網路需要考量的引數更少,使之成為一種頗具吸引力的深度學習結構。 卷積網路是一種專門用於處理具有已知的、網格狀拓撲的資料的神經網路。例如時間序列資料,它可以被認為是以一定時間間隔取樣的一維網格,又如影象資料,其可以被認為是二維畫素網格。
來源:Goodfellow, I.; Bengio Y.; Courville A. (2016). Deep Learning. MIT Press. 維基百科
Image processing
影象處理是指對影象進行分析、加工、和處理,使其滿足視覺、心理或其他要求的技術。 影象處理是訊號處理在影象領域上的一個應用。 目前大多數的影象均是以數字形式儲存,因而影象處理很多情況下指數字影象處理。
來源: 維基百科
Planning
人工智慧領域的「規劃」通常是指智慧體執行的任務/動作的自動規劃和排程,其目的是進行資源的優化。常見的規劃方法包括經典規劃(Classical Planning)、分層任務網路(HTN)和 logistics 規劃。
來源:機器之心
self-driving
從 20 世紀 80 年代首次成功演示以來(Dickmanns & Mysliwetz (1992); Dickmanns & Graefe (1988); Thorpe et al. (1988)),自動駕駛汽車領域已經取得了巨大進展。儘管有了這些進展,但在任意複雜環境中實現完全自動駕駛導航仍被認為還需要數十年的發展。原因有兩個:首先,在複雜的動態環境中執行的自動駕駛系統需要人工智慧歸納不可預測的情境,從而進行實時推論。第二,資訊性決策需要準確的感知,目前大部分已有的計算機視覺系統有一定的錯誤率,這是自動駕駛導航所無法接受的。
來源: 機器之心
Robot operating system
ROS,是專為機器人軟體開發所設計出來的一套電腦作業系統架構。它是一個開源的元級作業系統,提供類似於作業系統的服務,包括硬體抽象描述、底層驅動程式管理、共用功能的執行、程式間訊息傳遞、程式發行包管理,它也提供一些工具和庫用於獲取、建立、編寫和執行多機融合的程式。
來源: 維基百科
Reinforcement learning
強化學習是一種試錯方法,其目標是讓軟體智慧體在特定環境中能夠採取回報最大化的行為。強化學習在馬爾可夫決策過程環境中主要使用的技術是動態規劃(Dynamic Programming)。流行的強化學習方法包括自適應動態規劃(ADP)、時間差分(TD)學習、狀態-動作-回報-狀態-動作(SARSA)演算法、Q 學習、深度強化學習(DQN);其應用包括下棋類遊戲、機器人控制和工作排程等。
來源:機器之心

機器之心是國內領先的前沿科技媒體和產業服務平臺,關注人工智慧、機器人和神經認知科學,堅持為從業者提供高質量內容和多項產業服務。