Motivation
- 探究语言和手势传递的信息是否相关
Challenges and Solutions
-
异步性:手势和语音是不同步的,手势可能出现在对应话语的之前、之后或期间
使用大量时序上下文(包括过去、现在、未来)进行手势预测
-
多模态:同一句话可以对应不同的手势
仍将 ground truth 用作回归预测,同时应用对抗判别器,优先保证真实性
-
差异性:不同的人的动作风格不一样
建立一个 144 小时的大型视频数据,包括 10 位不同身份、不同背景的说话者,进行人物个性化学习
Dataset Building
- 收集了 10 名说话者的144小时视频数据
- 使用自动人脸和姿态检测系统将视频分割成只有主题出现在画面中且所有检测到的关键点都可见的片段
- 使用 OpenPose 估计骨骼节点作为 ground truth
Method

- 使用一个全卷积网络,包括一个音频编码器和一个1D UNet翻译架构。
- 音频编码器将 2D log-mel 频谱图作为输入,并通过一系列卷积操作将其下采样成 1D 信号。
- UNet翻译架构学习将这个信号映射到一个姿势向量的时间堆栈。
使用 L1 回归损失来学习从音频到姿势的映射:
L
L
1
(
G
)
=
E
s
,
p
[
∥
p
−
G
(
s
)
∥
1
]
\mathcal{L}_{L_1}(G)=\mathbb{E}_{s,p}[\left \| p-G(s) \right \|_1 ]
LL1(G)=Es,p[∥p−G(s)∥1]
为了防止『回归均值』的现象发生,使用对抗性鉴别器 D 确保生成的运动在时间上是连贯的,并且符合说话者的风格:
L
G
A
N
(
G
,
D
)
=
E
m
[
log
D
(
m
)
]
+
E
s
[
log
(
1
−
G
(
s
)
)
]
\mathcal{L}_{GAN}(G,D)=\mathbb{E}_m[\text{log}\ D(m)]+\mathbb{E}_s[\text{log}(1-G(s))]
LGAN(G,D)=Em[log D(m)]+Es[log(1−G(s))]
其中,
s
s
s 是输入音频片段,
m
m
m 是预测姿势序列的差异,即
m
=
[
p
2
−
p
1
,
…
,
p
T
−
p
T
−
1
]
m=[p_2-p_1,\dots,p_T-p_{T-1}]
m=[p2−p1,…,pT−pT−1],
p
i
p_i
pi 是
2
D
2D
2D 姿势关键点,
T
T
T 是输入音频和预测姿势序列的时间范围。
因此,通过生成器(G)和鉴别器(D)的对抗训练,生成器学习产生真实感的说话者运动,而鉴别器则学习分类给定的运动序列是真实的还是生成的。总的损失函数如下所示:
min
G
max
D
L
G
A
N
(
G
,
D
)
+
λ
L
L
1
(
G
)
\min_G\max_D\mathcal{L}_{GAN}(G,D)+\lambda\mathcal{L}_{L_1}(G)
GminDmaxLGAN(G,D)+λLL1(G)
Experiment
表一展示了不同模型在测试集上的 L1 损失和 PCK(Percent of Correct Keypoints)。作者的模型(无 GAN 条件)在大多数说话者上表现优于其他基线模型,表明其在预测手势时更准确。

表二中比较了在已知初始姿势的情况下,仅使用初始姿势、仅使用音频信号和同时使用音频信号及初始姿势的模型性能。可以看出,添加音频信号显著提高了预测手势动作的准确性,说明语音信号和手势动作具有较强的相关性。

对于每个说话者的语音输入(行),使用其他说话者的训练模型(列)来预测手势动作。图二中的混淆矩阵对角线上的条目颜色最浅,展示出非训练说话者的模型的预测结果远远不如使用训练说话者模型的预测结果。这表明模型确实学到了说话者特定的手势风格。
Gain
这篇文章给我带来的收获并不是很多,甚至我觉得文章在对音频信号处理的方法似乎有些儿太过简单了?只采用一个卷积网络对音频声谱图进行特征提取。
音频信号中包含很多种信息,例如语义、情感、语调等等。因此,我觉得或许可以采用多个编码器将音频特征解耦成多个方面,再探究每个方面对手势动作的影响?
包含很多种信息,例如语义、情感、语调等等。因此,我觉得或许可以采用多个编码器将音频特征解耦成多个方面,再探究每个方面对手势动作的影响?