高糊马赛克秒变高清,表情帝:这还是我吗?

全世界有3.14 % 的人已经关注了

爆炸吧知识

来源:机器之心
参与:魔王、杜伟

有了这个工具,我们终于能够看到马赛克下的那张脸了。

给出一张高糊人脸照片,你能用它做什么?

杜克大学近期的一项研究可以将高糊人脸照片转换成清晰的面部图像,而且你完全看不出来图像中的人并非真人,而是计算机生成的人脸。

此外,这个名为 PULSE 的方法还可以「有来有往」,生成的高分辨率照片可以再次降级,回到高糊状态。在具体实现方面,该方法使用了 StyleGAN 来生成高分辨率图像。

看起来,PULSE 方法与其他方法相比,展示出了更好的生成效果,清晰度更高,细节也更加丰富。

不过,AI 方法「看到」的面部图像和我们猜测的似乎存在差别。该项目提供了 Colab 环境,众多网友试用后发现了一些效果不太好的例子。

比如,超级马里奥在 PULSE 眼里成了这样:

我有点不敢玩这款游戏了……

奥巴马似乎变年轻了,好像也变白了,但这还是奥巴马吗?

表情包界王者也突然变了模样:

 想必此时表情包主角的内心是:

有网友质疑该方法生成结果存在偏见,尤其是对黑人图像的处理效果并不好。对此,项目作者给出了回应:

PULSE 生成白人面部图像的频率确实要高于有色人种的面部图像。这一偏见很可能来自于 StyleGAN 的训练数据集,可能还有其他未知因素。我们意识到偏见是机器学习和计算机视觉领域的重要问题,并就此问题联系了 StyleGAN 和 FFHQ 数据集的创建者。我们希望这能够促进不具备此类偏见行为的方法的诞生。

此外,PULSE 作者强调,该方法最后输出的高分辨率图像并非真人。因此,该方法无法用于识别或重建原始图像,大家无需担心该方法会对现实中的人造成困扰。

那么,这个新方法到底是怎么做的呢?我们来细看下。

  • 论文地址:https://arxiv.org/abs/2003.03808

  • GitHub 地址:https://github.com/adamian98/pulse

  • 网站地址:http://pulse.cs.duke.edu/

  • Colab 地址:https://colab.research.google.com/github/tg-bomze/Face-Depixelizer/blob/master/Face_Depixelizer_Eng.ipynb

PULSE 开启图像超分辨率新范式?

单图像超分辨率任务即基于低分辨率(LR)输入生成高分辨率(HR)图像。之前的方法通常是监督式的,其训练目标通常是度量超分辨率(SR)和高分辨率图像之间的像素级平均距离。而对此类度量指标的优化往往导致模糊,尤其是高方差区域的模糊。

杜克大学将超分辨率问题重构为:如何创建可以准确降级回去的逼真 SR 图像。这提供了图像超分辨率的新范式。

具体来说,研究者提出一种新型超分辨率算法 PULSE (Photo Upsampling via Latent Space Exploration),该算法可以生成高分辨率的逼真图像,分辨率之高超过之前的方法。

此外,PULSE 是以完全自监督的方式进行的,且不受限于训练期间使用的特定降级算子(degradation operator),这与之前的方法有所不同。

PULSE 不从 LR 图像开始缓慢地添加细节,而是遍历高分辨率自然图像流形,搜索可以降级至原始 LR 图像的高分辨率图像。这一过程通过「降尺度损失」(downscaling loss)完成,它指引着在生成模型潜在空间中的探索。

此外,研究者利用高维高斯的特性限制搜索空间,使其保证输出结果是逼真的。因此,PULSE 得以生成既逼真又能进行恰当分辨率降级的超分辨率图像。

该研究进行了大量实验,表明 PULSE 方法在人脸超分辨率领域中的效果。该方法以更高的分辨率和缩放因子(scale factor)超过了当前最优方法的感知质量。

具体而言,PULSE 可以在几秒钟内将 16x16 像素图像转换为 1024 x 1024 像素图像,添加了一百万像素。此外,它还可以将低分辨率图像中无法看清的毛孔、皱纹、头发等转换得清晰。

研究者请 40 个人对 PULSE 和其他五种方法生成的 1440 张图像进行评分(1-5 分),结果表明 PULSE 分数最高,接近真人的高质量图像。

PULSE 如何实现最优效果?

研究者首先定义了超分辨率问题的术语。假设低分辨率图像为 I_LR,超分辨率方法即学习一个条件生成函数 G,把 G 应用于 I_LR 时可以得到超分辨率图像 I_SR。

形式上,I_LR ∈ R^m×n。期望函数 SR 是 R^m×n → R^M×N 的映射(M > m, N > n)。于是超分辨率图像 I_SR ∈ R^M×N 可被定义为:

传统的超分辨率方法认为,低分辨率图像可以表示与理论上高分辨率图像 I_HR ∈ R^M×N 相同的信息。然后此类方法试图基于 I_LR 恢复特定 I_HR,从而将超分辨率问题简化为优化任务:拟合函数 SR,使下式最小化

然而,在实践中,即使得到了正确的训练,这些算法仍无法提升高方差区域的细节。让我们通过修复低分辨率图像 I_LR,来探究其背后的原因。

假设 M 是 R^M×N 中的自然图像流形,即 R^M×N 的这一子集类似自然逼真图像;假设 P 是基于 M 的概率分布,用于描述数据集中某张图像出现的概率;假设 R 是分辨率恰当降低后的图像集合,即 R = {I ∈ R^N×M : DS(I) = I_LR}。则随着数据集规模趋向于无穷大,算法输出修复图像 I_SR 的期望损失是:

当 I_SR 是 I_HR(M ∩ R)的 l_p 平均时,损失得到最小化。事实上,当 p = 2 时,损失最小化,即

因此,最优 I_SR 是分辨率恰当降低的高分辨率图像集合的像素级加权平均值。因此,这些算法缺乏细节仅仅是因为无法通过改变网络架构来恢复 l_p 范数。

杜克大学对该问题进行了重新定义,他们提出一种新型单图像超分辨率框架。对于 LR 图像 I_LR ∈ R^m×n 且 ϵ > 0,杜克大学研究者旨在找到符合下列条件的图像 I_SR ∈ M:

具体而言,令 R_ϵ  ⊂ R^N×M 表示分辨率恰当降低的图像集合,即

然后寻找图像 ISR ∈ M∩R_ϵ。M∩ R_ϵ 是可行解的集合,因为如果得到解的分辨率无法恰当降低或者不够逼真,则它并非可行解。

有趣的是,M∩R_ϵ的交集(尤其是 M ∩ R_0) 不能为空,因为它们必须包含原始高分辨率图像(即传统方法旨在重建的图像)。

PULSE 的实验效果如何?

研究者通过多项实验对该算法进行评估,并将重点放在了人脸幻觉(face hallucination)这一热点问题上。

具体来说,研究者利用了 Karras 等人在 Flickr Face HQ (FFHQ) 数据集上预训练的 Face StyleGAN。对于每个实验,他们从随机初始化开始,进行了 100 次学习率为 0.4 的球面梯度下降迭代。因此,该方法使用单个英伟达 V100 GPU 生成每张图像的时间约为 5 秒。

不同方法的视觉效果

下图 5 展示了不同方法生成图像的视觉质量:

图 5:PULSE 与双三次升尺度(bicubic upscaling)、FSRNet 和 FSRGAN 方法的效果对比。在第一张图像中,PULSE 在头发里添加了一个 messy 图像块,以匹配 LR 图像放大后中间可见的两个黑色对角线像素值。

定量结果

研究者进行了感知超分辨率文献中常用的 MOS 分数评估,如下表所示:

表 1:PULSE 与其他几种方法在 128×128 分辨率上的 MOS 分数,其中分数越高效果越好。可以看到,PULSE 的分数最高。

为了提供另一种感知质量度量,研究者还对感知超分辨率问题常用的自然图像质量评价(Naturalness Image Quality Evaluator, NIQE)分数进行了评估。

具体来说,他们对每种方法在 1024×1024 分辨率上的 NIQE 分数进行了评估,其中输入分辨率为 16×16,缩放因子为 64。

表 2:每种方法在 1024×1024 分辨率上的 NIQE 分数,分数越低效果越好。可以看到,PULSE 的 NIQE 分数最低。

鲁棒性

最后,研究者对 PULSE 算法的鲁棒性进行了评估。该算法的主要目的是利用已知的降尺度算子来执行感知逼真的超分辨率任务。

研究者发现,即使对于各种未知的降尺度算子,该方法都可以使用双三次降尺度(bicubic downscaling)实现充分的降级,具体如下图 6 所示:

图 6:研究者证实了利用不同降级算子时 PULSE 的鲁棒性。

版权归原作者所有,转载仅供学习使用,不用于任何商业用途,如有侵权请留言联系删除,感谢合作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/297612.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

diy计算机组装注意事项,自己组装电脑要注意什么?DIY老司机教你装机注意事项...

相比品牌机,组装电脑的优势在于个性化的DIY硬件定制,让玩家可以自由选择适合自己的配置,可以说可玩度非常高。如今,电脑硬件设计已经十分人性化,网上还有很多直播教程,用视频的方式直观地教大家装机&#x…

Dapr + .NET Core实战(三)状态管理

状态管理解决了什么分布式应用程序中的状态可能很有挑战性。例如:应用程序可能需要不同类型的数据存储。访问和更新数据可能需要不同的一致性级别。多个用户可以同时更新数据,这需要解决冲突。服务必须重试 与数据存储交互 时发生的任何短期暂时性错误。…

Apache 2.0性能优化—MPM的选择与配置

Apache 2.0性能优化—MPM的选择与配置谈到Apache,大多数系统管理员对其稳定版1.3印象颇深。虽然Apache 2.0的系列开发版早已由Alpha、Beta发展到现在的GA(General Availability)版,但是一些人潜意识里还认为开发版并非可用于生产环…

emeditor正则表达式_掌握EmEditor正则表达式语法,大大提升工作效率

缙哥哥非常懒,当遇到重复的事情时,就喜欢通过批量处理来解决,而文本用的是 EmEditor 程序,EmEditor 正则表达式语言基于 Perl 正则表达式语法,所以通过掌握EmEditor正则表达式语法,大大提升工作效率。文字所…

Building JavaScript Games for Phones Tablets and Desktop(3)-创造一个游戏世界

2019独角兽企业重金招聘Python工程师标准>>> 创造一个游戏世界 这章教会你如何通过内存中储存的信息创造一个游戏世界。介绍了基本类型和变量并且这些变量是如何储存和改变信息的。接下来,你会看到如何用对象储存更复杂的信息,里面包含成员变…

IE6.0、IE7.0 、FireFox 在样式中的不同写法.doc

IE6.0、IE7.0 、FireFox 在样式中的不同写法 2009年3月26日 15:44:27 发布:hugo 或许你一直在抱怨为什么要专门为IE和FF写不同的CSS,为什么IE这样让人头疼,然后一边写css,一边咒骂那个可恶的M$ IE。其实对于css的标准支持方面,IE并…

我女朋友让我删前任,我明明删了她还是要分手...

1 人家都已经删了你还有什么不满意???▼2 高跟鞋翻车现场▼3 渣男总能渣出新花样▼4 现在的小朋友懂得也太多了吧!▼5 耍帅不可怕,谁失败谁尴尬▼6 朋友,你清醒一点!那个小手是鼠标&#…

计算机专业的双证在职研究生,计算机类在职研究生最终能获得双证吗难度是不是很大呢...

在职读研其实优势真的很多,不然也不会每年都有那么多在职者不辞工作的辛苦还有坚持报考,毕竟凭借这份经历可以学习到高端的知识,可以帮助学员提高相应的专业能力,而最终证书的获取也能相应地提升职员在职场的地位。那么&#xff0…

你知道哪些开源基金会?

从 RMS 创立 FSF 发起自由软件运动,再到 OSI 成立并明确开源软件定义,这种崇尚开放协作的软件开发模式迅速席卷全球。除 FSF 与 OSI 外,还陆续诞生了许多致力于推广和发展开源的基金会。开源基金会对于开源软件和开源社区的组织、发展、协同创…

软件项目送上门来了,还要学会说不,接了项目拿了定金噩梦才刚刚开始

今年前前后后也遇到了不少软件项目,想来想去还是拒绝了其中的大部分项目,当然也有一部分是客户拒绝我的,把这些经验教训分享给大家,一起探讨探讨,接了项目很容易深陷泥潭,累得死去活来不值得。拒绝软件项目…

bpmn如何查看代码 idea_提高程序员效率的IDEA插件推荐(五大神器)

1. SequenceDiagramSequenceDiagram 可以根据代码调用链路自动生成时序图,超级赞,超级推荐!这对研究源码,梳理工作中的业务代码有极大的帮助,堪称神器。安装完成后,在某个类的某个函数中,右键 -…

(笔记)堆和栈的区别-两种不同的数据结构

堆栈其实是两种数据结构。堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。 要点:堆:顺序随意. 栈:后进先出(Last-In/First-Out) 堆和栈的区别 一、预备知识—程序的内存分配一个由C/C编…

.net post提交后接收返回数据_Ajax提交表单的方式

和提交普通表单一样发送数据浏览器端代码$使用开发者工具查看请求体https://cdn.jsdelivr.net/gh/zhangfu1111/Blogimagemanager/images/springboot20200712150040.pngcontroller代码ResponseBody整个请求体是一个JSON数据浏览器端代码$使用开发者工具查看请求体![](https://cd…

javascript高程3 学习笔记(三)

执行环境 执行环境是什么? javascript的解释器每次开始执行一个函数时,都会为每个函数创建一个执行环境(execution context)。执行环境定义了变量或者函数有权访问的其他数据,决定了他们各自的行为。与执行环境相关的变…

一张纸还能上天能救命?理工男宁愿放弃NASA百万年薪,也要回家折纸?!

全世界有3.14 % 的人已经关注了爆炸吧知识一张纸能做什么?小时候,它可能默默记录着你天马行空的想象力:而到了艺术家手中,它们就会变幻成各种各样精妙绝伦的艺术品:可当一双文艺的手,遇上一颗聪明无比的“理…

【干货】单日10亿GMV的.NET5电商平台,是如何设计的?

自京东和唯品会转了Java,.NET就一直缺乏高并发电商案例,.NET5能做高并发电商吗?必须的,别停留在.NET Framework的旧印象了!这里为大家分享一家上市公司的项目案例,纯.NET5电商平台,轻松承接双11…

如何发送html email,如何发送HTML电子邮件?

我已经使用JMS在Web应用程序中成功发送了电子邮件,但是结果仅以纯文本显示。我希望内容能够显示html。我该怎么做?这大致就是我所拥有的:Message msg new MimeMessage(mailSession);try{msg.setSubject("Test Notification");msg.…

通过 Lotus Domino Java 代理消费 Web 服务

Web 服务是一种允许两台或更多的计算机在网络中交互的系统设计。这种服务的主要优点是,它是在多台不同操作系统的计算机和应用服务器之间发送对象的标准解决方法。例如,我们的公司使用 Web 服务从一台运行 Microsoft .NET Framework 的计算机向基于 IBM …

goahead如何使用cgi服务_QQ如何设置使用代理服务器?

很多人可能会问了,QQ上可以设置代理服务器吗?答案是可以的。今天就为大家详细介绍一下,如何在QQ上设置代理服务器的。1、双击QQ图标,打开QQ登录界面,我们就可以看到界面右上角有一个“设置”按钮。QQ如何设置使用代理服务器12、点…

自动布局AutoLayout

http://www.th7.cn/Program/IOS/201410/304252.shtml转载于:https://www.cnblogs.com/runer/p/4430675.html