华为计算微信公众号

昇腾AI开发者公众号

华为计算微博

华为计算今日头条

昇腾社区首页
昇腾社区
昇腾AI市场
按解决方案类型
按昇腾产品
按行业
按伙伴
客户案例
Powered by Ascend
更多
文档
支持
应用案例
黑白图像上色
黑白图像上色
图像处理C++AscendCL

1350次浏览

暂无评分
我要评分
缺失色彩的世界总是会失去很多迷人的魅力—— 黑白照片,饱含世代流传的印记,虽别有风味,却少了一分身临其境的代入感, 还原画面色彩,穿越到你的时代,用你的眼睛看世界,尽享那时的色彩缤纷与琳琅满目。 伟大的艺术却不仅仅是简单的色彩修饰—— 毕加索风格的不落窠臼、梵高风格的星空斗转、工农兵风格的不拘一格, 正是这些“小特别”的风格,才给予了生活真正的艺术感。 但传统意义上的黑白图像上色和风格勾勒,都需要匠人卓越的技艺, 如今AI能让你一键还原历史,也能花式迁移艺术风格, 还等什么!一起来感受时空穿梭的疯狂吧!
获取样例获取样例

概述

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

其中模型的输入为L通道的数据(224,224,1),输出为ab通道的数据(56,56,2)。

如下图所示,昇腾软件栈中存在一个atc模型转换工具,针对本应用,我们需要使用该工具将原始模型转换成系统支持的om模型。
本应用采用了下图所示的模块化设计,通过各模块之间的协调配合完成一张图片的推理输出。
其中各个模块的主要功能点如下所示:
  • 1.运行管理资源申请:用于初始化系统内部资源,固定的调用流程。
  • 2.加载模型文件并构建输出内存:从文件加载离线模型数据,需要由用户自行管理模型运行的内存,根据内存中加载的模型获取模型的基本信息包含模型输入、输出数据的数据buffer大小;由模型的基本信息构建模型输出内存,为接下来的模型推理做好准备。
  • 3.数据预处理:接收外界传递的图像数据,对读入的图像数据进行预处理,然后构建模型的输入数据。
  • 4.模型推理:根据构建好的模型输入数据进行模型推理。
  • 5.解析推理结果:根据模型输出,解析模型的推理结果。使用OpenCV将转换后的彩色图像数据保存成图片文件。

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

图像预处理

本应用图像预处理部分,使用OpenCV的imread接口读取图片,读取出来的是BGR格式。模型输入为224×225,因此需要把读取到的图像Resize到224×224。Resize后对数据做归一化处理。如算法设计部分所言,该模型采用Lab色彩空间,因此需要把BGR格式转为Lab格式数据。该模型用L通道数据预测出可能的ab空间数据,所以要从Lab数据中分离出L通道数据。再对所得的数据减均值,即可得到模型需要的输入数据。

模型推理结果后处理

模型推理得到预测出的ab空间数据。首先把得到的数据resize回原图像大小,然后和原图像L通道数据合并,即得到完整Lab图像。把Lab图像转回BGR格式即可保存为jpeg图片,得到上色后的图像。

效果展示

我们使用cookie来确保您的高速浏览体验。继续浏览本站,即表示您同意我们使用cookie。查看详情

关于昇腾

昇腾计算产业概述

新闻与活动

新闻资讯昇腾活动

交流与资讯

昇腾论坛技术干货

支持与服务

文档技术工单举报中心

开源社区

昇思社区昇腾开放资源
关注我们
友情链接
华为官网华为计算鲲鹏社区华为云启智社区华为开发者
版权所有 © 2021-2026华为技术有限公司 保留一切权利 粤A2-20044005号
粤公网安备 44030702005057号
法律声明隐私政策Cookie协议用户协议联系我们