前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CVPR 2022 | Adobe把GAN搞成了缝合怪!凭空P出一张1024分辨率全身人像

CVPR 2022 | Adobe把GAN搞成了缝合怪!凭空P出一张1024分辨率全身人像

作者头像
Amusi
发布2022-04-18 17:19:47
3540
发布2022-04-18 17:19:47
举报
文章被收录于专栏:CVerCVer

换脸见多了,换身材的见过吗?

给定一张脸,就能自动换一个下半身,服饰、身材、肤色都毫无PS痕迹:

核心技术当然还是我们熟悉的GAN,但不同的是,现在身体的每个部分都能被PS了。

从脸,肤色、服饰、头发等身体各个部位,甚至到肢体动作,都能被随意设计和组合,最终“缝”成一张1024 × 1024分辨率的全身照片:

而且这张“缝合怪”还完全没有拼接行为带来的阴影和边界:

上方的面部由新方法生成,阴影边界很少

怎么做到的?把用于生成人体不同部位的GAN“拼”起来。

这就是Adobe团队最新提出的一种结合多个预训练的GAN进行图像生成的新方法,论文目前已被CVPR 2022接收:

接下来就一起来看看他们到底是如何实现的。

用PS的方式GAN出个人体

如我们开头所说,这是一种将多个GAN拼接起来使用的方法,研究团队将其称之为InsetGAN

共分为两类GAN:

  • 全身GAN (Full-Body GAN),基于中等质量的数据进行训练并生成一个人体。
  • 部分GAN,其中包含了多个针对脸部、手、脚等特定部位进行训练的GAN。

这两类GAN的合作方式类似于PS:全身GAN是一张已经有打底线稿的画布,而部分GAN则是一张一张叠在上面的图层。

但不同边界的“图层”在叠到画布上时,一定会有出现对齐问题。

比如,将一张脸添加到身体上时,在肤色的一致性、衣服边界和头发披散的自然性上可能出现细节的扭曲和丢失,或出现伪影(Artifacts):

如何才能更好地协调多个GAN,让它们产生一致的像素呢?

研究团队设计了这样一种架构:

他们首先引入了一个边界框检测器,检测部分GAN生成的特定区域在底层画布,也就是全身GAN生成的区域中的位置,经过裁剪后再将特定区域嵌入。

这一过程相当于找到了两个区域之间的一种随机潜码 (latent code),使得所选区域的边界能够和嵌入区域相匹配,以实现无缝合成。

同时,他们还会对这两个区域进行下采样(Downsample),再次增加图像像素内容的一致性。

基于这种方法,InsetGAN可以在训练后生成多张完整人像,同时肤色、头发和相关姿势都能作出相应调整:

研究团队也与之前的生成全身人像的方法CoModGAN做了比较,都是基于左侧的人体进行面部的替换,显然,InsetGAN生成的面部更加自然:

上为InsetGAN,下为CoModGAN
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-03-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CVer 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 用PS的方式GAN出个人体
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档