FoundationPose 6D姿态估计
方法1:基于docker:(不推荐)
理解知识:镜像就像是个安装包–容器才是项目利用镜像环境下的运行环境
方法2.基于Conda(推荐)
部署初准备
VS Code 配置 C/C++ 编程运行环境(保姆级教程)_vscode配置c++环境-CSDN博客
方法2:本地配置:
全网最简洁安装Eigen库方法(Win端+VScode)_eigen库安装-CSDN博客
Foundationpose算法复现_foundationpose复现-CSDN博客
FoundationPose复现及Realsense应用-CSDN博客
【6D位姿估计】FoundationPose 跑通demo 训练记录_foundationpose demo-CSDN博客
数据集制作:
ObjectDatasetTools生成linemod数据集预处理Linemod_preprocessed过程记录_创建 linemod 数据集-CSDN博客
https://blog.csdn.net/qq_53186375/article/details/146321017 制作数据集重点
https://www.cnblogs.com/day1024/p/18948051
或者直接在ubuntu20.04系统–(能跑)—极力推荐
https://blog.csdn.net/qq_41204464/article/details/138619210
1、首先安装 Eigen3
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
然后参考下面命令,创建conda环境
# create conda environment
create -n foundationpose python=3.9
# activate conda environment
conda activate foundationpose
# install dependencies
python -m pip install -r requirements.txt
# Install NVDiffRast
python -m pip install --quiet --no-cache-dir git+https://github.com/NVlabs/nvdiffrast.git
# Kaolin (Optional, needed if running model-free setup)
python -m pip install --quiet --no-cache-dir kaolin==0.15.0 -f https://nvidia-kaolin.s3.us-east-2.amazonaws.com/torch-2.0.0_cu118.html
# PyTorch3D
python -m pip install --quiet --no-index --no-cache-dir pytorch3d -f https://dl.fbaipublicfiles.com/pytorch3d/packaging/wheels/py39_cu118_pyt200/download.html
# Build extensions
CMAKE_PREFIX_PATH=$CONDA_PREFIX/lib/python3.9/site-packages/pybind11/share/cmake/pybind11 bash build_all_conda.sh
#每次进入工程文件和运行的时候,都要执行一遍
conda activate foundationpose
CMAKE_PREFIX_PATH=$CONDA_PREFIX/lib/python3.9/site-packages/pybind11/share/cmake/pybind11 bash build_all_conda.sh
python run_demo.py --debug 2
#动态查看GPU实时情况
watch -n 1 nvidia-smi
#训练 示例1:训练Linemod数据集
python bundlesdf/run_nerf.py --ref_view_dir /home/a/FoundationPose/demo_data/linemod/ref_views --dataset linemod
#训练 示例2:训练YCB-V数据集
/run/user/1000/gvfs/smb-share:server=c1101.local,share=public/yinduo/Project/FoundationPose/ycbv
python bundlesdf/run_nerf.py --ref_view_dir /run/user/1000/gvfs/smb-share:server=c1101.local,share=public/yinduo/Project/FoundationPose/ycbv/ref_views_16 --dataset ycbv

2、基于CAD模型为输入的demo
首先,下载模型权重,里面包括两个文件夹;点击下载(模型权重)
在工程目录中创建weights/,将下面两个文件夹放到里面。

然后,下载测试数据,里面包括两个压缩文件;点击下载(demo数据)
在工程目录中创建demo_data/,加压文件,将下面两个文件放到里面。

运行 run_demo.py,实现CAD模型为输入的demo
python run_demo.py --debug 2# 会显示没有安装torch,原因在于是在本地环境运行的,而非foundationpose环境
/home/a/miniconda3/envs/foundationpose/bin/python /home/a/FoundationPose/run_demo.py
然后看到demo_data/mustard0/,里面生成了ob_in_cam、track_vis文件夹
ob_in_cam 是位姿估计的结果,用txt文件存储,示例文件:
6.073544621467590332e-01 -2.560715079307556152e-01 7.520291209220886230e-01 -4.481770694255828857e-01
-7.755840420722961426e-01 -3.960975110530853271e-01 4.915038347244262695e-01 1.187708452343940735e-01
1.720167100429534912e-01 -8.817789554595947266e-01 -4.391765296459197998e-01 8.016449213027954102e-01
0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00
track_vis 是可视化结果,能看到多张图片:
3、NeRF物体重建训练
下载训练数据,Linemod和YCB-V两个公开数据集的示例:点击下载(RGBD参考数据)

示例1:训练Linemod数据集
修改代码bundlesdf/run_nerf.py,修改为use_refined_mask=False,即98行:
mesh = run_one_ob(base_dir=base_dir, cfg=cfg, use_refined_mask=False)
然后执行命令:
python bundlesdf/run_nerf.py --ref_view_dir /DATASET/lm_ref_views --dataset linemod
#如果是服务器运行,没有可视化的,需要安装xvfb
sudo apt-get update
sudo apt-get install -y xvfb
# 然后执行命令:
xvfb-run -s "-screen 0 1024x768x24" python bundlesdf/run_nerf.py --ref_view_dir model_free_ref_views/lm_ref_views --dataset linemod
重点:1实时摄像头输入
自制foundationpose数据集方法
https://www.cnblogs.com/day1024/p/18948051
Grounded-Segment-Anything本地部署-CSDN博客
进行科学的时候,要在当前终端运行
深度学习环境:env_grounded_segment_anything
export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890
#再到
python grounding_dino_demo.py

571

被折叠的 条评论
为什么被折叠?



