只需一张照片,运动视频分分钟伪造出来|MIT新算法

夏乙 安妮 假装发自 盐湖城

量子位 出品 | 公众号 QbitAI

和一键换妆、一键美颜一样,我们可能离“一键健身”不远了。

怎么说?

近日,MIT(麻省理工学院)的研究人员发明了一项新技术,单凭一张照片,就能照片中人,随意摆成任何姿势。AI的想象力和脑补力,竟然能达到窥一片而知全貌了?

没错,让人惊喜的是,这项技术的合成效果还非常好,颇有以假乱真的气势——

穿着瑜伽服打棒球?

只需一张照片,运动视频分分钟伪造出来|MIT新算法

又穿着瑜伽服打高尔夫?

只需一张照片,运动视频分分钟伪造出来|MIT新算法

棒球比赛期间突然做起瑜伽?

只需一张照片,运动视频分分钟伪造出来|MIT新算法

可能你也猜到,后面这些图都是假象,在MIT中了今年CVPR Oral的论文Synthesizing Images of Humans in Unseen Poses中,研究人员提出一种模块化的生成神经网络,用从人类运动视频中提取的成对图像和姿势训练之后,它能够为一个人合成出没做过的新姿势。

更有趣的是,这个模型在没有经过刻意训练的情况下,还能生成一段连续的视频。

只需一张照片,运动视频分分钟伪造出来|MIT新算法

只用一张照片,就能将照片中人像皮影戏一样操控,并且在被遮挡的情况下,人物和背景合成都非常自然,这到底是如何做到的?

步骤拆解

单凭一张照片合成人物姿势不是易事。姿势变换带来身体的移动,影响着人物周围的阴影变化和背景露出,若人物肢体若被遮挡,还需自行想象脑补身体边界……

总之两个字:麻烦。

对人类来说这况且还是个繁琐复杂的工作,对AI来说更是如此。怎么办?

MIT小伙伴们用260多段视频中截取出来的成对图片和姿势,训练了一个监督学习模型。

将源图像和它对应的2D姿势信息,以及目标姿势输入到这个模型中,它就能合成出一张输出图像,把源图像上的人物形象和目标姿势结合在一起。

只需一张照片,运动视频分分钟伪造出来|MIT新算法

这个方法的精髓,就在于把这个艰巨的大任务分成四块简单的、模块化的子任务,大概如下图所示:

只需一张照片,运动视频分分钟伪造出来|MIT新算法

制造新姿势的流程分五步。

第一步得表示姿势,研究人员将2D的姿势Ps和Pt表示成3D形式RH×W×J,其中H代表输入图像的高度,W代表宽度,每个J通道都包含一个以不同节点(x,y)为中心的高斯凸起。这种方法能快速利用姿态输入的空间特性,而不仅仅是个扁平、密集的表示。

表示完动作后,就需要对图像整体大局进行原图分割,为合成动作做准备了。

运动时身体每个部分轨迹不同通常会分段仿射运动场出现,通过将原图Is分割成前景层和背景层,并将前景的身体部位分割成头、上臂、下臂、大腿、小腿和躯干等部分,基于UNet-style架构将原图分割。

之后进行前景空间变形,将这些被拆分的身体重新组合起来。

只需一张照片,运动视频分分钟伪造出来|MIT新算法

之后进行前景合成,将转换后的主体部分合并,进一步细化外观。下图显示了这个阶段的Mask Mt(第3列)和yfg(第4列)的几个输出示例。

只需一张照片,运动视频分分钟伪造出来|MIT新算法

可以看出,即使一开始是很夸张的姿势,合成出效果看起来也很真实。有趣的是,高尔夫球杆、网球拍等持有物,在合成后不会被保留。

此时,完事具备,就差背景了。背景合成也就是填补前景动作中开始被遮挡的部分,如上图第五列所示~

整个网络的架构就是这样了,接下来我们去看看研究人员具体是如何训练它的。

精挑细选的数据集

模型准备就绪,还欠数据。

于是,他们从YouTube上寻找了一些视频。其中包括136段打高尔夫的、60段练瑜伽或者健身的、70段打棒球的。

他们挑选的视频有个共同特点:背景基本静止、只有人在动。这样,模型才能更好地完成任务。

把它们混在一起,再经过一些缩放、旋转、反转之类的扩增操作,就形成了要用的数据集,从中留出10%,用作测试集。

就是用这些数据,几位科学家检验了他们模型的合成能力。

花式秀能力,开始

测试方法很简单,从视频里选一帧提取出人物的动作,找另一帧图像,让模型把里面的人扭成这个动作,看看效果如何。

作者们在论文里说:显然是我们的效果比较好嘛,有图为证。

只需一张照片,运动视频分分钟伪造出来|MIT新算法

和同行前辈UNet相比,这种新方法合成出来的图像更不容易出错。比如说上图第一行,UNet合成出来的网球少年衣服已经泛黄;第4行,健身小姐姐身后出现了重重重影。

只需一张照片,运动视频分分钟伪造出来|MIT新算法

从数据上看,这种新方法也取得了比UNet更低的错误率、更好的SSIM得分。

但这显然还不是这个模型的全部实力。

上图展示的,都是从一个网球动作到另一个网球动作,从一个健身动作到另一个健身动作,而且,还都是,静止的图像。

你大概还记得文章开头展示的那些。当然没骗你,给模型一张图片和一系列目标姿势,生成视频当然也没问题啦~

只需一张照片,运动视频分分钟伪造出来|MIT新算法

视频里的系列动作拆解开来,就是上图这样。考验眼力的时刻到了:你能猜出哪两行是真实的、哪两行是合成的吗?

答案是,1、3行是合成的动作,2、4行是真实的。

连贯起来,就是这样:

只需一张照片,运动视频分分钟伪造出来|MIT新算法
只需一张照片,运动视频分分钟伪造出来|MIT新算法

腻害~撒花!假装运动这么轻松,有视频都不一定有真相了~

Wait,这依然不是它的全部实力。

开头展示的穿着瑜伽服打棒球,当然也是它的杰作。

这个模型,可以为画中人合成不同类别的姿势。输入分别来自不同类别的源图像和目标动作,结果虽说充满违和感,但还是那么令人信服。

只需一张照片,运动视频分分钟伪造出来|MIT新算法

网球场上做瑜伽,瑜伽垫上打高尔夫……

别忘了,他们训练这个模型只用了3类运动、260多段视频,要是训练数据在充足一点,怕是真能一键假装去运动了。

传送门

只需一张照片,运动视频分分钟伪造出来|MIT新算法

这篇Synthesizing Images of Humans in Unseen Poses,被CVPR 2018作为oral论文接收,论文一作,是MIT博士后Guha Balakrishnan,他的硕士和博士学位都来自MIT。

研究团队全体成员都来自MIT,包括研究生Amy Zha、博士后Adrian V. Dalca,以及Balakrishnan的硕士和博士导师:John Guttag和Fredo Durand。

团队的另外两位成员也来自MIT,一位是研究生Amy Zhao,另一位是博士后Adrian V. Dalca。

论文:https://arxiv.org/pdf/1804.07739.pdf

代码:https://github.com/balakg/posewarp-cvpr2018

—  —

版权所有,未经授权不得以任何形式转载及使用,违者必究。