0. 前言
1. 要解决什么问题
- 3D卷积提取特征时,参数与计算量太大了。
- 一个很朴素的想法:能否将时间时间信息融入空间信息中,从而同时学习两类信息。
2. 用了什么方法
- 提出了 Temporal Interlacing Network 结构
- 理解:TSM的扩展。
- TSM中,shift操作的offset是固定的。
- TIN中,shift操作的方向以及offset是要学习的。
- 位置:一般将TIN/TSM模块放在普通resnet若干block非skip分支的conv1之前。
- 一点细节:
- 进行shift操作的是在channel维度上。
- TIN中,3/4的channel是不变化的,剩下的1/4分成四份,分别单独计算shift的参数。
- 理解:TSM的扩展。
- TIN结构
- 从下图中可以看到TIN结构的位置以及基本组成。
- TIN的实现可以参考源码
- TIN 由 OffsetNet, WeightNet, Differentiable Frame Sampling 三个部分组成。
- OffsetNet:预测出两组offset的数值(一共四组,两组预测,剩下两组用前两组的相反值,这样特征融合效果更好)
- WeightNet:预测时间维度的权重。注意力机制。
- Differentiable Frame Sampling 是重点,如下图所示
- 有些offset的值不是整数,那就用类似于双线性插值的方法来获取特征值。
- 细节没细看,想来源码里都比较仔细了,要了解详细的直接看源码就好。
3. 效果如何
- Something-Something-V1 的结果最全,有参数以及计算量的比较。
- 其他数据集上的一些结果
- 更形象的比较结果
4. 还存在什么问题&有什么可借鉴
-
配图,感觉跟TSM的配色都一样。
-
这SHIFT操作,十有八九是自定义op(即pytorch中没有对应的op,需要自己写cuda代码),所以不能用于TVM等推理优化工具。