【2023·CANN训练营第一季】昇腾AI入门课(上)—— 图片分类实践

举报
yd_213988710 发表于 2023/04/27 14:26:40 2023/04/27
【摘要】 基于Caffe ResNet-50网络实现图片分类的功能(同步推理)该过程参考官方仓库中的样例https://gitee.com/ascend/samples/tree/master/cplusplus/level2_simple_inference/1_classification/resnet50_imagenet_classification实现步骤大致可以分为4个步骤:实验环境的准备...

基于Caffe ResNet-50网络实现图片分类的功能(同步推理)

该过程参考官方仓库中的样例https://gitee.com/ascend/samples/tree/master/cplusplus/level2_simple_inference/1_classification/resnet50_imagenet_classification

实现步骤大致可以分为4个步骤:

  1. 实验环境的准备
  2. 下载模型资源并进行模型转换
  3. 准备测试图片并进行格式转换
  4. 设置环境变量编译运行

实验环境的准备

通过共享镜像创建的主机,并远程连接到创建的主机,首次使用需要对环境进行设置以便能切换到有开发环境的用户,如果已经准备好环境可以直接跳到步骤2

我这里使用Xshell进行远程连接,也可以直接使用华为云提供的cloudshell进行远程连接

cke_3060.png

成功登录到服务器后需要重新设置HwHiAiUser的用户密码,切换到HwHiAiUser用户,此时命令行没有回显用户标识,仅显示 $

cke_5671.png

然后需要重新设置shell环境

sudo dpkg-reconfigure dash

执行命令后会跳出一个图形界面,这里选No

cke_8104.png

成功修改配置

cke_10592.png

然后再进行用户切换,可以看到这次命令行能回显HwHiAiUser用户标识,说明设置成功

cke_13748.png


下载模型资源并进行模型转换

通过git命令直接从仓库拉取资源目录

git clone <https://gitee.com/ascend/samples.git>

cke_16011.png

在下载好的文件目录下找到“cplusplus/level2_simple_inference/1_classification/resnet50_imagenet_classification”目录,”resnet50_imagenet_classification“这个目录包含了此实验需要的目录结构,整个实验过程都是围绕在这个目录下进行的,因此这个目录一般被称为样例目录(除了通过git方式进行资源的准备,也可以先将模型资源先下载到本地然后再选择需要的目录进行上传)。

然后需要在样例目录下先创建一个用于存放Resnet-50模型的名为caffe_model的目录,然后cd进入到这个目录通过wget命令进行下载

wget <https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/AE/ATC%20Model/resnet50/resnet50.prototxt>

wget <https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/AE/ATC%20Model/resnet50/resnet50.caffemodel>

等待下载完成后回退到样例目录中进行模型的转换操作

atc --model=caffe_model/resnet50.prototxt --weight=caffe_model/resnet50.caffemodel --framework=0 --output=model/resnet50 --soc_version=Ascend310 --input_format=NCHW --input_fp16_nodes=data --output_type=FP32 --out_nodes=prob:0

cke_18834.png

准备测试图片并进行格式转换

需要先cd进入到样例目录下的用于存放测试数据的data目录,然后通过wget命令进行下载


wget <https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/models/aclsample/dog1_1024_683.jpg>
wget <https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/models/aclsample/dog2_1024_683.jpg>
复制

然后执行转换脚步transferPic.py将图片格式进行处理

python3.6 ../script/transferPic.py

cke_21777.png

设置环境变量编译运行

以共享镜像环境为例,配置示例如下所示:


export DDK_PATH=$HOME/Ascend/ascend-toolkit/latest
export NPU_HOST_LIB=$DDK_PATH/runtime/lib64/stub
复制

在样例目录下创建用于存放编译文件的目录

mkdir -p build/intermediates/host

切换到’build/intermediates/host‘,执行编译命令(以共享镜像环境为例)

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

cke_24095.png

执行运行命令

make

cke_38409.png

成功执行后可以在样例目录下的out目录中看到main可执行文件,切换至该目录运行该文件

./main

执行成功得到测试图片的Top5置信度


添加自己的测试图片

从视觉中国找了两张图片进行测试

cke_43405.jpeg

cke_45657.jpeg

将图片上传到data目录,并执行格式转换脚本

cke_49124.png

在样例目录中找到src文件夹下的sample_process.cpp文件,将格式转换后的新的文件进行添加

cke_52640.png

然后需要重新进行编译运行的步骤(需要注意如果主机重启过则需要重新配置环境变量),完成编译后执行生成的main文件得到添加测试图片的Top5置信度

cke_55308.png


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。