Single Shot Temporal Action Detection SSAD论文阅读笔记

论文题目:Single Shot Temporal Action Detection
论文地址:https://arxiv.org/pdf/1710.06236.pdf
开源代码:https://github.com/HYPJUDY/Decouple-SSAD

概述

在 2017 年,T. Lin 等人提出了 single shot temporal action detection(SSAD)模型,整体结
构类似于 SSD,该模型先使用预训练好的模型对视频序列提取特征得到特征序列,再使用特征序列作为 SSAD 模型的输入,最终 SSAD 模型输出 TAL 的结果。特征提取部分使用 two stream network、中的 spatial network 提取单帧特征以及其中的 temporal network 来提取光流特征,以及 C3D网络来提取视频片段特征。每个用作特征提取的视频帧单元称为一个 snippet,包含上述提到的图像帧、光流帧、视频片段。之后,拼接 3 个特征提取网络的最后一层, 代表输入snippet 对应的每个动作的概率的输出,作为后续使用的特征,该特征被称作 SAS(Snippet Action Score) 特征。最终,对于一个包含 T 帧图像的视频,可以得到等长的 SAS 特征序列。在获得长度为 T 的特征序列后,就可以将其用作 SSAD 模型的输入。SSAD 模型是一个全部由一维时序卷积构成的网络。主要包括三种卷积层:base、anchor、prediction layer。Base layers 的作用为缩短特征序列的长度,并增大特征序列中每个位置的感受野。anchor layers 继续缩小特征序列的长度,且输出的时间维度的金字塔特征序列中的每个位置都被关联了多个尺度的 anchor instances。最后再通过 prediction layer,来获取每个 anchor instances 所对应的边界坐标偏移量、重叠置信度以及类别分类结果。

方法简介

在这里插入图片描述
该图为论文首页图,展示了本文提出方法的大致流程,即先使用预训练好的模型对视频序列提取特征得到特征序列,再使用特征序列作为SSAD模型的输入,最终SSAD模型输出detection的结果。
在这里插入图片描述
该图则更为细致得展示了本文方法的几个主要流程。即(1)特征提取;(2)SSAD模型; (3)后处理(训练或测试)。下面对各部分进行简要介绍。

特征提取
本文的特征提取使用了two stream network中的spatial network以及temporal network(网络结构均为VGG16),以及基于3D CNN的C3D网络来提取特征。
所以,对于视频片段 S t = ( x t , F t , X t ) S_{t}=\left(x_{t}, F_{t}, X_{t}\right) St=(xt,Ft,Xt) :
x t x_{t} xt 是单张图片,使用Spatial Network进行片段分类,侧重利用空间特征,输出的概率预测结果记做 p S , t p_{S, t} pS,t ,长度为 K + 1 , K K+1 , K K+1K 是动作总类别数量, + 1 +1 +1 表示背景类别
F t F_{t} Ft 是堆叠的光流数据,共10帧,使用Temporal Network进行片段分类,侧重利用时序运动特征 p T , t p_{T, t} pT,t ,长 度为 K + 1 , K K+1 , K K+1K 是动作总类别数量,+1表示背景类别
X t X_{t} Xt 是堆叠的图像数据,共16帧,使用C3D Network进行片段分类,侧重利用时空特征 p C , t p_{C, t} pC,t ,长度为 K + 1 , K K+1, K K+1,K 是动作总类别数量,+1表示背景类别
每个用作特征提取的视频帧单元称为一个snippet,包含图像帧以及光流等,具体的定义在论文中给出。我们拼接3个网络的最后一层输出(该层输出即代表输入snippet对应的每个动作的概率)作为后续使用的特征,该特征记作SAS(Snippet Action Score)特征。最终,对于一个包含T 帧图像的视频,我们可以得到等长的SAS特征序列。该特征序列实际上就是一个二维的矩阵。

SSAD 模型

在获得长度为T的特征序列后,就可以将其用作SSAD模型的输入。SSAD模型是一个全部由时序卷积(一维卷积)构成的网络。主要包括三种卷积层:base, anchor, prediction layer。 Base layers 的作用为缩短特征序列的长度,并增大特征序列中每个位置的感受野。在实验中,我们尝试了多种base layers的结构,如下图所示。最终,通过实验我们选择了结构B。可以看出,conv和pool均选用了较大的kernel size。在base layers中,我们发现使用大卷积核比使用多层小卷积核进行卷积能获得更好的效果。
在这里插入图片描述
接下来SSAD模型中继续使用anchor layers 来缩小特征序列的长度。
使用1D时序卷积进一步缩小特征图,采用卷积核大小为3,步长为2,输出通道数为512的1D卷积操作。经过Conv-A1、Conv-A2、Conv-A3之后,时间维度大小分别减小为原来的1/32、1/64、1/128。这三种尺度的Anchor Layer输出特征使得SSAD网络可以多种尺度的特征图。在每种尺度的特征图的每个位置(cell)使用多种尺度(尺度是对于时间维度来说的)anchor box。Conv-A1层具有更大的特征图和更小的感受野,所以在Conv-A1特征图上的anchor box负责检测short action,Conv-A2检测middle action,Conv-A3检测long action,这点和YoloV2的多个检测头类似。
anchor layer 输出的特征序列中的每个位置都被关联了多个尺度的anchor instances(一个instance代表视频中动作发生的那一段时间,可以理解为一个一维的default box)。之后,再通过prediction layer,来获取每个anchor instances所对应的 坐标偏移量,重叠置信度,以及类别分类结果。通过多层时间尺度不断缩小的特征序列,SSAD模型可以获得由小到大各个时间尺度的action instance预测。
在这里插入图片描述

训练与预测

训练

训练时,首先将获得的anchor instances用坐标偏移量进行修正,再与 ground truth instances 进行匹配,来确定anchor instances是正样本还是负样本。具体的匹配策略见论文。SSAD模型使用如下的损失函数进行模型训练,主要包括分类损失,重叠置信度回归损失,边界回归损失以及正则化项。
L = L class  + α ⋅ L o v e r + β ⋅ L l o c + λ ⋅ L 2 ( Θ ) L=L_{\text {class }}+\alpha \cdot L_{o v e r}+\beta \cdot L_{l o c}+\lambda \cdot L_{2}(\Theta) L=Lclass +αLover+βLloc+λL2(Θ)
测试

测试时,同样先将获得的anchor instances用坐标偏移量进行修正,再用下式获得每个anchor instance的最终分类结果。
p final  = p over  ′ ⋅ ( p class  + p ‾ sas  ) \boldsymbol{p}_{\text {final }}=p_{\text {over }}^{\prime} \cdot\left(\boldsymbol{p}_{\text {class }}+\overline{\boldsymbol{p}}_{\text {sas }}\right) pfinal =pover (pclass +psas )
在获得了一段视频所有的预测action instance后,本文采用NMS(非极大化抑制)对重叠的预测进行去重。从而获得最终的temporal action detection结果。

参考:
https://blog.csdn.net/cxx654/article/details/119007732

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 时空动作检测是指在视频中检测和识别出特定的动作,同时确定其发生的时间和持续时间。这种技术可以应用于许多领域,如视频监控、体育比赛分析和人机交互等。它需要结合计算机视觉、机器学习和深度学习等技术,以实现准确和高效的动作检测。 ### 回答2: 随着视频数据日益增多,如何从视频中识别和理解行动是计算机视觉领域的一个重要研究方向。传统的视频动作识别往往只考虑整个视频的静态信息,而忽略了视频中的时间信息。因此,近年来,研究者们开始关注如何在视频中进行时间上的动作检测,也称为temporal action detectionTemporal action detection通常包括三个关键步骤:动作提议生成、动作分类以及开始和结束时间的回归。第一步,需要在视频中生成候选的动作框架,这些框架会被送到下一步进行动作分类和时间回归。第二步,对于每个候选框架,需要将其与定义好的动作类别进行分类,例如"打网球"或者"跑步"等。第三步,需要为每个动作框架预测开始和结束时间,从而得到完整的时间戳,指示该动作从哪个时间开始,持续多长时间。 值得注意的是,传统的做法通常需要精确的时间戳,而这对于复杂的动作探测并不总是可行。因此,最近的研究更侧重于标记时间模糊,利用模糊的定义来帮助模型更好地识别和分类动作。此外,现有的大多数temporal action detection方法都是基于深度神经网络的,如2D和3D CNN等。 总之,temporal action detection是视频分析领域中的一个热门研究方向。它不仅可以用于视频内容分析,还可以应用于体育、安防、日志分析等领域。未来,我们可以期待更多的研究工作进一步提高这一领域的性能和应用。 ### 回答3: Temporal Action Detection(时序动作检测)是指通过视频序列中发生的连续动作进行分析和理解,进而在其中对目标动作进行检测的一种研究领域。时序动作检测是视频分析领域的一个热门研究方向,它试图从视频序列中自动识别和定位出特定动作的发生时刻和持续时间。 时序动作检测的研究难点在于,视频中的动作通常是不规则的,其持续时间、起止时间和动作速度等都可能不同。因此,其实现需要解决一系列技术问题,包括视频序列预处理、特征提取、动作表示、时间对齐、动作分类和检测等。 在视频序列预处理方面,需要进行视频采样、帧差分和轮廓提取等操作。在特征提取方面,需要考虑如何从视频序列中提取出区分不同动作的关键特征。常用的特征包括传统的HOG、MBH和HOF等特征,以及近年来流行的深度学习中的CNN和RNN等方法。动作表示方面,通常采用短时间动作片段(clip)或整个动作区间来表示动作。时间对齐方面,需要使用不同算法将动作片段与对应的标签对齐。动作分类方面,需要选择合适的分类器来进行动作分类和检测。目前常用的方法包括线性SVM、非线性SVM和随机森林等。 时序动作检测的应用非常广泛,包括视频检索、演员行为分析、交通监控、体育赛事分析、视频自动标注等。尽管在时序动作检测方面已经取得了很多进展,但仍需要使用更加先进的技术来提高检测精度和鲁棒性。未来,时序动作检测将成为视频智能分析,特别是人机交互等领域中重要而具有挑战性的任务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值