Atlas200DK部署YOLOV5

Atlas200DK部署YOLOV5

  • 资源要求
  • 开发环境安装
    • 虚拟机安装
    • 安装环境依赖
    • 安装toolkit开发套件包
    • 安装mindstudio(可选)
  • 运行环境安装
    • Micro-SD卡烧制
    • 连接Atlas200DK开发板
    • 部署PyACL
  • 环境搭建验证
  • YOLOV5模型转换
  • YOLOV5模型运行

资源要求

1、Atlas200DK开发者板套件(包含USB-Typec、网线、电源、SD卡)。
2、ubuntu18.04.*(最好是新建的干净环境)。
3、两个可上网的网络端口,一个用来本机联网(可以使用WIFI),一个用来开发者板联网(网线)。

开发环境安装

基于Atlas产品,华为推出了1.3.0.0、1.32.0.0、20.0.RC1、20.1.rc1四个版本。20.1.rc1版本是华为基于全新架构打造的最新版本,更易于开发者阅读、了解、开发属于自己的AI代码。选用最新版本20.1.rc1做为开发版本。

虚拟机安装

下载ubuntu-18.04.5-desktop-amd64.iso安装文件。
使用vmware安装虚拟机,设置网络连接为桥接模式,USB兼容性修改为USB3.1,设置用户名ascend(可选),可以使用sudo apt-get install open-vm-tools安装vmtool方便宿主机与虚拟机复制文件及文本。
Atlas200DK部署YOLOV5_第1张图片
安装完成进入系统后设置关闭系统更新。设置如下后选择Close即可。
Atlas200DK部署YOLOV5_第2张图片

安装环境依赖

1、用户权限配置
切换到root用户,如果root未设置密码需要使用 sudo passwd root 设置
su root
配置sudoers文件的写入权限
chmod u+w /etc/sudoers
vi /etc/sudoers
增加一行,其中ascend为创建系统时设置的运行用户。

ascend  ALL=(ALL:ALL) ALL NOPASSWD:SETENV:/usr/bin/apt-get,/usr/bin/python3.7,/usr/bin/pip3.7

Atlas200DK部署YOLOV5_第3张图片

取消sudoers文件的写入权限
chmod u-w /etc/sudoers
2、配置apt源
修改apt源为清华源
root用户下操作
vi /etc/apt/sources.list

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse

更新源文件
apt-get update
3、配置pip源
切换到运行用户ascend
exit
mkdir $HOME/.pip/
vi $HOME/.pip/pip.conf

[global]
timeout = 6000
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=pypi.tuna.tsinghua.edu.cn

4、安装相关apt依赖
安装ssh服务
sudo apt-get install -y openssh-server
sudo apt-get install -y gcc g++ make cmake unzip zlib1g zlib1g-dev libsqlite3-dev openssl libssl-dev libffi-dev pciutils net-tools g+±5-aarch64-linux-gnu libblas-dev gfortran libblas3 libopenblas-dev

5、安装python3.7.5
cd $HOME
wget https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tgz
tar -zxvf Python-3.7.5.tgz
cd Python-3.7.5
./configure --prefix=/usr/local/python3.7.5 --enable-shared
make -j8
sudo make install
sudo cp /usr/local/python3.7.5/lib/libpython3.7m.so.1.0 /usr/lib
sudo ln -s /usr/local/python3.7.5/bin/python3 /usr/bin/python3.7
sudo ln -s /usr/local/python3.7.5/bin/pip3 /usr/bin/pip3.7
sudo ln -s /usr/local/python3.7.5/bin/pip3 /usr/bin/pip3
sudo ln -s /usr/local/python3.7.5/bin/python3 /usr/bin/python3.7.5
sudo ln -s /usr/local/python3.7.5/bin/pip3 /usr/bin/pip3.7.5
pip3.7 install pyyaml attrs psutil decorator numpy protobuf==3.11.3 scipy sympy cffi grpcio grpcio-tools requests --user

安装toolkit开发套件包

下载地址:https://www.huaweicloud.com/ascend/cann-download
Atlas200DK部署YOLOV5_第4张图片
增加可执行权限
chmod 755 *.run
安装toolkit包
./Ascend-cann-toolkit_20.1.rc1_linux-aarch64.run --install
./Ascend-cann-toolkit_20.1.rc1_linux-x86_64.run --install

配置环境变量
vi ~/.bashrc
在最后添加

export install_path=/home/ascend/Ascend/ascend-toolkit/latest
export PATH=${install_path}/atc/ccec_compiler/bin:${install_path}/atc/bin:${install_path}/toolkit/bin:$PATH
export LD_LIBRARY_PATH=${install_path}/acllib/lib64:${install_path}/atc/lib64:$LD_LIBRARY_PATH
export PYTHONPATH=${install_path}/atc/python/site-packages:${install_path}/atc/python/site-packages/auto_tune.egg/auto_tune:${install_path}/atc/python/site-packages/schedule_search.egg:${install_path}/toolkit/python/site-packages:${install_path}/pyACL/python/site-packages:$PYTHONPATH
export ASCEND_OPP_PATH=${install_path}/opp

使环境变量生效
source ~/.bashrc

安装mindstudio(可选)

获取MindStudio软件包
https://www.huaweicloud.com/ascend/resources/tools/mindstudio/download
Atlas200DK部署YOLOV5_第5张图片
tar -zxvf MindStudio_2.0.0-beta2_ubuntu18.04-x86_64.tar.gz
bash MindStudio-ubuntu/bin/Mindstudio.sh
运行过程中会有红字提示需要继续安装的软件包(包含apt及pip),安装完成后重新运行即可

导入设置选择Do not import settins。
要求选择toolkit路径,选择对应路径 /home/ascend/Ascend/ascend-toolkit/20.1.rc1
点击OK后,Mindstudio搭建完成。

运行环境安装

Micro-SD卡烧制

1、获取SD卡制作脚本“make_sd_card.py”,“make_ubuntu_sd.sh”,开发者板驱动与运行包、Ubuntu操作系统镜像包
https://support.huaweicloud.com/dedg-A200dk_3000_c75/atlased_04_0013.html
2、修改 make_sd_card.py 中 NETWORK_CARD_DEFAULT_IP 及 USB_CARD_DEFAULT_IP 为与路由器同网段的IP,确保通过Type-C数据线及网线都能不需要修改配置即可连接上开发板,如下为路由器IP为 192.168.0.1 时的配置
Atlas200DK部署YOLOV5_第6张图片
3、赋予脚本执行权限
chmod 755 make_sd_card.py make_ubuntu_sd.sh ubuntu-18.04.5-server-arm64.iso

4、制卡
切换到root用户
su root
python3.7 make_sd_card.py local /dev/sdb (/dev/sdb 是SD卡的设备名,可以在root用户下执行fdisk -l查看)
输入Y确认制卡

Atlas200DK部署YOLOV5_第7张图片
看到上述页面等待3-5分钟(使用USB2.0会很慢)后出现 Make SD Card successfully! 即为制卡成功。
5、Atlas 200DK开发板开机
将烧制好的SD卡插入开发板,并接通电源与网线
注:开发板升级过程中会有两个灯闪烁,当四个灯常亮时即为升级成功,升级过程约5-10分钟。
6、切换回普通用户
exit

连接Atlas200DK开发板

开发板使用网线连接了路由器则可直接使用上述配置的IP 192.168.0.88 连接开发板。
ssh [email protected]
输入默认密码 Mind@123

Atlas200DK部署YOLOV5_第8张图片
出现上述页面即为连接成功。
使用Type-C数据线连接可参考以下教程配置
https://support.huaweicloud.com/dedg-A200dk_3000_c75/atlased_04_0015.html
配置开发板联网
su root
vi /etc/netplan/01-netcfg.yaml

使用静态IP则修改eth0的DNS配置:
addresses: [114.114.114.114]
使用DHCP则修改eth0配置为:

    eth0:
      dhcp4: true
      addresses: []
      optional: true

重启网卡
netplan apply
此时即可连接外网。

部署PyACL

https://support.huaweicloud.com/dedg-A200dk_3000_c75/atlased_04_0017.html

环境搭建验证

参考中以下博客中环境搭建验证部分,注意模型转换时输入数据类型为FP16。
Atlas200DK分设系列第一章

YOLOV5模型转换

  • 使用yolov5官方脚本导出onnx模型
  • 下载模型转换脚本
    • 官方仓库已删除转换脚本,使用备份
    • git clone开源仓https://github.com/ultralytics/yolov5/并下载对应的权重文件,修改models/export.py脚本生成onnx文件,注意onnx版本须选择11
  • onnx模型文件转换为om模型文件,具体参数可根据情况调整
    cd /home/ascend/Desktop/modelzoo/built-in/ACL_PyTorch/Research/cv/Yolov5_for_Pytorch
    python3.7 modify_yolov5.py
    source env.sh
    cd /home/ascend/Desktop/yolov5
    /home/ascend/Ascend/ascend-toolkit/latest/atc/bin/atc --model=yolov5l11_modify.onnx --framework=5 --output=yolov5l_coco --input_format=NCHW --log=info --soc_version=Ascend310 --input_shape="images:1,12,544,960" --out_nodes="Conv_403:0;Conv_404:0;Conv_405:0" --enable_small_channel=1
    

YOLOV5模型运行

  • 下载模型运行脚本
  • 连接Atlas200DK并上传运行脚本及转换好的om模型文件到/home/HwHiAiUser/software/
  • 执行脚本
    cd /home/HwHiAiUser/software/Atlas200DK_YoloV5_Python3
    python3 v5_object_detect.py
    
  • 模型输出结果可在 OUTPUT_DIR 中查看

你可能感兴趣的:(计算机视觉,目标检测,pytorch)