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

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

【VLN入门介绍】

一文搞懂视觉语言导航,从任务介绍到基本算法讲解:https://blog.csdn.net/qq_50001789/article/details/144676313

【VLN算法笔记】

DUET(CVPR2022),首篇使用Transformer来建模全局图节点相关性的工作:https://blog.csdn.net/qq_50001789/article/details/144632851
AZHP(CVPR2023),使用自适应区域分层规划器来实现层次化导航的目的:https://blog.csdn.net/qq_50001789/article/details/144635128
GridMM(ICCV2023),使用网格记忆图来表征历史轨迹中的场景空间关系:https://blog.csdn.net/qq_50001789/article/details/144652403

【VLN辅助任务】

MLM、SAP、SAR、SPREL——预训练、微调中常用的提点策略:https://blog.csdn.net/qq_50001789/article/details/144633984

【VLN环境配置】

Matterport3DSimulator——用于视觉语言导航算法研发的仿真环境配置:https://blog.csdn.net/qq_50001789/article/details/142621259

在这里插入图片描述
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不报错,则说明环境配置成功。

06-17
### 关于VLN技术文档、库和框架的探讨 视觉语言导航(Visual Language Navigation, VLN)是结合视觉和自然语言处理的一种技术,旨在通过多模态信息实现智能体在环境中的自主导航。以下是对VLN相关技术内容的详细介绍: #### 1. VLN技术文档 VLN的研究主要集中在如何将视觉输入与自然语言指令相结合,以实现智能体的导航任务。文献中提到,VLN需要解决的关键问题包括有效整合多模式信息、克服训练数据有限以及提升模型泛化能力[^2]。此外,由于视频文本数据集的稀缺性,当前许多研究选择基于图像的视觉语言模型来增强泛化能力[^1]。 相关的技术文档通常会涵盖以下主题: - **多模态信息融合**:如何将视觉信息与自然语言指令高效结合。 - **导航策略优化**:基于视觉输入的运动规划算法设计。 - **数据集分析**:介绍用于VLN研究的主要数据集及其特点。 #### 2. VLN库 目前,VLN领域已有一些开源库可供研究人员使用,这些库提供了从数据预处理到模型训练的一站式解决方案。以下是几个典型的VLN库: - **Habitat**:由Facebook AI Research开发,支持在3D环境中进行仿真导航任务。它提供了丰富的API接口,方便用户定义不同的导航场景和评估指标[^4]。 - **Matterport3D**:一个广泛使用的3D室内环境数据集,常用于VLN任务的基准测试。通过该数据集,可以验证模型在复杂环境中的表现[^5]。 ```python # 示例代码:加载Habitat环境 import habitat config = habitat.get_config(config_paths="configs/tasks/pointnav_gibson.yaml") env = habitat.Env(config=config) ``` #### 3. VLN框架 VLN框架的设计通常围绕以下几个方面展开: - **模型架构**:如Seq2Seq模型、Transformer等,用于生成导航路径。 - **训练方法**:包括监督学习、强化学习等策略,以提高模型性能。 - **评估指标**:如Success Rate (SR)、Navigation Error (NE) 等,用于衡量模型的有效性。 一种常见的框架设计是基于Transformer的架构,它能够更好地捕捉语言和视觉之间的关系。例如,以下是一个简单的基于PyTorch的Transformer模型实现示例: ```python import torch import torch.nn as nn class VLNTrajectoryModel(nn.Module): def __init__(self, vocab_size, embed_size, num_heads, hidden_size): super(VLNTrajectoryModel, self).__init__() self.embedding = nn.Embedding(vocab_size, embed_size) self.transformer = nn.Transformer(d_model=embed_size, nhead=num_heads, num_encoder_layers=6, num_decoder_layers=6) self.fc = nn.Linear(hidden_size, vocab_size) def forward(self, src, tgt): src_embed = self.embedding(src) tgt_embed = self.embedding(tgt) output = self.transformer(src_embed, tgt_embed) output = self.fc(output) return output ``` ### 相关技术挑战 尽管VLN技术取得了显著进展,但仍面临一些挑战,例如: - **数据稀缺性**:高质量的视频文本数据集不足,限制了模型的训练效果[^1]。 - **泛化能力不足**:模型在未见过的环境中的表现往往较差[^2]。 ---
评论 15
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

视觉萌新、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值