在WSL2 Ubuntu22.04 下 FoundationPose 复现踩坑日记
1 简介
由于最近在学习6D位姿估计算法了解到了许多相关的算法,如PVNET、Gen6D、FoundationPose等等,其中我主要学习的是FoundationPose,并对其进行了复现,但是踩坑比较多,所以记录一下。
下面是 FoundationPose 相关信息:
- 标题 FoundationPose: Unified 6D Pose Estimation and Tracking of Novel Objects
- 作者 Nvidia (Bowen Wen Wei Yang Jan Kautz Stan Birchfield)
- 主页 https://nvlabs.github.io/FoundationPose
- 链接 https://arxiv.org/abs/2312.08344
- 代码 https://github.com/NVlabs/FoundationPose
测试环境:
- Windows11 + WSL2 + Ubuntu22.04
- cuda12.6
- miniconda
- RTX4060
- GCC and G++ version : 11.4.0
2 代码复现
2.1 下载相关资产
2.1.1 下载仓库
git clone https://github.com/NVlabs/FoundationPose.git
2.1.2 下载权重
前往此处下载权重,放在weights/目录下。
2.1.3 下载测试数据
前往此处下载测试数据,解压到demo_data/目录下。
2.1.4 下载训练数据(可选)
如果要自己train的话,前往此处下载大规模训练数据
2.1.5 下载经过预处理的参考视图(可选)
如果要跑model-free的少样本学习版本, 前往此处下载,解压到demo_data/目录下。
2.1.6 下载YCB-Video数据集(可选)
如果需要YCB-Video数据集,这是一个200G+的数据集,BOP版做了筛选,在100G左右,前往此处下载,解压到demo_data/目录下。
其他细节看这篇:FoundationPose复现及Realsense应用-阿里云开发者社区
2.2 环境配置
2.2.1 eigen3安装(这里使用手动安装 apt安装有问题)
cd $HOME && wget -q https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.tar.gz && \ tar -xzf eigen-3.4.0.tar.gz && \ cd eigen-3.4.0 && mkdir build && cd build cmake .. -Wno-dev -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS=-std=c++14 .. sudo make install cd $HOME && rm -rf eigen-3.4.0 eigen-3.4.0.tar.gz
2.2.2 创建conda环境
2.2.2.1 安装conda 和 cuda 在wsl上
具体安装 Windows下安装WSL2并配置Cuda、Miniconda和 Torch - 知乎
2.2.2.2 创建Conda环境
conda create -n foundationpose python=3.9
2.2.2.3 安装依赖
# 激活环境
conda activate foundationpose
在执行下面命令之前先进行对应pytorch的版本匹配,具体看这个:Previous PyTorch Versions
由于我的cuda版本是12.6 所以最大支持到cuda12.6,但是这里我安装了12.4的pytorch,因为后面的kaolin和pytorch3d目前还没有到那么高的。
并且先把requirements.txt 文件原来的 torch 、torchvision、torchaudio先注释一下

# 先执行这个命令 pip install torch==2.4.0 torchvision==0.19.0 torchaudio==2.4.0 --index-url https://download.pytorch.org/whl/cu124 # 再执行下面这个命令 python -m pip install -r requirements.txt
安装 NVDiffRast
# Install NVDiffRast python -m pip install --quiet --no-cache-dir git+https://github.com/NVlabs/nvdiffrast.git
安装 Kaolin 安装和torch一样的版本
# Install Kaolin (Optional, needed if running model-free setup) python -m pip install --quiet --no-cache-dir kaolin==0.16.0 -f https://nvidia-kaolin.s3.us-east-2.amazonaws.com/torch-2.4.0_cu124.html
安装PyTorch3D 这里也是安装和pytorch对应的具体看这个PyTorch3D 安装-CSDN博客 pytorch3d官网地址install pytorch3d version: pytorch3d
# pytorch3d
conda install https://anaconda.org/pytorch3d/pytorch3d/0.7.8/download/linux-64/pytorch3d-0.7.8-py39_cu121_pyt241.tar.bz2
最后测试是否安装成功
import torch, torch.version import pytorch3d print(torch.__version__) print(torch.cuda.is_available()) print(torch.version.cuda) print(torch.backends.cudnn.version()) print(pytorch3d.__version__)
2.4.0+cu124 True 12.4 90100 0.7.8
成功之后,执行最后一个命令
# Build and install extensions in repo CMAKE_PREFIX_PATH=$CONDA_PREFIX/lib/python3.9/site-packages/pybind11/share/cmake/pybind11 bash build_all_conda.sh
如果没有任何报错就可以了。
(1)如果出现 coomon.cu出错,具体就是最新的cudaAPI 发生了变化:
具体可以看看github源码上,我之前出现的错误。其他的错误可以看看Issues · NVlabs/FoundationPose
(2)如果boost库有错误,是使用apt-get安装的,先卸载了然后自己编译,具体看这两篇:
如何在 Ubuntu 22.04 上安装 Boost C++
Ubuntu两种方式安装与卸载boost_ubuntu卸载boost-CSDN博客
2.3 如果上面执行都没错就能运行
运行测试
python run_demo.py
如果路径正确会输出以下结果:


其他的可以下载数据集测试按照官方给的命令测试即可。

浙公网安备 33010602011771号