全网最细-华为Atlas开发板联网升级、Mind Studio配置和部署深度学习vgg16样例

华为Atlas 200DK开发板联网升级、Mind Studio配置和运行vgg16猫狗大战样例

  • 开发环境配置
    • 配置虚拟机
    • 开发板联网和升级
    • 部署编译器
  • 运行猫狗大战样例
    • 下载模型
    • 运行项目
    • 上传图片到开发板
    • 在开发板上运行模型和查看结果
  • 参考链接

这是笔者第一次使用开发板来运行深度学习模型,踩坑无数,耗费了数十个小时,更苦于没有公开详细教程,特此将详细步骤和一些个人观点记录于此。如果对您起到了一些帮助,请不吝赐赞

开发环境配置

本文将讲解Win+虚拟机的配置方法,Linux系统可参考虚拟机的内部操作。
开发板为Atlas 200DK,编译器为Mind Studio。

  • 踩坑记录:同组同学总是失败在VMware开机画面处,重装若干次后改用双系统
  • 复盘后觉得,可能是Hyper-V和VMware不兼容导致,可下载微软的虚拟机转换器进行切换

配置虚拟机

本文使用的镜像内已安装好Ubuntu系统,以及Mind Studio工具,并且已配置好交叉编译环境,相关的环境变量。操作步骤如下:
步骤1:将获取到的虚拟机镜像包放入PC机硬盘的某个目录下
步骤2:打开虚拟机软件(VMWare)
步骤3:在打开的对话框中单击虚拟机文件(*.vmx),然后点击“打开”
步骤4:登录虚拟机
步骤5:修改虚拟机网络设置
:虚拟机->设置网络适配器->自定义:特定虚拟网络->VMnet8(NAT模式),如下图所示:
全网最细-华为Atlas开发板联网升级、Mind Studio配置和部署深度学习vgg16样例_第1张图片

开发板联网和升级

如果开发板的DDK版本相对VMWare较旧,需要对开发板进行升级。操作步骤如下:

步骤1:开发板上电,通过USB线连接到PC机,启动PC机上的虚拟机(Ubuntu服务器)

在VMware中选择可移动设备,将开发板接入虚拟机中(此处可能要若干次)

开发板通过USB连接时,其默认IP是192.168.1.2,且连接后会在Ubuntu服务器上虚拟出一个网卡,需要将此虚拟网卡的地址配成192.168.1.xxx网段,这样才能连上开发板。
打开终端,切换到root用户(密码为root),修改interfaces文件
修改interfaces.

su root
vim /etc/network/interfaces

全网最细-华为Atlas开发板联网升级、Mind Studio配置和部署深度学习vgg16样例_第2张图片
虚拟网卡名可通过ifconfig命令查看(如图右侧部分所示)。如虚拟网卡名不一致,需修改interfaces文件中虚拟网卡名。
步骤2
准备升级包(mini_developerkit-1.31.T15.B150.rar)
先将开发板升级包(mini_developerkit-1.31.T15.B150.rar)拷贝进Ubuntu服务器,然后打开终端,进入存放升级包的路径,通过如下scp命令把升级包拷贝至开发板。(需要开发板密码)

scp mini_developerkit-1.31.T15.B150 HwHiAiUser@192.168.1.2:~

再登录开发板,把升级包拷贝至/opt/mini路径下(因HwHiAiUser没有/opt/mini路径写入权限,而且无法直接通过root用户进行scp拷贝,所以要先以普通用户拷贝至开发板,再在开发板上以root用户拷贝至/opt/mini路径)

ssh HwHiAiUser@192.168.1.2
su root
mv mini_developerkit-1.31.T15.B150.rar /opt/mini

步骤3:执行以下命令进行开发板升级

cd /opt/mini
./minirc_install_phase1.sh

全网最细-华为Atlas开发板联网升级、Mind Studio配置和部署深度学习vgg16样例_第3张图片
步骤4:重启开发板,完成升级
步骤5: 升级检查
1)在虚拟机中以HwHiAiUser用户ssh登录到Atlas 200 DK开发者板

ssh HwHiAiUser@192.168.1.2

2)执行如下命令查看开发者板的系统运行软件的版本号

cat /etc/sys_version.conf

3)执行如下命令查询firmware的系统版本号及有效组件版本号

su – root
cd /var/davinci/firmware/
./upgrade-tool --device_index -1 --system_version
./upgrade-tool --device_index -1 --component -1 –version

4)查看升级日志,无错误信息代表升级成功

cd /var/davinci/log
cat upgrade.log
cat firmware_upgrade_progress.log

部署编译器

步骤1:启动Mind Studio
以Mind Studio的安装用户进入MindStudio-ubuntu/bin目录,执行如下命令:

cd MindStudio-ubuntu/bin
./MindStudio.sh 

步骤2:在Mind Studio中添加开发板设备
1) 检查Mind Studio中是否已经添加过Atlas200DK开发板
点击MindStudio上方工具栏Tools --> Device Management,若发现已经添加过开发板,需检查IP是否正确(USB连接时默认IP为192.168.1.2,网线连接时默认IP为192.168.0.2),如果IP不正确,请按如下图所示,修改为实际所用的开发板地址:
全网最细-华为Atlas开发板联网升级、Mind Studio配置和部署深度学习vgg16样例_第4张图片
2) 若Mind Studio未添加过开发板,单击设备管理界面右侧的+增加设备,弹出下图界面:
全网最细-华为Atlas开发板联网升级、Mind Studio配置和部署深度学习vgg16样例_第5张图片
3) 单击“OK”,后台脚本会根据Host IP连接设备,并获取设备的Target以及版本信息。之后设备信息会增加到设备管理界面“Available Device”区域。
全网最细-华为Atlas开发板联网升级、Mind Studio配置和部署深度学习vgg16样例_第6张图片
4) 如果第一次连接某个版本开发板,请确保已经装过对应版本DDK,并同步lib:
单击管理界面右侧的同步按钮![在这里插入图片描述](https://img-blog.csdnimg.cn/20200218160719613.png启动同步lib,弹出“Pre Synchronization Check”界面更新设备信息,该界面根据用户网络状况,出现时间长短不定,待更新完毕进入下图:
全网最细-华为Atlas开发板联网升级、Mind Studio配置和部署深度学习vgg16样例_第7张图片

Library file synchronization succeeded. Please click "Finish".

至此,开发环境已经部署完毕。

运行猫狗大战样例

本文以运行猫狗图片识别为样例,其他模型运行,如人脸检测和物体识别,也可以参考。

下载模型

本文不侧重于如何训练一个模型, 请参考Model Arts的社区样例。
https://www.huaweicloud.com/product/modelarts.html

步骤1
下载已经运行好的.pb模型,放置到Mind studio能访问到的路径下
全网最细-华为Atlas开发板联网升级、Mind Studio配置和部署深度学习vgg16样例_第8张图片
Mind Studio如果安装在虚拟机中,则需要将此文件拷贝到虚拟机中,如$HOME/download文件夹下。笔者采用的是将文件拷贝至U盘,便于在宿主机和虚拟机中传递文件。

步骤2:下载sample
猫狗大战模型是一个分类模型,可以直接使用社区项目中的分类sample替换模型运行。
sample代码路径为:https://gitee.com/Atlas200DK/sample-classification/tree/1.3x.0.0/
注意我们当前使用的是C31的Mind Studio,所以需要下载1.3x.0.0分支下的代码。
全网最细-华为Atlas开发板联网升级、Mind Studio配置和部署深度学习vgg16样例_第9张图片

步骤3:用Mind Studio打开工程
使用C31的Mind Studio打开下载下来的sample代码。
全网最细-华为Atlas开发板联网升级、Mind Studio配置和部署深度学习vgg16样例_第10张图片
步骤4:转换模型
将ModelArts上训练得到的pb模型转换为Mind Studio支持的om模型

1、使用netron查看模型的输入层名和输入参数NHWC
Netron打开网址:https://lutzroeder.github.io/netron/
打开后选择Open model,选择ModelArts上转好下载下来的模型
全网最细-华为Atlas开发板联网升级、Mind Studio配置和部署深度学习vgg16样例_第11张图片

能看到,该模型的输入层层名为input_1,输入参数为?,?,?,3,代表输入参数的C值为3。

  • N参数代表一次处理多少张图片,由于我们是需要单张处理的,所以N参数为1。
  • HW两个参数是指模型的输入图片要求宽高,可以在训练代码中查看到为224*224。
  1. 模型转换
    Mindstudio工具中选择Tool->Model Convert ,进入模型转换界面
    选择我们使用的pb模型,点击Next开始进行节点配置,填入NHWC信息,如下图所示
    全网最细-华为Atlas开发板联网升级、Mind Studio配置和部署深度学习vgg16样例_第12张图片
    全网最细-华为Atlas开发板联网升级、Mind Studio配置和部署深度学习vgg16样例_第13张图片
    点击Next,量化配置不需要修改,再点击Next进入AIPP配置。这里需要修改Input Image Size修改为256224,因为模型需要做宽128对齐,高16对齐,模型原本要求输入是224224,宽不可以整除128,所以对齐后得到的值为256,高可以整除16,做完对齐之后取值还是224.Model Image Format需要修改为RGB888_U8。如下图所示:
    全网最细-华为Atlas开发板联网升级、Mind Studio配置和部署深度学习vgg16样例_第14张图片
    全网最细-华为Atlas开发板联网升级、Mind Studio配置和部署深度学习vgg16样例_第15张图片
    点击Finish,开始转换模型。转换成功后会在Output中打印成功信息和模型存储位置。模型转换成功后都在$HOME/modelzoo文件夹下,自行获取。

  2. 模型放置
    将转换好的模型放置到样例工程下的script目录下,不这样做Mind Studio可能无法读入
    全网最细-华为Atlas开发板联网升级、Mind Studio配置和部署深度学习vgg16样例_第16张图片

运行项目

步骤1:需要在Mind Studio打开的工程中修改Param_configure.conf文件。其中remote_host为开发板地址,USB连接一般为192.168.1.2。model_name是使用的模型名称,需要填写我们转换好的模型名称,如vgg16trained.om
全网最细-华为Atlas开发板联网升级、Mind Studio配置和部署深度学习vgg16样例_第17张图片
步骤2:同步RC库,设置环境变量
选择tools下的Device Management。按照下图点击第四个按钮确认开发板的连接情况,点击第五个按钮进行同步RC库。
全网最细-华为Atlas开发板联网升级、Mind Studio配置和部署深度学习vgg16样例_第18张图片
同时需要设置好环境变量。按照如下方式进行设置:

vim ~/.bashrc

执行如下命令在最后一行添加DDK_HOME及LD_LIBRARY_PATH的环境变量。

export tools_version=1.31.T15.B150
export DDK_HOME=$HOME/.mindstudio/huawei/ddk/1.31.T15.B150/ddk
export NPU_DEVICE_LIB=$DDK_HOME/../RC/host-aarch64_Ubuntu16.04.3/lib
export LD_LIBRARY_PATH=$DDK_HOME/lib/x86_64-linux-gcc5.4

使用Esc :wq!保存退出
执行如下命令使环境变量生效。

source ~/.bashrc

步骤3. 进行代码编译
选择Build→Edit Build Configuration,确认自己的配置后选择Build
全网最细-华为Atlas开发板联网升级、Mind Studio配置和部署深度学习vgg16样例_第19张图片
步骤4. 进行代码部署
选择Run→Run->sample-classification,进行代码部署,输出如下图所示即为部署成功。报错信息请忽略,因为Mind Studio无法为可执行程序传参,上述步骤是将可执行程序与依赖的库文件部署到开发者板,此步骤需要ssh登录到开发者板至相应的目录文件下手动执行。
全网最细-华为Atlas开发板联网升级、Mind Studio配置和部署深度学习vgg16样例_第20张图片

上传图片到开发板

测试集图片可以在百度上直接搜索猫狗图片,最好将下载下来的图片重名为如图所示的格式。图片的宽和高的范围为[16, 4096]。

这里笔者给出的是上传的猫狗图片。其中前三张是猫,命名为 cat1.jpg, cat2.jpg, cat3.jpg,后两张是狗,命名为dog1.jpg,dog2.jpg。
全网最细-华为Atlas开发板联网升级、Mind Studio配置和部署深度学习vgg16样例_第21张图片
命令行进入图片所在目录下,使用scp -r 指令将所有图片拷贝到开发板的$HOME目录下
全网最细-华为Atlas开发板联网升级、Mind Studio配置和部署深度学习vgg16样例_第22张图片

在开发板上运行模型和查看结果

  1. 登录开发板
    使用ssh命令登录开发板
    全网最细-华为Atlas开发板联网升级、Mind Studio配置和部署深度学习vgg16样例_第23张图片
    注:这里需要填入的ip为开发板ip,运行前确保Atlas 200DK开发板已经正确连接。我们当前是使用USB连接,所以IP地址为192.168.1.2.开发板连接可以在Atlas200DK的文档中查看,这里不再赘述。
  2. 运行程序
    进入通用分类网络应用的可执行文件所在路径
cd ~/HIAI_PROJECTS/workspace_mind_studio/classification/out

在这里插入图片描述
执行应用程序,这里图片需要选择到我们上传到开发板上的图片对应的路径

python3 run_classification.py -w 224 -h 224 -i ~/catanddog/cat1.jpg -n 2

全网最细-华为Atlas开发板联网升级、Mind Studio配置和部署深度学习vgg16样例_第24张图片

可以看到图片有confidence输出,这里1代表的是猫类,0代表的是狗类,,从给出的数据可以看出,程序均以 1.0000 的置信度判断出了正确的结果。

参考链接

华为Ascend社区:
https://gitee.com/Atlas200DK/projects

你可能感兴趣的:(#,开发板,linux,机器学习,vim,ubuntu,ssh)