Matterport3D的github地址:https://github.com/peteanderson80/Matterport3DSimulator
官方提供了两种安装模拟器的方式:使用docker安装,或者不使用docker安装。
文章目录(我选择docker安装)
Ubuntu18.04安装matterport3D simulator的方法
1. 向开源项目组要求数据集
2.用docker安装simulator
3. 运行代码
1. 向开源项目组要求数据集
这里首先要签署一份agreement,然后发到指定的邮箱,过一两个小时就可以收到回复。回复中会附有一个py程序,就可以使用这个py程序来下载数据集了。
详情请见网址:https://niessner.github.io/Matterport/ 中的”Dataset Download“部分。
数据集下载指令:
脚本下载:http://kaldir.vc.in.tum.de/matterport/download_mp.py
Matterport3D数据集有1.3T大小,如果只是想让这个模拟器跑起来,可以只下载matterport_skybox_images和undistorted_camera_parameters,具体指令如下:
python download_mp.py -o [你的下载路径] --type matterport_skybox_images
这里就会默认把90个建筑的数据和相机参数都下载下来,大小一共是20G左右。
如果要下载深度数据,则指令如下:
python download_mp.py -o /home/zhangyong/VLN/data --type undistorted_camera_parameters
注意:这里python要用python2.7版本来运行。
2.用docker安装simulator
用docker来安装不用担心会把现有的环境弄乱掉。!
首先是几点要提前达到的要求:
Nvidia GPU with driver >= 396.37
安装docker,安装教程地址:https://docs.docker.com/engine/install/ubuntu/
安装nvidia-docker2.0,安装教程地址:https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker
注意:CUDA/CuDNN不需要安装,因为这些会在docker image中提供
满足以上条件后,就可以用以下命令行进行安装:
(1) clone git仓库:
# Make sure to clone with --recursive
git clone --recursive https://github.com/peteanderson80/Matterport3DSimulator.git
cd Matterport3DSimulator
(2) 使用Docker进行编译:
docker build -t mattersim:9.2-devel-ubuntu18.04 .
这里如果报错:
需要修改dockerfile.txt 文件如下:
然后会自动把镜远程pull过来,并且顺便把pytorch等安装好,等待一段时间后,显示successfully应该就已经把远程容器拉下来了。
可以用docker images来查看目前docker包括那些容器,出现mattersim就说明成功了。
我们定义一下下载下来的MatterPort3D的数据集所在位置:
sudo gedit ~/.bashrc
打开bashrc,添加以下内容:
export MATTERPORT_DATA_DIR=/home/zhangyong/VLN/data/v1/scans
注意:这里的路径要写绝对路径哦!这是我自己的下载路径,各位替换成自己的路径就可以啦。
然后就可以运行这个容器了:
nvidia-docker run -it --mount type=bind,source=$MATTERPORT_DATA_DIR,target=/root/mount/Matterport3DSimulator/data/v1/scans --volume `pwd`:/root/mount/Matterport3DSimulator mattersim:9.2-devel-ubuntu18.04
成功进入容器,保证自己的命令行所在路径是Matterport3DSimulator目录,执行以下命令:
cd /root/mount/Matterport3DSimulator
mkdir build && cd build
cmake -DEGL_RENDERING=ON ..
make
cd ../
这里我执行第三行代码时报错了 说我python的版本是2.7,至少需要python3 我查看容器里面python2和python3都有,于是我设置python3的优先级更高(容器需要先安装sudo)
apt-get update
apt-get install sudo
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 200
然后运行cmake -DEGL_RENDERING=ON …
虽然有点诡异,但是继续make就行
matterport3D simulator的容器和环境就已经都安装好啦。
(1)预处理数据集
在容器内,执行以下命令:
python3 ./scripts/downsize_skybox.py
注意:这里需要把你下载的数据都解压好,放进你Matterport3DSimulator文件的data 文件里面 目录 data/v1/scans/%/matterport_skybox_images undistorted_camera_parameters
进行测试:
./build/tests ~Timing
(2)开启交互界面
关闭刚才的docker,回到主机,终端输入:
xhost +
然后输入:
nvidia-docker run -it -e DISPLAY -e="QT_X11_NO_MITSHM=1" -v /tmp/.X11-unix:/tmp/.X11-unix --mount type=bind,source=$MATTERPORT_DATA_DIR,target=/root/mount/Matterport3DSimulator/data/v1/scans,readonly --volume `pwd`:/root/mount/Matterport3DSimulator mattersim:9.2-devel-ubuntu18.04
这样就又新建了一个docker容器,接着输入以下命令:
cd /root/mount/Matterport3DSimulator
python3 src/driver/driver.py
OK,到这里为止交互界面就出来啦!(depth是黑的是因为我没下载depth数据)
参考:https://blog.csdn.net/weixin_41848012/article/details/119854292
历时3天 中途装了一次系统 十分感谢谭师兄的帮助