杜克大学开源 AI 算法,让马赛克图片秒变高清!

2023-12-24 14:08

本文主要是介绍杜克大学开源 AI 算法,让马赛克图片秒变高清!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

公众号关注 “GitHubDaily”

设为 “星标”,每天带你逛 GitHub!

大家好,我是小 G。

在这个追求高清画质的时代,我们对渣画质的容忍度越来越低。

在知乎上搜索「低分辨率」、「渣画质」,会看到一大片诸如「如何补救清晰度低的照片」、「如何拯救渣画质」之类的问题。

那么,将渣到马赛克级别的画面秒变高清,是一种怎样的体验?杜克大学的研究人员用 AI 算法告诉你。

GitHub 链接:https://github.com/adamian98/pulse

 前所未有,「马赛克」瞬间变高清

杜克大学的研究人员提出了一种 AI 算法,称之为 PULSE(Photo Upsampling via Latent Space Exploration,通过潜在空间探索的照片上采样)。

该算法可以将模糊、无法识别的人脸图像转换成计算机生成的图像,其细节比之前任何时候都更加精细、逼真。

根据输入的低分辨率图片,系统会生成一系列高清图像

如果用以前的方法,想要把一张模糊的「大头照」变清晰,最多只能将这张照片缩放到原始分辨率的八倍。

但是杜克大学的团队提出了一种新的方法,仅在几秒钟内,就可以把 16x16 像素的低分辨率(Low Resolution,以下简称 LR)小图,放大 64 倍,变成 1024 x 1024 像素的高分辨率(High Resolution,以下简称 HR)图像

他们的 AI 工具会「想象」出一些原本不存在的特征,即使是原本 LR 照片中无法看到的细节,比如毛孔、细纹、睫毛、头发和胡茬等,经过其算法处理后,都能看得一清二楚。

来看一个具体示例:

左图为原始低分辨率图像,右图为系统创建的高清图像

领导该团队的杜克大学计算机科学家辛西娅・鲁丁(Cynthia Rudin)说:「以前从来没有像现在这样,能用这么少的像素,就创造出拥有大量细节的超分辨率图像。」

在实际应用方向上,论文的共同作者 Sachit Menon 介绍称:「在这些研究中,我们只是用面部作为概念验证。

但从理论上讲,该技术是通用的,从医学、显微镜学到天文学和卫星图像,都可以通过该技术改善画质。」

 打破传统操作,实现最佳效果

虽说此前已经有很多类似的低清变高清的方法,但能够达到像素放大 64 倍级别的,还是业界首次。

 传统方法:像素匹配,易出 bug

传统方法处理此类问题时,一般拿到 LR 图像后,会「猜测」需要多少额外的像素,然后试着将此前处理过的 HR 图像中相应的像素,匹配给 LR 图像。

而这种单纯匹配像素的结果是,像头发和皮肤的纹理这种区域,会出现像素匹配错位的现象。

而且该方法还会忽略了 HR 图像中,感光性等感知细节。所以最终在平滑度、感光度上出现问题,结果依然会显得模糊或者不真实。

之前的一些方法,部分生成结果有点诡异

 新方法:低清图像「连连看」 

杜克大学的团队则提出的新方法,可以说是开辟了新的思路。

在拿到一张 LR 图像后,PULSE 系统不会慢慢添加新的细节,而是遍历 AI 生成的 HR 图像,将这些 HR 图像对应的 LR 图像与原图对比,找到最接近的那张。

打个比方,相当于拿 LR 图片做个「连连看」,找到最相似的 LR 版本,那么再反推回去,这张 LR 图像所对应的 HR 图像,就是最终要输出的结果。

原始 LR 图片(上),PULSE 输出的 HR 图片(中)

HR 图片对应的 LR 图(下)

团队使用了生成对抗网络(简称 GAN ),它包括对同一张照片数据集进行训练的两个神经网络,即生成器与鉴别器。

其中,生成器模拟它所受过训练的人脸,提供 AI 创建的人脸,而鉴别器则获得了该输出,并确定它是否足以以假乱真。

随着经验的积累,生成器的经验会越来越好,直到鉴别器无法分辨出差异。

他们用一些真实图像进行试验,效果对比如下图所示:

上排为真实图片,中排为将真实图片下采样而来 LR 图像

下排为 PULSE 根据 LR 图像生成的 HR 图像

虽然生成的高分辨率图与原图仍有一些差距,但是这比以前的方法要清晰很多。

 评估:优于其它方法,得分接近真实照片

团队在著名的高分辨率人脸数据集 CelebA HQ 上评估了其算法,用 64×,32× 和 8× 的比例因子进行了这些实验。

研究人员要求 40 个人对通过 PULSE 和其他五种缩放方法生成的 1440 张图像进行 1 到 5 的评分,而 PULSE 的效果最佳,得分几乎与真实的高质量照片一样高。

HR 为实际的高清人像数据集,得分仅比 PULSE 高 0.14

团队成员表示,PULSE 可以从嘈杂、低质量的输入中,创建逼真的图像,即使原图连眼睛、嘴巴都无法辨认。这是其他方法无法做到的。

与其它方法对比,PULSE 将细节处理得更为逼真

不过,该系统还不能用于识别身份,研究人员表示:「它无法将安全摄像头拍摄的失焦、不能识别的照片,变成真人的清晰图像。它仅会生成不存在但看上去很真实的新面孔。」

在具体应用场景上,除了上文提到的,该技术未来可能应用在医学、天文学之外,对于大众来说,拥有这项黑科技之后,就可以把 N 年前的老照片变高清。对于编辑同志们来说,更是一大福音,再也不用为找高清配图而头大了。

从此告别「画质感人」

温馨提示:研究人员还会在正在举行的 CVPR 2020(计算机视觉和模式识别会议)上介绍他们的方法,大家可以关注一下:

http://cvpr2020.thecvf.com/program/tutorials

论文地址:

https://arxiv.org/pdf/2003.03808.pdf

参考资料:

https://www.sciencedaily.com/releases/2020/06/200612111409.htm

---由 GitHubDaily 原班人马打造的公众号:GitCube,现已正式上线!
接下来我们将会在该公众号上,为大家分享优质的计算机学习资源与开发者工具,坚持每天一篇原创文章的输出,感兴趣的小伙伴可以关注一下哈!

这篇关于杜克大学开源 AI 算法,让马赛克图片秒变高清!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/532021

相关文章

Python实现精准提取 PDF中的文本,表格与图片

《Python实现精准提取PDF中的文本,表格与图片》在实际的系统开发中,处理PDF文件不仅限于读取整页文本,还有提取文档中的表格数据,图片或特定区域的内容,下面我们来看看如何使用Python实... 目录安装 python 库提取 PDF 文本内容:获取整页文本与指定区域内容获取页面上的所有文本内容获取

Python基于微信OCR引擎实现高效图片文字识别

《Python基于微信OCR引擎实现高效图片文字识别》这篇文章主要为大家详细介绍了一款基于微信OCR引擎的图片文字识别桌面应用开发全过程,可以实现从图片拖拽识别到文字提取,感兴趣的小伙伴可以跟随小编一... 目录一、项目概述1.1 开发背景1.2 技术选型1.3 核心优势二、功能详解2.1 核心功能模块2.

Go语言如何判断两张图片的相似度

《Go语言如何判断两张图片的相似度》这篇文章主要为大家详细介绍了Go语言如何中实现判断两张图片的相似度的两种方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 在介绍技术细节前,我们先来看看图片对比在哪些场景下可以用得到:图片去重:自动删除重复图片,为存储空间"瘦身"。想象你是一个

使用Python实现base64字符串与图片互转的详细步骤

《使用Python实现base64字符串与图片互转的详细步骤》要将一个Base64编码的字符串转换为图片文件并保存下来,可以使用Python的base64模块来实现,这一过程包括解码Base64字符串... 目录1. 图片编码为 Base64 字符串2. Base64 字符串解码为图片文件3. 示例使用注意

c/c++的opencv实现图片膨胀

《c/c++的opencv实现图片膨胀》图像膨胀是形态学操作,通过结构元素扩张亮区填充孔洞、连接断开部分、加粗物体,OpenCV的cv::dilate函数实现该操作,本文就来介绍一下opencv图片... 目录什么是图像膨胀?结构元素 (KerChina编程nel)OpenCV 中的 cv::dilate() 函

使用Python实现调用API获取图片存储到本地的方法

《使用Python实现调用API获取图片存储到本地的方法》开发一个自动化工具,用于从JSON数据源中提取图像ID,通过调用指定API获取未经压缩的原始图像文件,并确保下载结果与Postman等工具直接... 目录使用python实现调用API获取图片存储到本地1、项目概述2、核心功能3、环境准备4、代码实现

Spring AI 实现 STDIO和SSE MCP Server的过程详解

《SpringAI实现STDIO和SSEMCPServer的过程详解》STDIO方式是基于进程间通信,MCPClient和MCPServer运行在同一主机,主要用于本地集成、命令行工具等场景... 目录Spring AI 实现 STDIO和SSE MCP Server1.新建Spring Boot项目2.a

Java实现图片淡入淡出效果

《Java实现图片淡入淡出效果》在现代图形用户界面和游戏开发中,**图片淡入淡出(FadeIn/Out)**是一种常见且实用的视觉过渡效果,它可以用于启动画面、场景切换、轮播图、提示框弹出等场景,通过... 目录1. 项目背景详细介绍2. 项目需求详细介绍2.1 功能需求2.2 非功能需求3. 相关技术详细

使用雪花算法产生id导致前端精度缺失问题解决方案

《使用雪花算法产生id导致前端精度缺失问题解决方案》雪花算法由Twitter提出,设计目的是生成唯一的、递增的ID,下面:本文主要介绍使用雪花算法产生id导致前端精度缺失问题的解决方案,文中通过代... 目录一、问题根源二、解决方案1. 全局配置Jackson序列化规则2. 实体类必须使用Long封装类3.

Java如何根据文件名前缀自动分组图片文件

《Java如何根据文件名前缀自动分组图片文件》一大堆文件(比如图片)堆在一个目录下,它们的命名规则遵循一定的格式,混在一起很难管理,所以本文小编就和大家介绍一下如何使用Java根据文件名前缀自动分组图... 目录需求背景分析思路实现代码输出结果知识扩展需求一大堆文件(比如图片)堆在一个目录下,它们的命名规