晟腾A200移植Yolov3模型

基于MxBase 的yolov3视频流推理样例

1 介绍

本开发样例是基于mxBase开发的端到端推理的C++应用程序,可在昇腾芯片上实现视频流的目标检测,并把可视化结果保存到本地。代码网址:mindxsdk-referenceapps: MindX SDK Reference Apps - Gitee.com

 2 准备工作

2.1 模型转换

step1: 在ModelZoo上下载YOLOv3模型。[下载地址](https://mindx.sdk.obs.cn-north-4.myhuaweicloud.com/mindxsdk-referenceapps%20/contrib/ActionRecognition/ATC%20YOLOv3%28FP16%29%20from%20TensorFlow%20-%20Ascend310.zip)

step2: 将获取到的YOLOv3模型pb文件存放至:"./model/"。

step3: 进行模型转换

①. 设置环境变量(请确认install_path路径是否正确)

    bash . /usr/local/Ascend/ascend-toolkit/set_env.sh # Ascend-cann-toolkit开发套件包默认安装路径,请根据实际安装路径修改。

②. 执行以下命令转换YOLOv3模型

  atc --model=./yolov3_tf.pb --framework=3 --output=./yolov3_tf_bs1_fp16 --soc_version=Ascend310 --insert_op_conf=./aipp_yolov3_416_416.aippconfig --input_shape="input:1,416,416,3" --out_nodes="yolov3/yolov3_head/Conv_6/BiasAdd:0;yolov3/yolov3_head/Conv_14/BiasAdd:0;yolov3/yolov3_head/Conv_22/BiasAdd:0"

  执行完模型转换脚本后,会生成相应的.om模型文件。

2.2 相关参数修改

①. main.cpp文件中,添加模型路径与 rtsp 流源地址(需要自行准备可用的视频流,视频流格式为H264)

initParam.modelPath = "{yolov3模型路径}";

 std::string streamName = "rtsp_Url";

VideoProcess.cpp文件中,设置视频的宽高值

const uint32_t VIDEO_WIDTH = {视频宽度};

const uint32_t VIDEO_HEIGHT = {视频高度};

2.3 配置CMakeLists

set(MX_SDK_HOME {SDK实际安装路径})

set(FFMPEG_PATH {ffmpeg安装路径})

3. 编译与运行

3.1编译

新建sample_build.sh文件,写入如下命令:

path_cur=$(dirname $0)

cd $path_cur

rm -rf build

mkdir -p build

cd build

cmake .. -DCMAKE_CXX_COMPILER=/usr/bin/g++

make -j4 || {

    ret=$?

    echo "Failed to build"

    exit ${ret}

}

然后运行 bash sample_build.sh

 3.2 运行

bash run.sh

4. 查看结果

执行run.sh完毕后,可视化结果会被保存在工程目录下result文件夹中。


 

  • 6
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值