Project 2 Habitat模拟器与VLN-CE数据集
Project2 任务是复现文章,最难受的是配环境,这里我把可能会遇到的大坑做一些提示。 但是环境的坑,千人千面,遇到问题,随时在群里交流。
任务1 Habitat模拟器的安装与基础操作
说明
为适配VLN-CE的依赖,我们采用老版本 habitat-sim v0.1.7 ,最新版本的安装与使用请自行参考 官方仓库 。
任务步骤
1.通过conda安装habitat-sim
conda create -n vlnce python=3.7 -y
# 注: 这里如果同学们一直有安装困难,可以尝试python 3.8,兼容性更好
conda activate vlnce
conda install -c aihabitat -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ habitat-sim=0.1.7 headless -y
# 注: 如果这里同学们安装完发现headless出问题, 可以尝试以下方式:
# conda install -c aihabitat -c conda-forge habitat-sim=0.1.7=py3.8_headless_bullet_linux_856d4b08c1a2632626bf0d205bf46471a99502b7
如果安装 habitat-sim 太慢或者失败,可以尝试使用 mamba 来提速:
conda create -n vlnce python=3.7 -y
conda activate vlnce
conda install mamba -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ -y
mamba install -c aihabitat -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ habitat-sim=0.1.7 headless -y
测试安装是否成功:
python
>>> import habitat_sim
2.下载示例场景数据
mkdir ~/habitat_sim_data
wget http://dl.fbaipublicfiles.com/habitat/habitat-test-scenes.zip
unzip habitat-test-scenes.zip -d ~/habitat_sim_data
3.运行测试程序
# C++
habitat-viewer ~/habitat_sim_data/data/scene_datasets/habitat-test-scenes/skokloster-castle.glb
任务2 VLN-CE数据集准备
任务目标
获取VLN-CE项目代码:
git clone https://github.com/xmlnudt/VLN-CE.git
获取Habitat Matterport3D(HM3D)场景数据:
wget http://kaldir.vc.in.tum.de/matterport/download_mp.py
python2 download_mp.py --task habitat -o VLN-CE/data/scene_datasets/mp3d/
HM3D场景数据官方网站:https://aihabitat.org/datasets/hm3d/
获取VLN-CE的R2R数据集:
R2R_VLNCE_V1-3.zip: https://drive.google.com/file/d/1T9SjqZWyR2PCLSXYkFckfDeIs6Un0Rjm/view
R2R_VLNCE_v1-3_preprocessed.zip: https://drive.google.com/file/d/1fo8F4NKgZDH-bPSdVU3cONAkt5EW-tyr/view
下载后解压到 VLN-CE/data/datasets/R2R_VLNCE_V1-3 以及VN-CE/data/datasets/R2R_VLNCE_v1-3_preprocessed 中
也可以采用命令行的方式:
# R2R_VLNCE_v1-3
gdown https://drive.google.com/uc?id=1T9SjqZWyR2PCLSXYkFckfDeIs6Un0Rjm
# R2R_VLNCE_v1-3_preprocessed
gdown https://drive.google.com/uc?id=1fo8F4NKgZDH-bPSdVU3cONAkt5EW-tyr
获取预训练网络权重: 任务3中运行VLN-CE基线模型时,需要用到预训练的encoder网络权重
wget https://dl.fbaipublicfiles.com/habitat/data/baselines/v1/ddppo/ddppo-models.zip
unzip ddppo-models.zip -d VLN-CE/
任务3 VLN-CE基线模型复现
任务目标
运行VLN-CE的基线模型
说明
VLN-CE的基线模型依赖facebook的habitat-lab,因此需要先从源码安装habitat-lab,才能运行基线模型,
任务步骤
安装依赖
sudo apt-get install -y libgl1-mesa-dev libgl1-mesa-glx libglib2.0-0 libsm6 libxext6 libxrender-dev libgomp1
安装habitat-lab
git clone --branch 0.1.7 https://github.com/xmlnudt/habitat-lab.git
cd habitat-lab
pip install --no-cache-dir -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
pip install --no-cache-dir -r habitat_baselines/rl/requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
pip install --no-cache-dir -r habitat_baselines/rl/ddppo/requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
python setup.py develop --all
注意:由于VLN-CE依赖的tb-nightly在tuna源中无法安装,请使用aliyun源。
安装VLN-CE依赖
cd VLN-CE
pip install -r requirements.txt
注:这里是大坑,同学们可以尝试把 requirements.txt 里的 tensorfiow 升级到2.2.0。 VLN-CE对于现在来说还是太老了,相信很多学生会卡在这里
这我给同学们一点参考推荐,可以把几个requirements 里的库进行适当适配:
VLN-CE/reguirements.txt:
attrs>=19.1.0
dtw==1.4.0
fastdtw==0.3.4
gdown
gym>=0.17.3
jsonlines
lmdb
msgpack_numpy
networkx
numpy>=1.16.1
pre-commit
torch>=1.6.0
torchvision==0.2.2.post3
tqdm>=4.0.0
tensorflow==2.2.0
tb-nightly
yacs>=0.1.5
Opencv-python>=3.3.0
habitat-lab/requirements.txt:
attrs>=19.1.0
dtw==1.4.0
fastdtw==0.3.4
gdown
gym>=0.17.3
jsonlines
lmdb
msgpack_numpy
networkx
numpy>=1.16.1
pre-commit
torch>=1.6.0
torchvision==0.2.2.post3
tqdm>=4.0.0
tensorflow==2.2.0
tb-nightly
yacs>=0.1.5
Opencv-python>=3.3.0
habitat baselines/rl/requirements.txt:
moviepy>=1.0.1
torch>=1.3.1
tensorflow==2.2.0
tb-nightly
habitat baselines/rl/ddppo/requirements.txt:
ifcfg
运行测试代码
cd VLN-CE
python run.py --exp-config vlnce_baselines/config/r2r_baselines/nonlearning.yaml --run-type eval
训练seq2seq模型
cd VLN-CE
python run.py --exp-config vlnce_baselines/config/r2r_baselines/seq2seq.yaml --run-type train
附录
附录1:基于Docker的VLN-CE基础环境
为了简化依赖的安装流程,我们基于Docker构建了Ubuntu 20.04版本的的VLN-CE基础环境镜像,考虑到镜像大小,并没有包含相关数据,需要自行下载并映射到容器中。 首先自行下载VLN-CE所需的数据至 ./data 目录下,然后运行:
docker run -v ./data:/root/VLN-CE/data hccz95/vlnce:main bash
进入容器之后,就可以运行测试代码
python run.py --exp-config vlnce_baselines/config/r2r_baselines/nonlearning.yaml --run-type eval
个人推荐VLN-CE还是自己去配环境好一些!!!!
附录2:目录结构
VLN-CE/
│
├── data/
│ ├── datasets/
│ | ├── R2R_VLNCE_v1-3/
│ | └── R2R_VLNCE_v1-3_preprocessed/
│ ├── ddppo-models/
│ | ├── gibson-0plus-mp3d-train-val-test-blind.pth
│ | ├── gibson-2plus-mp3d-train-val-test-se-resneXt50-rgb.pth
│ | ├── gibson-2plus-resnet50.pth
│ | ├── gibson-2plus-se-resneXt101-lstm1024.pth
│ | ├── gibson-2plus-se-resneXt101.pth
│ | ├── gibson-2plus-se-resneXt50.pth
│ | ├── gibson-2plus-se-resneXt50-rgb.pth
│ | ├── gibson-4plus-mp3d-train-val-test-resnet50.pth
│ | └── gibson-4plus-resnet50.pth
│ ├── scene_datasets/
│ └── scene_datasets/
│ └── mp3d/
│ ├── 1LXtFkjw3qL/
│ ├── 1pXnuDYAj8r/
│ └── ......
├── ...
|
└── README.md
habitat-lab
|
|
└── .......