Audio-driven Neural Gesture Reenactment with Video Motion Graphs
背景:
作者提出了一种方法,可以用手势匹配目标语音音频来重新生成高质量的视频,该方法的关键思想是通过一种新颖的视频运动图编码片段之间的有效过渡,从参考视频中分离和重新组装片段。为了在重新生成的视频中无缝连接不同的视频片段,作者提出了一种姿态感知视频混合网络,该网络在两个视频片段之间的拼接帧周围合成视频帧。此外作者开发了一个基于音频的手势搜索算法,以找到新生成帧的最佳顺序。该系统生成的重演视频和音频节奏以及内容保持一致,作者定量地、定性地评估了合成视频的质量,并通过用户研究证明,与之前的工作和基线相比,该方法产生的视频质量更高,且与目标音频的一致性也更高。
受人物运动领域3D运动图的启发,该方法对应的视频生成过程中包含一个视频运动图,图节点表征参考视频中的帧,图的边表示节点之间可能的运动过渡。该方法会在图中寻找新视频生成的路径,使得新生成视频的动作与音频节奏和语音内容一致。
在寻找到的路径上直接播放视频可能导致两个不相交的原始帧边界上的时序不一致,因此作者另外提出了一个人体姿态感知的视频混合网络,以平滑的混合时间不一致边界周围的帧,以产生自然的视频过渡。这样以后作者将一个视频驱动的手势再现问题转换为搜索最匹配给定音频的有效路径问题。
心理学研究表明,共语手势可以分为节奏手势和指称手势,节奏手势和音频开头能很好的同步,参考手势大多与某些短语同时出现。作者分析参考视频的语音,并检测音频起始峰以及一组来自其文本的关键字,作为添加到视频运动图上相应节点的音频特征。给定从新音频剪辑中提取的音频开始峰值和关键字,使用最匹配音频特征的最佳路径来驱动视频合成。
视频运动图
视频运动图的关键思想是基于参考视频帧中说话人姿势的相似性来创建合成过渡,姿态相似性的评判标准来源于3D空间和图片空间的线索,给定一个参考视频,第一步是使用现有的运动捕捉方法提取SMPL的姿态参数θ,并进一步平滑位姿参数,以促进时间一致的结果。
- 3D空间姿态相似性
基于姿态参数,通过正运动学计算出所有关节在世界空间中的三维位置,对于每一对帧,基于关节位置和速度来评估姿态不相似度。
- 图像空间姿态相似度(2D空间姿态相似度)
为了获得图像空间中的姿态相似性,对于每一帧m,根据已知的相机参数将拟合的3D SMPL人体网格投影到图像空间中,并将投影后在图像上可见的网格表面标记为Sm,对于每一对帧(m,n),图像空间不相似性通过它们的共同可见表面积之间的相交结合来估计:d_img(m,n) = 1 – (Sm ∩ Sn)/(Sm ∪ Sn).相似度约低,IoU越高,两个曲面重合区域越大,表征渲染图像之间有更高的姿态相似性。
基于上述两个距离度量,如果他们之间距离小于d_feat(m,n)和d_img(m,n)都低于预定义的阈值,就在这一对参考视频帧(图中结点)之间创建图合成过渡。作者将阈值设置为(m,m+l)之间的平均距离,帧偏移越大这一阈值越大,因此也可以有更多的合成过渡,增加运动图中可能得路径数量,这会导致路径搜索算法的计算成本更大,作者在实验中将l设置为4,这达到了计算成本和图中可用路径数量之间的平衡。
姿态感知的视频混合
在合成过渡中仅仅播放连接帧很容易导致明显的抖动伪影,为了解决这一问题,作者合成混合帧来取代合成过渡的小时间邻域周围的原始帧,使视频能够顺利地从第一个序列过渡到另一个序列,为了合成m到n的过渡链接,作者定义邻域使用帧范围[m-k;m]和[n;N+k],邻域大小为k。
作者设计了一个姿态感知视频混合网络来合成上述领域内的帧,给定两个视频帧i,j其中i∈[m-k,m],j∈[n,n+k]还有它们相应的原始RGB图像表征Ii和Ij,网络以目标混合权值α∈[0, 1/K, 2/K, …,1]生成领域内所有的混合帧。
首先使用混合权重来预测混合帧对应的SMPL参数θt,θt=(1-α)θi+αθj。
该网络处理图像li和lj,身体前景蒙版和姿态参数θi,θj和θt,处理分两阶段进行,第一阶段基于拟合的SMPL网格的顶点位移计算的三维运动场来扭曲前景人体图像特征,第二阶段通过计算由第一阶段产生的扭曲图像特征来与来自图像其余部分(即背景)的光流之间的残余光流来进一步细化扭曲,最后通过图像翻译网络将经过优化的扭曲图像特征转化为代表目标输出帧t的图像。
曲面流阶段
第一阶段有两个平行的流,每一个都产生图像的深度特征图来编码输入图像Ii和Ij之间的深度特征,为了产生这些特征,首先从两帧的SMPL人体网格位移计算初始3D运动场,将其记作初始曲面流,这一过程通过找到人体网格对应顶点位置,通过对应网格顶点之间的位置差异获得初始网格流Ft->i和Ft->j,这一过程中只考虑通过透视投影投影到图像平面上的可见顶点的位移。由于顶点采样与图像分辨率不匹配,因此这一过程中得到的流场相当稀疏,作者在实验中使用标准差为8的高斯核函数进行扩散。这一过程得到的初始运动离完美还很远,因为投影网格的边界往往与输入帧中的人体的边界不完全对齐。因此作者使用一个神经模块来细化这些运动场,第一个流输入RGB图像Ii,前景掩码Imask,还有一个表征SMPL参数的渲染骨架图Iskel,然后将他们编码成一个深度特征图xi,第二个流产生图像j的特征xj,这两个流使用同一编码网络,其由8个残差卷积块堆叠构成。
然后通过另外一个网络Em来预测细化的运动场,该网络基于Unet设计,然后使用预测得到的反向warp场对图像特征进行warp。
光流阶段
直接从两个warp的特征图xi’和xj’生成最终的目标帧可能导致“鬼影”效应,这是因为前一阶段的运动场是基于SMPL模型计算得到的,其忽略了例如衣服纹理等细节。因此第二阶段的目标是基于整个图像(包括背景)计算的光流,进一步扭曲深度特征映射xi’和xj’。在这一阶段扭曲的特征已经可以代表粗略的躯干部分,作者发现现有基于光流的插针算法可以重现缺失的像素级细节和补救“鬼影”效果,网络预测光流来进一步扭曲特征,同时也预测了一个软的可见性图用于混合两种特征:xt’’ = (1-α)Vt->I * xi’’ + αVt->j * xj’’
最终作者将上述混合的特征图作为输入,生成目标帧It,这由一个Unet结构生成器网络G实现:It = G(xt’’;wg),其中wg是可学习参数。
训练
为了训练姿态感知的视频混合网络,从参考视频中采样3个帧,给定目标帧t,随机采样两个相邻帧t-k0和t+k1,k0,k1∈[1,8],相应的混合权重α由k0/(k0+k1)计算得到,进行端到端的训练整个网络。
基于语音的搜索
给定测试时的语音音频,作者开发了一个图搜索算法,以找到手势在节奏和语义上与语音音频匹配的合理路径。先前的研究表明,语言手势可以分为两类:1)与特定的、有意义的关键词一起出现的参考手势;2)响应音频韵律特征的节奏手势。更具体地说,在音位子句中,一个有节奏的手势的键击与一个音频开始同时出现(或在很短的时间内出现)。在正确的时间或者在帧索引中找到精确的手势,作者为输入语音定义了一对音频特征:音频起始特征和关键字特征,音频帧索引匹配视频帧速率。
- 音频开始和关键字功能
作者将音频起始定义为一个二进制值,表示使用标准音频处理算法检测到每个帧的音频起始激活。为提取关键字特征,首先使用微软语音识别引擎将输入音频转换为文本,每个单词都有相应的开始和结束时间。作者为参考手势创建了一个常用词字典,称之为关键字,如果关键字出现在节点上,则将其关键字特征设置为该词,否则将其设置为空。
- 目标语音音频分割
将目标语音音频分成以音频开始或关键字特征被激活的帧开始和结束的片段。段as->as+1和他们的间隔Ls=as+1-as(帧数)。作者也增加了两个额外的端点a0=1和as+1=Nt分别表示目标音频的第一帧和最后一帧,以完成完整的片段列表。
- 束搜索
利用视频运动图中的波束搜索来找到与目标语音音频片段相匹配的K条可信路径。波束搜索初始化K条路径,从K个随机节点开始作为目标音频的第一帧a0。接下来,我们应用广度优先搜索来查找结束于特征匹配的节点上的路径段,其特征与帧a1的目标音频段特征匹配。继续用与上面相同的搜索程序来寻找完整的图匹配其余目标段的路径。所有搜索到的K路径都可以用来为相同的目标语音生成各种似是而非的结果音频。
- 视频生成
通过束搜索在运动图中找到一条最终的路径来生成视频,然后使用混合网络来进行过渡的生成,对于每一个视频段根据目标音频段来调节它的速度来匹配时间,最终对结果进行后处理使得说话人的嘴唇同步匹配相应的语音音频。
结果和评估
作者使用了“个人故事数据集”和“TED-talks数据集”