【论文笔记】视频分类系列 Temporal Relational Reasoning in Videos (TRN)

版权声明:本文为博主原创文章,转载请注明。 https://blog.csdn.net/elaine_bao/article/details/80753506

Paper:https://arxiv.org/abs/1711.08496v1
Code:https://github.com/metalbubble/TRN-pytorch
作者:Bolei Zhou, Alex Andonian, Antonio Torralba (CSAIL, MIT)

简述

这里写图片描述

时间关系推理(Temporal relational reasoning)是指理解物体/实体在时间域的变化关系的能力。受启发于Relation Network,本文提出了Temporal Relation Network(TRN),用于学习和推理视频帧之间的时间依赖关系。relational resaoning一直是近期研究的热点,从图1中我们可以看出对于视频来说时序关系是重要的。

方法

给定视频V,2帧之间的Temporal Relation T2(V)可以表示成下式:
这里写图片描述

其中fifj表示的是视频第i帧和第j帧的特征,gϕ表示的就是两帧之间关系矩阵,hθ表示的是如何融合多个帧间的关系得到最终分类的结果。在文中,gϕhθ是用简单的多层感知机(MLP)实现的。具体地,从代码上看,和TSN的代码很像(关于TSN,不知道是啥的同学,可以出门左转看这篇:【论文笔记】视频分类系列 Temproal Segment Networks (TSN))。
TSN的最后一个fc层是直接输出了NFrames*NClasses的score,TRN则是去掉这个fc,然后以3个fc来实现temporal relation:首先两个fc构成了gϕ的结构,-> NFrames*256D -> NFrames*512D(或256D)。最后1个fc构成了hθ的结构,即输出NFrames*NClasses的score。

同理,3帧之间的Temporal Relation T3(V)z则可以表示成下式:
这里写图片描述

那么如果要实现Multi-scale Temporal Relation,则可以通过简单地相加得到:
这里写图片描述

比如,考虑2帧relation,3帧relation和4帧relation的情况,则首先随机取出视频中固定数量的帧,做gθhδ得到对应帧数的relation,然后进行最后简单的相加融合,得到最终的检测结果,如下图。
这里写图片描述

实验

实验主要在Something-Something,Jester,Charades三个数据集上进行。不用UCF101和Kinetics的原因,作者说是因为数据集的采集方式不同导致对temporal reasoning的效果有影响,这个后面实验有解释。UCF101和Kinetics两个数据集是从Youtube上下载视频然后进行标注的。而像Something-Something,Jester,Charades则是完全靠人工根据给定的动作类别来完成动作,所以有清楚的动作开始和结束的分界点,对于说明temporal relational reasoning的重要性有更加好的效果。

在Something-Something数据集上的表现如下,其他数据集见原文。
这里写图片描述

另外实验部分我觉得比较有意思的是下面这个部分。
为了确定Temporal Relation,即时间顺序关系的重要性,作者做了一个实验。在训练TRN的时候,给出的frame的顺序分别是顺序和shuffle过的,shuffle就是在relation的模块随机shuffle输入frame的顺序。
这里写图片描述

结果显示,在Something-Something数据集上,是否shuffle对于结果的影响非常大,说明时序对于动作识别的重要性。
但是有意思的是,在UCF101上得到的结果看,是否shuffle并没有什么影响,说明对于UCF101这样的youtube-type的视频来说,动作识别的temporal reasoning的能力并不是那么重要,原因是这类视频对于一个正在进行的动作并没有那么多随意的关系发生(there are not so many casual relations associated with an already on-going activity)。这也是之前说到没有用UCF101和kinetics做实验的原因。嗯实验效果不好就换一个数据集。

另外为了确定时序到底是怎么影响TRN的,作者进一步分析了Something-Something数据集中受shuffle影响最大和最小的类。
这里写图片描述

发现对于有强烈的方向性的动作(actions with strong directionality and large, one-way movements),比如‘Moving something down’,受益于时序信息最为明显。另外有意思的是,对于相对来说静止的动作,shuffle frames并没有带来精度的下降,反而在某些时候带来了精度的上升,比如类别‘putting something that can’t roll onto a slanted surface so it stays where it is’。对于这种情况,简单地学习帧之间的一致性,而不是temporal transformation可能能带来更好的效果。

所以带来的思考就是,有没有一个模型可以比较好地同时解决上面两种情况,即指导什么时候用temporal relation好,什么时候直接学习帧的表观特征就很好。

展开阅读全文

没有更多推荐了,返回首页