Atlas200DK介绍

Atlas 200开发者套件又称Atlas 200 Developer Kit,是以Atlas 200 AI加速模块为核心的开发者板形态的终端类产品。主要功能是将Atlas 200的接口对外开放,方便用户快速简捷的使用Atlas 200,可以运用于平安城市、无人机、机器人、视频服务器等众多领域的预研开发。

Atlas 200 AI加速模块(简称Atlas 200)是一款高性能的AI智能计算模块,集成了海思Ascend 310 AI处理器,可以实现图像、视频等多种数据分析与推理计算,可广泛用于智能监控、机器人、无人机、视频服务器等场景。
Atlas200DK系列第三章--1.73.0.0版本样例运行指南(视频到视频)
Atlas 200 DK主要包含Atlas 200 AI加速模块、图像/音频接口芯片(Hi3559C)和LAN SWITCH或PHY三部分,系统框图如下所示。
Atlas200DK系列第三章--1.73.0.0版本样例运行指南(视频到视频)

1.73.0.0版本介绍

基于Atlas产品,华为推出了1.3.0.0、1.32.0.0、1.73.0.0三个版本。1.73.0.0版本是华为基于全新架构打造的最新版本,更易于开发者阅读、了解、开发属于自己的AI代码。
该版本适配多种安装方式,此处主要介绍下开发环境和运行环境。
开发环境:安装toolkit包,主要用于模型转换、代码编写和编译等开发过程。
运行环境:安装硬件执行包,主要用于编译好的代码运行(因为AI加速硬件设备在运行环境上)。
当开发环境和运行环境在同一系统中安装时,此系统即为合设系统。当开发环境和运行环境不在同一系统中安装时,此系统即为分设系统。

由于Mindstudio只支持ubuntu-x86的系统,所以当用户想要使用配套的Mindstudio开发者工具时,则需要按照分设系统安装。
以下我们介绍的安装方式即为分设安装。开发环境为ubuntu18.04-x86系统的虚拟机或双系统环境(需要自行建立一个新的环境),运行环境为ubuntu18.04-arm的开发板环境(制卡时已经做好)。

资源要求

  1. Atlas200DK开发者板套件(按照第一章内容已经制卡运行好的开发者板)。
  2. ubuntu18.04虚拟机或双系统(按照前两章已搭建好开发环境并安装好opencv)。

环境准备

按照前两章的内容,大家已经搭建好了开发环境(本地Mindstudio环境)和运行环境(开发者板)。并且已经成功运行起来Mindstudio自带的Classification(resnet50)样例和黑白图像上色图片版本样例。这些样例并没有用到presenter这个视频所依赖的第三方库。所以在使用我们本章要运行的黑白图像上色(图像到图像)样例时,需要安装presentagent,也就是本章环境准备的内容。

因为最终我们的程序是需要在我们的运行环境跑的,而我们的运行环境(开发者板)又是一个ubuntu-arm的架构,所以开发环境中链接的so必须是arm编译器编译出来的。所以有两种方案:

  1. 开发环境交叉编译第三方库,再将第三方库导入运行环境,提供运行调用。
  2. 运行环境直接编译第三方库,再将第三方库导入开发环境,提供编译调用。

这里和opencv安装不同的是,我们选择的是第一种方案,因为presentagent的安装步骤中已经提供好了交叉编译的条件,所以我们直接在开发环境中安装即可。

开发环境安装第三方库

第三方库(ffmpeg和opencv)已经在第二章安装完成,这里运行视频版本的样例时,需要再安装一个presentagent。不同之处在于,opencv的安装是运行环境安装,然后导入到开发环境中,这是因为开发环境安装opencv交叉编译成本较高(其实就是安装麻烦很多)。而presentagent,在开发环境中安装比较简单,而且安装成功后,只需要将一个so导入运行环境就可以了。所以这里是在开发环境安装。

  1. 安装presentagent,提供社区样例使用。
    cd $HOME

  2. 下载PresentAgent。
    git clone https://gitee.com/ascend/common.git

  3. 安装tornado包
    python3.7.5 -m pip install tornado==5.1.0 --user

  4. 安装autoconf、automake、libtool依赖。
    sudo apt-get install autoconf automake libtool

  5. 安装protobuf(按照如下命令一步步执行即可,由于需要交叉编译,所以这里make编译了两遍)。
    首次编译,为了安装protoc,但是安装出来的so是x86版本的。
    git clone -b 3.8.x https://gitee.com/mirrors/protobufsource.git protobuf
    cd protobuf
    git submodule update --init --recursive
    ./autogen.sh
    bash configure
    make -j8
    sudo make install

    如上步骤已经安装好了protoc,然后需要按照如下步骤再重新编译安装arm版本的so。
    make distclean
    ./configure --build=x86_64-linux-gnu --host=aarch64-linux-gnu --with-protoc=protoc
    make -j8
    sudo make install
    sudo ldconfig

  6. 编译并安装PresentAgent。
    export DDK_PATH=/home/ascend/Ascend/ascend-toolkit/20.0.RC1/acllib_centos7.6.aarch64
    cd $HOME/common/install_presenteragent/for_atlas200dk/presenteragent/
    make -j8
    make install

运行环境同步第三方库

开发环境第三方库安装完成后,运行环境需要同步so,否则代码无法在运行环境运行。

将编译好的so传到开发板上。
scp $HOME/ascend_ddk/lib/libpresenteragent.so [email protected]:/home/HwHiAiUser

登录开发者板。
ssh HwHiAiUser

切换root用户。
su root
cp /home/HwHiAiUser/libpresenteragent.so /home/HwHiAiUser/Ascend/acllib/lib64

切换回普通用户。
exit

样例运行

本章介绍的样例为黑白图像上色(视频到视频版)样例。

更多样例可以在码云Ascend/samples仓中获取:https://gitee.com/ascend/samples

注:以下步骤都是在开发环境中进行的

样例介绍

本应用支持运行在Atlas 200 DK上,实现了对黑白视频自动上色的功能。

黑白上色是利用卷积计算提取特征,然后用卷积进行分类,从而计算出每个灰度图片的色彩预期。其中处理的帧图片为LAB图片,L通道即为亮度通道,AB通道为色彩通道,黑白上色模型就是推理AB通道数据然后叠加到L通道上,生成彩色LAB的图片,再将对应帧图片转换为BGR格式,即可以观看。

原理可以在华为资深布道师毛红朝老师的直播中了解:http://live.vhall.com/880314441

软件准备

运行此Sample前,需要执行以下步骤获取源码包并转换模型。

  1. 普通用户在开发环境中下载样例源码包
    cd $HOME/AscendProjects
    wget https://c7xcode.obs.cn-north-4.myhuaweicloud.com/code_Ascend/colorization_video.zip
    unzip colorization_video.zip

  2. 获取此应用中所需要的原始网络模型。
    获取此应用中所用到的原始网络模型及其对应的权重文件,并将其存放到Ubuntu服务器的任意目录,例如:$HOME/models/colorization_video。
    mkdir -p $HOME/models/colorization_video
    cd $HOME/models/colorization_video
    wget https://obs-model-ascend.obs.cn-east-2.myhuaweicloud.com/colorization/colorization.caffemodel
    wget https://obs-model-ascend.obs.cn-east-2.myhuaweicloud.com/colorization/colorization.prototxt

  3. 打开Mindstudio。
    执行以下命令,打开Mindstduio,并选择colorization_video工程。
    cd ~/MindStudio-ubuntu/bin
    ./MindStudio.sh

    打开后,选择“Open project”,打开colorization_video工程。
    Atlas200DK系列第三章--1.73.0.0版本样例运行指南(视频到视频)

  4. 将原始网络模型转换为适配昇腾AI处理器的模型。
    在Mind Studio操作界面的顶部菜单栏中选择Tools > Model Convert,进入模型转换界面。
    Atlas200DK系列第三章--1.73.0.0版本样例运行指南(视频到视频)
    在弹出的Model Conversion操作界面中,进行模型转换配置。
    按照以下图片进行参数配置,其中注意以下几点:

    • Model File选择刚才下载的模型文件,此时会自动匹配到权重文件并填写在Weight File中。
    • 关闭Image Pre-processing
      Atlas200DK系列第三章--1.73.0.0版本样例运行指南(视频到视频)
      Atlas200DK系列第三章--1.73.0.0版本样例运行指南(视频到视频)
      Atlas200DK系列第三章--1.73.0.0版本样例运行指南(视频到视频)
  5. Mindstudio加载转换好的om模型。
    转换完成后,模型会生成在 $HOME/modelzoo/colorization/device 目录下,此时在Mindstudio对应工程上点击鼠标右键,选择Add Model,并选择此目录下的colorization模型即可。
    Atlas200DK系列第三章--1.73.0.0版本样例运行指南(视频到视频)
    Atlas200DK系列第三章--1.73.0.0版本样例运行指南(视频到视频)
    此时,工程的model文件夹下就会有对应的om模型了。
    Atlas200DK系列第三章--1.73.0.0版本样例运行指南(视频到视频)

编译

  1. 修改Presenter Server的ip.
    将script/presentserver/display/config/config.conf中的presenter_server_ip修改为Mind Studio所在Ubuntu服务器的虚拟网卡的ip地址,如下图所示。
    Atlas200DK系列第三章--1.73.0.0版本样例运行指南(视频到视频)
    将src/colorize_process.cpp中的 param.host_ip 修改为Mind Studio所在Ubuntu服务器的虚拟网卡的ip地址,如下图所示。
    Atlas200DK系列第三章--1.73.0.0版本样例运行指南(视频到视频)

  2. 开始编译。
    Mindstudio的工具栏中点击Build > Edit Build Configuration。选择Target OS 为Centos7.6。
    Atlas200DK系列第三章--1.73.0.0版本样例运行指南(视频到视频)
    之后点击Build > Build > Build Configuration,会在目录下生成build和out文件夹。
    Atlas200DK系列第三章--1.73.0.0版本样例运行指南(视频到视频)
    注:首次编译工程时,Build > Build为灰色不可点击状态。需要点击Build > Edit Build Configuration,配置编译参数后再进行编译。

  3. 启动Presenter Server。
    打开Mind Studio工具的Terminal,在应用代码存放路径下,执行如下命令在后台启动colorization-video应用的Presenter Server主程序。如下图所示。
    python3 script/presenterserver/presenter_server.py --app=display &
    Atlas200DK系列第三章--1.73.0.0版本样例运行指南(视频到视频)
    如下图所示,表示presenter_server的服务启动成功。
    Atlas200DK系列第三章--1.73.0.0版本样例运行指南(视频到视频)

运行

  1. Mindstudio配置开发板RC连接。
    注:此时默认开发板已经连接到开发环境了
    在Mind Studio工具的工具栏中找到Tools按钮,单机Device Manager
    点击Device Manager界面右上方的 “+” 按钮,填写Host IP为开发者板ip(USB连接默认为192.168.1.2),点击OK。
    Atlas200DK系列第三章--1.73.0.0版本样例运行指南(视频到视频)
    看到Device Manager界面ConnetctivityYes即为连接成功,点击OK即可。
    Atlas200DK系列第三章--1.73.0.0版本样例运行指南(视频到视频)
  2. 在Mind Studio工具的工具栏中找到Run按钮,单击 Run > Edit Configurations
    在Command Arguments 中添加运行参数 …/data(输入图片的路径),之后分别点击Apply、OK。
    Atlas200DK系列第三章--1.73.0.0版本样例运行指南(视频到视频)
  3. 单击 Run > Run ‘colorization’,如下图,可执行程序已经在开发者板执行。
    Atlas200DK系列第三章--1.73.0.0版本样例运行指南(视频到视频)
  4. 查看运行结果
    使用启动Presenter Server服务时提示的URL登录 Presenter Server 网站。
    等待Presenter Agent传输数据给服务端,单击“Refresh“刷新,当有数据时相应的Channel 的Status变成绿色,如下图所示。
    Atlas200DK系列第三章--1.73.0.0版本样例运行指南(视频到视频)
    单击右侧对应的View Name链接,比如上图的“video”,查看结果。

结束语

自此,黑白图像上色视频版就已经运行成功了。
大家可以尝试用自己的黑白视频去运行样例,当然也可以下载老电影,运行样例进行上色。
当然,这里仅提供大家使用,所以性能方面可能并没有做到极致,大家可以发挥自己的能力,改造代码,实现自己的上色,或者其它功能。
大家也可以从以下资源中来了解AI和产品相关的知识。
1.华为昇腾开发者论坛:https://bbs.huaweicloud.com/forum/forum-726-1.html
2.华为昇腾开发者社区:https://www.huaweicloud.com/ascend/home.html
3.ascned技术交流qq群:965804873

相关文章:

  • 2021-07-27
  • 2022-01-04
  • 2021-12-18
  • 2021-10-09
  • 2021-06-07
  • 2021-12-08
  • 2021-09-04
猜你喜欢
  • 2022-01-10
  • 2021-05-13
  • 2021-09-05
  • 2021-11-29
  • 2021-12-24
  • 2021-04-15
  • 2022-01-10
相关资源
相似解决方案