CVPR 2021 | 利用时序差分进行动作识别的最新Backbone:TDN
点击左上方蓝字关注我们
本文将介绍我们组NJU-MCG 在行为识别(Action Recognition)领域被CVPR 2021接收的一篇工作 TDN: Temporal Difference Networks for Efficient Action Recognition。
论文链接(CVPR camera ready版本已更新到arxiv):
https://arxiv.org/abs/2012.10071
Github代码链接 (欢迎大家多多 star ⭐️⭐️⭐️ )
https://github.com/MCG-NJU/TDN
任务介绍
动作识别 (Action Recognition) :对给定剪裁过视频(Trimmed Video)进行分类,识别这段视频中人物的动作。目前的主流方法有 2D-based (TSN, TSM, TEINet, etc.) 和 3D-based(I3D, SlowFast, X3D)。动作识别作为视频领域的基础任务,常常作为视频领域其他 high-level task/downstream task 的 backbone,去提取 video-level or clip-level 的视频特征。
目前 3D-based 的方法在大规模的 scene-based 的数据集(如kinetics)上相对于2D的方法取得了更好的效果,但是3D-based也存在一些明显的问题:
3D-based 的网络参数量大,计算开销大,训练的 scheduler 更长,inference latency 明显慢于 2D-based 的方法。
3D卷积其实并不能很好得学到时序上信息的变化,而且3D卷积学出来的时序Kernel的weight的分布基本一致,更多的还是对时序上的信息做一种 smooth aggregation。这一点在我们组之前的工作TANet 中有比较详细的讨论,大家有兴趣也可以参考这篇 TANet 的解读文章。也基于此,3D-based 的网络在Something-Something这种对时序信息比较敏感的video数据集上并不能取得很好的效果( 得靠 Kinetics 的pre-train来提点 :)
基于以上几点,我们组最近一直在探索更高效的2D-based的时序建模方法,提出了包括 TSN,TEINet,TEA,TAM 等轻量级的时序 video backbone。
我们今天要介绍的这篇工作 TDN 的研究动机也很直接明了:我们能不能将时序上运动的变化显式得提取出来然后加入到网络中呢?
最早在14年 VGG 就提出了大名鼎鼎的 Two-Stream 网络,通过将光流(Optical Flow)信息做为输入去提取时序上的运动信息。但是 Two-Stream 网络需要两个独立分离的Backbone,计算量直接翻倍,而且提取光流也需要巨大的计算开销。所以我们提出了 Temporal Difference Network (TDN) 这种结构,尝试通过 Difference 这种简单的操作去强制提取出时序信息中运动的变化,然后补充到正常的 RGB 网络中去,在不增加过多的计算量的前提下去更高效得进行时序建模。
下面简单介绍一下我们的方法和实验结果。
具体方法
我们的 TDN 是一个 Two-level 的结构,其主要包含短时和长时两个模块——Short-term temporal difference module(S-TDM) 和 Long-term temporal difference module(L-TDM):
短时建模(S-TDM):
首先,我们还是参考 TSN 的采样方式,在整个 Video-level 上均匀分段(segment)进行采样。在网络的前一个阶段,我们希望可以在段内融合局部的运动变化信息,所以我们提取原始 RGB 帧间的 difference 作为局部运动变化的一种表征,然后 CNN 去进一步提取这种运动信息,具体公式如下:长时建模(L-TDM):
相对于之前S-TDM的段内 frame-wise 形式的时序建模,在网络的后一个阶段,我们希望可以对段间的运动变化信息进行增强,去放大运动增强。所以我们参考 TEINet 的形式,设计了一种基于 feature-difference 的通道 attention 增强方法。同时,为了提升最后的效果,我们还增加了multi-scale 和 bidirectional 的结构。这部分的具体公式如下:
实验结果
这里我们列出 Kinetics-400 和Something-Something V1和V2上的实验结果,对 TDN 进行分析与验证。
在Something-Something V1和V2 这种对时序运动信息敏感的数据集上,TDN 取得了 56.8%(Sth V1) 和 68.2%(Sth V2) 的 Top-1 精度(one-clip, center-crop testing scheme),明显超出了之前的所有方法,取得新的 state-of-the-art。
上表列出了 TDN 在Kinetics-400数据集上与其他SOTA方法进行比较。由于Kinetics是一种 scene-based 的数据集,所以时序上运动信息的变化不如 Something-Something 敏感和重要。但是在计算量较低的条件下,TDN 仍能取得了非常有竞争力的效果,Top-1 精度基本与目前3D-based的方法(SlowFast, X3D)的最好结果持平,同时我们还取得了最高的 Top-5 精度(94.4%) (ten-clip, three-crop testing scheme)。
讨论
其实在Kinetics-400数据集上,3D-based 方法采用的 dense 采样的方式,只能关注到整个视频的一小段 clip,而 TDN 参考 TSN 进行全局稀疏的采样,可以进行 video-level 的时序建模。从 one-clip, center-crop 这种单个view 改为 ten-clip, three-crop 这种 30个view 的测试方法,3D-based 方法会有 8-10 个点的提升,TDN 只有 2-3 个点的提升。但反过来,在单个 view 的 testing scheme 下,TDN 结果将会大幅度领先于 3D-based 方法。而这种单个 view 的采样方式能够在极低的计算代价下,取得比较好的结果,在工业界的现实场景下也更加实用和有意义。
END
点赞三连,支持一下吧↓