关于图像:宝藏昇腾AI应用推荐CANN带你体验黑白图像自动上色的快乐

27次阅读

共计 2718 个字符,预计需要花费 7 分钟才能阅读完成。

摘要:属于“你”那边的麦田 天空 河水 骏马 树木……会是什么色彩呢?

黑白与色调

仿佛把时代宰割了两半~

我在这头看见了错乱热闹,目不暇接,看见疾速消长的色彩缤纷。

打开一张黑白照片

我能看到世代流传的印记,一种历久弥新的美

我能看到但我却又看不到“你”能看到的风景

这看似不经意的一眼却在我心里犹如惊鸿一瞥

令人望而却步

却又不住的悄悄空想

属于“你”那边的麦田 天空 河水 骏马 树木……

会是什么色彩呢?

就在此刻的定格

我愿把万千色调赋予给“你”,

带你独特体验这万千热闹盛景~

黑白图像上色模型原理

本利用 基于昇腾 AI 异构计算架构 CANN,应用黑白图像上色模型搭建,实用于 Atlas 200 DK 及 Atlas 300I 等相干推理产品。

对物件(包含背景色)(L 通道代表的灰度图)应用卷积运算提取特色,而后同样用卷积进行分类,从而尝试给出对灰度图片每个像素点的色调预期(ab 通道)。而后,将 ab 通道的值 resize 到原始图片宽高并与 L 通道叠加后,转为 RGB 图片即可失去彩色图像。其中模型的输出为 L 通道的数据(224,224,1),输入为 ab 通道的数据(56,56,2)。

咱们也能够通过开源模型的测试脚本来了解原始模型的输出和输入,以及输出前的计算过程(也叫前解决)和输入后的处理过程(也叫后处理)。

预处理过程:RGB 格局读入转 Lab,resize 到 224224,提取 L 通道,减均值(-50)
后处理过程:推理的后果 ab 通道,resize 到 224224,与输出 L 合并为 Lab,转 RGB,保留为 jpeg 图片

模型原始链接:https://github.com/richzhang/…

筹备模型

昇腾张量编译器 ATC(Ascend Tensor Compiler)能够将开源框架的网络模型(如 Caffe、TensorFlow 等)以及 Ascend IR 定义的单算子形容文件换成昇腾 AI 处理器反对的离线模型,模型转换过程中能够实现算子调度的优化、权重数据重排、内存应用优化等,能够脱离设施实现模型的预处理。

应用 ATC 将黑白图像上色模型转换为昇腾 AI 处理器反对的离线模型命令如下:

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"

利用开发

本利用采纳了下图所示的模块化设计,通过各模块之间的协调配合实现一张图片的推理输入;对视频的推理也是一样的,能够间接参考开源仓中的源码实现。在这里就不再赘述了。

其中各个模块的 次要性能点 如下所示:

  • 运行治理资源申请

用于初始化零碎外部资源,固定的调用流程。

  • 加载模型文件并构建输入内存

从文件加载离线模型数据,须要由用户自行治理模型运行的内存,依据内存中加载的模型获取模型的根本信息蕴含模型输出、输入数据的数据 buffer 大小;由模型的根本信息构建模型输入内存,为接下来的模型推理做好筹备。

  • 数据预处理

接管外界传递的图像数据,对读入的图像数据进行预处理,而后构建模型的输出数据。

  • 模型推理

依据构建好的模型输出数据进行模型推理。

  • 解析推理后果

依据模型输入,解析模型的推理后果。应用 opencv 将转换后的彩色图像数据保留成图片文件。

预处理图像

图像预处理局部,应用 opencv 的 imread 接口读取图片,读取进去的是 BGR 格局。

模型输出为 224×224,因而须要把读取到的图像 resize 到 224×224。Resize 后对数据做归一化解决。

如算法设计局部所言,该模型采纳 Lab 色调空间,因而须要把 BGR 格局转为 Lab 格局数据。该模型用 L 通道数据预测出可能的 ab 空间数据,所以要从 Lab 数据中拆散出 L 通道数据。再对所得的数据减均值,即可失去模型须要的输出数据。

模型推理

模型推理局部,要害流程阐明如下:

调用 aclmdlCreateDesc 接口创立形容模型根本信息的数据类型;
modelDesc_ = aclmdlCreateDesc();

  1. 调用 aclmdlGetDesc 接口依据模型加载中返回的模型 ID 获取模型根本信息。aclError ret = aclmdlGetDesc(modelDesc_, modelId_);
  2. 筹备模型推理的输出、输入数据;
  3. 执行模型推理,调用 aclmdlExecute 接口;aclError ret = aclmdlExecute(modelId_, input_, output_);
  4. 获取模型推理的后果,用于后续解决。
  5. 开释内存。调用 aclrtFree 接口开释 Device 上的内存。开释相干数据类型的数据。在模型推理完结后,需及时调用 aclDestroyDataBuffer 接口和 aclmdlDestroyDataset 接口开释形容模型输出的数据,且先调用 aclDestroyDataBuffer 接口,再调用 aclmdlDestroyDataset 接口。如果存在多个输出、输入,需调用屡次 aclDestroyDataBuffer 接口。

后处理局部

图像后处理局部,应用 opencv。对于模型推理失去预测出的 ab 空间数据。

首先把失去的数据 resize 回原图像大小,而后和原图像 L 通道数据合并,即失去残缺 Lab 图像。

把 Lab 图像转回 BGR 格局即可保留为 jpeg 图片,失去上色后的图像。

黑白图像上色是一种艺术,也是一门技术~

昇腾 AI“黑白图像上色”利用曾经上线,只需一点,即可上色!

本案例地址:https://www.hiascend.com/zh/d…

在这个时代,一种新的色彩,就能够代表一种新的情绪,一个新的视角。

枯燥的黑红色仿佛曾经不足以满足咱们的需要~

让 AI 科技带你诠释不一样的美~

同时,点击在线试验,还能够体验该利用是如何用 CANN 开发进去的;

该利用的源码在 gitee 和 github 都有开源,点击下面的 github、gitee 中转源码仓,大家能够基于源码进行二次开发。

更多利用案例和源码:

利用案例地址:https://www.hiascend.com/deve…

源码地址:https://gitee.com/ascend/samp…

黑白图像上色示例图



关上网站不仅能够体验一秒上色的高兴~~

还能够间接获取到公开的源码,边体验边学习,还能在本人的 Ascend 的设施上间接玩转!

对科技的保持正在扭转世界,而咱们不能扭转这个世界也要好好体验所有的美妙~

这款网页利用既简略又乏味,非常适合给老照片、黑白照以及各种单色调照片上色!

点击关注,第一工夫理解华为云陈腐技术~

正文完
 0