黑白与色彩

似乎把时代分割了两半~

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

翻开一张黑白照片

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

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

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

令人望而生畏

却又不住的悄然幻想

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

会是什么颜色呢?

就在此刻的定格

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

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

黑白图像上色模型原理

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

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

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

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

准备模型

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

构建模型

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

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

模型的模块功能

其中各个模块的主要功能点如下所示:

  • 运行管理资源申请

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

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

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

  • 数据预处理

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

  • 模型推理

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

  • 解析推理结果

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

预处理图像

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

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

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

模型推理

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

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图片,得到上色后的图像。

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

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

体验链接:

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

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

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

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

黑白图像上色示例图

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

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

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

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

点击下方‘阅读原文’即可体验赶紧把手里的照片拿出来体验一下吧~

应用链接:

https://www.hiascend.com/zh/developer/mindx-sdk/cartoon/990674866img

宝藏AI应用推荐!带你体验黑白图像自动上色的快乐~相关推荐

  1. 黑白图像自动上色(颜色迁移版)

    在<一篇关于如何用深度学习完成自动上色(Automatic Image Colorization)的论文浅析>看到这个模型也可以作颜色风格迁移,这里也来试试,先换另一个模型:colorne ...

  2. 黑白图像自动上色(Colorization)

    在<siggraph2016_colorization-master>有两个可以给黑白图片自动上色的模型:colornet.t7 和 colornet_imagenet.t7. 现来把这个 ...

  3. 智能黑白图像自动上色——C++实现

    前言 <Colorful Image Colorization>是加里福利亚大学Richard Zhang发表在ECCV 2016上的文章,论文主要解决的问题是给灰度图的自动着色,算法并不 ...

  4. python图片自动上色_通过深度学习方法为黑白老照片自动上色,带我们重新忆起那段老时光!...

    我们知道,深度学习几乎已经应用在每一个领域,但如果我们能够构建一个基于深度学习的模型,让它能够给老照片着色,重现我们童年的旧回忆,这该多么令人激动啊!那么我们要怎么做呢?本文的作者将为大家介绍一个教程 ...

  5. 百行代码构建神经网络黑白图片自动上色系统

    使用神经网络对图片进行风格化渲染是计算机视觉领域的热门应用之一.本文将向你介绍一种简单而有效的黑白图片上色方法,仅需 100 行代码,你也可以搭建自己的神经网络,几秒钟内让计算机自动完成手动工作需要几 ...

  6. 能给黑白照片自动上色的软件有哪些?这几款建议收藏

    大家平时在收拾东西的时候,有没有发现家里的一些老照片?而且这些老照片大多数都是黑白照,这时候你会不会萌生一个想法,那就是将这些老照片变成一张有色彩的照片会是什么样的?其实想实现这个想法并不难,我们只要 ...

  7. 怎样给黑白照片自动上色?

    这一系统采用了全新"深度学习技术",具体来说就是,他们会输入超过100万幅彩色照片,用以"训练"计算机识别各种对象,并根据照片上的灰度计算颜色.程序会根据计算结 ...

  8. 如何开发一个黑白照片还原成彩色,AI黑白图像图片上色系统毕业设计毕设作品

    开发准备 第1步:准备好百度智能云的账号 第2步:在百度智能云领取对应AI开发的免费资源包 第3步:创建对应的应用,然后获取对应的开发信息,主要是下面几个 AppID:应用列表中 API Key:应用 ...

  9. AI人工智能毕业设计课题:怀旧照片网站,黑白图像图片上色系统

    开发准备 第1步:准备好百度智能云的账号 第2步:在百度智能云领取对应AI开发的免费资源包 第3步:创建对应的应用,然后获取对应的开发信息,主要是下面几个 AppID:应用列表中 API Key:应用 ...

最新文章

  1. 版本迭代规划的几大关键步骤
  2. 在ASP.NET 2.0中操作数据教程系列
  3. 3.关于QT中的MainWindow窗口,MenuBar,ToolBar,QuickTip等方面的知识点
  4. 怎样改变java编码风格_如何说服同事修改些代码的风格(JAVA的)。。求指引
  5. uniapp - 接入科大讯飞语音评测
  6. 人工神经网络的算法原理,人工智能神经网络算法
  7. 纯CSS打造淘宝导航菜单栏
  8. html添加桌面背景图片代码,背景图片加文字代码. 用HTML制作表格
  9. php项目部署到服务器
  10. Delphi动态创建MainMenu和PopupMenu菜单的方法
  11. 完美解决pytorch多线程问题:Cannot re-initialize CUDA in forked subprocess. To use CUDA with multiprocessing
  12. android判断是否json格式,简单方法判断字符串是否是json字符串
  13. 如何向Google提交网站?(转)
  14. 学生成绩管理系统mysql课程设计_学生成绩管理系统数据库课程设计报告.doc
  15. 基于wxpy的微信防撤回
  16. 发送测试电子邮件消息 响应服务器 550,Microsoft SMTP 服务器在第三方测试中可能显示为能够接受并中继电子邮件...
  17. BZOJ1232 安慰奶牛cheer (洛谷2916)
  18. solr之模糊搜索(Fuzzy matching)
  19. [小甲鱼] 零基础入门python第031讲课后测试题及答案:永久存储,腌制一缸美味的泡菜
  20. 在网站上增加了一个泛微OA链接打不开,刷新就可以

热门文章

  1. 视频+讲义:大流量高并发互联网应用实践在线峰会资料全公开
  2. 【计算机体系结构-03】ISA (Instruction Set Architecture) 指令集架构特性
  3. vs中的即时窗口中英文版
  4. 现在学校应用较多的计算机学籍管理系统,计算机题库(填空题)
  5. vue项目中背景图片写成行内样式不显示
  6. 走进音视频的世界——RGB与YUV格式
  7. 【MySQL进阶篇】学习笔记
  8. python发微信红包群二维码_「微信红包」通过爬虫来全自动抢微博红包的思路
  9. FFmpeg入门详解之102:HLS直播协议详解
  10. git push 成功后如何撤销回退