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

全世界有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实战(三)状态管理

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

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

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

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

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

你知道哪些开源基金会?

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

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

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

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

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

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

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

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

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

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

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

android listview添加数据_Android面经分享,失业两个月,五一节前拿到offer

秦子帅明确目标,每天进步一点点.....作者 | 天天有道地址 | juejin.im/post/5eb01866f265da7b9c24562c基本介绍今天介绍一位朋友的经历:从3月初开始复习,准备面试题。复习的资料主要为《Android开发艺术探索》和jsonchao的博客,…

Dapr + .NET 实战(四)发布和订阅

什么是发布-订阅发布订阅是一种众所周知并被广泛使用的消息传送模式,常用在微服务架构的服务间通信,高并发削峰等情况。但是不同的消息中间件之间存在细微的差异,项目使用不同的产品需要实现不同的实现类,虽然是明智的决策&#x…

这些数学趣图,数学老师看了后会怎么想?

全世界有3.14 % 的人已经关注了爆炸吧知识这个扣分不?我的人生98%的时间都是无比正确的数学与我不能言语的关系最深情的告白限速是......当我完成数学作业后....维生素C的来历高数课堂恩..... 来拜师了啊, 好好学习. 为师给你命名: 阿尔法狗.这个是驻点, 这是最值, 这些机器学…

COM 组件设计与应用(六)

一、前言  1、与 《COM 组件设计与应用(五)》的内容基本一致。但本回讲解的是在 vc.net 2003 下的使用方法,即使你不再使用vc6.0,也请和上一回的内容,参照比对。   2、这第一个组件,除了所有 COM 组件必须的 IUnknown 接口外&…

python 柱状图 间距_专题第18篇:Python 绘图入门

我的施工之路1我的施工计划2数字专题3字符串专题4列表专题5流程控制专题6编程风格专题7函数使用8面向对象编程(上篇)9面向对象编程(下篇)10十大数据结构11包和模块使用总结12Python正则专题总结13设计模式14Python时间模块总结15 Python 装饰器16 Python 迭代器17 Python 生成器…

WPF实现截屏(仿微信)

WPF开发者QQ群: 340500857 | 微信群 -> 进入公众号主页 加入组织欢迎转发、分享、点赞、在看,谢谢~。 前言有小伙伴需要在软件反馈窗体增加截图功能需求,所以今天来实现一个仿微信的截图。01—效果预览效果预览(更多效果请下…

我妈要把闺蜜介绍给我当女朋友......

1 反正手没闲着啊▼2 这...这女孩子不会是您跳广场舞认识的吧?▼3 这就是生活▼4 有画面感了▼5 这种运动会想想就觉得很好看▼6 电脑屏幕不亮手机玩起来不够舒服▼7 这种脱衣方式可真是太酷啦!▼你点的每个赞,我都认真当成了喜欢

topic数量是指什么_一个网站的IP、UV和PV到底是什么

在百度统计后台会看到“IP统计”、“UV统计”、“PV统计”,那么、什么是IP,什么是UV,什么又是PV,三者之间有什么关系,IP重要,还是UV重要,还是PV重要。什么是IP?IP即:Inte…

发布一个博客园专用Windows Live Writer代码插件

一直用Windows Live Writer写博客,不过没找到能与博客园配合得很好的代码插件,每次写完文章发布到博客园总要手动修改代码。所以我自己写了一个博客园专用的Windows Live Writer代码插件(我知道这世界上已经有N个代码插件,好吧&am…

js深拷贝和浅拷贝

一、数组的深浅拷贝 在使用JavaScript对数组进行操作的时候,我们经常需要将数组进行备份,事实证明如果只是简单的将它赋予其他变量,那么我们只要更改其中的任何一个,然后其他的也会跟着改变,这就导致了问题的发生。 va…