Skip to content
 
 

Repository files navigation

Foundationpose-CPP

About this project

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

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

Update LOG

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. 使用docker来构建运行环境
  cd ${foundationpose_cpp}/docker
  bash build_docker.sh --container_type=trt8 # trt10, jetson_trt8, jetson_trt10
  bash 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 ..
  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

About

基于TensorRT和c++部署的FoundationPose算法,改写自isaac_pose_estimation,部署移植方便,去除了大量复杂依赖

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages