通用分类网络应用
本Application支持运行在Atlas 200 DK或者AI加速云服务器上,实现了对常见的分类网络的推理功能并输出前n个推理结果。
前提条件
部署此Sample前,需要准备好以下环境:
已完成Mind Studio的安装。
已完成Atlas 200 DK开发者板与Mind Studio的连接,交叉编译器的安装,SD卡的制作及基本信息的配置等
软件准备
运行此Sample前,需要按照此章节获取源码包,并进行相关的环境配置。
1. 获取源码包:图像分类部署和使用-Atlas200dk / sample-classification
将https://gitee.com/Atlas200DK/sample-classification仓中的代码以Mind Studio安装用户下载至Mind Studio所在Ubuntu服务器的任意目录,例如代码存放路径为:
H
O
M
E
/
s
a
m
p
l
e
−
c
l
a
s
s
i
f
i
c
a
t
i
o
n
。
2.
获
取
此
应
用
中
所
需
要
的
原
始
网
络
模
型
。
参
考
表
1
获
取
此
应
用
中
所
用
到
的
原
始
网
络
模
型
及
其
对
应
的
权
重
文
件
,
并
将
其
存
放
到
M
i
n
d
S
t
u
d
i
o
所
在
U
b
u
n
t
u
服
务
器
的
任
意
目
录
,
例
如
:
HOME/sample-classification。 2. 获取此应用中所需要的原始网络模型。 参考表1获取此应用中所用到的原始网络模型及其对应的权重文件,并将其存放到Mind Studio所在Ubuntu服务器的任意目录,例如:
HOME/sample−classification。2.获取此应用中所需要的原始网络模型。参考表1获取此应用中所用到的原始网络模型及其对应的权重文件,并将其存放到MindStudio所在Ubuntu服务器的任意目录,例如:HOME/ascend/models/classification
操作步骤
shift+g到最低端
1.下载代码,并解压缩,切换到解压之后的文件下:
ascend@ubuntu:~/Downloads$ unzip sample-classification-master.zip
ascend@ubuntu:~/Downloads$ cd sample-classification-master/
scend@ubuntu:~/Downloads/sample-classification-master$ ll
如下图所示:
2. 配置环境变量
以Mind Studio安装用户登录Mind Studio所在Ubuntu服务器,并设置环境变量DDK_HOME。
执行如下命令在最后一行添加DDK_HOME及LD_LIBRARY_PATH的环境变量。
ascend@ubuntu:~/Downloads/sample-classification-master$ vim ~/.bashrc
打开vim之后,shift+g到最低端,添加以后两句话
export DDK_HOME=
H
O
M
E
/
t
o
o
l
s
/
c
h
e
/
d
d
k
/
d
d
k
e
x
p
o
r
t
L
D
L
I
B
R
A
R
Y
P
A
T
H
=
HOME/tools/che/ddk/ddk export LD_LIBRARY_PATH=
HOME/tools/che/ddk/ddkexportLDLIBRARYPATH=DDK_HOME/uihost/lib
本文为:
export DDK_HOME=home/ascend/tools/che/ddk/ddk #ascend给位你自己的用户名
export LD_LIBRARY_PATH=$DDK_HOME/uihost/lib
输入:wq!保存退出
如下图所示:
ascend@ubuntu:~/Downloads/sample-classification-master$ source ~/.bashrc #使环境变量生效
执行的命令如图所示:
环境配置完毕!!!!!!!
- 部署–用部署脚本部署应用
ascend@ubuntu:~/Downloads/sample-classification-master$ bash deploy.sh 192.168.15.167 internet
(bash是整个引用的名字、部署脚本、开发板IP地址、internet代表模型文件的部署方式,默认在线部署,若Mind Studio所在Ubuntu系统已连接网络,请使用internet模式,在线下载依赖代码库ezdvpp,local:若Mind Studio所在Ubuntu系统未连接网络,请使用local模式,执行此命令前,需要参考公共代码库下载将依赖的公共代码库ezdvpp下载到“sample-classification/script“目录下)
部署完毕如下图所示:
4. 下载模型和图片,传模型和图片到开发板
在宿主机上下载模型,将其模型传到开发板;
重新打开一个终端,登入开发板,建一个目录存放下载的模型
然后再回到宿主机的终端命令,在下载好的模型的目录下,将其拷贝到开发板上,命令如下:
ascend@ubuntu:~/Downloads$ scp alexnet.om HwHiAiUser@192.168.15.167:/home/HwHiAiUser/models
然后去开发板上去看看,模型是否拷贝过去
在宿主机上下载图片,将其图片传到开发板。
大部分模型对输入都有要求的,本文的输入是227X227,准备一个大小为227X227的图片,上传到开发板上。
- 在开发板上去执行
a.在Mind Studio所在Ubuntu服务器中,以HwHiAiUser用户SSH登录到Host侧。
ssh HwHiAiUser@192.168.15.167
对于Atlas 200 DK,host_ip为192.168.15.167(NIC连接)。
对于AI加速云服务器,host_ip即为当前Mind Studio所在服务器的IP地址。
b.进入贯通网络的可执行文件所在路径。
cd ~/HIAI_PROJECTS/ascend_workspace/classification/out
c.执行应用程序
命令如下,脚本会将推理结果在执行终端直接打印显示:
python3 run_classification.py -m ~/models/alexnet.om -w 227 -h 227 -i ./apple.jpg -n 10
命令解析如下:
-m --model_path:离线模型存储路径。
-w model_width:模型的输入图片宽度,为16~4096之间的整数,请参考表1在gitee上查看所使用模型文件的Readme,获取模型要求的输入数据的宽和高。
-h model_height:模型的输入图片高度,为16~4096之间的整数,请参考表1在gitee上查看所使用模型文件的Readme,获取模型要求的输入数据的宽和高。
-i input_path:输入图片的路径,可以是目录,表示当前目录下的所有图片都作为输入(可以指定多个输入)。
-n top_n:输出前n个推理结果。
结果如下图所示:
推理之后展示结果有各种各样的方式,可以塞到图片中去展示,可以放到服务器去展示,也可以像本文一样直接放开控制台去展示,跟普通的软件设计是一样的。