【CVPR2020】Temporal Pyramid Network for Action Recognition

〇、基本信息:

  • Title:Temporal Pyramid Network for Action Recognition
  • Author:港中文和商汤的工作,有大佬周博磊的参与
  • 一句话概括一下:This work addresses the importance of visual tempo within action recognitiong problem, and inspired by this, the author proposed a module named TPN at feature level for tempo modeling. And the two components in TPN (the source and the fusion of features respectively), forming the feature hierarchy for a given backbone. Then the model can capture action instance at various tempos!(其实不知道大家有没有看过何凯明SlowFast的工作,个人目前对此的理解其实就是一个在feature 层面的上的SlowFast的工作,这样的情况下网络的总输入就还是固定的单一的frame rate比如一次8帧或者一次16帧,这样的。)

一、读完摘要后的疑问:

  1. 什么是visual tempo?

二、读完Introduction后的一些想法:

还和之前的想法一样,这个工作就是一个Feature层面的SLow Fast的工作,这样的化输入的frame rate就是固定的了,比如8frame或者16frame这样的。
该方法产生的动机呢???
原文是这么说的:
(1)之前的工作虽然利用多分支的方式进行了不同frame rate的输入,但是这样的方式是非常的对算力不友好的,并且事先去定义不同的tempo也是不显示的(可能每个动作就有一种tempo,那动不动几百种的动作类别的难道我们要去定义上百种的分支吗?这是不现实的,当然不知道自己这样理解对不对)
(2)常见的C3D这样的方法经常堆叠一些列的时序卷积,这样子随着网络层数的增加,时序感受野也随之增大,作为结果呢,单一model中不同深度的feature就已经有了一定的fast-tempo或者slow-tempo了,那如此来说在去multi-branches是不是就显得有点多余了(至少在C3D相关的方法中而言)

三、看结论的收获

(1)对proposed method的总结(提出了什么,是什么样子,如何使用等)
(2)后续工作将应用在video understanding中,action recognition已经可以理解为一种视频理解的一小部分了吧,那还有什么和时序建模相关呢?action prediction?

四、正文部分

首先映入我眼帘的依据就是第一句:
The visual tempo of an action instance is one of the key factors for recognizing it, especially when other factors are ambiguous.
没错,作者的意思是visual tempo可以区分那些模棱两可动作(比如走路,慢跑以及跑步这样的非常像的)的重要因素?我自己是很好奇这个结论是怎么来的呢?

接着,作者说之前的对visual tempo进行获取的方案主要就是利用frame pyramid进行的,具体而言就是输入的frame rate是pre-defined的,并且没中不同的rate对应一个特殊的network来处理,最典型的例子就是SlowFast了,这样的弊端就是需要极大的运算量,尤其当frame rate不止一种的时候。

所以这篇TPN就出现了,如图,
在这里插入图片描述
可以看出来整个结构就是这五个框,核心就是中间的三个框,然后为了解决Slow-Fast那种input frame multi-rate的问题,这里是利用不同的feature map进行的。这样整个网络的输入就还是是一个frame rate的。然后取不同深度的feature map,也就是第一个框Bacbone中的主要工作。

1. Backbone:

看作是特征提取器把,就是对不同层的特征进行提取,一般有两种:
(1)第一种本文称之为single-depth pyramid,这种就是对特定层的feature map进行temporal dimension上的分级划分,比如有100个channel, 那么就10, 20, 30, 40这样划分出四组,那这个single depth的金字塔就有四层。这样做的缺陷就是,无论你怎么划分金字塔,你都知识来自于一个层的feature map,并没有什么有冲击性的东西,就好比你选了100个50岁的人,无论你怎么进行组合,划分,都改变不了他们都是50岁的人的事实,大家能提供的信息也基本上就在50岁上下,所以作者又提供了第二种思路。
(2)Multi-depth pyramid:这个就和上面不一样了,在不同的深度选取feature map,然后把这些特征融合在一起(注意由于来源不一样,所以融合的是偶得格外小心,比如通道数啊,特征图大小啊什么的,总之就是得求同存异吧),这样这个新构造出来的feature map就更加有料了!再举个例子,比如还是选拔了100个人,其中10个20岁的,20个30岁的,30个50岁的,40个80岁的,这下好了,你把这么100个人放在一起,那20岁的也可以了解到80岁的一些东西,80岁的老头也能知道20岁的世界最近流行什么歌曲了。当然第二种的还需要强调的就是feature fusion,原文的最后一句也强调了要careful treatment!

2.Spatial Semantic Modulation:

也就是框架中的第二个框框,作用就是上面提到的要把这些来自不同depth的feature map进行spatial domin上的对其,或者说整合,毕竟大家都有差异,那么如何让其和平共处就显得格外重要了。这里自己有些疑惑,原文说这里空间对齐的部分是通过两个互补的方式来进行的
(1)对于除过最高一层的feature,其他层的feature map都将被施加level-specific stride的一系列卷积操作,使得其他的feature map在spatial shap以及感受野上都于最高一层保持一致,问题是这个感受野怎么一致呢?深度都不一样,感受野怎么保持一致?
(2)此外呢,还有个叫做 'auxiliary classification head’的东西被施加到这些feature map上,用来实现更强的监督,从而达到增强语言的目的,然后下面列个个Loss function,这个还没思考明白。

3. Temporal Rate Modulation

上面的spatial上的操作在空间大小是是把来自于各个深度的feature map给对其了,整合在一起了,但是在时序上还没有得到标定。所以在temporal Rate Modulation这个模块,也就是框架图中第三个框框里面,对时序rate进行整合。
原文说之前的SlowFast这样的方法因为输入的是不同rate的frame,所以控制起来非常灵活,但是本文的话是针对不同深度的feature 进行的,所以显得有些笨拙,因此为了让这个来自于feature map的方法在时序rate上也能显得灵活一些,就引入了超参数来进行调节,我这个举个例子,比如一共用到了4层的feature,a1就是对第一层的featurezai 在经过了Spatial Semantic Modulation之后需要进行temporal sampling的参数,相应的a4就是对取的第四层feature 在经过了空间对其后的时序采样参数,这样四层的feature就又可以放在一起了!

这一部分其说说白了就是temporal 维度的sampling了吧,明天看看代码到底是不是这样的。最后就得到了四组先后经过了spatial 以及temporal整合后的feature了。

4. Information Flow of TPN

这一部就到了用上面得到的feature,前面的步骤可以说是如何进行数据的获取,后面的步骤就是怎么用!
两个basic的down/up-sampling operation
(注意这里都是仅在temporal dimension进行的!)
(1)Top-down
在这里插入图片描述
(2)Bottom-up
在这里插入图片描述
然后通过这两个basic的操作又可以构成两个复杂一点的
(1) Cascade:先top-down后bottom-up
在这里插入图片描述

(2) Parrallel:把两个基础的操作同时使用
在这里插入图片描述

5.Final Prediction

这个就是对各个level整合信息后的(包括了空间时间的两个Modulation以及information flow)feature 的rescale和拼接。

6. Implementation

(1)3D的TPN是在SlowFast工作上进行的;
(2)2D的TPN实在2D ResNet上进行的;
其中呢,主要在利用res2, res3, res4以及res5四个stage output出来的feature map来进行TPN的构建,且上述相应的地方都对feature map在spatial上进行了4,8,16以及32倍的下采样。

五、实验

先扫了一眼,蛮充分的,自己取读一下代码,之后完成剩下的。

六、其他

辅助理解在知乎上看到了一些大佬的简介,表述的要清晰很多,继续努力积累
https://zhuanlan.zhihu.com/p/127366929

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章