4.7 实例演示

我们在${BMNNSDK}/examples下为用户提供了C/C++/Python三种编程语言覆盖预处理推理接口用例。

示例目录命名规则:编程语言+解码模块+预处理模块+推理接口模块

ssd300示例目录

软件流程

编程接口语言

运行环境

cpp_cv_cv_bmrt

opencv解码 (BGR输出)+ opencv预处理 + inference + 后处理

C / C++

soc/pcie

cpp_cv_bmcv_bmrt

opencv解码(yuv i420输出)+ bmcv预处理 + inference + 后处理

C / C++

soc

cpp_cv_cv+bmcv_bmrt

opencv解码(yuv i420输出)+ cv::bmcv预处理 + bmcv预处理 + inference + 后处理

C / C++

soc

cpp_ffmpeg_bmcv_bmrt

ffmpeg解码 (yuv压缩输出)+ bmcv预处理 + inference + 后处理

C / C++

soc/pcie

cpp_multi_bmcv_bmrt

多线程性能测试用例 ffmpeg/opencv解码+cv+bmcv+inference+后处理+jpg编码

C / C++

soc

cpp_cv_cv+bmcv_sail

opencv解码(yuv i420输出)+ cv::bmcv预处理 + bmcv预处理 + inference + 后处理

C++

soc

cpp_cv_bmcv_sail

opencv解码(yuv i420输出)+ bmcv预处理 + inference + 后处理

C++

soc

cpp_ffmpeg_bmcv_sail

ffmpeg解码 (yuv压缩输出)+ bmcv预处理 + inference + 后处理

C++

soc/pcie

py_ffmpeg_bmcv_sail

ffmpeg解码 (yuv压缩输出)+ bmcv预处理 + inference + 后处理

python

soc/pcie

本章主要用cpp_cv_bmcv_bmrt、cpp_ffmpeg_bmcv_bmrt用例来做以下两种模式下的编译运行演示。以下示例演示默认用户已经按照第三章内容进行了bmodel的转换。

  • PCIE模式用例演示

  • SoC模式用例演示

本示例需要使用到的测试视频(下载后,请保存到${BMNNSDK}/res/video/ 目录):

4.7.1 PCIE模式用例演示

  1. 在x86 Linux开发主机上解压sdk开发包并运行docker开发环境,本示例都基于此docker环境,Docker环境的按照请参考 1.5.1环境配置

  2. 在x86 Linux开发主机上编译及运行实例代码

    程序运行过程中,可能会出现以下丢弃音频包或者视频帧数据包错误的字样,属正常现象:

    终端会打印模型检测结果:

    最后也会在results目录下生成检测结果图片,可查看结果图片验证模型检测结果。

  3. pcie状态监控

4.7.2 SOC模式用例演示

  1. 在x86 Linux开发主机上解压sdk开发包并运行docker开发环境,本实例都基于此docker环境,Docker环境的按照请参考 1.5.1环境配置

  2. 在x86 Linux开发主机上生成 SSD_object/model/out/int8_ssd300.bmodel 后,执行下面的指令,编译实例代码:

  3. 在x86 Linux开发主机上将交叉编译生成的程序install目录拷贝到soc单板

  4. 在Soc单板上运行程序进行测试:

    在x86 Linux开发主机上操作

    在Soc单板终端中操作

和PCIE模式一样,程序运行后终端会打印模型检测结果,并在results目录下生成图片结果out_*.jpg的检测结果图片,可查看结果图片验证模型检测结果。

最后更新于