paint-brush
通过任务分解生成电影预告片:实验设置经过@kinetograph

通过任务分解生成电影预告片:实验设置

太長; 讀書

在本文中,研究人员将电影建模为图形来生成预告片,识别叙事结构并预测情绪,超越了监督方法。
featured image - 通过任务分解生成电影预告片:实验设置
Kinetograph: The Video Editing Technology Publication HackerNoon profile picture
0-item

作者:

(1)Pinelopi Papalampidi,爱丁堡大学信息学院语言、认知和计算研究所;

(2)弗兰克·凯勒,英国爱丁堡大学信息学院语言、认知和计算研究所;

(3)米雷拉·拉帕塔(Mirella Lapata),爱丁堡大学信息学院语言、认知和计算研究所

链接表

4. 实验设置

数据集我们的模型在 TRIPODL 上进行训练,TRIPOD 是 TRIPOD 数据集的扩展版本 [41, 42],包含 122 个带有银牌标准 TP 注释(场景级)[3] 的剧本以及相应的视频[4]。对于每部电影,我们进一步从 YouTube 上收集了尽可能多的预告片,包括官方和(严肃的)粉丝预告片,或老电影的现代预告片。为了评估我们算法制作的预告片,我们还收集了一组新的 41 部电影的保留集。这些电影是从 Moviescope 数据集[5][11] 中选择的,其中包含官方电影预告片。保留集不包含任何其他信息,例如剧本或 TP 注释。TRIPODL 的统计数据如表 1 所示。


电影和预告片处理 前面几节中提出的建模方法假设我们知道剧本场景和电影镜头之间的对应关系。我们使用动态时间扭曲 (DTW; [36, 42]) 自动将剧本中的对话与字幕对齐,从而获得这种映射。我们首先根据此映射将视频分割成场景,然后使用 PySceneDetect[6] 将每个场景分割成镜头。总共少于 100 帧的镜头太短,无法处理或作为预告片显示,因此会被丢弃。


此外,我们为每个镜头提取视觉和音频特征。我们考虑三种不同类型的视觉特征:


(1) 我们对每个镜头采样一个关键帧,并使用在 ImageNet [14] 上针对对象识别进行预训练的 ResNeXt-101 [56] 提取特征。 (2) 我们以每 10 帧中采样 1 帧的频率进行采样(由于面临内存问题,对于持续时间较长的镜头,我们会增加这个时间间隔),并使用在 Kinetics [10] 上预先训练的双流 I3D 网络提取运动特征。 (3) 我们使用在 Detectron2 [54] 中实现的 Faster-RCNN [18] 在每个关键帧中检测人物实例,并保留每个镜头中置信度最高的前四个边界框以及相应的区域表征。 我们首先将所有个体表征投影到相同的低维并执行 L2 正则化。 接下来,我们将视觉镜头表征视为各个向量的总和。 对于音频模态,我们使用在 AudioSet-YouTube 语料库 [16] 上预先训练的 YAMNet 将音频片段分类为 521 个音频类别(例如,工具、音乐、爆炸);对于场景中包含的每个音频片段,我们从倒数第二层提取特征。最后,我们使用通用句子编码器(USE;[12])从字幕和剧本场景中提取文本特征[42]。


为了进行评估,我们需要知道电影中的哪些镜头值得作为预告片,哪些不值得。我们将相应的预告片分割成镜头,并计算每个镜头与电影中所有镜头的视觉相似性。相似度最高的镜头会获得正标签(即它们应该在预告片中)。但是,由于预告片还包含电影中没有的镜头(例如,带有文字的黑屏,或者只是最终电影中没有出现的素材),我们还设置了一个阈值,低于该阈值我们就不会将预告片镜头映射到电影镜头。通过这种方式,我们为电影镜头创建了银标准二进制标签。


情感标签由于 TRIPOD 不包含情感注释,我们改为通过 COSMIC [17] 获取银标标签,COSMIC 是一个常识引导的框架,在自然语言对话中的情感和情绪分类方面具有最先进的性能。具体来说,我们在 MELD [43] 上训练 COSMIC,其中包含电视剧《老友记》各集的对话,比其他情感分类数据集(例如 [9, 29])更适合我们的领域。训练后,我们使用 COSMIC 为 TRIPOD 剧本生成句子级情感预测。场景的情感对应于其句子的大多数情感。我们使用与 TP 相同的一对多映射将基于场景的情感标签投射到镜头上。



[3] https://github.com/ppapalampidi/TRIPOD


[4] https://datashare.ed.ac.uk/handle/10283/3819


[5] http://www.cs.virginia.edu/pc9za/research/moviescope.html


[6] https://github.com/Breakthrough/PySceneDetect