Skip to content

Latest commit

 

History

History
122 lines (86 loc) · 4.6 KB

File metadata and controls

122 lines (86 loc) · 4.6 KB

Foundationpose-CPP

About this project

该项目基于nvidia-issac-pose-estimation改写,去除了原项目中的复杂依赖,能够使用FoundationPose的Python工程FoundationPose导出的onnx模型来做推理,部署应用十分方便。

Notes: 该项目只包含了FoundationPose部分的代码,实际上6D位姿检测的运行,还依赖于目标物的掩码,需要运行类似SAM的算法,EasyDeploy项目下提供了MobileSAMNanoSAM的算法实现和推理优化,可供参考。

Update LOG

  • [2025.04] 解耦RegisterTrack过程; 令算法输出mesh下的位姿,提供mesh_loader相关的接口和方法供外部拓展。对应PR
  • [2025.03] 渲染过程与原Python工程对齐,支持无texture纹理输入渲染. 对应PR.
  • [2025.03] 添加对Jetson Orin平台支持,一键配置docker环境

Features

  1. 去除了原工程的复杂环境构建过程,以及各种依赖项问题,能够轻松适配到其他项目工程中。
  2. FoundationPose算法本身做了封装,支持动态尺寸图像输入,简单灵活。
  3. 提供了基于BundleSDF生成目标物三维模型的脚本教程
  4. 🔥 支持Orin开发板(Orin-NX-16GB)

Demo

运行公开数据mustard模型检测结果:

1
foundationpose(fp16) Register test result
1
foundationpose(fp16) Track test result

以下是在nvidia-4060-8G, i5-12600kf硬件上执行结果

nvidia-4060-8G fps cpu gpu
foundationpose(fp16)-Register 2.8 100% 6.5GB
foundationpose(fp16)-Track 220 100% 5.8GB

以下是在jetson-orin-nx-16GB硬件上执行结果

jetson-orin-nx-16GB fps cpu mem_total
foundationpose(fp16)-Register 0.6 15% 5.6GB(5.5GB on gpu)
foundationpose(fp16)-Track 100 60% 5.1GB(5.0GB on gpu)

Usage

Enviroment Build

  1. 下载foundationpose_cpprepo
git clone git@github.com:zz990099/foundationpose_cpp.git
cd foundationpose_cpp
git submodule init
git submodule update
  1. 使用docker来构建运行环境
  cd ${foundationpose_cpp}
  bash easy_deploy_tool/docker/easy_deploy_startup.sh
  # choose `jetson` -> `trt10_u2204`/`trt8_u2204` (`trt8_u2004` will not work)
  bash easy_deploy_tool/docker/into_docker.sh

Convert Models

  1. google drive中下载onnx模型文件,放到/workspace/models/文件夹下。

  2. 运行模型转换脚本

  cd /workspace
  bash tools/cvt_onnx2trt.bash

Compile Code

  1. 编译整个工程
  cd /workspace
  mkdir build && cd build
  cmake -DENABLE_TENSORRT=ON ..
  make -j

Run demo

运行公开数据集demo ---- mustard

  1. 下载数据集,放到/workspace/test_data/下,并解压,下载地址

  2. 直接运行测试用例即可

  cd /workspace/build
  ./bin/simple_tests --gtest_filter=foundationpose_test.test

自制三维模型

  1. 参考利用BundleSDF生成三维模型

  2. 根据您的自定义数据,修改/workspace/simple_tests/src/test_foundationpose.cpp下的路径,重新编译。

  3. 运行测试用例

  cd /workspace/build
  ./bin/simple_tests --gtest_filter=foundationpose_test.test

/workspace/test_data/下,可以看到RegisterTrack两个过程的结果。

References

有任何问题,欢迎联系771647586@qq.com