模型上板运行应用开发说明
RDK X3
模型推理DNN API使用示例说明
概述
本章节介绍模型上板运行 horizon_runtime_sample 示例包的具体用法,开发者可以体验并基于这些示例进行应用开发,降低开发门槛。
示例包提供三个方面的示例:
- 模型推理 dnn API使用示例。
- 自定义算子(custom OP)等特殊功能示例。
- 非NV12输入模型的杂项示例。
详细内容请阅读下文。
小技巧
horizon_runtime_sample 示例包获取请参考 交付物说明。
示例代码包结构介绍
+---horizon_runtime_sample
|── README.md
├── code # 示例源码
│ ├── 00_quick_start # 快速入门示例,用mobilenetv1读取单张图片进行推理的示例代码
│ │ ├── CMakeLists.txt
│ │ ├── CMakeLists_x86.txt
│ │ └── src
│ ├── 01_api_tutorial # BPU SDK DNN API使用示例代码
│ │ ├── CMakeLists.txt
│ │ ├── mem
│ │ ├── model
│ │ ├── resize
│ │ ├── roi_infer
│ │ └── tensor
│ ├── 02_advanced_samples # 特殊功能示例
│ │ ├── CMakeLists.txt
│ │ ├── custom_identity
│ │ ├── multi_input
│ │ ├── multi_model_batch
│ │ └── nv12_batch
│ ├── 03_misc # 杂项示例
│ │ ├── CMakeLists.txt
│ │ ├── lenet_gray
│ │ └── resnet_feature
│ ├── CMakeLists.txt
│ ├── build_ultra.sh # aarch64编译脚本 RDK Ultra 使用
│ ├── build_xj3.sh # aarch64编译脚本 RDK X3 使用
│ └── deps_gcc9.3 # 编译依赖库
│ └── aarch64
├── ultra
│ ├── data # 预置数据文件
│ │ ├── cls_images
│ │ ├── custom_identity_data
│ │ ├── det_images
│ │ └── misc_data
│ ├── model
│ │ ├── README.md
| | └── runtime -> ../../../model_zoo/runtime/horizon_runtime_sample # 软链接指向OE包中的模型,板端运行环境需要自行指定模型路径
│ ├── script # aarch64示例运行脚本
│ │ ├── 00_quick_start
│ │ ├── 01_api_tutorial
│ │ ├── 02_advanced_samples
│ │ ├── 03_misc
│ │ └── README.md
│ └── script_x86 # x86示例运行脚本
│ ├── 00_quick_start
│ └── README.md
└── xj3
├── data # 预置数据文件
│ ├── cls_images
│ ├── custom_identity_data
│ ├── det_images
│ └── misc_data
├── model
│ ├── README.md
| └── runtime -> ../../../model_zoo/runtime/horizon_runtime_sample # 软链接指向OE包中的模型,板端运行环境需要自行指定模型路径
├── script # aarch64示例运行脚本
│ ├── 00_quick_start
│ ├── 01_api_tutorial
│ ├── 02_advanced_samples
│ ├── 03_misc
│ └── README.md
└── script_x86 # x86示例运行脚本
├── 00_quick_start
└── README.md
- 00_quick_start:快速入门示例,基于
dnnAPI,用mobilenetv1进行单张图片模型推理和结果解析。 - 01_api_tutorial:
dnnAPI使用教学代码, 包括 mem, model, resize, roi_infer 和 tensor 五部分。 - 02_advanced_samples:特殊功能示例,包括 custom_identity, multi_input, multi_model_batch 和 nv12_batch 功能。。
- 03_misc:非NV12输入模型的杂项示例。
- xj3:RDK X3开发板示例运行脚本,预置了数据和相关模型。
- ultra: RDK Ultra开发板示例运行脚本,预置了数据和相关模型。
- build_xj3.sh:RDK X3程序一键编译脚本。
- build_ultra.sh:RDK Ultra程序一键编译脚本。
- deps/deps_gcc9.3:示例代码所需要的三方依赖, 用户在开发自己代码程序的时候可以根据实际情况替换或者裁剪。
注意
私有模型上板运行,请参考 00_quick_start/src/run_mobileNetV1_224x224.cc 示例代码流程进行代码重写,编译成功后可以在开发板上测试验证!