2.3 跑通第一个例子:算法迁移

算法迁移部分主要的工作是使用BM1684提供的软件接口,实现原来有caffe/pytorch等框架实现的前后处理、推理等代码。具体接口细节可以参考${BMNNSDK}/examples/SSD_object/cpp_cv_bmcv_bmrt中提供的具体的代码。

下面介绍一下编译方法,此例子支持PCIE模式和SOC模式。

2.3.1 程序编译

进入examples/SSD_object/cpp_cv_bmcv_bmrt目录,执行make命令编译程序:

# 当前所在目录
cd /workspace/examples/SSD_object/cpp_cv_bmcv_bmrt
make -f Makefile.pcie # for PCIE MODE
make -f Makefile.arm  # for SoC MODE

编译完成后,会生成ssd300_cv_bmcv_bmrt.pcie或者ssd300_cv_bmcv_bmrt.arm,支持图片检测或者视频检测,具体参数说明如下:

# 程序参数说明:
# ./ssd300_cv_bmcv_bmrt.xxx image <image file> <bmodel path> <test count> <device id>
# ./ssd300_cv_bmcv_bmrt.xxx video <video url>  <bmodel path> <test count> <device id>

2.3.2 PCIE模式下运行

直接在docker容器终端内执行即可:

# 使用图片测试
# ./ssd300_cv_bmcv_bmrt.xxx image <image file> <bmodel path> <test count> <device id>
./ssd300_cv_bmcv_bmrt.pcie image /workspace/res/image/vehicle_1.jpg \
  ../model/out/fp32_ssd300.bmodel 1 0

运行后,会在当前目录创建results文件夹保存检测结果。

2.3.3 SOC模式下运行

将生成的ssd300_cv_bmcv_bmrt.arm文件,以及bmodel文件和测试图片文件,均拷贝到SE5小盒子上/data目录下,然后再运行(需要配置好环境变量,参考1.5.3 环境配置-SoC)。

输出内容和PCIE的内容类似,此处不再详述。

最后更新于