论文阅读: MeshTalk: 3D Face Animation from Speech using Cross-Modality Disentanglement

可借鉴的点

  1. 跨模态损失
  2. 语音比视频帧超前, 在奥巴马那里也有体现
  3. 这个的audio encoder挺好

输入输出

输入是template mesh , audio , 其他的mesh, 相当于mesh情绪驱动加audio 嘴型驱动

voca并没有对面部表情的所有方面进行编码, 因此音频驱动的面部动画问题试图学习一对多的映射,也就是说,每个输入都有多个似是而非的输出。这通常会导致过度平滑的结果,特别是在面部区域,只有微弱或甚至不相关的音频信号。

  • 学习了一种新的面部动画分类隐空间, 这个空间可以解耦声音相关和不相关的信息。
  • (we learn a novel categorical latent space of facial animation that disentangles audio-correlated and audio-uncorrelated information,)

例如,闭上眼睛不应该局限于特定的唇形。潜在空间是基于一种新型的跨模态损失来训练的,它鼓励模型具有独立于音频输入的准确的上脸重建 (应该是提取的声音的无关信息, 比如情绪? 看看它是否专门说出了是什么无关的信息) 和只依赖于所提供的音频输入的准确的嘴区。这就使得上下面部的运动不再关联,并防止了过度平滑的结果。

运动合成是基于音频条件时间模型在学习到的分类隐空间。结果: 嘴唇运动高度精确, 也能够有眨眼有和眉毛运动 不过没有提到头部姿态

贡献

  1. 一种新的人脸动画合成分类隐空间, 这个隐空间通过基于跨模态的损失的上下人脸解耦 实现了高真实感的人脸动画合成

(A novel categorical latent space for facial animation synthesis that enables highly realistic animation of the whole face by disentanglement of the upper and lower face region based on a cross-modality loss.)

  1. 一种在分类隐空间的基于音频时间模型的运动合成的自回归采样策略

(An autoregressive sampling strategy for motion synthesis from an audio-conditioned temporal model over the learned categorical latent space.)(Autoregressive中的“Auto”意味着自我(self),而机器学习术语的回归(regress)意味着预测新的值。将它们放在一起,自回归意味着我们使用模型基于模型的过去数据点来预测新数据点。简单理解就是利用时序信息

method

  • 为了生成脸部上部的动作, 作者学习了面部表情的分类潜在空间(categorical latent space for facial expressions )
  • 因为生成需要有对应音频的部分和区别音频的部分, 所以这个潜在空间有一下特性:
  1. 分类(Categorical) 不太懂啥意思
  2. 可表达性 (Expressive)潜在空间必须能够编码各种面部表情(facial expressions)假如这里是面部表情就可以理解成是潜在空间的向量的某些变化对应表情的变化
  3. 语义上进行分解(Semantically disentangled) 语音相关和不相关的解耦出来(这里具体语音不相关的是啥呢)例如闭上眼睛和嘴型就没啥关系
1. 建模和学习表达空间

x 1 : T = ( x 1 , . . . , x T ) x_{1:T}=(x_1,...,x_T) x1:T=(x1,...,xT), x t ∈ R V × 3 x_t∈R^{V\times3} xtRV×3 是T个face meshes, 每个代表V个顶点.

a 1 : T = ( a 1 , a 2 , . . . . , a T ) a_{1:T}=(a_1, a_2,....,a_T) a1:T=(a1,a2,....,aT) , a t ∈ R D a_t∈R^D atRD 是T个演讲片段, 每个有D个样本, 对齐到相应的视频帧t, (这里是说一帧对应D个小段吗)

此外, 设定一个 template mesh 作为输入: h ∈ R V × 3 h∈R^{V\times3} hRV×3

对潜在空间的要求: 空间必须足够大, 会导致某个潜在类别产生大量的类别C (Since this leads to an infeasibly large number of categories C for a single latent categorical layer), 所以这里对C-way 类别的H个潜在分类进行建模. 结果是允许使用数量相对较少的类别来实现较大的表达式空间. 分类是C个类, 每个C有H? (是不是这样理解的, 假如C代表笑啊或者啥的, H就代表是怎么笑的,可能是对类进行细分这样的理解.) 这里C=128, H=64

然后有个编码器, 从表情和音频到这个分类空间的映射, 我可以理解成是根据一些mesh帧和语音帧进行编码, 映射到 T × H × C T\times H \times C T×H×C 的编码空间

在这里插入图片描述

然后这个编码使用一个Gumbel-softmax 转换为分类表示:

在这里插入图片描述

最后通过一个解码器得到动画mesh:

在这里插入图片描述

最后看看整个网络的架构:

在这里插入图片描述

  • 看起来是从别的mesh的expression迁移到template, 这里疑惑的是, 为什么还要声音呢, 我直接迁移expression不可以吗? 这里后文解释了. 用跨模态损失解决了.
Learning the Latent Space

训练时, ground truth对应关系仅适用于template mesh, 语音和表情信号时来自同一个人的。解码器输出的mesh的表情是和输入一致的,虽然本意是说音频提供嘴型, 对应的mesh提供表情, 但是由于解码器用 l2 loss 限制表情一致性, 带来的结果就是音频被忽略了。 或者说你没法指定音频就只对应嘴部运动。那当然嘴部和音频的同步也比较弱。 这里作者安排了语音与情绪的解耦

这里作者提出了跨模态的损失, 可以保证输入的模态能够在隐空间使用。 x x x a a a 表示 expression 和 audio. 进一步设 h x h_x hx 是从 x x x 中可代表的. 这里不是只生成一个h, 而是两个, 看下面的公式比较好理解

在这里插入图片描述

x ~ 1 : T \widetilde x_{1:T} x 1:T a ~ 1 : T \widetilde a_{1:T} a 1:T 是从训练集中随机采样的, 换句话说, 带波浪线的是不对的随机选的, 所以不带波浪线的会倾向于指导网络有对应的输出

作者定义的跨模态损失如下:

在这里插入图片描述

M u p p e r M^{upper} Mupper 是一个脸的上部有比较大权值而嘴部有比较小权值的 mask. 类似的 M m o u t h M^{mouth} Mmouth 嘴部有较高的权值, 脸上部权值比较小. 让这个损失很小, 就是说当audio随机采样时高权重的mask挡住了expression, 然后让这个随机的audio不会对audio产生影响.

这里有个挺重要, 就是对于眼睛的处理, 眨眼这个动作是快速和稀疏的, 只影响少数几个顶点. 因此作者增加了一个特定的眼睑损失

在这里插入图片描述

其中 M e y e l i d M^{eyelid} Meyelid (这个是个二进制蒙版, 眼睑顶点为1, 其他所有顶点为0) 优化后的最终损失为

在这里插入图片描述

也就是单独对眼睛部分进行约束

Network Architectures

音频编码器是一个四层的一维卷积, expression 编码器有一个LSTM跟着三个全连接层。 解码器是个UNet-style 模型带有跳连接。

2 .Audio-Conditioned Autoregressive Modeling (自回归建模)

当单独使用音频驱动mesh时,expression input是不可用的。 由于只有一个模态,不能从音频推断的缺失信息必须合成(应该是表情吧) 这里是把音频通过一个自回归的时间模型。合成出和音频同步的似是而非的表情。

这里使用贝叶斯的规则, 隐层embedding可以按下面公式分解:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-30hC8QDr-1642993590791)(typora_pic/image-20220124102922096.png)]

每太看懂啥意思。。。

这里用了类似 pixelcnn 的方法, 此刻的类别只依赖当前和过去的audio, 而不是还依赖未来的。

Evaluation

1. Dataset

数据集是in-house 的, 不公开

speech features

每个视觉帧对应600ms, 500ms之前的, 100ms之后的, 每10ms提取80维mel光谱特征。

extract 80-dimensional Mel spectral features every 10ms, using 1, 024 frequency bins and a window size of 800 for the underlying Fourier transform.

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
跨模态融合变压器用于多光谱目标检测是一种先进的目标检测方法。多光谱图像由不同波段的传感器捕获,每个波段提供了目标的不同特征信息。传统的目标检测算法往往局限于单一光谱波段,无法在多光谱图像中有效提取目标信息。而跨模态融合变压器能够将不同波段的光谱信息融合,并在融合后的特征上进行目标检测,从而提高目标检测的准确性和鲁棒性。 跨模态融合变压器结合了Transformer模型和跨模态融合方法。Transformer模型是一种基于自注意力机制的神经网络架构,能够有效地建模长距离依赖关系。它将目标的特征信息转化为一系列的注意力权重,然后利用这些权重来对不同波段的特征进行加权融合。这种融合方式可以将信息从一个波段传递到另一个波段,使得各个波段的特征能够共同影响目标检测结果。 跨模态融合变压器还引入了多尺度的注意力机制,以适应不同尺度目标的检测需求。它通过在特征提取的过程中引入多个不同大小的注意力窗口,来对不同尺度的目标进行建模。通过这种方式,跨模态融合变压器能够在多光谱图像中准确地检测到各种尺度的目标。 总之,跨模态融合变压器是一种能够融合不同波段特征并进行多光谱目标检测的先进方法。它的引入可以提高目标检测的准确性和鲁棒性,适用于各种需要从多光谱图像中提取目标信息的应用场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

live_for_myself

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值