android将彩图转为黑白_宝藏AI应用推荐!带你体验黑白图像自动上色的快乐~

点击上方昇腾开发者获取更多资讯

黑白与色彩

似乎把时代分割了两半~

我在这头看见了错乱繁华,琳琅满目,看见快速消长的色彩缤纷。

翻开一张黑白照片

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

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

3ce3c1111b2609db8cd9df6bbee528b7.png

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

令人望而生畏

却又不住的悄然幻想

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

会是什么颜色呢?

7918c863d4738f5c779732c62b6b3575.png

就在此刻的定格

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

带你共同体验这万千繁华盛景~

ffcf01b79f552c21cbf71a84dd8a131e.png

黑白图像上色模型原理

本应用是基于昇腾ACL(Ascend Computing Language)架构,使用黑白图像上色模型搭建的,适用于Atlas200dk及Atlas300等相关推理产品。

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

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

b7f826f0a07cf96c047bfdbc6fa5d39e.png

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

准备模型

昇腾软件栈需要使用达芬奇架构的模型(也就是后缀为.om的模型),直接使用软件栈自带的ATC模型转换工具即可进行转换,针对本应用,需要使用该工具将原始caffe模型转换成系统支持的om模型。

6060b0f282db1d6ffb37a55dc730b5f3.png

构建模型

模型准备完成后,需要进行模块构建。

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

f9c8f0d769a360ca24d9c52bd43ddfcf.png

模型的模块功能

其中各个模块的 主要功能点 如下所示:
  • 运行管理资源申请

用于初始化系统内部资源,固定的调用流程。

  • 加载模型文件并构建输出内存
从文件加载离线模型数据,需要由用户自行管理模型运行的内存,根据内存中加载的模型获取模型的基本信息包含模型输入、输出数据的数据buffer大小;由模型的基本信息构建模型输出内存,为接下来的模型推理做好准备。
  • 数据预处理
接收外界传递的图像数据,对读入的图像数据进行预处理,然后构建模型的输入数据。
  • 模型推理
根据构建好的模型输入数据进行模型推理。
  • 解析推理结果
根据模型输出,解析模型的推理结果。使用OpenCV将转换后的彩色图像数据保存成图片文件。

预处理图像

图像预处理部分,使用opencv的imread接口读取图片,读取出来的是BGR格式。

模型输入为224×224,因此需要把读取到的图像resize到224×224。Resize后对数据做归一化处理。

如算法设计部分所言,该模型采用Lab色彩空间,因此需要把BGR格式转为Lab格式数据。该模型用L通道数据预测出可能的ab空间数据,所以要从Lab数据中分离出L通道数据。再对所得的数据减均值,即可得到模型需要的输入数据。

bb3a2d9ebe73ad749b76feedce095ab5.png

模型推理

模型推理部分,关键流程说明如下:

1. 调用aclmdlCreateDesc接口创建描述模型基本信息的数据类型; modelDesc_ = aclmdlCreateDesc(); 2. 调用aclmdlGetDesc接口根据 模型加载 中返回的模型ID获取模型基本信息。 aclError ret = aclmdlGetDesc(modelDesc_, modelId_); 3. 准备模型推理的输入、输出数据; 4. 执行模型推理,调用 aclmdlExecute 接口; aclError ret = aclmdlExecute(modelId_, input_, output_); 5. 获取模型推理的结果,用于后续处理。 6. 释放内存。调用 aclrtFree 接口释放Device上的内存。 释放相关数据类型的数据。在模型推理结束后,需及时调用 aclDestroyDataBuffer 接口和 aclmdlDestroyDataset 接口释放描述模型输入的数据,且先调用 aclDestroyDataBuffer 接口,再调用 aclmdlDestroyDataset 接口。如果存在多个输入、输出,需调用多次 aclDestroyDataBuffer 接口。

后处理部分

图像后处理部分,使用opencv。对于模型推理得到预测出的ab空间数据。

首先把得到的数据resize回原图像大小,然后和原图像L通道数据合并,即得到完整Lab图像。

把Lab图像转回BGR格式即可保存为jpeg图片,得到上色后的图像。

40c8101f978d9757af03a3e58f7ca5de.png

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

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

体验链接:

https://www.huaweicloud.com/ascend/apps/applicationDetails/990674866

35adc82129255e75d5a859acdba76ec9.gif

在这个时代,一种新的颜色,就可以代表一种新的情绪,一个新的视角。

单调的黑白色似乎已经不足以满足我们的需求~

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

黑白图像上色示例图

28d9e6a8b4f5de50e5147118c210c710.png

e189ca3fbfb63f50f7b3d166c721e59f.pngf51cc3e32e481634fecaaeed22059a7e.png55aba132122df82eac452c456e1706ed.png

打开网站不仅可以体验一秒上色的快乐~~

还可以直接获取到公开的源码,边体验边学习,还能在自己的Ascend的设备上直接玩转!

a937b502d3cd1081340a38523ed953ca.png

对科技的坚持正在改变世界,而我们不能改变这个世界也要好好体验所有的美好~

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

点击下方‘

4905fdbd948bbdb3230fda0afa9bbc8e.gif

应用链接:

https://www.huaweicloud.com/ascend/apps/applicationDetails/990674866


阅读推荐↓ 2f91935a879a85fe5ab4b96909d94934.png

933d74809f807e74ccc40743de078e4b.png 扫码关注公众号,获取更多资讯 eb2d48de286e4b5a99da56be0b018304.gif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值