实例演示

​用例介绍,目前为用户提供了c/c++/python三种编程语言覆盖预处理推理接口用例。 示例目录命名规则:编程语言+解码模块+预处理模块+推理接口模块

ssd300示例目录

软件流程

编程接口语言

运行环境

cpp_cv_cv_bmrt

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

C / C++

soc/pcie/cmodel

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,和cpp_cv_cv_bmrt三个用例来做以下三种模式下的编译运行演示。以下示例演示默认用户已经按照第三章内容进行了bmodel的转换。

  • soc模式用例演示

  • pcie模式用例演示

  • cmodel模式用例演示

SOC模式用例演示

  1. 解压sdk开发包并运行docker开发环境,本实例都基于此docker环境

    $ tar –zxf  bmnnsdk2d-bm1684_v2.0.1.tar.gz
    $ cd bmnnsdk2-bm1684_v2.0.1
    $ ./docker_run_bmnnsdk.sh
    # cd scritps
    # ./install_lib.sh nntc
  2. 实例代码编译:

    # cd ../examples/SSD_object/cpp_cv_bmcv_bmrt/
    # make -f Makefile.arm clean && make -f Makefile.arm
    # make -f Makefile.arm install
  3. 将install目录拷贝到soc单板进行测试:

    **根据第三章转换的bmodel进行测试**
    **"SOC_BOARD_IP"字符串替换为实际的soc单板ip地址**
    # scp -r /workspace/install linaro@SOC_BOARD_IP:/data/
    # exit
    $ ssh linaro@SOC_BOARD_IP
    $ cd /data/install
    **float32模型测试**
    $ sudo ./bin/ssd300_cv_bmcv_bmrt.arm image res/ssd300/vehicle_1.jpg model/ssd300/fp32_ssd300.bmodel 1
    **int8模型测试** 
    $ sudo ./bin/ssd300_bmcv_object.arm image res/ssd300/vehicle_1.jpg model/ssd300/int8_ssd300.bmodel 1

PCIE模式用例演示

  1. 解压sdk开发包并运行docker开发环境,本示例都基于此docker环境

    $ tar –zxf  bmnnsdk2d-bm1684_v2.0.1.tar.gz
    $ cd bmnnsdk2-bm1684_v2.0.1/scripts
    $ sudo ./install_driver_pcie.sh && cd ..
    $ ./docker_run_bmnnsdk.sh
    # cd scritps
    # ./install_lib.sh nntc
    # source envsetup_pcie.sh && cd ..
    # cd lib/ffmpeg/x86 && export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH && cd ../../../
    # cd lib/decode/x86 && export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH && cd ../../../
    # cd examples/sail/python3/x86 && pip3 install sophon-2.0.*-py3-none-any.whl
  2. 实例代码编译及运行

    # cd ../examples/SSD_object/cpp_ffmpeg_bmcv_bmrt/
    # make -f Makefile.pcie clean && make -f Makefile.pcie
    # make -f Makefile.pcie install
    # cd ../../../install
    **float32模型测试**
    # ./bin/ssd300_cv_cv_bmrt.pcie image res/ssd300/vehicle_1.jpg model/ssd300/fp32_ssd300.bmodel 1
    **int8模型测试**
    # ./bin/ssd300_cv_cv_bmrt.pcie image res/ssd300/vehicle_1.jpg model/ssd300/int8_ssd300.bmodel 1
  3. pcie状态监控

    $ bm-smi   此命令用于检测pcie工作状态,tpu,mem使用率, 板卡温度等

CMODEL模式用例演示

  1. 解压sdk开发包并运行docker开发环境,本示例都基于此docker环境 $ tar –zxf bmnnsdk2d-bm1684_v2.0.1.tar.gz

    $ tar –zxf  bmnnsdk2d-bm1684_v2.0.1.tar.gz
    $ cd bmnnsdk2-bm1684_v2.0.1
    $ ./docker_run_bmnnsdk.sh
    # cd scritps
    # ./install_lib.sh nntc && cd ..
  2. 实例代码编译及运行

    # cd examples/SSD_object/cpp_cv_cv_bmrt/
    # make -f Makefile.x86 clean && make -f Makefile.x86
    # make -f Makefile.arm f32
    此用例测试了float 32模型示例,运行成功会保存如下图片检测结果:
    out-0_vehicle_1.jpg

打包和发布

​ 待补充

FAQ

​ 待补充

附录

​ BMNNSDK2-bm1684用户手册

Copyright © 2018 Bitmain Technologies. All Rights Reserved. 北京比特大陆科技有限公司

Last updated