0. 前言

  • 相关资料:
    • arxiv
    • github
    • 论文解读
  • 论文基本信息
    • 领域:行为识别
    • 作者单位:AWS
    • 发表时间:2020.7

1. 要解决什么问题

  • 当前行为识别模型的一般结构:
    • 从视频中取出一段连续帧作为模型输入。
    • 传递给3D backbone提取特征。
      • 一般来说backbone会在时间维度上下采样,假设采样率为t。
      • 那么在backbone之后,没个时间维度都代表了一个t帧的sub-clip。
    • 将backbone结果经过global avg pool后得到特征(salient features)。
    • 将上述特征作为最终行为分类fc的输入。
  • 上述行为识别模型存在的问题
    • 问题一:虽然在经过3D卷积后特征图的感受域已经超过了clip的范围,但有效感受域其实并不大,所以提取的特征缺少了全局特征。
    • 因为有了avg pooling,所以帧的前后顺序对结果并没有什么影响。

2. 用了什么方法

  • 提出了 Channel Independent Directional Convolution(CIDC) 来提取帧顺序特征。
    • 作用:提取 temporal order 特征(即帧顺序特征)。
    • 注意,该操作是 bidirectionally,即从前到后、从后到前都有,然后把得到的特征concat。
    • 该操作可以理解为一种另类的depthwise convolution
      • 对于输入的特征图 BATCH_SIZE, C, T, W, H,根据C维度进行展开,分别Directional Convolution。
      • split后,每个channel的特征图尺寸为 BATCH_SIZE, T, W, H,可以直接使用2D卷积
    • 论文浏览(28) Directional Temporal Modeling for Action Recognition
  • CIDC的实现
    • 朴素实现:对于每个time step分别实现。这样效率太低了。
    • 文章实现:可以将这个看做是1*1卷积的特殊形式,只是将参数的上三角区域(upper triangle portion)参数值设置为0。
      • 只是这样设置的话,训练会不稳定。
      • 为了解决上面的问题,提出了 normalization strategy 来解决。
      • 不过这些都是实现细节,不是现在考虑的问题。
  • 基于CIDC的总体网络结构设计
    • 重点就是 multi-scale。
    • CIDC的使用方法是在backbone的基础上做一些改进,而不是改进backbone本身。
    • 论文浏览(28) Directional Temporal Modeling for Action Recognition

3. 效果如何

  • 主要就看一下Kinetics400 & Something-Something-V2的结果
    • 论文浏览(28) Directional Temporal Modeling for Action Recognition

4. 还存在什么问题

  • 其实CIDC的作用感觉像是FPN,实现multi-scale融合。刚开始以为是行为识别轻量化网络才重点看了看,最后发现不是那么回事。

相关文章: