W-TALC: Weakly-supervised Temporal Activity Localization and Classification
框架概述
W
−
T
A
L
C
W-TALC
W−TALC框架如图所示:
- 该方法利用现有的双流网络作为特征提取器。帧输入的数量取决于所使用的网络。在将帧通过网络后,得到一个表示时间轴的一维特征向量矩阵。在此基础上,应用了一个 FullyConnected-ReLU-Dropout 层和一个标签空间投影层。
- 使用视频级标签计算两个损失函数。
1)多实例学习损失(MILL):利用 class-wise k-max-mean 策略来池化类级别上的激活,获得类别上的概率质量函数。
2)协同活动相似度损失(Co-Activity Similarity Loss, CASL):它基于这样一种动机,即一对具有至少一个共同活动类别(比如骑自行车)的视频在对应于该活动区域应该具有相似的特征。另外,一个视频中与骑自行车相关的特征应该与另一个视频中与骑自行车无关的特征不同。
然而,由于时间标签在弱监督数据中是未知的,将从标签空间激活中获得的注意力作为弱时间标签来计算CASL。然后联合最小化这两个损失函数来学习网络参数。
主要贡献
- 提出了一种新的弱监督时间活动定位和视频分类方法,不需要对特征提取器进行微调,只需要学习特定于任务的参数。
- 引入协同活动相似度损失,并与多实例学习损失联合优化,学习弱监督任务的网络权值。
- 提出了一种机制,以处理长视频,但检测活动在高时间粒度。(???)
方法
符号定义:
X
=
X=
X= {
x
i
x_i
xi}
i
=
1
n
^n_{i=1}
i=1n:n个视频的训练集。
L
=
L=
L= {
l
i
l_i
li}
i
=
1
n
^n_{i=1}
i=1n:不同的时间长度(在特征提取之后)。
A
=
A=
A= {
a
i
a_i
ai}
i
=
1
n
^n_{i=1}
i=1n:活动标签集合,其中
a
i
=
a_i=
ai= {
a
i
j
a^j_i
aij}
j
=
1
m
i
^{m_i}_{j=1}
j=1mi是第
i
i
i个视频的
m
i
(
≥
1
)
m_i(≥1)
mi(≥1)个标签。
S
=
∪
i
=
1
n
a
i
=
S=∪^n_{i=1}a_i=
S=∪i=1nai= {
a
i
a_i
ai}
i
=
1
n
c
^{n_c}_{i=1}
i=1nc:活动类别集合。
在测试时,给定一个视频
x
x
x,预测
x
d
e
t
=
x_{det}=
xdet= {
(
s
j
,
e
j
,
c
j
,
p
j
)
(s_j,e_j,c_j,p_j)
(sj,ej,cj,pj)}
j
=
1
n
(
x
)
^{n(x)}_{j=1}
j=1n(x),其中
n
(
x
)
n(x)
n(x)是
x
x
x的检测数,
s
j
,
e
j
s_j,e_j
sj,ej是第
j
j
j个检测的开始和结束时间,
c
j
c_j
cj是预测的活动类别,
p
j
p_j
pj是置信度。
特征提取
UntrimmedNet Features:
- 一帧通过RGB流,五帧通过光流。
- 以2.5 fps的速度从分类层之前提取特征。
- 使用在ImageNet上预先训练的网络,并使用弱标签和MILL对特定于任务的数据集进行微调。
I3D Features:
- 使用Kinetics预训练的网络。
- 两条流的输入时互不重叠的16帧块。
- 输出通过核大小为 2 × 7 × 7 2×7×7 2×7×7的3D平均池化层以获得1024维的特征。
在特征提取后,对于每个视频 x i x_i xi用矩阵 X i r X^r_i Xir和 X i o X^o_i Xio表示RGB流和光流的特征,维度均为 1024 × l i 1024×l_i 1024×li。
Memory Constraints
问题:在弱监督设置中,有关于整个视频标签的信息,因此需要它一次处理整个视频。由于GPU内存的限制,这对于很长的视频可能会有问题。解决这个问题的一个可能的方法是沿着时间轴将视频分割成块,并应用时间池技术将每个块的长度减少到单个表示向量。块的数量取决于可用的GPU内存。然而,这将在表示向量中引入不需要的背景活动特征,因为视频中活动的开始和结束阶段不会与大多数视频中预定义的块重叠。
解决:长视频采样。
如果视频长度小于预定义的长度
T
T
T,则处理整个视频。
如果视频的长度大于
T
T
T,随机抽取一个长度为
T
T
T的剪辑特征(连续帧),将整个视频的所有标签分配给提取的视频剪辑特征。
Computational Budget and Finetuning
视频采样策略引入的误差将随着满足GPU带宽限制的预定义长度T的减小而增加。
问题:如果想要在训练弱监督模块的同时,对特征提取器进行联合优化,
T
T
T可能会非常小,以保持一个合理的随机梯度下降(SGD)的批量大小。虽然可以通过同时使用多个gpu来增加
T
T
T的值,但它可能不是一种可伸缩的方法。此外,训练两个模块的时间可能会很长。
解决:只从头开始学习特定于任务的参数。
优点:弱监督模块在参数数量方面是轻量级的,因此需要更少的时间来训练,并且它显著地增加了
T
T
T,因此减少了长视频采样时的标记错误。
弱监督层
Fully Connected Layer:在提取好的特征上使用ReLU和Dropout。
其中
D
D
D是Dropout,
k
p
k_p
kp是Dropout的概率,⊕是带有 broadcasting 的加法( broadcasting : 用以对两个形状不同的阵列进行数学计算的处理机制。),
W
f
c
∈
R
2048
×
2048
W_{fc}∈R^{2048×2048}
Wfc∈R2048×2048和
b
∈
R
2048
×
1
b∈R^{2048×1}
b∈R2048×1是从训练集学到的参数,
X
i
∈
R
2048
×
l
i
X_i∈R^{2048×l_i}
Xi∈R2048×li是输出的特征矩阵。
Label Space Projection :将
X
i
X_i
Xi投影到标签空间(
∈
R
n
c
∈R^{n_c}
∈Rnc)。
使用全连接层,并沿时间轴共享权重。 在这种投影之后获得的类激活可以表示如下:
W
a
∈
R
n
c
×
2048
W_a∈R^{{n_c}×2048}
Wa∈Rnc×2048和
b
a
∈
R
n
c
b_a∈R^{n_c}
ba∈Rnc是学到的参数,
A
i
∈
R
n
c
×
l
i
A_i∈R^{{n_c}×l_i}
Ai∈Rnc×li。
k k k-max多实例学习
正如在第1节中讨论的那样,本文所讨论的弱监督活动本地化和分类问题可以直接映射到多实例学习(MIL)问题[70]。在MIL中,将单个样本分为两个袋,即正袋和负袋。一个正袋至少包含一个正例,一个负袋不包含正例。使用这些袋子作为训练数据,我们需要学习一个模型,除了对袋子进行分类之外,该模型还可以将每个实例区分为阳性还是阴性。在我们的案例中,我们将整个视频视为一袋实例,其中每个实例在某个特定时刻由特征向量表示。为了计算每个包(即本例中的视频)的损失,我们需要使用每个类别的单个置信度得分来表示每个视频。对于给定的视频,我们将与特定类别相对应的激活评分计算为该类别在时间维度上的k-max激活平均值。与我们的情况一样,袋子中元素的数量变化很大,我们将k设置为与袋子中元素的数量成比例。具体来说
-
k
i
k_i
ki计算如下:
其中, s s s是一个设计的参数。 - 第
i
i
i个视频对于第
j
j
j个类别的置信度分数表示如下:
其中, M l M_l Ml表示第 l l l个元素在集合 M M M。 - 通过softmax计算概率质量函数:
- 计算多实例损失:
.
其中, y i = [ y i 1 , . . . , y n c ] T y_i=[y^1_i,...,y^{n_c}]^T yi=[yi1,...,ync]T是正则化后的真实标签向量。
Co-Activity Similarity
定义:对于第
j
j
j个类别定义的特定类别集合:
S
j
=
S_j=
Sj= {
x
i
∣
∃
a
i
k
∈
a
i
,
s
.
t
.
a
i
k
=
α
j
x_i |∃a^k_i∈a_i,s.t. a^k_i =α_j
xi∣∃aik∈ai,s.t.aik=αj},即,集合
S
j
S_j
Sj包含训练集的所有视频,这个集合有活动
α
j
α_j
αj作为其标签之一。
作用:确定相似类别视频之间的相关性。
理想情况下,希望学习特征表示
X
i
X_i
Xi中具有以下属性:
----属于集合
S
j
S_j
Sj(对于任何
j
∈
j∈
j∈ {
1
,
.
.
.
,
n
c
1,...,n_c
1,...,nc})的视频对在发生活动
α
j
α_j
αj的视频部分中应具有相似的特征表示。
----对于同一视频对,一个视频中出现
α
j
α_j
αj的部分的特征表示应与不出现
α
j
α_j
αj的另一视频的特征表示不同。
解决: 由于没有帧方面的标签,使用在Eqn. 2中获得的类方面的激活来标识所需的活动部分。损失函数的设计有助于同时学习特征表示和标签空间投影。
- 使用softmax对每个视频类的激活分数沿时间轴进行标准化,如下所示:
称这些为attention,由于关注视频中某个类别的活动发生的部分。某个特定类别的atte值越高,表明该类别的发生概率越高。 - 为了表示损失函数,首先定义高、低attention区域的类的特征向量如下:
其中, H f i j , L f i j ∈ 2048 ^Hf^j_i, ^Lf^j_i∈2048 Hfij,Lfij∈2048分别表示对于第 j j j类,视频 i i i的高注意区域和低注意区域聚合的特征表示。 - 使用余弦相似度来衡量两个特征向量之间的相似度,它可以表示为:
- 为了加强上述两个性质,使用了rank hinge loss。给出一对视频
x
m
,
x
n
∈
S
j
x_m,x_n∈ S_j
xm,xn∈Sj,损失函数可以表示为:
在实验中, δ = 0.5 δ=0.5 δ=0.5。 - 整个训练集的总损失可以表示为:
优化
- 在网络中要学习的权重集中到W。在实验中,使用 λ = 0.5 λ= 0.5 λ=0.5 和 α = 5 × 1 0 − 4 α= 5×10^{−4} α=5×10−4。
- 使用Adam (批量大小为10)优化上述损失函数。
- 创建每个批次,至少具有三对视频,因此每对视频至少具有一个共同的类别。
- 在所有实验中,都使用 1 0 − 4 10^{−4} 10−4的恒定学习率。
分类和定位
- 给定一个视频,获得与 E q n . 4 Eqn.4 Eqn.4中相同的类置信度得分,之后softmax,以获得可能类别的pmf。
- 对pmf设置阈值,以将视频分类为包含一个或多个活动类别。但是使用mAP进行比较,这不需要阈值运算,而直接使用pmf。
- 对于定位,采用两阶段阈值方案:
1)丢弃置信度得分低于某个阈值(在我们的实验中为0.0)的类别。
2)对于其余的每个类别,我们对沿时间轴的 A A A(等式2)中的相应激活应用阈值以获得定位。可能会注意到,由于 l i l_i li通常小于视频的帧速率,因此需对激活进行上采样以满足帧速率。
实验
数据集:ActivityNet v1.2和Thumos14。
实施细节:
- 使用相应的存储库来提取UntrimmedNets和I3D的特征。
- 不固定特征提取器。
- 弱监督层的权重通过Xavier方法初始化。
- 使用TVL1光流。
- 使用Tensorflow在单个Tesla K80 GPU上训练网络。
- 在等式中设置 s = 8 s = 8 s=8。
活动定位:对活动定位任务的框架进行定量分析。
将具有不同的IoU阈值的mAP用作性能指标。在表1和表2中,分别使用了几种针对Thumos14和ActivityNet1.2的强和弱监督方法的结果进行了比较。显示了使用的特征和损失函数的不同组合的结果。
活动分类:使用mAP从Eqn.4中的预测视频级别得分(在应用softmax后)计算分类效果。 将其与完全监督方法和弱监督方法进行了比较,结果分别在表3和表4中列出了Thumos14和ActivityNet1.2。
请注意,与表中提到的方法相比,用↑指示的方法使用的训练集更大。
损失函数的相对权重:使用I3D特征进行了实验:使用不同的λ值(较高的值表示MILL的权重较大),并在图3a中的Thumos14数据集上显示了检测结果。从图中可以看出,所提出的方法在
λ
=
0.5
λ= 0.5
λ=0.5时表现最佳,即当两个损失函数的权重相等时。此外,仅使用MILL(即
λ
=
1.0
λ= 1.0
λ=1.0)会使mAP降低7-8%。这表明,CASL对改善框架的性能具有重大影响。
对最大序列长度的敏感性:如前所述,在弱监督设置中,我们只有视频级别标签,我们需要一次处理整个视频以计算损失函数。
一种简单的采样策略:将一批视频的长度保持为小于预定长度
T
T
T,以满足GPU内存的限制。
优势:可以使用此方案从长视频中学习。如果视频的长度≥T,将沿着时间轴随机裁剪以使其成为固定的长度序列,从而将这种策略用作数据增强技术。另外,较低的
T
T
T会减少计算时间。
缺点:在这种采样方案中,错误将被引入到训练批次的标签中,该错误可能会随着长度大于T的培训视频的数量而增加。以上因素导致了性能与计算时间之间的权衡。
在图3b中可以看到,其中图的初始部分随着
T
T
T的增加,检测性能提高,但是计算时间增加。但是,检测性能最终达到平稳状态,表明
T
=
320
s
T = 320s
T=320s是此数据集的合理选择。
定性结果: