SSN—《Temporal Action Detection with Structured Segment Networks》概述

《Temporal Action Detection with Structured Segment Networks》概述



引言:

最近阅读了本篇发表在ICCV’17上关于Action Detection的论文,之前阅读的大部分都是Action Recognition或者是Activity Recognition的论文,两者的区别在于前者不仅要识别动作的类别,还需要知道动作的起始帧和结束帧,以下是对本篇论文的大体概述,如有错误的地方,欢迎留言指正。


一、主要贡献:
  1. 提出了一种新的模型结构 S S N SSN SSN (Structured Segment Networks),通过一个结构化的时间金字塔对每一个动作示例的时间结构进行建模,从而很好的进行动作分类以及时间点的确定;
  2. 采用了 T A G TAG TAG(Temporal Actionness Grouping)的策略,目的在于生成高质量的Action Proposals;
  3. 采用稀疏片段采样策略 (Sparse Snippet Sampling Strategy),克服了长期建模的计算问题,实现了对SSN的高效端到端训练;(不是作者提出的,只是作者采用了这种方式,加速训练)

二、模型架构以及相关的细节:

2.1. 现存方案的问题以及SSN的优势:

问题:

  1. 对于现有的方法,精确时间定位的一个主要挑战是在所提出的时间区域中存在大量不完整的动作片段。传统的基于片断的分类器依赖于有区别的动作片断,这也会存在于这些不完整的proposals中,这就使得它们很难与有效的检测区分开来;
  2. 现今的结构对时间动作的检测仍然并不普遍且不成功,即使考虑了时间结构,也通常被限制在一个短的Clips中;
  3. 视频中的海量可视数据限制了现有模型结构以端到端方式建模长期依赖关系的能力;
  4. 且现有的模型结构既不提供活动中不同阶段(例如,开始和结束)的显式建模,也不提供评估动作完整性的机制,通常这些对于准确的动作检测至关重要;

SSN的优势:

为突破以上限制,作者提出了一种有效的时间动作检测技术SSN,其具有以下的优势:

  1. SSN提供了一种有效的机制来对活动的时间结构进行建模,从而具有区分完整和不完整proposals的能力;

  2. SSN可以以端到端的方式有效地学习(在大型视频数据集上,例如ActivityNet,5到15小时),并且一旦训练,就可以执行时间结构的快速推理;

  3. SSN在标准基准数据集上取得了较好的检测性能,为时间动作检测开辟了新的研究领域。

下图展示了SSN与通常的动作检测方法的比较,SSN能够很好的只在动作发生的过程中给予较高的响应。

2.2. SSN模型结构简介:

下图给出了SSN整体的模型结构,图中文字给出了一些细节描述:

大致的关键流程为:

  1. 首先,该框架依赖于一种 P r o p o s a l Proposal Proposal m e t h o d method method(TAG)来产生一组不同持续时间的 t e m p o r a l temporal temporal p r o p o s a l s proposals proposals,其中每个提案都有开始时间和结束时间;

  2. 对于每个方案,结构化时间金字塔池(STPP)通过以下步骤来执行:
      - 将方案分成三个阶段(stages):开始,过程,结束;
      - 为每个阶段建立时间金字塔表示;
      - 通过连接阶段级(stage-level)表示来构建整个方案(proposal)的全局表示。

  3. 最后,将识别活动类别和评估完整性的两个分类器分别应用于STPP获得的表示,并将它们的预测组合起来,形成一个用类别标签标记的完整实例子集。其他的被认为属于背景或不完整的提案(proposals)将被过滤掉。

2.2.1. Three-Stage Structures

作为输入的一个视频能被认为是 T T T s n i p p e t s snippets snippets 的序列,表示为 ( S t ) t = 1 T (S_t)_{t=1}^T (St)t=1T,对于一个 s n i p p e t snippet snippet 而言,其包含几个连续的帧,这些帧是RGB图像和光流堆栈的组合(作者用 t w o two two- s t r e a m stream stream 的方法来提取特征)。考虑一组给定的 N N N p r o p o s a l proposal proposal 的集合:
P = { p i = [ s i , e i ] } i = 1 N P = \{p_i = [s_i, e_i]\}^N_{i=1} P={pi=[si,ei]}i=1N

其中, s i s_i si 为开始时间, e i e_i ei 为结束时间,则 p i p_i pi 持续时间为 d i = e i − d i d_i = e_i - d_i di=eidi(这段时间实际就如绿色框中显示的那样)

作者将绿框扩展为黄框,则拓展的 p r o p o s a l proposal proposal p ′ = [ s i ′ , e i ′ ] p'= [s'_i,e'_i] p=[si,ei],其中:
s i ′ = s i − d i 2 , e i ′ = e i + d i 2 s'_i = s_i−\frac{d_i}{2},e'_i = e_i + \frac{d_i}{2} si=si2diei=ei+2di

我们在将拓展的 p r o p o s a l proposal proposal p ′ p' p 分为连续的三个间隔( intervals),它们分为对应于 s t a r t i n g starting starting c o u r s e course course 以及 e n d i n g ending ending阶段:

p i s = [ s i ′ , s i ] , p i c = [ s i , e i ] , p i e = [ e i , e i ′ ] p^s_i=[s'_i,s_i],p^c_i=[s_i,e_i],p^e_i=[e_i,e'_i] pis=[si,si]pic=[si,ei]pie=[ei,ei]

扩展后的 p r o p o s a l proposal proposal 变为原来长度的2倍,前后各增加半个持续时长。

2.2.2. Structured Temporal Pyramid Pooling (STPP)

STPP的主要作用就是构建金字塔,提取特征为每一个 p r o p o s a l proposal proposal 导出一个全局表示

对于一个扩展后的 p r o p o s a l proposal proposal p i ′ p'_i pi被分为三个阶段 p i s , p i c , p i e p^s_i,p^c_i,p^e_i pis,pic,pie,首先通过时间金字塔池化分别计算阶段范围(stage-wise)的特征向量 f i s , f i c , f i e f^s_i,f^c_i,f^e_i fis,fic,fie。更为具体来说,对于某个阶段 [ s , e ] [s, e] [s,e],其包含多个 s n i p p e t s snippets snippets ,对于每一个 s n i p p e t snippet snippet我们可以获得一个特向量 v t v_t vt (就如上图中的CNN,作者使用两流法来提取特征 v t v_t vt)。基于这些特征,作者构建了一个 L L L- l e v e l level level 的金字塔,并且每一级均匀划分 i n t e r v a l interval interval (例如开始阶段 [ s i ′ , s i ] [s'_i,s_i] [si,si])为 B l B_l Bl 部分,对于第 l l l 层的第 i i i 部分,其间隔为 [ s l i , e l i ] [s_{li},e_{li}] [slieli],我们可以导出一个集合特征,如下所示:

u i ( l ) = 1 ∣ e l i − s l i + 1 ∣ ∑ t = s l i e l i v t (1) u^{(l)}_i = \frac{1}{|e_{li}-s_{li}+1|} \sum_{t=s_{li}}^{e_{li}}{v_t} \tag {1} ui(l)=elisli+11t=slielivt(1)

然后,这个阶段(stage)的整体表示可以通过将所有级别(level)的所有部分的集合特征连接起来获得:
f i c = ( u i l ∣ l = 1 , … , L , i = 1 , … , B l ) (2) f^c_i=(u^{l}_i|l=1,…,L,i=1,…,B_l) \tag{2} fic=(uill=1,,L,i=1,,Bl)(2)
对于 c o u r s e course course阶段,采用2级金字塔: L = 2 , B 1 = 1 , B 2 = 2 L=2,B_1=1,B_2=2 L=2,B1=1,B2=2;对于 s t a r t i n g starting starting e n d i n g ending ending 阶段,采用1级金字塔。

2.2.3. Activity and Completeness Classifiers

在STPP整合表示了一个 p r o p o s a l proposal proposal的描述之上是两个分类器:动作分类器,以及完整性分类器;

Activity classifer:包含一个分类器,它仅输入 c o u r s e course course 的特征,将 p r o p o s a l proposal proposal 分为 K+1 个类别(K 类动作,1 个背景类),预测基于阶段级特征 f i c f^c_i fic

Completeness classifiers :包含 K 个二分类器,每个分类器对应一个活动类。这 C k C_k Ck 个活动类将基于 f i s , f i c , f i e f^s_i,f^c_i,f^e_i fis,fic,fie 来预测一个 p r o p o s a l proposal proposal 是否捕捉了第k个活动的完整示例。

两种分类器部署在高级特征之上,对于一个 p r o p o s a l : p i proposal :p_i proposalpi,动作分类器给出一个经过 s o f t m a x softmax softmax后的向量,条件分布表示为 P(ci|pi),其中 c i c_i ci 表示类别。对于每个类别 K,对应的 C k C_k Ck 分类器给出一个概率值,分布为: P ( b i ∣ c i , b i ) P(b_i|c_i,b_i) P(bici,bi) b i b_i bi 指示 p i p_i pi 是否是完整的活动示例。

定义统一分类损失(unified classification loss):

L c l s ( c i , b i ; p i ) = − l o g P ( c i ∣ p i ) − 1 ( c i ≥ 1 ) l o g P ( b i ∣ c i , p i ) (3) L_{cls}(c_i,b_i;pi)=−logP(c_i|p_i)−1_{(c_i≥1)}logP(b_i|c_i,p_i) \tag{3} Lcls(ci,bi;pi)=logP(cipi)1(ci1)logP(bici,pi)(3)

训练时,关注三种 p r o p o s a l proposal proposal 样本:
(1)positive proposals( c i > 0 , b i = 1 c_i>0,b_i=1 ci>0,bi=1):与最接近的 g r o u n d t r u t h groundtruth groundtruth I o U IoU IoU至少为0.7;
(2)background proposals( c i = 0 c_i=0 ci=0):不与任何 g r o u n d t r u t h groundtruth groundtruth重叠;
(3)incomplete proposals( c i > 0 , b i = 0 c_i>0,b_i=0 ci>0,bi=0):其80%包含在 g r o u n d t r u t h groundtruth groundtruth中,但 I o U IoU IoU小于0.3(仅仅包含完整示例的一小部a分)。

2.2.4. Location Regression and Multi-Task Loss

利用全局特征中的结构化信息,我们不仅可以进行分类预测,而且可以通过位置回归来细化方案本身的时间间隔,这个过程类似于 RCNN 对 b o u n d i n g bounding bounding b o x box box 的回归操作。文章中对训练样本中正类 p r o p o s a l proposal proposal, 以其最接近的 g r o u n d t r u t h groundtruth groundtruth 为目标对该 p r o p o s a l proposal proposal 的中心和长度进行回归。文中采用多任务学习策略将分类和回归两个部分整合为一个统一的损失函数:

L c l s ( c i , b i ; p i ) + λ ⋅ 1 ( c i ≥ 1 ≥ b i = 1 ) L r e g ( μ i , ϕ i ; p i ) (4) L_{cls}(c_i,b_i;p_i) + \lambda \cdot 1 _{(c_i \geq 1 \geq b_i=1) } L_{reg}(μ_i,\phi_i;p_i) \tag{4} Lcls(ci,bi;pi)+λ1(ci1bi=1)Lreg(μi,ϕi;pi)(4)

这里,回归区间中心位置(interval center) μ i μ_i μi 和跨度(span) ϕ i \phi_i ϕi(以对数刻度)的相对变化, L r e g L_{reg} Lreg 使用平滑 L 1 L1 L1 损失函数(Smooth L 1 L1 L1 loss function)。

2.2.5. Efficient Training and Inference with SSN

作者为了减少计算代价以及可以端到端的训练模型,采取了两种方法如下:

Training with sparse sampling:具体地说,给定一个扩展的 p r o p o s a l proposal proposal p i ′ p'_i pi,将其平均分为 L = 9 L=9 L=9 s e g m e n t s segments segments,从每个 s e g m e n t s segments segments中随机抽取一个 s n i p p e t snippet snippet。通过这种方式,确定了需要计算的特征数量,而不管 p r o p o s a l proposal proposal 的时间有多长,都能够有效地降低了计算成本,特别是对于长期结构的建模。

Inference with reordered computation:在测试中,作者选取固定间隔为6帧对视频进行采样(snippets),并在此基础上构造时间金字塔。

2.2.6. Temporal Region Proposals

在SSN网络模型中,作者设计了一种有效的提议方法( p r o p o s a l s proposals proposals m e t h o d method method),称为时间动作分组。(TAG:temporal actionness grouping)该方法首次在Actionness estimation using hybrid fully convolutional networks_CVPR’16上提出,这里就不在赘述,知道这个方法的作用就行,如果想详细了解可以查阅相关论文。



后记:

文章之后就是实验细节以及数据对比,如果想仔细阅读请查阅相关论文,最后这篇文章花了我较长的时间整理,如果对您有所帮助,请随手点个赞,以资鼓励【doge】。

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值