# lightstereo_cpp
**Repository Path**: gitesin/lightstereo_cpp
## Basic Information
- **Project Name**: lightstereo_cpp
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-04-05
- **Last Updated**: 2026-04-05
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# lightstereo_cpp
## About This Project
该项目是`LightStereo`算法的c++实现,包括`TensorRT`、`RKNN`、`OnnxRuntime`三种硬件平台(推理引擎),并对原工程[OpenStereo/LightStereo](https://github.com/XiandaGuo/OpenStereo)导出onnx的代码进行了优化,提高其在`非nvidia`平台的性能。
## Features
1. 支持多种推理引擎: `TensorRT`、`RKNN`、`OnnxRuntime`
2. 支持异步、多核推理,算法吞吐量较高,特别是`RK3588`平台
3. 支持部署后模型的正确性、性能、精度测试。
## Demo
|
|
|
|:----------------------------------------:|:----:|
| **left image** | **disp in color** |
以下带有**opt**标志的代表在原工程[OpenStereo](https://github.com/XiandaGuo/OpenStereo)基础上,优化模型结构后导出的onnx模型,具体请查看[issue_link](https://github.com/XiandaGuo/OpenStereo/issues/212).
带有***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项目
```bash
git clone git@github.com:zz990099/lightstereo_cpp.git
cd lightstereo_cpp
git submodule init && git submodule update
```
### Build Enviroment
使用docker构建工作环境
```bash
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`,可以兼容。
```bash
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容器内,运行模型转换脚本
```bash
cd /workspace
bash tools/cvt_onnx2trt.sh
# 或者运行python脚本,将模型转换为rknn
bash tools/cvt_onnx2rknn.sh
```
### Run Test Cases
运行测试用例,具体测试用例请参考代码。
```bash
cd /workspace/build
# 运行正确性测试
./bin/test_stereo_lightstereo
# 运行性能benchmark
./bin/benchmark_stereo_lightstereo
# 运行精度测试(epe)
./bin/eval_stereo_lightstereo
```
### Prepare Dataset for Evaluation
在[SceneFlow](https://lmb.informatik.uni-freiburg.de/resources/datasets/SceneFlowDatasets.en.html)上下载`flyingthings3d_frames_finalpass`和`flyingthings3d_disparity`,解压后放到`/workspace/test_data/sceneflow/FlyingThings3D`下
## References
- [OpenStereo/LightStereo](https://github.com/XiandaGuo/OpenStereo)
- [EasyDeployTool](https://github.com/zz990099/EasyDeployTool)