Video Understanding(3)——Spatio-Temporal Action Localization时空动作定位

刚开始研究动作时,主要学习的是动作识别Action Recognize方向的内容,它的目标是给一段切割好的视频分类、打上动作类别标签,一般视频的长度在2-5s不等。后来又研究了动作检测Action Detect方向的内容,区别在于它针对的是未经过切割的原生视频,给出视频中动作的起始/终止时间点、类别信息。

在实际场景中,一个画面可能包含不止一个人,这个人可能在同一时间点进行着多种动作(比如,走路时打电话),时空动作定位Spatial-Temporal Action localization就可以解决复杂场景的多人多动作问题。具体来说,模型需要做更多的工作,不仅仅是给出动作类别、起始/终止时间点,动作发生的空间区域也需要定位。

这里以时间轴为主线,梳理了近期动作定位相关的文献,仅供参考。

0、2020年

Asynchronous Interaction Aggregation for Action Detection》,pytorch

  • 上海交大MVIG组提出的动作检测模型,不是端到端的,需要额外的检测、追踪模型;
  • 效果还不错,有AVA预训练模型,在AVA-v2.2上达到32.4mAP,值得尝试;
1、2019年
1.1 CVPR相关文章

Video Action Transformer Network

  • 卡耐基梅隆大学的工作,CVPR2019的Oral Presentation,曾取得AVA上的SOTA!
  • 没有开源代码!

STEP: Spatio-Temporal Progressive Learning for Video Action Detection》,pytorch

  • 开源代码简单易用,同时有AVA预训练模型;
  • 问题在于模型inference速度过慢,单GPU速度为0.4FPS,无法满足实时要求。

Relational Action Forecasting

  • 根据以往和当前的动作预测未来的趋势
  • 没有开源代码!

TACNet: Transition-Aware Context Network for Spatio-Temporal Action Detection

  • 很多动作都存在一些过渡状态,就是起始或终止时的一些静止、附带动作,一般模型不能正确将它们和主体动作区分开来,TACNet通过区分这些“模糊状态”提升动作定位的精度;
  • 没有开源代码!

Dance with Flow: Two-in-One Stream Action Detection》,pytorch

  • 在之前two-stream的动作识别基础上做修改,将RGB、Flow两条线融合成一条线,提升了计算速度和精度
  • 还是需要提前计算好光流!

Action4D: Online Action Recognition in the Crowd and Clutter》,pytorch

  • 大致思路:先检测并追踪三维空间中的个体,然后用三维卷积在个体空间中识别动作;
  • 需要两个深度相机,融合两个相机的内容产生3D场景,模型对相机的视角保持不变性;
  • 文章指出模型可以做到实时,适合布置在一些人员密集的小型空间中;
  • 没有测试过,实时性表示存疑,个体三维空间的追踪准确性也是个问题!

Improving Action Localization by Progressive Cross-stream Cooperation

  • 首先在RGB、Flow上分别做proposal检测,然后将结果合并产生一个更大的proposal集合,在这些proposal中做定位,两个stream的特征信息互通、互相促进,提升时空动作定位性能;
  • 没有开源代码!

Spatio-Temporal Video Re-Localization by Warp LSTM

  • 类似于模式匹配,在输入待检测的原生视频时同时给一段动作的目标视频,然后给出这个目标动作在原生视频中的位置、时间信息,模型用到三维卷积、LSTM等结构;
  • 没有开源代码!
1.2 ICCV相关文章

《SlowFast Networks for Video Recognition》(+《Non-local Neural Networks》),PySlowFast

  • FaceBook开源的动作定位平台,影响力还挺大,提供了多种类型的预训练模型,推荐尝试;

  • 从论文数据上来看,其性能要强于STEP很多,但是也存在速度太慢的问题,0.2FPS是无法实时的;

1.3 others

这里重点介绍一下YOWO模型,目前为止发现最适合我个人需求的一个方案!

论文:《You Only Watch Once: A Unified CNN Architecture for Real-Time Spatiotemporal Action Localization》

代码pytorch

贡献:提出了一个end-to-end时空特征建模方法,建立了一个高效的特征融合注意力机制CFAM,通过大量的对比试验验证了3D卷积的先进行以及不同的帧片段长度对动作定位精度的影响。个人认为,它最大的亮点在于速度:16-frames clip可以达到34FPS,8-frames clip可以达到62FPS,完全能够满足实时要求。

简介
image-20200325122435826

如上图所示,YOWO接受的输入是一个clip:clip中的关键帧送入2D-CNN(Darknet-19),用来建模空间信息;关键帧之前的8/16帧作为一个整体送入3D-CNN(3D-ResNet101),用来建模时间信息;然后空间、时间特征被送入CAFM做融合,最后进行边框回归和分类。

将特征直接concat融合的方式很生硬,它忽略了特征与特征之间的相关性,CAFM希望可以在通道维度上找到这种特征之间的关联,或者说是相互影响系数。类比向量之间的协方差系数计算方式,CAFM计算特征相互影响系数分几步进行:

  • 先将每一个通道的特征展开成一个向量形式: B ∈ R C × H ′ × W ′ → F ∈ R C × N B\in\R^{C\times H^{'}\times W^{'}}→F\in \R^{C\times N} BRC×H×WFRC×N,C个N维向量
  • 计算格拉姆矩阵: G = F ⋅ F T G=F\cdot F^T G=FFT G ∈ R C × C G\in \R^{C\times C} GRC×C
  • 对每一行使用softmax,计算其它特征对该特征的影响系数: M i j = exp ⁡ G i j ∑ j = 1 C exp ⁡ G i j M_{ij}=\frac{\exp G_{ij}}{\sum_{j=1}^{C}\exp G_{ij}} Mij=j=1CexpGijexpGij M ∈ R C × C M\in \R^{C\times C} MRC×C
  • 将影响系数映射到对应的特征上,更新原始特征: F ′ = M T × F F^{'}=M^T\times F F=MT×F F ′ ∈ R C × N F^{'}\in \R^{C\times N} FRC×N
  • 修改特征的维度,重新整合到原始尺寸大小: F ′ ∈ R C × N → F ′ ′ ∈ R C × H ′ × W ′ F^{'}\in \R^{C\times N}→F^{''}\in \R^{C\times H^{'}\times W^{'}} FRC×NFRC×H×W
  • 计算最终融合的特征: C = α F ′ ′ + B C=αF^{''}+B C=αF+B

CAFM的结构如下图所示,这种融合方式考虑了特征之间的相互影响,特征融合地更加“透彻”、有效。但是第四步的映射方式个人认为不应该将 M M M转置!

image-20200325125327863

在边框回归方面,YOWO借鉴YOLO的思想,将其划分为 7 × 7 7\times 7 7×7的网格,每个网格对应产生5个anchor,anchor尺寸通过对训练数据聚类得到,每个anchor最终输出一个 N u m C l s + 5 NumCls+5 NumCls+5的向量。

效果
YOWO
YOWO可以检测视频中每一帧的多人、多动作,精度如下表所示,速度方面我并没有取得如论文所说的32FPS效果,但是经过采样处理(每8帧检测一次)后也可以达到实时。

数据集Frame-mAP @ IoU 0.5
UCF101-2487.2
JHMDB-2174.4

评论:最大的亮点就是它的速度真的很快,不需要光流计算、直接在RGB上做检测。但是由于使用ResNet101、Darknet-19作为basebone,它的模型参数很大,在970M左右。

其它方案

《Spatio-Temporal Action Detection in Untrimmed Videos by Using Multimodal Features and Region Proposals》

《A Proposal-Based Solution to Spatio-Temporal Action Detection in Untrimmed Videos》

2、2018年
2.1 CVPR相关文章

《AVA: A Video Dataset of Spatio-Temporally Localized Atomic Visual Actions》

2.2 others

《Spatio-Temporal Attention-Based LSTM Networks for 3D Action Recognition and Detection》

《Online Action Tube Detection via Resolving the Spatio-temporal Context Pattern》

《A Proposal-Based Solution to Spatio-Temporal Action Detection in Untrimmed Videos》

3、2017年
3.1 CVPR相关文章

《Spatio-Temporal Vector of Locally Max Pooled Features for Action Recognition in Videos》
《ActionVLAD: Learning Spatio-Temporal Aggregation for Action Classification》
《Spatio-Temporal Naive-Bayes Nearest-Neighbor (ST-NBNN) for Skeleton-Based Action Recognition》
《Spatio-Temporal Vector of Locally Max Pooled Features for Action Recognition in Videos》

3.2 ICCV相关文章

《Action Tubelet Detector for Spatio-Temporal Action Localization》,caffe
《Tube Convolutional Neural Network (T-CNN) for Action Detection in Videos 》,caffe
《TORNADO: A Spatio-Temporal Convolutional Regression Network for Video Action Proposal》

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
时空动作检测(spatio-temporal action detection)是一项计算机视觉任务,旨在从视频片段中准确地检测和识别出发生的动作。与传统的动作识别任务相比,时空动作检测旨在通过不仅仅检测动作在空间上的出现,还要捕捉动作在时间上的变化。 时空动作检测往往涉及以下几个主要步骤: 1. 帧级特征提取:首先,利用现有的特征提取技术,从每个视频帧中提取稳定而有信息量的特征,以捕捉空间信息。 2. 时间建模:接下来,通过对连续帧之间的变化进行建模,来捕捉动作的时间相关性和动态信息。这可以通过各种技术,如光流,差分图和循环网络等来实现。 3. 动作检测:在获得空间和时间特征后,利用学习算法(如深度神经网络)来进行动作检测。这通常通过将时空特征输入到分类器,然后根据预先训练的模型推断动作类别和位置。 4. 时空定位:最后,定位动作在视频中的准确位置。这可以通过在时间上进行滑窗检测,并使用非极大值抑制来抑制重叠检测结果来实现。 时空动作检测在很多领域具有广泛应用,比如视频监控、智能交通、运动分析和人机交互等。通过准确地检测和识别动作,我们可以实现更精确的行为理解和动作预测,从而为许多实际应用带来便捷和效益。然而,时空动作检测仍然存在一些挑战,如动作遮挡、背景干扰和不同尺度的动作等问题,所以该领域的研究仍在不断发展和进步。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值