【全网第一篇】Gibson Env 搭建复现和使用解读

项目网址:http://gibson.vision

论文:http://gibson.vision/Gibson_CVPR2018.pdf

官方github链接:https://github.com/StanfordVL/GibsonEnv

入选 CVPR2018 年的项目 Gibson Environment。这是一个主要适用于机器人导航任务的模拟平台。我们在传统的图形学渲染管线基础上进行了创新,使用神经网络作为渲染引擎 (neural network rendering engine),达到了近乎真实环境的渲染效果。通过和物理引擎的融合,我们可以做到在计算机里1:1地模拟真实环境。

相关工作:

1.我们使用基于图片的渲染 (IBR) 方法,接合神经网络,达到了高效和真实的渲染,可以做到在计算机里1:1地模拟真实环境。

通过Gibson Environment,我们可以把真实的场景 (例如家庭住宅,学校,办公室) 虚拟化,以节约大量在真实环境训练机器人的资源。另一方面,我们可以把虚拟环境中训练出来的机器人部署到真实环境。这为实现真实的强化学习提供了有力的基础。

现阶段很多研究者在虚拟环境中训练机器人,如在计算机游戏GTA5中训练一个自动驾驶模型,但是放到现实中模型读到的真实环境和计算机中的像素呈现有各种色彩、光照等各种差异,这时候模型在现实中无法使用。在我们的工作中,我们使用基于图片的渲染 (IBR) 方法,接合神经网络,达到了高效和真实的渲染。使得能够在计算机中1:1的完全模拟现实世界,在这种环境下训练的模型可迁移到现实中使用。我们的渲染方法是直接从真实环境中采集图片,把渲染的问题定义为“视角合成”问题,即给定几个从已有的视角采集的图片,合成一个新的视角。

2.我们收集并开源了572个建筑物(1440层)的扫描数据集。作为现有最大的数据集,我们比同类数据集(例如matterport3D)大一个数量级

近年来随着实景扫描技术的进步,有大量的楼房,住宅,真实场所被扫描并保存成了虚拟档案。最初,这样的档案主要被应用于房地产网络销售。Gibson Environment可以模拟任何被扫描过的真实环境,这是它的一个巨大优点。你完全可以扫描自己的房子,然后用Gibson Environment为之生成一个虚拟的环境,训练你的扫地机器人。

 

B方式安装gibson

1 环境检查:

The minimum system requirements are the following:

For building from the source(B):

  • Ubuntu >= 14.04
  • Nvidia GPU with VRAM > 6.0GB
  • Nvidia driver >= 375
  • CUDA >= 8.0, CuDNN >= v5
nvidia-smi #查看显卡驱动
cat /usr/local/cuda/version.txt  #查看cuda版本
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

 笔记本环境配置:

NVIDIA-SMI 384.130

CUDA Version 8.0.61

CUDNN_VERSION 6.0.21

2 开始安装

sudo apt-get update 
sudo apt-get install libglew-dev libglm-dev libassimp-dev xorg-dev libglu1-mesa-dev libboost-dev mesa-common-dev freeglut3-dev libopenmpi-dev cmake golang libjpeg-turbo8-dev wmctrl xdotool libzmq3-dev zlib1g-dev

需要预先安装好anaconda3

conda create -n py35 python=3.5 anaconda 
source activate py35 # 剩下的命令要在激活的conda python35中执行
conda install -c conda-forge opencv  #我在这一步安装打confa-forge环境中生成了python36环境
pip install http://download.pytorch.org/whl/cu80/torch-0.3.1-cp36-cp36m-linux_x86_64.whl #这一步与官方不同,根据自己打cuda版本和查看conda——forge中的python版本修改该命令。
pip install torchvision==0.2.0
pip install tensorflow==1.3
git clone https://github.com/StanfordVL/GibsonEnv.git
cd GibsonEnv
./download.sh # this script downloads assets data file and decompress it into gibson/assets folder
./build.sh build_local ### build C++ and CUDA files
pip install -e . ### 注意有空格和一个点,安装已打包好的项目 Install python libraries

注意:

./download.sh 会下载10个G的数据,打开文件看到下载地址

迅雷下载会快很多。下载好了移动到tmp/gibson/

将./download.sh 里面的 两行wget 注释掉,再次运行./download.sh 即可完成解压

如果要运行训练demo,则继续安装OpenAI baselines:

git clone https://github.com/fxia22/baselines.git
pip install -e baselines

至此,gibson env安装完成。 

3 测试

如果采用B方式(源码安装),则不需要docker,确认激活py35环境后,直接输入以下命令即可测试:

python examples/demo/play_husky_nonviz.py

能够使用键盘WSAD控制一个小车在斯坦福的Gates大楼模型里巡视,没有合成视角的输出

I7+1080显卡的笔记本上测试,帧率150 fps左右 

 

python examples/demo/play_husky_camera.py

能够使用键盘WSAD控制一个小车在斯坦福的Gates大楼模型里巡视,同时有来自原图合成的RGB视角和depth视角

该视角与现实有细节的差别,但是基本满足了物体形状和景深与现实11,更容易实现移植到现实

I7+1080显卡的笔记本上测试,帧率在27 fps左右,稍微卡顿

 

类人机器人的测试(按键太多,极难控制,除了跌落无法正常操作):

 

其他的测试文件:

【全网第一篇】Gibson Env 搭建复现和使用解读_第1张图片

 

4 训练

python examples/train/train_ant_navigate_ppo1.py

训练一个蚂蚁机器人在斯坦福的Gates大楼模型里巡视,同时有合成的RGB视角和depth视角的输出

I7+1080显卡的笔记本上测试,每次迭代时间在13 s左右,时间太久,关闭视角输出会得到提升

 

car机器人的训练:

 

其他训练文件:

【全网第一篇】Gibson Env 搭建复现和使用解读_第2张图片

 

5 问题:

conda install -c conda-forge opencv 时发生:

inking packages ...
CondaOSError: OS error: failed to link (src='/home/thu/anaconda3/pkgs/icu-58.2-hfc679d8_0/lib/icu/current', dst='/home/thu/anaconda3/envs/py35/lib/icu/current', type=3, error=FileExistsError(17, 'File exists'))

解决:删掉 home/thu/anaconda3/envs/py35/lib/icu/下的current文件或文件夹,重试

 

 

通过A方法在服务器上安装gibson env:

【全网第一篇】Gibson Env 搭建复现和使用解读_第3张图片

1. install docker and nvidia-docker2.0 first.

暂时不装了,但肯定比方式B要简单。

 

GibsonE5-2697 + tesla v100平台的基准帧率测试:

【全网第一篇】Gibson Env 搭建复现和使用解读_第4张图片

在有直观的视角输出时,分辨率128要比512帧率提升3~6

 

自定义加入的环境场景文件

每一个下载的环境(比如建筑的扫描模型),都需要一个yaml文件,配置了该环境的各种参数。

环境存放在gibson/core/envs

Gibson提供一组方法定义自己的环境动作:

【全网第一篇】Gibson Env 搭建复现和使用解读_第5张图片

 

完整的Gibson环境数据集

Gibson底层的空间数据库包括572栋完整的建筑,由1447层组成,总面积211k m2s。数据库采用三维扫描重建的方法从真实的室内空间中采集。对于每个空间,我们提供:3D重构、RGB图像、深度、表面法线,以及一小部分空间的语义对象注释。在这个页面中,您可以看到每个空间的各种可视化效果,包括3D解剖,使用随机控制的husky代理进行探索,以及标准的点对点导航集。

可以下载各种场景模型用来训练测试。

https://github.com/StanfordVL/GibsonEnv/blob/master/gibson/data/README.md

你可能感兴趣的:(Gibson,Env,Python,Gibson,Env)