和tan的转换_ICCV'2019 视频内容片段定位冠军方案 2D-TAN 的一个优化实现(内附论文解读)...

本文介绍了对2D-Temporal Localization Networks (2D-TAN)的优化实现,该方法在视频片段检索任务中提高了训练和推理速度以及性能。论文解读部分讲解了二维时间图、视觉-语言特征融合和时间邻近卷积的核心思想。优化实现包括数据加载、2D特征映射构建、时间邻近卷积网络和损失函数的改进。
摘要由CSDN通过智能技术生成

a14222b6a96178af35b037e7bef8bf0f.png

我们优化实现了一个视频片段检索方面的工作,Learning 2D Temporal Localization Networks for Moment Localization with Natural Language(AAAI' 2020),这篇工作的方法同时也获得了 ICCV' 2019 动作时序定位的冠军。因为其框架的优美与简洁,之前在知乎回答中(CV方向多模态融合有哪些好的paper?)有推荐过这篇论文,并且说要做一个优化实现开源,现在来还愿啦:

https://github.com/ChenJoya/2dtan​github.com

与原实现相比(https://github.com/microsoft/2D-TAN),这个 repo 在训练/推理速度,性能(Recall@K)上都取得了一些提升:

60af9c0e726bf3f1924da8689d8e73b7.png

接下来带大家简单解析这篇论文,并且叙述一下对于原 repo 的优化之处在何处。

论文解读

2D-TAN 包含两个版本。最初的版本(AAAI' 2020)所关注的任务为基于自然语言描述的视频片段定位,即根据用户给定的描述语句,从视频中定位文字所描述的视频片段的开始和结束时间点;

Learning 2D Temporal Adjacent Networks for Moment Localization with Natural Language​arxiv.org

后来的版本(ICCV' 2019 HACS Temporal Action Localization Challenge,4 页的 tech report)关注的任务为时序动作检测,即需要在给定的长视频中,检测出其存在的动作片段类别,并定位出动作开始和结束的时间点。

Learning Sparse 2D Temporal Adjacent Networks for Temporal Action Localization​arxiv.org

由于二者的核心结构完全相同,因此我们在这里也不做过多的区分,主要领会其核心思想。下面的解读主要从三个部分简短讲述,想进一步了解的同学可以戳:

AAAI 2020 | 时间可以是二维的吗?基于二维时间图的视频内容片段检测​www.msra.cn
87f445447a701031d57520a9e4749964.png

1. 二维时间图

目前,定位视频中的某一片段大多采用以不同大小,交叠比的 sliding window 对于一个视频产生诸多的 proposals,再对这些 proposals 进行分类与回归。2D-TAN 中提出的二维时间图可以看成一种“优雅的 sliding window”:如下图所示,以两个轴分别代表开始时间段和结束时间段,构建

的 2D map(这里的一段
,duration为整个视频的时长,N 为 2D 图的大小):

c22aa434c7998aaec61eb9a48085cd03.png

这张 map 里的每一个 cell 都代表着一个时间片段,且只有右上角半区的时间片段为有效的(起始时间<结束时间)。那么,我们只需要判断每个 cell 对应的时间与给定 query 的匹配度即可。为了降低计算量,作者设计了采样机制,只对上方蓝色点的 cell 进行训练/推理,这里不过多阐述。

2. 视觉-语言特征融合

2D map 可以用来承载视频的视觉特征,每一 cell 对应的

维视频特征填入 2D map 中,我们就可以得到
的 2D feature map。而后,我们将查询 query 中的每个文本单词转换成 GloVe 词向量表达,再将词向量依次通过 LSTM 网络,使用其最后一层输出作为文本语句的特征,与上述 2D feature map 每一个 cell 的特征进行点乘,即可得到视觉-语言融合后的 2D feature map:

8820b49e4aba0700bc089c5283d6a055.png

3. 时间邻近卷积

这部分在上述结构图上未曾详细表现出来(只有一个简单的 ConvNet 字样),但是个人认为它才是文章的核心思想所在。前人的工作都是独立地匹配句子和一个片段,而忽略了其他片段对其影响。例如,当我们要定位“这个人又吹起了萨克斯 The guy plays the saxophone again”,如果只看后面的视频而不看前面的,我们不可能在视频中定位到这个片段。

448f6c1c112e688308080683bc52b9a0.png

我们知道,卷积网络是具有感受野的,而 2D feature map 的形式由非常适用于卷积,因此作者在这里加入多层卷积再次得到 2D feature map,而此时的每一个 cell 都将具有邻近 cell 的信息,而非单独考虑每个片段,可以学习更具有区分性的特征。

优化实现

c4e0280ff18179aaaeab218518d9ccd7.png

我们对 2D-TAN 的官方实现 https://github.com/microsoft/2D-TAN 进行了一些优化,使得 2D-TAN 可以发挥出更大的潜力。具体来说:

  1. 优化了数据集 dataloader 的代码,将大量需要在训练时做的操作合理转移到了初始化中,从而使得训练数据的载入更加快速;
  2. 优化了构建 2D feature map 时做 pooling 的算法流程,采用以对角线为基础的填充方法使得 2D feature map 的构建非常快捷,无需像原 repo 先分别计算各个尺度的 2D feature map 再 reconstruction;
  3. 优化了时间邻近卷积网络的实现,无需在训练时实时计算 weight;
  4. 优化了 bce_rescale_loss 的实现,无需重复赋值以及 mask 乘积;
  5. 对于整个框架采用了 maskrcnn-benchmark style 的方式进行了编写,增加了操作的便捷性和易读性。

这其中有些地方结合我们的代码来阅读,可以更加快速的领会!

https://github.com/ChenJoya/2dtan​github.com

结语

谢谢您的阅读,请多多批评指正!如果觉得有用,不妨在 Github 上 Star⭐ 一下再走!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值
>