该项目是LightStereo
算法的c++实现,包括TensorRT
、RKNN
、OnnxRuntime
三种硬件平台(推理引擎),并对原工程OpenStereo/LightStereo导出onnx的代码进行了优化,提高其在非nvidia
平台的性能。
- 支持多种推理引擎:
TensorRT
、RKNN
、OnnxRuntime
- 支持异步、多核推理,算法吞吐量较高,特别是
RK3588
平台
![]() |
![]() |
---|---|
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% |
下载git项目
git clone [email protected]:zz990099/lightstereo_cpp.git
cd lightstereo_cpp
git submodule init && git submodule update
使用docker构建工作环境
cd lightstereo_cpp
bash easy_deploy_tool/docker/build_docker.sh --platform=jetson_trt8_u2004 # or jetson_trt8_u2204, nvidia_gpu, rk3588
bash easy_deploy_tool/docker/into_docker.sh
在docker容器内,编译工程. 使用 -DENABLE_*
宏来启用某种推理框架,可用的有: -DENABLE_TENSORRT=ON
、-DENABLE_RKNN=ON
、-DENABLE_ORT=ON
,可以兼容。
cd /workspace
mdkir build && cd build
cmake .. -DBUILD_TESTING=ON -DENABLE_TENSORRT=ON
make -j
在docker容器内,运行模型转换脚本
cd /workspace
bash tools/cvt_onnx2trt.sh
# 或者运行python脚本,将模型转换为rknn
运行测试用例,具体测试用例请参考代码。
cd /workspace/build
./bin/simple_tests --gtest_filter=*correctness
# 限制GLOG输出
GLOG_minloglevel=1 ./bin/simple_tests --gtest_filter=*speed