论文浏览(17) Actions as Moving Points


0. 前言

  • 相关资料:
  • 论文基本信息
    • 领域:Spatio-Temporal Action Detection
    • 作者单位:南京大学
    • 发表时间:2020.4,ECCV 2020

1. 要解决什么问题

  • 要解决 Spatio-Temporal Action Detection 问题,也称为 tubelet detectors 问题。
  • 之前常见的有两种解决方案:
    • Frame-Level Detection:对一帧进行 action detector,然后再进行 frame-wise 的matching。
    • Clip-Level Detection:输入若干帧,直接输出 tubelet。
  • 现有的解决方案一般都是基于目标检测框架,如Raster R-CNN,SSD等,这些方法都依赖于众多的anchors。这类方法都存在以下问题
    • 对超参数敏感(如bbox的box size, box number, aspect ratio)
    • 在有检测结果很多时,会导致性能下降。
    • 这类方法直接忽略了temporal dimension,认为所有行为都是立方体。

2. 用了什么方法

  • 简单说,就是将CenterNet用于时空行为检测。
  • 解决方案如下图
    • Backbone
      • 假设输入的图像有K张,每张的尺寸都是H, W, 3
      • 假设出图的特征图尺寸是 H/R, W/R, 64
      • 对每一帧分别用2D CNN提取特征。
    • Center Branch
      • 判断关键帧的行为类别。
        • 所谓关键帧,可以是输入K帧中的正中间一帧,也可以是最后一帧。
        • 具体的应该数据如何导入模型时应考虑的问题。
        • 猜测如果是offline版本,中间一帧比较合适;online版本,最后一帧比较合适。
      • 输入是K帧图像提取特征后concat形成。
      • 输出是 H/R * W/R * C,其中C是类别数量,取值范围 [0, 1]
    • Movement Branch
      • 由于tubelet一般都不是立方体,所以相对于关键帧,动作可能会有偏移。
      • 这个分支就用于预测相对于中心点的偏移。
      • 对于每个中心点都有一组偏移。
      • 输入是K真图像提取特征后 H/R, W/R, K*2,也就是说,对每一帧对象的每个中心点位置,都对应了偏移。
    • Box Branch
      • 用于预测每一帧、每个中心点bbox的height与width。
      • 对于每一帧都分别计算height与width,毕竟bbox与前后帧可没什么关系。
    • image_1eck6dpqn1gli1844hi83oppgk9.png-222.2kB
  • Tubelet Linking
    • 就是将多个检测出的tubelet关联起来。
    • 说是完全使用了 Action tubelet detector for spatio-temporal action localization 这篇论文中的方法。
    • 没细看,用到再说。

3. 效果如何

  • 通过试验验证了 Movement Branch 的作用,尝试了多种Movement Branch的设计方式,结果不贴了。
  • 与SOTA进行对比
    • image_1eck81p661qf5ujmqbq5kb1jlu16.png-148.9kB
  • 分析该模型的运行时间
    • 在TITAN Xp上运行
    • 光流实现计算好
    • K=7且双流融合。
    • 使用的backbone是DLA34(与CenterNet一样)
    • 每次输入一帧只处理一帧(历史特征都保留着)
    • 所谓的3D方法指的是先用detector分别对关键帧进行检测,然后用3D CNN提取clip特征,融合检测的bbox他通过ROI提取特征进行行为识别。
    • image_1eck81fjhi4o18599jd816jfp.png-100.7kB

4. 还存在什么问题

  • 说了不适用于AVA,但目前想使用AVA,不知道修改网络结构后效果如何,期待开源。