我们优化实现了一个视频片段检索方面的工作,Learning 2D Temporal Localization Networks for Moment Localization with Natural Language(AAAI' 2020),这篇工作的方法同时也获得了 ICCV' 2019 动作时序定位的冠军。因为其框架的优美与简洁,之前在知乎回答中(CV方向多模态融合有哪些好的paper?)有推荐过这篇论文,并且说要做一个优化实现开源,现在来还愿啦:
https://github.com/ChenJoya/2dtangithub.com与原实现相比(https://github.com/microsoft/2D-TAN),这个 repo 在训练/推理速度,性能(Recall@K)上都取得了一些提升:
接下来带大家简单解析这篇论文,并且叙述一下对于原 repo 的优化之处在何处。
论文解读
2D-TAN 包含两个版本。最初的版本(AAAI' 2020)所关注的任务为基于自然语言描述的视频片段定位,即根据用户给定的描述语句,从视频中定位文字所描述的视频片段的开始和结束时间点;
Learning 2D Temporal Adjacent Networks for Moment Localization with Natural Languagearxiv.org后来的版本(ICCV' 2019 HACS Temporal Action Localization Challenge,4 页的 tech report)关注的任务为时序动作检测,即需要在给定的长视频中,检测出其存在的动作片段类别,并定位出动作开始和结束的时间点。
Learning Sparse 2D Temporal Adjacent Networks for Temporal Action Localizationarxiv.org由于二者的核心结构完全相同,因此我们在这里也不做过多的区分,主要领会其核心思想。下面的解读主要从三个部分简短讲述,想进一步了解的同学可以戳:
AAAI 2020 | 时间可以是二维的吗?基于二维时间图的视频内容片段检测www.msra.cn
1. 二维时间图
目前,定位视频中的某一片段大多采用以不同大小,交叠比的 sliding window 对于一个视频产生诸多的 proposals,再对这些 proposals 进行分类与回归。2D-TAN 中提出的二维时间图可以看成一种“优雅的 sliding window”:如下图所示,以两个轴分别代表开始时间段和结束时间段,构建
这张 map 里的每一个 cell 都代表着一个时间片段,且只有右上角半区的时间片段为有效的(起始时间<结束时间)。那么,我们只需要判断每个 cell 对应的时间与给定 query 的匹配度即可。为了降低计算量,作者设计了采样机制,只对上方蓝色点的 cell 进行训练/推理,这里不过多阐述。
2. 视觉-语言特征融合
2D map 可以用来承载视频的视觉特征,每一 cell 对应的
3. 时间邻近卷积
这部分在上述结构图上未曾详细表现出来(只有一个简单的 ConvNet 字样),但是个人认为它才是文章的核心思想所在。前人的工作都是独立地匹配句子和一个片段,而忽略了其他片段对其影响。例如,当我们要定位“这个人又吹起了萨克斯 The guy plays the saxophone again”,如果只看后面的视频而不看前面的,我们不可能在视频中定位到这个片段。
我们知道,卷积网络是具有感受野的,而 2D feature map 的形式由非常适用于卷积,因此作者在这里加入多层卷积再次得到 2D feature map,而此时的每一个 cell 都将具有邻近 cell 的信息,而非单独考虑每个片段,可以学习更具有区分性的特征。
优化实现
我们对 2D-TAN 的官方实现 https://github.com/microsoft/2D-TAN 进行了一些优化,使得 2D-TAN 可以发挥出更大的潜力。具体来说:
- 优化了数据集 dataloader 的代码,将大量需要在训练时做的操作合理转移到了初始化中,从而使得训练数据的载入更加快速;
- 优化了构建 2D feature map 时做 pooling 的算法流程,采用以对角线为基础的填充方法使得 2D feature map 的构建非常快捷,无需像原 repo 先分别计算各个尺度的 2D feature map 再 reconstruction;
- 优化了时间邻近卷积网络的实现,无需在训练时实时计算 weight;
- 优化了 bce_rescale_loss 的实现,无需重复赋值以及 mask 乘积;
- 对于整个框架采用了 maskrcnn-benchmark style 的方式进行了编写,增加了操作的便捷性和易读性。
这其中有些地方结合我们的代码来阅读,可以更加快速的领会!
https://github.com/ChenJoya/2dtangithub.com结语
谢谢您的阅读,请多多批评指正!如果觉得有用,不妨在 Github 上 Star⭐ 一下再走!
本文介绍了对2D-Temporal Localization Networks (2D-TAN)的优化实现,该方法在视频片段检索任务中提高了训练和推理速度以及性能。论文解读部分讲解了二维时间图、视觉-语言特征融合和时间邻近卷积的核心思想。优化实现包括数据加载、2D特征映射构建、时间邻近卷积网络和损失函数的改进。
548

被折叠的 条评论
为什么被折叠?



