【VLN环境配置】Matterport3DSimulator——用于视觉语言导航的虚拟仿真引擎环境配置

【VLN环境配置】Matterport3DSimulator——用于视觉语言导航的虚拟仿真引擎环境配置

在这里插入图片描述
github官方教程:https://github.com/peteanderson80/Matterport3DSimulator

前提准备

注:

构建基于docker的环境

1、先克隆Matterport3DSimulator仓库

# Make sure to clone with --recursive
git clone --recursive https://github.com/peteanderson80/Matterport3DSimulator.git

如果你没有使用——recursive克隆,那么你需要从根目录中手动克隆pybind子模块:

git submodule update --init --recursive

2、构建docker

cd Matterport3DSimulator
docker build -t mattersim:9.2-devel-ubuntu18.04 .

指令解释:该命令用于构建一个基于Dockerfile的Docker镜像,并将其命名为 mattersim:9.2-devel-ubuntu18.04

  • docker build:这是 Docker 构建命令,用于根据当前目录中的 Dockerfile 构建一个 Docker 镜像。Dockerfile 定义了镜像的构建步骤和内容;

  • -t mattersim:9.2-devel-ubuntu18.04-t--tag 的缩写,表示为生成的 Docker 镜像打标签;mattersim:9.2-devel-ubuntu18.04 是镜像的名称和标签(其中mattersim 是镜像的名称;9.2-devel-ubuntu18.04 是该镜像的标签(tag),用于标识这个镜像的具体版本,通常标签会指示这个镜像的用途或基础环境,例如 CUDA 9.2 和 `Ubuntu 18.04);

  • .:这个点 (.) 指的是当前目录,表示 Docker 应该在当前目录中查找 Dockerfile 来构建镜像。当前目录包含了构建 Docker 镜像所需的文件、代码、依赖等。

可能的报错

检查构建结果

  • 可以使用docker images指令来查看docker是否构建成功,正常来说会输出如下内容,mattersim就是所构建的docker
REPOSITORY      TAG                     IMAGE ID       CREATED         SIZE
mattersim       9.2-devel-ubuntu18.04   c4e3d9dfa099   19 hours ago    6.61GB

3、准备数据集

  下载解压所下载的数据集,并且设置一个环境变量,用于表示数据集的位置(后续启动docker的时候需要用到这个变量,这里要填绝对路径)

sudo vim ~/.bashrc

添加如下内容

export MATTERPORT_DATA_DIR=<PATH>

之后激活环境

source ~./bashrc

4、启动docker

  在启动之前,要保证命令行所在的路径是刚才克隆的Matterport3DSimulator仓库目录,之后,执行该指令进入docker容器

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

如果docker的安装版本超过19,则可以通过如下指令来进入docker容器

docker run -it --gpus all --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

解释:我们使用nvidia-docker指令启动docker的目的就是为了可以在docker中直接使用本机的GPU资源,而在docker19.03中,增加了--gpus选项,在启动过程中如果使用了该选项,则可以在docker中直接调用GPU,不必再使用nvidia-docker相关的指令了,其中--gpus all表示使用本机上的所有GPU资源。在启动的docker里面输入nvidia-smi指令,如果可以正常输出显卡参数,则说明该docker可以调用本机上的GPU资源。参考链接:https://www.jianshu.com/p/32ad4f448fe5

5、编译环境

  在docker中进入Matterport3DSimulator目录(步骤4中进入Matterport3DSimulator目录是启动前进入,这里进入是docker启动后进入)

cd /root/mount/Matterport3DSimulator
mkdir build && cd build
cmake -DEGL_RENDERING=ON ..
make

这一步是为了安装MatterSim库,安装到系统默认的python环境下面。这里也可以利用conda新建一个环境,之后在新建的环境内部编译安装MatterSim库,需要执行如下指令进行环境编译:

cmake -D PYTHON_EXECUTABLE=[python解释器的路径] -DEGL_RENDERING=ON ..
# 例如:cmake -D PYTHON_EXECUTABLE=/root/miniconda3/envs/mattersim/bin/python -DEGL_RENDERING=ON ..
make

6、测试API

  • 在docker中进入python3环境,使用python指令会默认进入python2环境
python3
  • 测试MatterSim库,如果不报错,说明环境配置成功
import MatterSim

如果提示找不到,则可以将build文件中的MatterSim.cpython-39m-x86_64-linux-gnu.so(名字跟Python版本号有关)和libMatterSim.so文件复制到自己Python的site-packages路径下面,查看当前解释器的site-packages路径,路径一般为anaconda3/envs/[环境名]/lib/[python解释器版本]/site-packages

# 查看site-packages路径
python3 # 进入python环境
import site
site.getsitepackages()

复制过去

cp MatterSim.cpython-39-x86_64-linux-gnu.so [site-packages路径]
cp libMatterSim.so [site-packages路径]

如果引用MatterSim不报错,则说明环境配置成功。

猜你喜欢

转载自blog.csdn.net/qq_50001789/article/details/142621259