Skip to content

zz990099/lightstereo_cpp

Repository files navigation

lightstereo_cpp

About This Project

该项目是LightStereo算法的c++实现,包括TensorRTRKNNOnnxRuntime三种硬件平台(推理引擎),并对原工程OpenStereo/LightStereo导出onnx的代码进行了优化,提高其在非nvidia平台的性能。

Features

  1. 支持多种推理引擎: TensorRTRKNNOnnxRuntime
  2. 支持异步、多核推理,算法吞吐量较高,特别是RK3588平台
  3. 支持部署后模型的正确性、性能、精度测试。

Demo

1 1
left image disp in color

以下带有opt标志的代表在原工程OpenStereo基础上,优化模型结构后导出的onnx模型,具体请查看issue_link.

带有async标志的代表使用异步流程进行推理。

nvidia-3080-laptop qps cpu
lightstereo(fp16) - origin 388 150%
lightstereo(fp16) - opt 370 150%
lightstereo(fp16) - origin - async 418 170%
lightstereo(fp16) - opt - async 390 170%
jetson-orin-nx-16GB qps cpu
lightstereo(fp16) - origin 70 65%
lightstereo(fp16) - opt 65 70%
lightstereo(fp16) - origin - async 76 80%
lightstereo(fp16) - opt - async 69 85%
orangepi-5-plus-16GB qps cpu
lightstereo(fp16) - origin 3.7 65%
lightstereo(fp16) - opt 9 35%
lightstereo(fp16) - origin - async 14 210%
lightstereo(fp16) - opt - async 29 90%
intel-i7-11800H qps cpu
lightstereo(fp16) - origin 7 800%
lightstereo(fp16) - opt 9 800%

Usage

Download Project

下载git项目

git clone git@github.com:zz990099/lightstereo_cpp.git
cd lightstereo_cpp
git submodule init && git submodule update

Build Enviroment

使用docker构建工作环境

cd lightstereo_cpp
bash easy_deploy_tool/docker/easy_deploy_startup.sh # 选择对应的平台和环境
bash easy_deploy_tool/docker/into_docker.sh

Compile Codes

支持stereo-matching算法的evaluation

使用-DENABLE_DEBUG_OUTPUT=ON来开启测试log输出

在docker容器内,编译工程. 使用 -DENABLE_*宏来启用某种推理框架,可用的有: -DENABLE_TENSORRT=ON-DENABLE_RKNN=ON-DENABLE_ORT=ON,可以兼容。

cd /workspace
mdkir build && cd build
cmake .. -DENABLE_DEBUG_OUTPUT=OFF \
         -DBUILD_TESTING=ON \
         -DBUILD_EVAL=ON \
         -DBUILD_BENCHMARK=ON \
         -DENABLE_TENSORRT=ON
make -j

Convert Model

在docker容器内,运行模型转换脚本

cd /workspace
bash tools/cvt_onnx2trt.sh
# 或者运行python脚本,将模型转换为rknn
bash tools/cvt_onnx2rknn.sh

Run Test Cases

运行测试用例,具体测试用例请参考代码。

cd /workspace/build
# 运行正确性测试
./bin/test_stereo_lightstereo
# 运行性能benchmark
./bin/benchmark_stereo_lightstereo
# 运行精度测试(epe)
./bin/eval_stereo_lightstereo

Prepare Dataset for Evaluation

SceneFlow上下载flyingthings3d_frames_finalpassflyingthings3d_disparity,解压后放到/workspace/test_data/sceneflow/FlyingThings3D

References

About

LightStereo算法的c++实现,包括TensorRT、RKNN、OnnxRuntime

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •