基于Caffe ResNet-50网络实现图片分类(视频解码+同步推理)

该样例是基于Caffe ResNet-50网络来实现图片分类功能,芯片要求是Ascend310、310P和910。在开始前,首先要建议大家点击下方图片,报名CANN训练营活动,然后入群找小助手领取代金券,这样就可以零成本进行样例开发了。

cke_2038.png

本次样例使用的是vdec,VDEC(Video Decoder)负责将H264/H265格式的视频码流解码为YUV/RGB格式的图片。输入码流格式支持H264/H265,若码流中有坏帧、缺帧等情况,解码器VDEC可能会丢帧,下图是VDEC整个过程实现的流程图:

cke_6291.png

参考下方的链接进行样例体验:

samples: CANN Samples - Gitee.com

环境准备

具体的步骤,可以参考我之前发的文章,这里简单介绍下,首先购买华为云弹性云服务器,如图:

cke_9235.png

通过下方链接下载CANN8版本的软件包和驱动:

社区版资源下载-资源下载中心-昇腾社区

社区版-固件与驱动-昇腾社区

上传到服务器,执行命令升级CANN版本。

样例准备及运行

下载样例和resnet50模型等样例相关文件上传到对应的文件夹:

cke_12144.png

ATC转换模型文件:

atc --model=caffe_model/resnet50.prototxt --weight=caffe_model/resnet50.caffemodel --framework=0 --soc_version=Ascend310 --insert_op_conf=caffe_model/aipp.cfg --output=model/resnet50_aipp

命令执行后,需要等待一会,我们借此正好简单介绍下上面参数的含义,--model代表需要转换的模型文件;--weight代表的是权重文件;--framework为原始的框架,0代表caffe,1代表mindspore,3代表tensorflow,5代表onnx;soc_version代表的是芯片型号,insert_op_conf代表算子配置文件;--output代表的是模型的输出位置。

cke_15105.png

编译运行

配置环境变量,需要注意的是$HOME是你的CANN安装路径,比如我的安装路径上在/usr/local,所以需要改成合适的路径,否则编译会失败。

export DDK_PATH=$HOME/Ascend/ascend-toolkit/latest

export NPU_HOST_LIB=$DDK_PATH/runtime/lib64/stub

创建编译文件存放位置:

mkdir -p build/intermediates/host

因为我的运行环境和开发环境一致,如果环境不一致,参考样例提供的样例命令执行,进入文件夹并编译:

cd build/intermediates/host

cmake ../../../src -DCMAKE_CXX_COMPILER=g++ -DCMAKE_SKIP_RPATH=TRUE

如下图说明编译成功:

cke_18097.png

如果上面的环境配置错误,那么有可能在编译时会出现如下错误:

cke_21142.png

样例运行

切换到样例的out路径下,里面有个main文件,一般是有执行权限的,如果没有需要为其增加权限。

cd ../../../out  ./main

输出如下图,代表样例执行成功:

cke_24225.png

  • 35
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值