杜克大学开源 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 FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

详解C#如何提取PDF文档中的图片

《详解C#如何提取PDF文档中的图片》提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使用,下面我们就来看看如何使用C#通过代码从PDF文档中提取图片吧... 当 PDF 文件中包含有价值的图片,如艺术画作、设计素材、报告图表等,提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使

Java实现文件图片的预览和下载功能

《Java实现文件图片的预览和下载功能》这篇文章主要为大家详细介绍了如何使用Java实现文件图片的预览和下载功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... Java实现文件(图片)的预览和下载 @ApiOperation("访问文件") @GetMapping("

SpringBoot实现MD5加盐算法的示例代码

《SpringBoot实现MD5加盐算法的示例代码》加盐算法是一种用于增强密码安全性的技术,本文主要介绍了SpringBoot实现MD5加盐算法的示例代码,文中通过示例代码介绍的非常详细,对大家的学习... 目录一、什么是加盐算法二、如何实现加盐算法2.1 加盐算法代码实现2.2 注册页面中进行密码加盐2.

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Java时间轮调度算法的代码实现

《Java时间轮调度算法的代码实现》时间轮是一种高效的定时调度算法,主要用于管理延时任务或周期性任务,它通过一个环形数组(时间轮)和指针来实现,将大量定时任务分摊到固定的时间槽中,极大地降低了时间复杂... 目录1、简述2、时间轮的原理3. 时间轮的实现步骤3.1 定义时间槽3.2 定义时间轮3.3 使用时

Spring AI ectorStore的使用流程

《SpringAIectorStore的使用流程》SpringAI中的VectorStore是一种用于存储和检索高维向量数据的数据库或存储解决方案,它在AI应用中发挥着至关重要的作用,本文给大家介... 目录一、VectorStore的基本概念二、VectorStore的核心接口三、VectorStore的

基于Python开发批量提取Excel图片的小工具

《基于Python开发批量提取Excel图片的小工具》这篇文章主要为大家详细介绍了如何使用Python中的openpyxl库开发一个小工具,可以实现批量提取Excel图片,有需要的小伙伴可以参考一下... 目前有一个需求,就是批量读取当前目录下所有文件夹里的Excel文件,去获取出Excel文件中的图片,并

Java实现数据库图片上传与存储功能

《Java实现数据库图片上传与存储功能》在现代的Web开发中,上传图片并将其存储在数据库中是常见的需求之一,本文将介绍如何通过Java实现图片上传,存储到数据库的完整过程,希望对大家有所帮助... 目录1. 项目结构2. 数据库表设计3. 实现图片上传功能3.1 文件上传控制器3.2 图片上传服务4. 实现