| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 24 天前 | ||
| 24 天前 | ||
| 24 天前 | ||
| 24 天前 | ||
| 24 天前 | ||
| 24 天前 | ||
| 24 天前 | ||
| 24 天前 | ||
| 24 天前 | ||
| 24 天前 | ||
| 24 天前 |
基于LRStereo-B网络实现双目深度
概述
LRStereo-B是一个轻量的双目立体匹配模型。它在开源模型(Raft-Stereo)的基础上做了大量的模型结构改进和重训。具体功能为输入标定好的左右目图像以及相关的相机参数,获得左目图像对应的深度图。
本案例采用Hi3519DV500主芯片,板端运行Linux,通过双目相机同步采集左右视角图像,结合AI深度模型与NPU加速推理,实时输出640×480的RGB图和深度图。
关于本案例有其他任何疑问欢迎到论坛发帖提问。
如有合作需求,点击主页“合作咨询”联系。
输入输出数据
-
输入数据
输入数据 数据类型 大小 数据排布格式 image RGB_FP32 1 x 3 x 480 x 1280 NCHW -
输出数据
输出数据 数据类型 大小 0 FP32 480 x 640
目录结构
样例代码结构如下所示。
├── data
│ ├── ... //测试数据
├── script
│ ├── evaluate.py //python执行脚本
├── src
│ ├── acl.json //系统初始化的配置文件
│ ├── CMakeLists.txt //编译脚本
│ ├── main.cpp //资源初始化/销毁相关函数的实现文件
├── process
│ ├── lrstereo_process.cpp //模型前后处理
│ ├── lrstereo_process.h //模型前后处理头文件
├── data
│ ├── cfg.txt //模型配置参数
├── model
│ ├── ... //模型文件
├── CMakeLists.txt //编译脚本,调用src目录下CMakeLists文件
├── *.json //模型信息
├── LICENSE //模型LICENSE
推理环境准备
芯片与硬件平台
Hi3519DV500是一款面向视觉行业的超高清智能SoC,最高支持四路Sensor输入,支持主/被动双目视觉3D,集成神经网络推理引擎并支持业界主流的神经网络框架。
开发环境配置
-
2、该模型需要以下环境
表 1 版本配套表
芯片型号 算力引擎 soc_version 环境准备指导 CANN包版本 编译工具链 板端OS SDK Hi3519DV500 SVP_NNN \ 推理环境准备 SVP_NNN_PC_V1.0.6.0 aarch64-mix210-linux-gcc Linux Hi3519DV500R001C01SPC020
模型推理
快速开始
获取本仓源码
备注:以下所有命令均在模型目录下执行
获取om模型文件
网站上提供转化成功的om模型文件,可以从网站上进行下载。(此处下载的模型为海思开源模型,仅供参考)
创建model文件夹,并将om模型文件移动到./model目录下。
mkdir -p model
备注:本案例未提供产品实际om模型文件。
编译代码和运行应用
编译代码
-
切换到样例目录,创建目录用于存放编译文件,例如,本文中,创建的目录为
build。mkdir -p build -
切换到
build目录,执行cmake生成编译文件。当开发环境与运行环境操作系统架构不同时,执行以下命令进行交叉编译。
“../src“表示CMakeLists.txt文件所在的目录,请根据实际目录层级修改。
例如,开发环境为X86架构、运行环境为ARM架构时,执行以下命令进行交叉编译。本案例板端系统为Linux,请使用与Hi3519DV500 SDK匹配的工具链配置文件。
SOC_VERSION需填写当前工程对目标平台定义的值,不能直接沿用原Hi3403V100样例的SS928V100,也不能仅凭芯片名称推定。执行前,将
toolchain和soc_version分别设置为实际工具链文件路径和工程支持的目标平台值。cd build cmake ../src -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE="${toolchain.cmake}" -DSOC_VERSION="${soc_version}" -
执行make命令,生成的可执行文件main在“./out“目录下。
运行应用
-
将modelzoo代码上传到板端运行环境。
-
以运行用户登录板端运行环境。
-
切换到可执行文件main所在的目录,给该目录下的main文件加执行权限。
chmod +x main -
切换到可执行文件main所在的目录,运行可执行文件。测试图片上模型推理命令参考:
./main --acl ../src/acl.json --model ../model/LRStereo-B_480x640_release.om --input ../data/file_list_1.json
安装依赖
# 建议使用python 3.9.11版本
pip install -r requirements.txt
准备数据集
-
获取原始数据集。(解压命令参考tar –xvf *.tar与 unzip *.zip)
本模型使用KITTI15验证集进行推理测试 ,用户自行获取数据集后,将文件解压并上传到当前路径的datasets路径下。数据集目录结构如下所示:
datasets/ |-- kitti15 | |-- testing | |-- training | | |-- image_2 | | | |-- 000000_10.png | | | |-- ... | | |-- image_3 | | | |-- 000000_10.png | | | |-- ... | | |-- disp_noc_0 | | | |-- 000000_10.png | | | |-- ... | ... ... -
数据预处理,将原始数据集转换为模型的输入数据。
执行下面命令获取输入数据列表。
python ./script/generate_file_list.py datasets/kitti15
精度&性能评估
-
登录到板端运行环境,切换到可执行文件main所在的目录,执行数据集上推理命令。
如果想要跑LRStereo-B_480x640_release.om,需要同步修改./data/cfg.txt文件里面的默认尺寸和视差转距离模型路径名称。
./main --model ../model/LRStereo-B_480x640_release.om --input ../data/file_list.json -
精度验证。
调用脚本与数据集标签比对,可以获得Accuracy数据。
python ./script/evaluate.py参数说明:
- --output:推理结果所在路径,默认为./out/result/bin/
例如:
python ./script/evaluate.py --output ./out/result/bin/官方样例在Hi3403V100 SVP_NNN平台上的精度结果如下,仅作历史参考:
accuray epe_meam: 1.4939332485198975 dl_mean: 8.239584974646569 -
验证om模型的性能,
参考命令如下:执行./main --acl ../src/acl.json --model ../model/LRStereo-B_480x640_release.om --input ../data/file_list_1.json注意:需要将cfg.txt中的type设置为0,测试性能的时候不需要视差转距离 参数说明:(此模式下,输入路径为一张图片)
-
--acl: ACL 配置文件路径
-
--model: 指定待验证性能的 OM 模型文件路径。
-
--input: 指定输入数据的列表文件路径(此场景下为单图片路径的配置文件,注意:循环次数通过修改该文件中的loop变量即可)。
官方样例在Hi3403V100 SVP_NNN平台上的性能输出如下,仅作历史参考:
execution time: 43.46ms, frame rate: 23.01fps -
模型推理性能&精度
调用ACL接口推理计算,性能和精度参考下列数据。(仅提供官方案例Hi3403V100 SVP_NNN平台上的数据)
| 芯片型号 | Batch Size | 数据集 | 精度指标D1 | 性能(fps) |
|---|---|---|---|---|
| Hi3519DV500 | \ | \ | \ | \ |
| Hi3403V100 SVP_NNN | 1 | KITTI15 | 8.239 | 23.01 |
免责声明
致ModelZoo使用者
- HiSpark ModelZoo提供的模型仅供您用于非商业目的。
- HiSpark ModelZoo仅提供公共数据集下载、模型下载和预处理脚本。这些数据集和模型不属于ModelZoo,ModelZoo也不对其质量或维护负责。请确保您具有这些数据集和模型的使用许可,如您因使用数据集和模型产生侵权纠纷,海思不承担任何责任。
- 如您在使用ModelZoo模型过程中,发现任何问题(包括但不限于功能问题、合规问题),请在gitcode提交issue,我们将及时审视并解决。
致数据集、模型所有者
如果您不希望您的数据集、模型公布在ModelZoo上或希望更新ModelZoo中属于您的数据集、模型,请在gitcode提交issue,我们将根据您的issue删除或更新您的数据集、模型。衷心感谢您对ModelZoo的理解和贡献。
License声明
HiSpark ModelZoo提供的模型,如模型目录下存在License的,以该License为准。如模型目录下不存在License的,以Apache 2.0许可证许可,对应许可证文本可查阅HiSpark ModelZoo根目录。