【MindStudio训练营第一期】昇腾AI训练营进阶班-大作业

本文档详细介绍了在昇腾AI加速器上配置环境并实现黑白图像上色的过程,包括第三方依赖如opencv和ffmpeg的安装,模型转换工具atc的使用,以及样例代码的部署和执行。通过环境配置、模型转换和代码实操,最终成功将黑白图像转换为彩色图像。
摘要由CSDN通过智能技术生成

前言

其实图片黑白转换这个案例最难的地方是需要进行第三方环境的配置,配置过程比较冗杂,但配置好之后实现起来就比较快了,而且能够获得不错的效果。

一、环境配置——第三方依赖

在配置好CANN版本后,需要再进行第三方依赖的配置。

因为我们要进行的是图像的处理,需要用到很多图像处理的包,所以首先需要进行环境的配置。

点击如下链接:

cplusplus/environment/catenation_environmental_guidance_CN.md · Ascend/samples - Gitee.com
按照步骤进行环境的配置。

二、下载案例包

在gitee上下载代码黑白图像上色-昇腾社区 (hiascend.com)

在Mindstudio中打开项目,如下图所示

 

三、项目环境的配置

由于这个图像转换需要第三方依赖——opencv, ffmpeg+acllite,但在远程终端中是没有按照这几个第三方依赖的,所以下面将主要讲述我如何安装这个第三方依赖的。

其实整个过程最枯燥和冗杂的就是这一步,因为后续代码的实现也并不难,主要还是在项目环境的配置上比较麻烦。

我选择的是昇腾AI设备安装开发环境,同时将此环境作为运行环境的samples相关依赖安装的方式,进入到下面的网站并按照步骤进行安装。

cplusplus/environment/catenation_environmental_guidance_CN.md · Ascend/samples - Gitee.com

安装准备

首先需要打开.bashrc文件,并且在文件后面添加所需的部分。

这一部分尤为重要,因为在添加的过程中会涉及到环境变量的配置,我一开始在配置环境变量的时候就出现了问题,后面搞了好久才发现是一开始的问题。

# 打开.bashrc文件。

vi ~/.bashrc 

# 在文件最后一行后面添加如下内容。

export CPU_ARCH=`arch`

export THIRDPART_PATH=${HOME}/Ascend/thirdpart/${CPU_ARCH}  #代码编译时链接samples所依赖的相关库文件

export LD_LIBRARY_PATH=${THIRDPART_PATH}/lib:$LD_LIBRARY_PATH  #运行时链接库文件

export INSTALL_DIR=${HOME}/Ascend/ascend-toolkit/latest #CANN软件安装后的文件存储路径,根据安装目录自行修改

写好内容到.bashrc文件后,执行:wq!保存文件并退出

 

# 执行命令使其立即生效。

source ~/.bashrc

# 创建第samples相关依赖文件夹

mkdir -p ${THIRDPART_PATH}

 

下面安装git

# 下载源码并安装git

cd ${HOME}

sudo apt-get install git

git clone https://gitee.com/ascend/samples.git

# 拷贝公共文件到samples相关依赖路径中

cp -r ${HOME}/samples/common ${THIRDPART_PATH}

 

Opencv的下载和安装

直接执行sudo代码,将Opencv下载到远程终端。

sudo apt-get install libopencv-dev

安装ffmpeg及x246插件(比较久)

这一步尤为重要,因为涉及到后续acllite库的安装,这一步必须先搞定。

① 下载x246

cd ${HOME}

git clone https://code.videolan.org/videolan/x264.git

cd x264

② 安装x246

./configure --enable-shared --disable-asm

make

sudo make install

sudo cp /usr/local/lib/libx264.so.164 /lib

③   下载ffmpeg

./configure --enable-shared --disable-asm

make

sudo make install

sudo cp /usr/local/lib/libx264.so.164 /lib

④ 安装ffmpeg

./configure --enable-shared --enable-pic --enable-static --disable-x86asm --enable-libx264 --enable-gpl --prefix=${THIRDPART_PATH}

make -j8

make install

​​​​​​​acllite库的安装

cd ${HOME}/samples/cplusplus/common/acllite/

make

make install

​​​​​​​代码实操过程

配置好环境之后,就可以进行真正的代码实操过程了。

实现原理

黑白图像上色模型原理如下图所示,对物件包括背景色(L通道代表的灰度图)使用卷积运算提取特征,然后同样用卷积进行分类,从而尝试给出对灰度图片每个像素点的色彩预期(ab通道)。

将ab通道的值Resize到原始图片宽高并与L通道叠加后,转为RGB图片即可得到彩色图像。黑白图像上色模型原理如下图所示,对物件包括背景色(L通道代表的灰度图)使用卷积运算提取特征,然后同样用卷积进行分类,从而尝试给出对灰度图片每个像素点的色彩预期(ab通道)。

将ab通道的值resize到原始图片宽高并与L通道叠加后,转为RGB图片即可得到彩色图像。其中模型的输入为L通道的数据(224,224,1),输出为ab通道的数据(56,56,2)。

 

案例流程

 

将原始模型转换成om模型的思路

如下图所示,昇腾软件栈中存在一个atc模型转换工具,针对本应用,我们需要使用该工具将原始模型转换成系统支持的om模型。

 

采用下图所示的模块化设计,通过各模块之间的协调配合完成一张图片的推理输出

 

思路

1.运行管理资源申请:用于初始化系统内部资源,固定的调用流程。

2.加载模型文件并构建输出内存:从文件加载离线模型数据,需要由用户自行管理模型运行的内存,根据内存中加载的模型获取模型的基本信息包含模型输入、输出数据的数据buffer大小;由模型的基本信息构建模型输出内存,为接下来的模型推理做好准备。

3.数据预处理:接收外界传递的图像数据,对读入的图像数据进行预处理,然后构建模型的输入数据。

4.模型推理:根据构建好的模型输入数据进行模型推理。

5.解析推理结果:根据模型输出,解析模型的推理结果。使用OpenCV将转换后的彩色图像数据保存成图片文件。

准备测试图片

在网上随便找了个相应的黑白图片。

 

​​​​​​​模型转换

这个模型转换直接输入代码到远程终端即可,可能出现的问题是在wget的时候容易会出现验证,如果出现验证不通过,就采用最后的代码即可。

cd ${HOME}/samples/cplusplus/level2_simple_inference/6_other/colorization/model    

wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/AE/ATC%20Model/colorization/colorization.prototxt   

wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/AE/ATC%20Model/colorization/colorization.caffemodel   

atc --input_shape="data_l:1,1,224,224" --weight="./colorization.caffemodel" --input_format=NCHW --output="colorization" --soc_version=Ascend310 --framework=0 --model="./colorization.prototxt"

中间wget出现验证不通过的解决代码:

wget --no-check-certificate https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/AE/ATC%20Model/colorization/colorization.prototxt

wget --no-check-certificate https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/AE/ATC%20Model/colorization/colorization.caffemodel

​​​​​​​样例部署

然后按照指引的代码进行样例部署

cd ${HOME}/samples/cplusplus/level2_simple_inference/6_other/colorization/scripts   

bash sample_build.sh

​​​​​​​脚本执行

然后就是激动人心的脚本执行时刻,输入

bash sample_run.sh

结果展示

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值