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/ 目录):
在x86 Linux开发主机上编译及运行实例代码
程序运行过程中,可能会出现以下丢弃音频包或者视频帧数据包错误的字样,属正常现象:
终端会打印模型检测结果:
最后也会在results目录下生成检测结果图片,可查看结果图片验证模型检测结果。
pcie状态监控
在x86 Linux开发主机上生成 SSD_object/model/out/int8_ssd300.bmodel 后,执行下面的指令,编译实例代码:
在x86 Linux开发主机上将交叉编译生成的程序install目录拷贝到soc单板
在Soc单板上运行程序进行测试:
在x86 Linux开发主机上操作
在Soc单板终端中操作
和PCIE模式一样,程序运行后终端会打印模型检测结果,并在results目录下生成图片结果out_*.jpg的检测结果图片,可查看结果图片验证模型检测结果。
在x86 Linux开发主机上解压sdk开发包并运行docker开发环境,本示例都基于此docker环境,Docker环境的按照请参考
在x86 Linux开发主机上解压sdk开发包并运行docker开发环境,本实例都基于此docker环境,Docker环境的按照请参考