本周介绍一篇来自加利福尼亚大学伯克利分校今年8月推出的论文。该论文提出了一种在不同的人物视频中迁移动作的方法:给定两个视频——一个是想要合成的目标人物的视频,另一个是动作源视频,通过一个端到端的管道,可以实现这两个视频中人物的动作迁移(见图1)。之前类似的工作需要3维图形信息,而本次的工作使用生成式对抗网络。通过从源视频中获取的姿态特征推断目标人物画面。
图1:从源视频中迁移动作到两个目标上
方法总览
动作迁移管道分为三个部分:
1. 姿态检测。在姿态检测阶段,通过预训练的姿态检测模型(openpose)从源视频中描绘给定帧的姿态图形。
2. 全局姿态标准化。全局姿态标准化阶段,计算给定帧内源和目标人物身体形状和位置之间的差异,将源姿态图形转换到符合目标人物身体形状和位置的姿态图形。
3. 从标准化后的姿态图形推断目标人物的图像。这一阶段使用一个生成式对抗模型,训练模型学习从标准化后的姿态图形推断到目标人物图像。
图2:训练流程(上)迁移流程(下)
图2上半部分描述生成式对抗模型训练流程。
从目标视频中给定一个帧y,使用预训练的姿态检测模型P图获得对应的姿态图形x = P(y)。在训练阶段使用对应的(x, y)图像对去学习从姿态图形x到目标人物合成图像(即:G(x))的映射G。通过在鉴别器D使用对抗训练和在预训练VGGNet使用感知重建损失,我们可以优化生成器G,使其输出接近真实图像y。判别器试图区分“真实”的图像对(例如(x, y))和“伪造”的图像对(例如(x, G(x))。
图2下半部分描述迁移流程。
和训练过程相似,姿态检测模型P从源视频给定帧y'中抽取姿态图形x'。由于x'和目标视频中人物的身体尺寸和位置不同,我们通过全局姿态标准化转换,使其和目标人物更一致,记x。将x推入已训练的模型G中生成目标人物图像G(x),生成的图像与源视频中的y帧相对应。
下面我们详细的介绍方法细节。
姿态检测和标准化
姿态检测
本文的姿态检测使用预训练的模型P(如:开源项目openpose等),得到精确的肢体关节坐标x,y的估计。通过连接各个关节点可以得到姿态图形,如图3所示。在训练过程中,姿态图形作为生成器G的输入。在迁移过程中P从源动作对象中获取估计x'并通过标准化匹配到目标人物。姿态估计相关文献见文章末尾。
图3:姿态图形和对应目标帧
全局动作标准化
首先找到源视频和目标人物视频中最小和最大的脚踝关键点位置(距离镜头最近为最大,反之为最小)。方法很简单,靠近图像最底部的为最大脚踝关键点,另一个为最小。
偏移量b通过如下公式计算:
其中和分别为目标视频中最小和最大的脚踝关键点位置,和分为原视频的。为源视频的脚踝平均位置。为源视频当前帧相对于第一帧的姿态位置偏移量(文中未说明,我的观点)。
比例scale通过如下公式计算:
其中和分别为目标视频中最小和最大脚踝关键点的高度,和
分为原视频的。
用于图像间转换的对抗训练
Pix2pix框架
通过修改基于pix2pixHD的对抗训练,可以生成时间连贯的视频帧以及合成真实的面部图像。
在原始的条件化GAN中,生成器G用来对抗多尺寸的鉴别器D=(D1,D2,D3)。原始pix2pixHD的目标任务形式如下:
其中是原始pix2pixHD中的对抗损失,形式如下:
是pix2pixHD中提出的鉴别器特征匹配损失。是感知重建损失,通过比较预训练VGGNet不同特征层中的差异获得。
时序平滑
为了生成视频序列,本文修改了原始pix2pixHD中单个图像生成的模式,使其产生时间连续的相邻帧(图4)。模型预测两个连续的帧,第一个输出G(xt-1)由相应的动作图形xt-1和一个空图像z(值为0,由于没有t-2的帧输入所以用空值作为一个占位符)作为预测条件;第二个输出G(xt)以xt和G(xt-1)为条件。相应的,鉴别器的任务变为鉴别真实序列(xt-1, xt, yt-1, yt)和伪造序列(xt-1, xt, G(xt-1), G(xt))的真实性以及时间连续性。通过在原始pix2pixHD优化目标上添加时序平滑损失得到新的优化目标,形式如下所示:
图4:时序平滑训练示意图
面部生成式对抗网络
本文添加一个特殊的GAN结构来训练生成更细节更真实的面部区域(图5)。
在使用生成器G得到整幅图像后,我们截取以面部为中心的小区域图像,将其和动作图形的相应区域XF输入到另一个生成器中,得到一个面部的残差。最终的输出是将残差加上对应区域的原始值,即。和原始pix2pix优化目标类似,鉴别器尝试区分“真实”面部图像对和伪造图相对。
实验结果
由于对于生成图像,没有相应的真实图像来评价。为了评价单个图像的质量,本文测量图像的Structural Similarity(SSIM)和Learned Perceptual Image Patch Similarity(LPIPS)。依靠质量分析来评价输出视频的时间连续性。SSIM和LPIPS的相关资料见文章末尾。
表1:身体图像输出比较
表1记录了将生成的目标人物图像,按标准化动作图形边框裁剪后计算的结果。T.S表示生成器结果经过时序平滑的方案。T.S.+Face是本文的完整模型,包含时序平滑和面部生成。
表2:面部图像输出比较
表2记录了将生成的目标人物图像,按面部边框裁剪后计算的结果。
表3:姿态距离
表3计算了姿态距离d。如果身体部分图像被正确的合成,那么合成图像的姿态图形应该和作为条件输入的姿态图形非常接近。为了评价姿态的一致性,本文设计了姿态距离矩阵来计算姿态差异。对于两个姿态p和p',每一个有n个连接点:p1,......,pn和p'1,......p'n。我们计算对应连接点的L2距离均值来衡量姿态距离。
姿态距离越低,表示图像质量越好。
表4:平均每幅图未检测到的连接点数量
表4表示平均每幅图,在源动作图像中根据姿态检测得到连接点,而在生成图中姿态检测未检测到的点的数量。
最后展示几组源图像和对应动作图形、生成图像的结果图。
图5:结果展示
相关文献
图像相似性衡量
SSIM:
Zhou Wang, Alan C Bovik, Hamid R Sheikh,and Eero P Simoncelli.2004. Image quality assessment:from error visibility to structural similarity. IEEE transactions on image processing 13, 4(2004),600–612.
LPIPS:
Richard Zhang, Phillip Isola, Alexei A Efros, Eli Shechtman, and Oliver Wang. 2018. The Unreasonable Effectiveness of Deep Features as a Perceptual Metric.In CVPR.
pix2pixHD:
https://arxiv.org/pdf/1711.11585v2.pdf
姿态估计:
卷积姿态机器
https://arxiv.org/pdf/1602.00134.pdf
实时多人2d动作估计
https://arxiv.org/pdf/1611.08050.pdf
手部关键点探测
https://arxiv.org/pdf/1704.07809.pdf
本文原文(Everybody dance now):
https://arxiv.org/pdf/1808.07371.pdf