论文阅读:Temporal Action Detection with Structured Segment Networks

摘要

问题:在未裁剪的视频中检测行为。
解决

  1. Structured Segment Networks(SSN): 可通过结构化的时间金字塔对每个行为实例的时间结构进行建模。 在金字塔的顶部,进一步使用了一个分解的判别模型,该模型包含两个分类器,分别用于对行为进行分类和确定完整性。 这使框架可以有效地将积极的proposals与背景的或不完整的proposals区分开,从而准确的识别和定位。
  2. 设计了一种简单而有效的时序行动proposal方案,称为 temporal actionness
    grouping(TAG),以生成高质量的行动proposal。

方法

在这里插入图片描述
输入: 视频和一组proposals。
输出: 一组预测行为实例,每个实例与类别标签和时间范围(由起点和终点定界)相关联。
过程: 将每个proposal视为由三个连续阶段(开始,过程和结束)组成,它们分别捕获了行为的开始,进行和结束的方式。根据每个proposal,通过以下步骤执行 structured temporal pyramid pooling(STPP):

  1. 将proposal分为三个阶段;
  2. 为每个阶段建立时间金字塔表示;
  3. 通过串联阶段级别的表示,为整个proposal建立全局表示。
  4. 分别用于识别行为类别和评估完整性的两个分类器将应用于STPP获得的表示,并且将它们的预测进行组合,从而得到标记有类别标签的完整实例的子集。其他被认为属于背景或不完整的建议将被过滤掉。

采用稀疏代码段采样策略来近似密集样本上的时间金字塔。通过利用视频片段之间的冗余,该策略可以大大降低计算成本,从而可以对长时间的结构进行关键建模。

三阶段结构

  1. 视频:一个 T T T片段的序列,即 ( S t ) t = 1 T {(S_t)}^T_{t=1} (St)t=1T,一个片段包含连续的几帧。
  2. proposals: P = P= P= { p i = [ s i , e i ] p_i=[s_i,e_i] pi=[si,ei]} i = 1 N ^N_{i=1} i=1N
    p i p_i pi的持续时间: d i = e i − s i d_i=e_i-s_i di=eisi
  3. augmented proposal: p ′ i = [ s ′ i , e ′ i ] {p'}_i=[{s'}_i,{e'}_i] pi=[si,ei]。其中, s ′ i = s i − d i / 2 {s'}_i = s_i - d_i/2 si=sidi/2 e ′ i = e i + d i / 2 {e'}_i=e_i+d_i/2 ei=ei+di/2。(为了进行结构分析,特别是确定proposal是否包含完整的实例,因此需要将其放在上下文中)。

如果一个proposal与一个groundtruth实例很好地结合在一起,那么这个augmented proposal不仅会捕捉到活动的内在过程,还会捕捉到活动是如何开始和结束的。因此将一个augmented proposal分为三个连续的时间间隔: p i s = [ s ′ i , s i ] p^s_i=[{s'}_i,s_i] pis=[si,si] p i c = [ s i , e i ] p^c_i=[s_i,e_i] pic=[si,ei] p i e = [ e i , e ′ i ] p^e_i=[e_i,{e'}_i] pie=[ei,ei]

Structured Temporal Pyramid Pooling

简要:通过时间金字塔层分别对三个阶段proposal计算特征向量 f i s , f i c , f i e f^s_i,f^c_i,f^e_i fis,fic,fie,然后拼接在一起形成全局表示。

  1. 对于一个阶段 [ s , e ] [s,e] [s,e]涵盖了一系列的片段,表示为{ S t ∣ s ≤ t ≤ e S_t|s≤t≤e Stste}。
  2. 对于每个片段,获得特征向量 v t v_t vt。(这里用的双流)
  3. 基于上述特征,构造了一个 L L L-level的金字塔,每一层将时间间隔划分成 B l B_l Bl个parts。对于第 l l l层的第 i i i个part,间隔为[ s l i s_{li} sli, e l i e_{li} eli],得到池化后的特征:
    在这里插入图片描述
  4. 将所有level的所有part串联得到总体表示:在这里插入图片描述

作者认为course阶段一般反应行为处理的本身,因此包含更多的信息。故区别对待三个阶段,如course阶段是一个2-level的简单金字塔 ( L = 2 , B 1 = 1 , B 2 = 2 ) (L=2,B_1=1,B_2=2) (L=2,B1=1,B2=2),而start和end阶段为1-level金字塔(即平均池化)。

Activity and Completeness Classifiers

activity classifier A A A
输入:course阶段特征 f i c f^c_i fic
输出: K + 1 K+1 K+1个类别的概率: P ( c i ∣ p i ) P(c_i|p_i) P(cipi)。(背景类为label 0)
实现:线性分类器。
completeness classifiers { C k C_k Ck} k = 1 K ^K_{k=1} k=1K:一组二进制分类器。
输入:全局表示{ f i s , f i c , f i e f^s_i,f^c_i,f^e_i fis,fic,fie}
输出: K K K个二进制,预测类别 k k k的行为实例是否完整: P ( b i ∣ c i , p i ) P(b_i|c_i,p_i) P(bici,pi)

  1. 两者的输出形成一个联合分布:当 c i ≥ 1 , P ( c i , b i ∣ p i ) = P ( c i ∣ p i ) ⋅ P ( b i ∣ c i , p i ) c_i≥1,P(c_i,b_i|p_i)=P(c_i|p_i)·P(b_i|c_i,p_i) ci1,P(ci,bipi)=P(cipi)P(bici,pi)
    在这里定义了一个共同分类损失:
    在这里插入图片描述
  2. 在训练期间,收集了三种类型的建议样本:
    (1)positive proposal:与最接近的groudtruth实例重叠且IoU>0.7的proposal;
    (2)background proposal:那些与任何grounftruth实例不重叠的proposal;
    (3)imcomplete proposal:那些满足以下条件的proposal:它的跨度的80%包含在groundtruth实例中,而其与实例IoU<0.3(换句话说,它仅覆盖实例的一小部分)。
    对于这些提议类型,分别具有 ( c i > 0 , b i = 1 ) , c i = 0 , ( c i > 0 , b i = 0 ) (c_i> 0,b_i = 1),c_i = 0,(c_i> 0,b_i = 0) (ci>0bi=1),ci=0,(ci>0bi=0)。 确保每个mini-batch都包含所有三种类型的proposals。

Location Regression and Multi-Task Loss

目的: 对proposal的时间间隔进行定位回归。
解决: 设置了一组定位回归器{ R k R_k Rk} k = 1 K ^K_{k=1} k=1K遵循RCNN中的设计,但将其适应于一维时间region。 特别是,对于一个positive proposal p i p_i pi,回归region中心 µ i µ_i µi和跨距 φ i φ_i φi(在对数刻度),使用最近的groundtruth实例作为目标。 通过分类器和位置回归器,z在训练样本 p i p_i pi上的多任务损失定义为:
在这里插入图片描述
L r e g L_{reg} Lreg L 1 L_1 L1损失函数。

Efficient Training and Inference with SSN

两种降低计算成本的方法。
1. Training with sparse sampling.

  1. 池化操作本质上是在特定区域上收集特征统计信息。 由于片段之间的高度冗余,因此可以通过片段的子集很好地估计此类统计信息。
  2. 具体来说,给定augmented proposal p ′ i {p'} _i pi,将其均匀划分为 L = 9 L = 9 L=9个片段,从每个片段中随机采样一个片段。 对每个池化区域在其相应段上执行结构化时间金字塔池化。

2. Inference with reordered computation

  1. 在测试中,以6帧的固定间隔对视频片段进行采样,并在其上构造时间金字塔。 实际上,对于每个视频,都会生成数百个proposal,并且这些proposal可能会彼此显着重叠–因此,相当一部分的片段和对应的特征在proposals中共享。。
  2. 位置敏感池中的思想来提高测试效率。因为分类器和回归器都是线性的。因此,分类或回归的关键步骤是将权重矩阵 W W W与全局特征向量 f f f相乘。因为 f f f本身是串联而得,因此:
    在这里插入图片描述
    j j j表示金字塔中不同区域的索引, f j f_j fj是在区域 r j r_j rj上通过对所有片段级别的特征进行平均池化而得。所以:
    在这里插入图片描述
    E t − r j E_{ t-{r_j}} Etrj表示 r j r_j rj的平均池,它是线性运算,因此可以与矩阵乘法交换。 式(4)建议为线性响应,即可以将分类器/回归器在pooling前计算。 通过这种方式,可以在CNN中针对每个视频的所有片段上进行重矩阵乘法,并且对于每个proposal,只需要汇总网络输出即可。 这项技术可以将提取网络输出后的处理时间从大约10秒减少到平均每个视频少于0.5秒。

Temporal Region Proposals

通常,SSN接受任意proposals,例如 滑动窗[38,57]。 但是,有效的proposals方法可以产生更准确的proposals,从而使少量proposals可以达到一定的性能水平。因此,设计了一种有效的proposal方法,称为temporal actionness grouping(TAG)。

  1. 使用行为分类器来评估各个单独片段的二进制行为概率。
  2. 找到那些具有较高行为片段的连续时间区域作为proposal。 为此,重新利用了经典的watershed算法[37],将其应用于由一系列互补行为值构成的一维信号,如图3所示。
    1)将信号想象成具有高度和盆地的一维地形。 该算法用不同的“水位” ( γ ) (γ) (γ)将水淹没在该地形上,从而导致一组被水覆盖的“盆地”,用 G ( γ ) G(γ) G(γ)表示。 直观地,每个“脸盆”对应于具有高行为性的时间区域。 然后,水面上的山脊形成盆地之间的空白区域,如图3所示。
    2)给定一组盆地 G ( γ ) G(γ) G(γ),它从种子盆开始,并连续吸收随后的盆,直到盆持续时间占总持续时间的比例(即从第一个盆的开始到最后一个盆的结束)降至某个阈值 τ τ τ以下。然后将吸收的盆和它们之间的空白分组,以形成一个单独的proposal。将每个流域都视为种子,并执行分组过程以获得一组由 G ′ ( τ , γ ) G'(τ,γ) G(τγ)表示的建议。请注意,没有选择 τ τ τ γ γ γ的特定组合。取而代之的是,均匀地从(0,1)采样 τ τ τ γ γ γ,步长为0.05。这两个阈值的组合导致了多组区域。然后,将它们合并。最后,对IoU阈值为0.95的联合应用非最大抑制,以滤除高度重叠的提案。保留的提案将提交给SSN框架。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值