论文笔记Long_Term_Feature_Bank
粗读
1. 论文提出了什么?
- 论文提出long-term feature bank来提升现有3D CNN网络性能,主要的特点是long-term feature bank的特征是在整个视频跨度中提取的信息,可以提供过去和未来的global视频信息辅助当前视频片段local信息的预测能力.
- 论文中表示这个module可以被用在诸如video classification, object detection等任务中.
2. 为什么提出?解决了什么问题
- 现有方法的输入是视频clip, 一般跨度就2~5s,并没有利用全局的视频信息
- 现有利用long-range temporal information方法的缺点: 通常情况下是利用与训练的ImageNet网络提取单个frame信息, 然后再利用cnn来处理.缺点是这样提取的feature既表示the present context又表示long-term context
- 作者提出long-term feature bank目的是将the present context和long-term context分离开,使其功能更加explicitly,从而解决上两条提到的问题
3. 方法描述
对于每段视频, 输入一个视频clip提取出short-term features, 同时网络对整段视频提取特征作为long-term features(?整段视频的feature提取方法是怎样的???),这两种feature通过FBO进行交互,共同完成最后的分类,具体方式在后面详细介绍.
精读
1. Long-term feature bank
- a. 通过person detector检测整个视频中所有的detections
- b. 同时,以一定间隔,例如1s, 使用常规3D cnn网络提取feature
- c. 通过ROI pooling提取出person目标的feature
- d. 表示, 其中维度为, 为t时刻person目标的数目.
疑问1: 每一个time interval怎么和对应的frame person object对应起来??
Ans: 在论文3.4中提到了将训练好的i3d中temporal stride移除了,所以后面3D cnn的输出时间维度应该和frame是一一对齐的.
2. Feature bank operator(FBO)
short-term 与long-term的结合
- 输入的short-term clip为S_t, 中心时间为t,那么从long-term feature bank中取出以t为中心,窗口为2w+1的feature,也就是在t时刻再往前往后拓展w个time interval(个人观点应该是time interval而不是frame)
3. Short-Term Operator(STO)
- 为了与FBO进行对比, 作者提出一个’degraded’ STO, 对Short-term feature bank进行操作,SFB=LFB(S,S),也就是只有当前片段的信息
FBO Instantiations
-
LFB NL :使用short-term feature去注意LFB中的特征,并通过shortconnection返回到short-term feature中(具体操作是降维到512之后与short-term feature进行concatenate), 结构如下图.此外,作者使用LN和dropout来改善overfitting问题
-
LFB Max/Avg : 将long-term feature进行max/avg pooling再与short-term feature进行channel-wise concatenate.
3. 实验
- 通过增加temporal stride来提高模型能cover的视频长度会损害性能
- NL比Max/Avg pooling效果好, 但是在EPIC-Kitchens数据集下,Max/Avg比NL好,作者推断是Kitchens里面大多是单个人物场景,没有人与人之间的交互,所以NL的优势体现不出来
4. 其他的点
-
embedded Gaussian variant function: 这个是在non-local论文中提出的
-
(1)式为Non-local计算response的公式,简单说就是计算i与j的相似度,然后再去取j变换后的feature加到i的response中
-
(2)式为Gaussian Function
-
(3)式为non-lcoal中对高斯公式的变换,讲元素先进行embed再计算(θ和φ为transformation matrix)
-
(4)式为普通的dot-product
-
(5)式为concatenate后再进行变换的dot-product
-