0. 前言
1. 要解决什么问题
- 本文主要引入了一个视觉速率“visual tempo”(也可以翻译为节奏)的概念。
- 什么是 visual tempo:做动作的节奏/速率。如下图
- intra class:在同一类型,不同样本中速率不同。
- inter class:不同类型类型样本的速率不同。
- 不同行为,tempo的变化程度不同:所有的剪羊毛样本都差不多速率,不同的“后空翻”速率差别很大。
- 如何理解:visual tempo可以未接维行为在时间尺度上特征,或者说行为的动态特征。
- 什么是 visual tempo:做动作的节奏/速率。如下图
- 以前用于提取 visual tempo 的方法主要是通过不同帧率获取原始帧,构建 input-level frame pyramid。
- 基本流程就如SlowFast,不同速率的样本通过不同的backbone处理,然后做特征融合,最后用于行为识别。
- 这种方法太耗时,效率不够高。
- 由于这种方法需要预先设置帧率,所以有一些限制。
- 希望能有 feature-level的特征提取方法(感觉有点类似于检测里的FPN),既能提取visual tempo,又能节约性能。
2. 用了什么方法
- 提出了一个即插即用的模块 Temporal Pyramid Network
- 灵感来源:同一模型不同深度的网络都已经提取了不同tempo的特征。详细点说,由于视频数据的特征图一般尺寸为
BATCH_SIZE, T, C, H, W
,那么不同的T就代表了不同的帧率。 - Collection of Hierarchical Features
- 方法一:没有FPN,获取一个特征图,以特征图中的
T
通道作为基础,按照不同“帧率”选择BATCH_SIZE, C, H, W
特征图。与下图展示不同。 - 方法二:有FPN,根据不同层特征图拥有不同的通道
T
,作为不同帧率作为后续输入。
- 方法一:没有FPN,获取一个特征图,以特征图中的
- Spatial Semantic Modulation:大概意思是,从backbone获取的不同深度的空间语义特征不一致(猜测就是
C, T, H, W
尺寸不一致,具体要看源码),通过卷积操作设置为相同尺寸。如下图中,这一层的结果的尺寸完全相同。 - Temporal Rate Modulation:就是获取不同帧率的特征图。这一步应该就是所谓的。
- Information Flow:特征融合
- 灵感来源:同一模型不同深度的网络都已经提取了不同tempo的特征。详细点说,由于视频数据的特征图一般尺寸为
- 特征融合的方式
3. 效果如何
- 在Kinetics-400/Something-Something-V1 & V2/Epic-Kitchen三个数据集上能够稳步提升性能。截图不放了,反正都有提升就对了。
- 对于tempo变化较大的行为类别,性能提高效果较好。
4. 还存在什么问题
-
一看到Pyramid就知道,这类模型肯定不能用于算力不行的设备里了……