多媒体通信系统与实现 主讲人 : 宋利 嵌入式 AI 媒体处理应用
目录 Contents 1 平台及案例简介 2 Mind Studio 工具安装 3 Atlas 200 DK 安装使用 4 Demo-Face Detection 5 Demo- 超分图片
案例简介 本次华为案例是使用基于 Mind Studio 开发平台的 Atlas 200 Develop Kit, 实现 AI 相关算法
AI fullstack
AI 核心芯片能力
Ascend 310 逻辑架构
Atlas 200 模块简介
Atlas 200 开发者板架构和接口
Atlas 200 DK 规格
平台对比
Atlas 200 开源和社区介绍 Github 开源版本上线 www.github.com/ascend
案例简介 华为 Atlas 开发者套件 Atlas 200 Developer Kit 是以海思 Ascend 310 芯片为核心的一个开发者板形态产品, 主要功能时将 Ascend 310 芯片的核心功能通过该板上的外围接口开放出来, 方便用户快速简介的接入, 并使用 Ascend 310 芯片强大的处理能力 Atlas DK 配备一个核心系统模块 Atlas 200 模块, 可以实现图像视频等多种数据 分析与推理计算, 通过高速连接器将 Ascend 310 的主要业务接口通过底板扩展 出来 可以运用于平安城市 无人机 机器人 视频服务器 闸机等众多领域
案例简介 目前 Atlas 200 中集成的 Ascend 310 计算芯片, 内置两个 AI Core, 可支持 128 位 宽的 LPDDR4x, 可以实现最大 16TFLOPS INT8 8TFLOPS FP16 的计算能力 该模块还提供丰富的对外接口, 可以灵活应用在多种设备上
案例简介 本次课程演示的是 face detection 以及我们自己添加的超分模型等内容, 主要是基于华为的官方文档 : https://www.huawei.com/minisite/ascend/cn/file.html 该网站中包含后面介绍工具的安装配置等文件, 包括 Mind Studio 和 Atlas DK 等文件
芯片软件栈架构
AI 应用 : 训练 vs 推理
平台 : 运行库
CCE
算子库
Mind Studio 开发工具
Mind Studio 安装 Mind Studio 是一套基于华为 NPU(Neural-network Processing Unit) 开发的 AI 全栈开发平台, 包括基于芯片的算子开发 网络移植 优化和分析等功能, 极大的降低了 AI 引擎的开发门槛 功能 : 基于神经网络芯片 (NPU) 的友好编程界面 基于神经网 络芯片 (NPU) 的图形化调试能力 离线模型全自动管理 日志 分析等功能
Mind Studio 安装 安装环境要求
Mind Studio 安装 安装环境要求
Mind Studio 安装 步骤 1: 安装相关依赖 执行以下命令安装相关依赖 sudo apt-get install gcc g++ cmake curl libboost-all-dev libatlasbase-dev unzip haveged pythonskimage python3-skimage python-pip python3-pip liblmdb-dev libhdf5-serial-dev libsnappy-dev libleveldb-dev make graphviz autoconf libxml2- dev libxml2 libzip-dev libssl-dev sqlite3 python 如果提示没有安装, 使用如下命令安装 : sudo apt-get install xxx
Mind Studio 安装 步骤 2: 安装 JDK 执行 sudo apt-get install -y openjdk-8-jdk 命令安装 JDK 若用户本地已经安装 JDK, 使用 java -version 命令查看版本号, 若版本号低于 1.8.0_171, 则请卸载 JDK 完成 JDK 安装后, 需要配置 JAVA_HOME 环境变量 执行 vi ~/.bashrc 文件最后一行后面添加如下内容 : export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export PATH=$JAVA_HOME/bin:$PATH 然后保存并 source 生效
Mind Studio 安装 执行 echo $JAVA_HOME 命令检查环境变量设置, 显示如下即正确 : /usr/lib/jvm/java-8-openjdk-amd64 执行 which jconsole 命令检查 JDK 安装 显示如下即正确 : /usr/lib/jvm/java-8-openjdk-amd64/bin/jconsole 客户端 客户端可以通过浏览器访问 Mind Studio 环境 需安装 64 位, 67.0.3396.87 及以上版本的 Chrome 浏览器
Mind Studio 安装 下载软件包
Mind Studio 安装 配置公钥 步骤 1: 获取公钥文件 : https://support.huawei.com/enterprise/zh/tool/pgp-verify- TL1000000054 打开链接后进入文件夹下载名为 KEYS 的文件
Mind Studio 安装 配置公钥 步骤 2: 将 KEYS.txt 文件上传到系统中, 例如 : 传到 "/home/username/openpgp/keys" 新建目录中 步骤 3: 导入公钥文件 # gpg --import "/home/username/openpgp/keys/keys.txt"
Mind Studio 安装 配置公钥 步骤 4: 执行如下命令查看公钥导入结果 : # gpg fingerprint 步骤 5: 验证公钥 :
Mind Studio 安装 配置公钥 步骤 5: 执行如下命令设置公钥的信任级别 # gpg --edit-key "OpenPGP signature key for Huawei" trust 屏幕显示类似如下信息, 其中红框部分需要手工输入, Your decision? 后输入 5, 表示 I trust ultimately ; Do you really want to set this key to ultimate trust? (y/n) 后输入 y 步骤 6: 执行 quit 命令退出 -- 配置公钥结束
Mind Studio 安装 在配置完公钥之后, 输入如下命令检测软件包是否完整 gpg --verify "mini_mind_studio_*.rar.asc" 返回信息中 27A74824 为公钥 ID 提示信息返回 Good signature 且信息中无 WARNING 或 FAIL, 表明此签名为有效签名, 软件包完整性校验通过
Mind Studio 安装 安装分为自动安装 ( 引导安装 ) 和手动安装两种方式, 安装成功后, 需要检查当前所安装版本是否为所需版本 推荐使用引导安装方式引导用户进行参数配置, 并且同时安装 Mind Studio 和 DDK 引导安装 步骤 1: 解压软件包 步骤 2: 执行./install.sh 或 bash install.sh 安装脚本
Mind Studio 安装 步骤 3: 按照引导完成配置 1. 需要具有 sudo 权限, 若没有, 可执行如下命令 : su root./add_sudo.sh username 之后再切换到普通用户重新执行./install.sh 2. 若有权限, 则会提示如下信息 : Successfully add permission!
Mind Studio 安装
Mind Studio 安装
Mind Studio 安装
Mind Studio 安装 步骤 4: 安装 Mind Studio 和 DDK 等待 Mind Studio 和 DDK 安装完,Mind Studio 会安装在 install.sh 脚本同级的 tools 目录 安装结束后, 会自动执行 del_sudo.sh 脚本, 收回普通用户的权限 安装失败也会执行该脚本收回权限 安装结束
Mind Studio 安装 手动安装需要分别安装 Mind Studio 和 DDK
Mind Studio 安装
Mind Studio 安装
Mind Studio 安装 验证安装结果
Mind Studio 安装
Atlas 200 DK 安装 使用流程 :
Atlas 200 DK 安装 配置 Atlas 200 DK
Atlas 200 DK 安装 配置 Atlas 200 DK
Atlas 200 DK 安装 配置 Atlas 200 DK
Atlas 200 DK 安装 配置 Atlas 200 DK
Atlas 200 DK 安装 配置 UI Host 交叉编译环境
Atlas 200 DK 安装 配置 UI Host 交叉编译环境
Atlas 200 DK 安装 配置 UI Host 交叉编译环境
Atlas 200 DK 安装 配置 UI Host 交叉编译环境
Atlas 200 DK 安装 配置 UI Host 交叉编译环境
Atlas 200 DK 安装 密码修改
Atlas 200 DK 安装 密码修改
Atlas 200 DK 安装 密码修改
Atlas 200 DK 安装 在 Mind Studio 中添加 Atlas 200 DK
Atlas 200 DK 安装 在 Mind Studio 中添加 Atlas 200 DK 步骤 2. 单击 Add 弹出添加设备信息界面 步骤 3. 在 Atlas DK Configuration 界面中配置要添加的 Atlas 200 DK 基本信息
Atlas 200 DK 安装 在 Mind Studio 中添加 Atlas 200 DK
Atlas 200 DK 安装 在 Mind Studio 中添加 Atlas 200 DK 连接设备
Demo-Face Detection 具体 github 网址 :https://github.com/ascend/sample-facedetection 开发网址为 : https://www.huawei.com/minisite/ascend/cn/xs_cn/filedetail_16.html 下图为整个 Demo 的流程 :
Demo-Face Detection 在运行该项目之前, 需要将 Mind Studio 和 Atlas 配置完成 ; 软件准备 : 需要准备源码包并且配置环境 1. 获取源码包 : 将上面网址的内容下载到本地, 例如 /home/ascend/sample-facedetection/ 2. 设置 DDK_HOME 的环境变量运行如下命令添加即可 : vim ~/.bashrc, 打开后将下面两行添加到文件最后, 并 source 生效 export DDK_HOME=/home/XXX/tools/che/ddk/ddk export LD_LIBRARY_PATH=$DDK_HOME/uihost/lib
Demo-Face Detection 部署环境 : 首先切换到代码目录下的 root 权限 运行部署脚本来准备好工程环境, 包括编译和部署 accenddk 的公共库, 下载网络模型, 以及配置 Presenter Server bash deploy.sh host_ip model_mode 其中 host_ip 是指开发板的 IP 地址,model_mode 是指模型文件的部署模式, 默认是 internet 例: bash deploy.sh 192.168.1.2 internet 按照提示输入电脑环境的有效 IP, 如下图所示 :
Demo-Face Detection 启动 Presenter Server: 运行如下命令即可启动后台程序 : python3 presenterserver/presenter_server.py --app face_detection & 出现如下界面即为服务器开启成功 : 然后再 chrome 浏览器中输入上一步中设定的 IP 地址, 默认 port 为 7007, 出 现下图即为开启正确 :
Demo-Face Detection 运行程序 : 1. 在 sample_facedetection 文件夹下运行 : bash run_facedetectionapp.sh host_ip presenter_view_app_name camera_channel_name & host_ip 即为开发板的 IP 地址, presenter_view_app_name 为界面中的 View Name, 是用户自定义的, camera_channel_name 为 Channel-1 或者 Channel-2 例 :bash run_facedetectionapp.sh 192.168.1.2 video Channel-1 & 2. 接下来点击 chrome 中的 Refresh, 当其中有数据的时候,Status 那列会变成绿色
Demo-Face Detection 如下图 : 点击 View Name 列的 image 或者 video, 即可查看结果, 检测到的人脸的置 信度会被标出
Demo-Face Detection 关闭 Face Detection 应用 在 sample-facedetection 文件夹下面运行如下命令 : bash stop_facedetectionapp.sh host_ip 例 :bash stop_facedetectionapp.sh 192.168.1.2 关闭 Presenter Server 服务 运行如下命令检查运行 facedetection 的 presenter server 的相应进程 : ps -ef grep presenter grep face_detection 在查询到相的进程 ID 之后, 运行如下命令接口停止相应服务 : kill -9 ID ID 为刚才查询到的结果
Demo- 超分图片 目的 : 输入一张低分辨率图片, 输出一张高分辨率图片 模型 : 本 Demo 中采用的是 Fast-srcnn 网络模型, 可以进行一张灰度图片的 超分实现 最终效果如下图所示 : 原图 FSRCNN 结果双插值结果
Demo- 超分图片 步骤 1:convert model 打开 Mind Studio 之后, 选择 tool 下的 convert model 具体配置如下图 :
Demo- 超分图片
Demo- 超分图片
Demo- 超分图片 步骤 2: 将转换后的 model 拷贝到一个新建的文件夹下面, 一般路径如下 : Copy from: tools/che/model-zoo/offlinemodel/fsrcnn_256_256/device/fsrcnn_256_256.om to:./model/ 将 model 文件夹上传到 Atlas DK 板子中 : scp -r model HwHiAiUser@192.168.1.2: 将要测试的图片文件夹上传 : scp -r images HwHiAiUser@192.168.1.2:
Demo- 超分图片 步骤 3: 下载 sample-classification 并更改其中的相关代码如下 : sample-classification/classification/general_image/general_image.cpp sample-classification/classification/general_post/general_post.cpp
Demo- 超分图片
Demo- 超分图片 步骤 3: 更改完相关代码之后, 部署即可 bash deploy.sh 192.168.1.2 local 步骤 4: 连接到开发板, 运行如下命令 : ssh HwHiAiUser@192.168.1.2 可以通过命令 l 来查看开发板中的文件
Demo- 超分图片 步骤 5: 运行 : 首先 cd 到相应目录下 : cd HIAI_PROJECTS/ascend_workspace/classification/out 然后 : python3 run_classification.py -m ~/model/fsrcnn_256_256.om -w 256 -h 256 -i ~/images/set5/butterfly_gt.bmp -n 10 结果即会存到开发板的 output 目录下
Demo- 超分图片 步骤 6: 将生成的图片拷贝回本地查看结果即可 : scp HwHiAiUser@192.168.1.2:HIAI_PROJECTS/ascend_workspace/classificatio n/out/output*.png output/
大作业 将灰度图改为彩色图, 运用 fast-srcnn 模型得到超分结果 附加题 : 将人脸检测到的人脸部分抠出来, 存储为一张图片, 将该图片输入到 超分模型中得到超分后的人脸结果
谢谢!