其中空格符号表示 CTC 的空白。定义函数 B : V? ? → V ?,给定 V? 上的一个字符串,删除相邻的重复字符并移除空白 token。对于一个标签序列 y ∈ V ?,CTC 定义
其中 T 是该序列模型中时间步骤的数量。比如,如果 T=3,CTC 定义字符串「am」的概率为 这个和可以通过动态编程(dynamic programming)有效地计算出来,j2直播,让我们可以执行最大似然(maximum likelihood)
图 1:LipNet 架构。一个 T 帧的序列被用作输入,被一个 3 层的 STCNN 处理,其中每一层后面都有一个空间池化层(spatial max-pooling layer)。提取出的特征是时间上上采样(up-sample)的,并会被一个 Bi-LSTM 处理;LSTM 输出的每一个时间步骤会由一个 2 层前向网络和一个 softmax 处理。这个端到端的模型是用 CTC 训练的。 3.4 LipNet 架构 图 1 给出了 LipNet 的架构,其始于 3×(时空卷积、信道上的 dropout、空间最大池化),后面跟随时间维度中的上采样。 因为人类每秒钟大约能发出 7 个音素,而且因为 LipNet 是在字符层面上工作的,所以我们总结得到:每秒输出 25 个 token(视频的平均帧率)对 CTC 来说太受限了。时间上采样(temporal up-sampling)允许在字符输出之间有更多的空格。当许多词有完全相同的连续字符时,这个问题会加剧,因为他们之间需要一个 CTC 空白。 随后,该时间上采样后面跟随一个 Bi-LSTM。该 Bi-LSTM 对 STCNN 输出的有效进一步会聚是至关重要的。最后在每一个时间步骤上应用一个前向网络,后面跟随一个使用了 CTC 空白和 CTC 损失在词汇上增强了的 softmax。所有的层都是用了修正线性单元(ReLU)激活函数。超参数等更多细节可参阅附录 A 的表 3. 4 唇读评估 在这一节,我们将在 GRID 上评估 LipNet。 4.1 数据增强 预处理(Preprocessing):GRID 语料库包含 34 个主题,每一个主题包含了 1000 个句子。说话人 21 的视频缺失,其它还有一些有所损坏或空白,最后剩下了 32839 个可用视频。我们使用了两个男性说话人(1 和 2)与两个女性说话人(20 和 22)进行评估(3986 个视频),剩下的都用于训练(28853 个视频)。所有的视频都长 3 秒,帧率为 25 fps. 这些视频使用 DLib 面部检测器和带有 68 个 landmark 的 iBug 面部形状预测器进行了处理。使用这些 landmark,我们应用了一个放射变换(affine transformation)来提取每帧中以嘴为中心的 100×50 像素大小的区域。我们将整个训练集上对 RGB 信道进行了标准化以具备零均值和单位方差。 增强(Augmentation):我们使用简单的变换来增强数据集以减少过拟合,得到了多 15.6 倍的训练数据。首先,我们在正常的和水平镜像的图像序列上进行训练。然后,因为该数据集提供了每个句子视频中的词开始和结束时间,所以我们使用单独的词的视频片段作为额外的训练实例增强了句子层面的训练数据。 4.2 基线 为了评估 LipNet,我们将其表现和三位懂得读唇的听觉受损者以及两个由最近的最佳成果启发的 ablation model(Chung & Zisserman, 2016a; Wand et al., 2016)的表现进行了比较。 听觉受损者:这个基线是由牛津学生残疾人社区(Oxford Students』 Disability Community)的三位成员得到的。在被介绍了 GRID 语料库的语法之后,他们从训练数据集中观察了 10 分钟带有注释的视频,然后再从评估数据集中注释了 300 个随机视频。当不确定时,他们可以选择觉得最有可能的答案。 Baseline-LSTM:使用句子层面的 LipNet 配置,我们复制了之前 GRID 语料库当时(Wand et al., 2016)的模型架构。参看附录 A 了解更多实现细节。 Baseline-2D:基于 LipNet 架构,我们使用仅空间的卷积替代了 STCNN,这类似于 Chung & Zisserman (2016a) 的那些。值得一提的是,和我们用 LipNet 观察到的结果相反,Chung & Zisserman (2016a) 报告他们的 STCNN 在他们的两个数据集上比他们的 2D 架构的性能差分别 14% 和 31%。 4.3 性能评估
表 2:LipNet 相比于基线的性能 (责任编辑:本港台直播) |