底层视觉与黑白图像上色(1)

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
交互式建模 PAI-DSW,每月250计算时 3个月
模型训练 PAI-DLC,5000CU*H 3个月
简介: 底层视觉与黑白图像上色

底层视觉简介

底层视觉(即视觉增强)是计算机视觉中的一个分支,它专注于提高图像整体的观看体验。如果 “中高层视觉” 关注的是如何让计算机理解图像中的内容,那么底层视觉则致力于解决图像的清晰度、色彩、时序等各类画质问题。这些问题的出现与拍摄环境、设备等因素有关,而视觉增强技术则旨在修复这些问题,提供更好的视觉观看体验。

底层视觉的应用也非常广泛,涉及老照片修复、超高清增强、媒资管理、AIGC 内容生成与编辑等多个领域。接下来,我们简单介绍几个常见的底层视觉画质增强任务。

超分辨率(Super-Resolution,简称 SR)是一种图像处理技术,旨在将低分辨率图像转换为高分辨率图像。超分辨率技术在计算机视觉、医学成像、卫星图像等领域广泛应用。输入低清图片,比如64x64分辨率的图片,可以通过超分辨率算法将其变为4倍甚至16倍大小,输出非常高清的图片。

图像上色(Image Colorization)指的是将黑白或灰度图像转换为彩色图像的过程,它是一种常见的图像处理技术。图像上色在许多领域都具有重要的应用,如电影、动画、印刷、医学成像等。

图像补全(Image Inpainting)是一种图像处理技术,旨在通过填补丢失的部分来恢复图像的完整性。它可以用于修复损坏的图像、去除图像中的噪声和纹理、去除水印等。例如,有些时候照片里出现了部分不想要的内容,这时便可以将该部分进行抹除,然后利用图像补全算法自动生成被抹除的部分,达到想要的效果。

图像修复(Image Restoration)是一种图像处理技术,旨在通过去除图像中的噪声、模糊、失真等问题来恢复图像的清晰度和细节。它可以用于修复老照片、去除图像中的瑕疵、恢复图像中的细节等。

ModelScope 官网提供了大量底层视觉任务的算法体验,除了上文提到的应用,还提供了色彩增强、时域增强、画质评估等能力。

接下来,以ModelScope提供的“老照片修复”创空间为例,讲解底层视觉算法的一个简单应用。

受拍摄设备和时代因素的限制,多年前的老照片可能存在诸如黑白、噪点等画质问题,导致其表现效果不佳。不过,通过使用 ModelScope 的老照片修复应用,我们可以让这些老照片重新焕发生机,呈现出更加鲜活的色彩和清晰的画面。

进入ModelScope官网,我们通过“模型库”的“画质增强”专题,可以进入 “AI老照片修复”创空间应用。

应用整体界面如上图。

选择一张示例图片,然后点击“一键修复”,处理前后效果如图。

如果想了解该创空间应用使用到的某个具体模型的详细信息,可以点击右上角的 “关联模型”,然后选择需要了解的模型,进入该模型的页面查看。

查看空间文件,其中的app.py 文件包含了应用的核心代码。

180-210 行通过逐步定义各个组件,构建了一个Gradio 应用。209 行定义了“一键修复”按钮按下调用的函数,即inference() 函数。

Inference() 函数的定义从第20 行开始,其接收 4 个参数,分别是图片以及 3个页面上提供的处理选项。在函数内,首先对图像进行resize,然后对图像做编码获得URL。

接下来,对于每个模型,构造一个字典并调用 call_demo_service() 函数。该函数使用每个 ModelScope 模型在其模型页面右侧展示的体验功能,通过构建HTTP请求调用该能力。这样做的优势在于,可直接通过发调用的方式完成操作,不消耗本地资源。整个过程按顺序调用了 4 个模型,依次为图像去噪、图像上色、人像增强、色彩增强(顺序可调换),最后返回结果图像。

图像上色简介

经过深度学习算法的发展,图像上色技术已经可以实现和人类手工上色相媲美的结果。传统的图像上色需要艺术家进行辛勤的工作和广泛的调研,而对于黑白历史老照片,通常需要长达数月的时间才能实现较好的上色效果。相比之下,深度学习算法可以更快速、更准确地实现图像上色。

在深度学习算法中,图像上色通常使用卷积神经网络(CNN)进行实现。通过训练神经网络,可以将黑白图像中的特征映射到相应的色彩空间中,从而实现图像上色的目的。在训练过程中,算法可以学习到图像中的颜色分布和纹理信息等特征,从而实现较好的上色效果。

黑白图像在计算机中通常使用二维网格来进行存储和表示,每个像素有一个值用于表示亮度,取值范围一般为 0-255,对应黑色到白色。在图像上色时,深度学习算法需要将这些亮度值转换成相应的颜色值,从而实现对图像的上色。

常见的彩色图像通常由三个颜色通道组成,分别是红色(R)、绿色(G)和蓝色(B),即 RGB。这三个通道的取值范围为 0-255,任何一种颜色都可以由这三种基本颜色的不同强度组合而成。

在图像上色中,我们通常需要训练一个人工智能模型,学习并搜索一个能够将灰度网格转化为三通道颜色网格的函数。

除了 RGB 色彩空间外,还有一种常见的色彩空间是 Lab 色彩空间。

Lab 色彩空间中,L 代表亮度,a 和 b 分别代表从绿色到红色的分量和从蓝色到黄色的分量。L 通道的取值范围为 0-100,L 越大,亮度越高,0 代表黑色,100 代表白色。a 和 b 的取值范围一般为 - 128 到+ 127,其中 0 代表灰色。

在上图中,我们将左侧的彩色图像分解成 L、a、b 三个通道,并将其可视化。可以看到,L 通道表示图像的亮度信息,a 和 b 通道分别表示图像的颜色信息,其中 a 通道从绿色到红色变化,b 通道从蓝色到黄色变化。

相比于 RGB 色彩空间,Lab 色彩空间在图像上色任务中具有更好的表现。Lab 色彩空间能够带来几个好处:首先,可以在最终的预测中充分利用原图像的灰色通道。一个有趣的科学事实是:人类眼睛中 94% 的细胞接受亮度,剩下 6% 用于感受颜色。

因此,灰色通道对于整体视觉效果非常重要。其次,直接从灰色的单通道图像预测 RGB 的三通道彩色图像比较困难,但是如果只预测 a 和 b 两个通道,则难度会降低。最后,Lab 的颜色空间设计是基于人对颜色的感觉,它是感知均匀的,即 Lab 三个通道中的数字变化的幅度一样,则给人带来的视觉上的变化幅度也相近,更有利于模型的学习。

当前,学术界流行的几个图像上色评价指标主要包括:

  1. FID(Fréchet Inception Distance):通过计算生成图像与真实图像之间分布的距离,来评价生成图像的质量。该指标综合考虑了图像在特征空间中的分布和结构信息,因此是一种比较全面的评价指标。
  2. Colorfulness Score:衡量图片色彩鲜艳的程度,一般而言,色彩越鲜艳,Colorfulness Score 越高。该指标可以用来评价上色图像的颜色饱和度和鲜艳度,因此在某些应用场景下也具有重要的作用。
  3. User Study:是人类对图片的主观评价,通常需要通过调查问卷等方式来进行。虽然该指标存在一定的主观性,但它可以为上色算法的改进提供有价值的反馈信息,因此也是一种重要的评价指标。

Transformer 是 Google 在 2017 年提出的一种知名模型,最近大火的 ChatGPT 也使用了 Transformer 模型。它的主要特点是利用了自注意力机制来实现输入序列的编码和解码,从而能够更好地处理长序列数据。

在自然语言领域,Transformer 已经被广泛应用于机器翻译、语言模型等任务,并且取得了很好的效果。近年来,Transformer 也开始在计算机视觉领域得到广泛应用,例如图像分类、目标检测等任务。由于 Transformer 模型具有高效、灵活等特点,因此成为了计算机视觉领域的一项基础技术。


相关文章
|
6月前
|
机器学习/深度学习 人工智能 达摩院
DDColor:AI图像着色工具,优秀的黑白图像上色模型,支持双解码器!
DDColor:AI图像着色工具,优秀的黑白图像上色模型,支持双解码器!
376 3
|
6月前
|
算法 数据挖掘
[Halcon&图像] 阈值分割算法拓展
[Halcon&图像] 阈值分割算法拓展
134 1
|
机器学习/深度学习 存储 编解码
|
机器学习/深度学习 存储 编解码
底层视觉与黑白图像上色
底层视觉(即视觉增强)是计算机视觉中的一个分支,它专注于提高图像整体的观看体验。如果 “中高层视觉” 关注的是如何让计算机理解图像中的内容,那么底层视觉则致力于解决图像的清晰度、色彩、时序等各类画质问题。这些问题的出现与拍摄环境、设备等因素有关,而视觉增强技术则旨在修复这些问题,提供更好的视觉观看体验。
|
机器学习/深度学习 人工智能 计算机视觉
华南理工TANGO项目原作解读: 文本驱动的三维物体风格化模型
华南理工TANGO项目原作解读: 文本驱动的三维物体风格化模型
170 0
|
前端开发 数据可视化
【视觉基础篇】13 # 如何给简单的图案添加纹理和复杂滤镜?
【视觉基础篇】13 # 如何给简单的图案添加纹理和复杂滤镜?
87 0
【视觉基础篇】13 # 如何给简单的图案添加纹理和复杂滤镜?
|
传感器 JSON 数据可视化
【视觉高级篇】22 # 如何用仿射变换来移动和旋转3D物体?
【视觉高级篇】22 # 如何用仿射变换来移动和旋转3D物体?
196 0
【视觉高级篇】22 # 如何用仿射变换来移动和旋转3D物体?
|
算法 前端开发 JavaScript
【视觉基础篇】10 # 图形系统如何表示颜色?
【视觉基础篇】10 # 图形系统如何表示颜色?
172 0
【视觉基础篇】10 # 图形系统如何表示颜色?
|
算法 数据可视化
【视觉基础篇】16 # 如何使用噪声生成复杂的纹理?
【视觉基础篇】16 # 如何使用噪声生成复杂的纹理?
185 0
【视觉基础篇】16 # 如何使用噪声生成复杂的纹理?
|
数据可视化
【视觉基础篇】15 # 如何用极坐标系绘制有趣图案?
【视觉基础篇】15 # 如何用极坐标系绘制有趣图案?
168 0
【视觉基础篇】15 # 如何用极坐标系绘制有趣图案?

热门文章

最新文章