一篇高效视频行为检测的论文
原论文链接:https://arxiv.org/abs/2104.13400
代码:https://github.com/Qualcomm-AI-research/FrameExit
摘要
在本文中,我们提出了一种用于视频识别的条件提前退出的框架。虽然现有工作侧重于选择显着帧的子集以降低计算成本,但本文将简单的采样策略与条件提前退出相结合,实现了高效的识别。本文的模型会自动学习更为简单的视频处理用更少的帧,为复杂的视频处理用更多的帧。为了实现这一点,本文采用了级联的门控模块来自动确定推理中足够可靠的最早点。并生成对门的即时监督信号,以在准确性和计算成本之间提供动态权衡。本文提出的模型在三个大规模视频基准测试中的表现优于竞争方法。特别是,在 ActivityNet1.3 和 mini-kinetics 上,我们分别以 1.3 倍和 2.1 倍的 GFLOP 减少了最先进的高效视频识别方法。此外,本文的方法为 HVU 基准上的高效视频理解设置了新的技术水平。
1 引言
为了解决视频行为识别能够应用在资源有限的硬件平台上,现阶段研究者主要集中在三个思路:
(1)设计高效和轻量级的模型架构,这些模型具有静态计算图。无论视频识别起来有多复杂或多容易,都一视同仁地对待所有视频,缺点:对于简单视频和复杂视频的行为识别所需要的计算量是不同的。
(2)选择显着帧的子集来高效处理视频。 当前帧选择的方法依赖于学习一个策略函数,通过策略函数确定选择哪些帧去做哪些任务。
缺点:使用策略梯度方法的情况下需要仔细选择奖励函数。 采样器网络可能会给模型带来额外的计算开销。
(3)使用提前退出的条件计算,具体地讲,通过在整个网络中插入一连串中间分类器来探索图像分类任务的早期退出,模型根据输入的难度调整计算量,以显着降低计算要求。
本文是第(3)种思路以实现高效视频行为检测。具体地, FrameExit是一个有条件的早期退出框架,具有学习的门控单元,当推理足够可靠时,它决定停止计算。FrameExit 有T个分类器以及T个关联的门,这些门在不同的时间步长连接以允许提前退出。 门以自我监督的方式学习,以控制模型精度和总计算成本之间的权衡。使用识别损失来生成动态伪标签来训练门。 此外,与简单、确定性的采样策略相结合,消除了对复杂采样策略函数的需求,同时实现了出色的识别性能。同时提出了一个累积特征池模块来生成视频表示,使模型能够进行更可靠的预测。
贡献:
a. 提出了一种方法,该方法采用简单的、确定性的帧采样策略,并结合累积特征池模块来获得准确的动作识别结果。
b. 提出了一个有条件的早期退出框架,用于有效的视频识别。 使用级联的门控模块来确定何时停止对视频的进一步处理。 门根据输入视频的难度调整计算量,从而显着降低计算成本。
c. 在三个大型数据集上展示了最先进的性能。 在所有情况下,我们都以更好或相同的识别精度度大大提高了推理效率。 特别是,在 HVU 据集上,本文提出的方法使得计算成本降低了 5 倍,同时提高了最先进方法的识别精度。
2 相关工作
2.1 高效视频识别
有两种方法用于高效视频识别,第一种方法是提出一种新的轻量化的视频架构,比如3D 卷积分解为单独的 2D 空间卷积和 1D 卷积。第二种方法是通过使用神经网络参数化的策略函数(CNN 或 RNN)选择显着帧/剪辑来节省计算。
2.2 通过提前退出进行条件计算
神经网络中的条件计算旨在动态分配模型的组件,比如,每个输入的基础上。 BlockDrop利用残差网络 (ResNets) 的鲁棒性来分层丢弃并激活或停用以输入为条件的完整残差块,以节省计算。
BlockDrop:更深的 CNN 效果更好,但参数量较大。BlockDrop 就是学习如何在不降低预测精度的基础下动态地选择减少 CNN 中的部分数量减少计算。基础是预训练的 ResNet-101,用强化学习方法在线决定去除剩余的块。
图2:FrameExit 概述。 给定一个视频,在每个时间步长 t,使用确定性策略函数 π 从视频中采样一帧。 每个帧都由特征提取网络 Φ 独立表示,并使用累积特征池模块(对于 t > 1)聚合先前时间步长的特征。 门控模块 (gt) 被训练以允许网络根据推断的输入视频的复杂性自动确定最早的退出点。 门控模块的架构如图右下角所示。 请注意,g1 仅接收 z1 作为输入。
3 FrameExit
目的:给一段视频和其对应的标签
{
v
i
,
y
i
}
i
=
1
D
\lbrace v_i,y_i \rbrace^D_{i=1}
{vi,yi}i=1D,使用最少的帧去对每个视频进行识别。
组成:
如图2主要由四个部分组成
(
i
i
i) 帧采样策略
π
\pi
π;
(
i
i
ii
ii) 一个特征提取网络
Φ
\Phi
Φ;
(
i
i
i
iii
iii)一个累计特征池化模块;
(
i
v
iv
iv)
T
T
T个分类器和相关联的门
g
t
g_{t}
gt,
T
T
T是分类器的数量。
从一段输入视频中采样
t
t
t时间的视频帧
x
1
:
t
x_{1:t}
x1:t,采样的策略为
π
\pi
π,其数学表达式为:
x
1
:
t
−
1
x_{1:t-1}
x1:t−1表示时间长度为
t
−
1
t-1
t−1采样视频帧,使用特征提取网络
Φ
\Phi
Φ 为每个帧
x
t
x_{t}
xt生成独立的表示,然后使用累积特征池模块聚合这些表示。
为什么门
g
t
g_{t}
gt将接收聚合
z
t
和
z
t
−
1
z_{t}和z_{t-1}
zt和zt−1作为输入:
是因为这允许门通过考虑时间特征之间的一致性来做出更明智的决定。其中
g
t
g_{t}
gt的数学表达式为:
g
t
:
(
z
t
−
1
,
z
t
)
⟶
{
0
,
1
}
g_{t}:(z_{t-1},z_{t})\longrightarrow\lbrace 0, 1 \rbrace
gt:(zt−1,zt)⟶{0,1},例如:当前帧的聚合特征表示
z
t
z_{t}
zt造成了一个不正确的退出预测,则使用聚合特征
z
t
−
1
z_{t-1}
zt−1可以减轻这个当前
z
t
z_{t}
zt的高置信退出预测。视频识别预测的数学表达式为:
y
=
f
t
(
x
t
)
,
w
h
e
r
e
t
=
a
r
g
m
i
n
{
t
∣
g
t
=
1
}
y=f_{t}(x_{t}),where \quad t=argmin\lbrace t|g_{t}=1 \rbrace
y=ft(xt),wheret=argmin{t∣gt=1}
其中
t
t
t是满足门条件的最早帧。 如果没有门预测停止信号,则最后一个分类器将对示例进行分类。
3.1 Frame Sample Policy
采样函数
π
\pi
π遵循从粗到细的时间维度采样原则。它从粗略的时间尺度开始采样,并逐渐采样更多帧以向时间结构添加更精细的细节。 具体来说,我们分别从视频的中间、开头和结尾采样第一帧,然后重复采样帧。
优点:按时间顺序采样相比,这种策略允许模型在每个时间戳访问更广泛的时间范围,这个方法向前和向后跳跃以寻找未来的信息并重新检查过去的信息。图3为采样函数
Φ
\Phi
Φ的算法;
3.2 特征提取网络
特征提取网络 Φ ( x i ; θ Φ ) \Phi(x_{i};\theta_{\Phi}) Φ(xi;θΦ)提取输入帧 x i x_{i} xi的特征,模型的参数为 θ Φ \theta_{\Phi} θΦ,本文中使用了ResNet-50, EfficientNet-b3和X3D-S。
3.3 累计特征池化
目的:创建视频帧
x
1
:
t
x_{1:t}
x1:t的特征表示;为了将计算成本限制在新采样的帧上,当前采样帧表示被增量更新。 其数学表达式为:
z
t
=
Ψ
(
z
t
−
1
,
Φ
(
x
i
;
θ
)
)
z_{t}=\Psi(z_{t-1},\Phi(x_{i};\theta))
zt=Ψ(zt−1,Φ(xi;θ))
Ψ
\Psi
Ψ是一个时间聚合函数,可以通过统计池化方法实现,例如平均/最大池化、LSTM或自注意力。
3.3 提前退出
有条件提前退出模型具有
T
T
T分类器以及它们相关的提前退出门,这些门在不同的时间步长连接以允许提前退出。每个分类器
f
t
f_{t}
ft接收剪辑表示
z
t
z_t
zt作为输入,并对视频的标签进行预测。在训练期间,使用以下损失函数优化特征提取器网络和分类器的参数。
L
c
l
s
=
1
T
∑
t
=
0
t
=
T
l
c
l
s
(
f
t
(
z
t
;
θ
f
)
,
y
)
L_{cls} = \frac{1}{T}\sum_{t=0}^{t=T}l_{cls}(f_{t}(z_{t};\theta_{f}),y)
Lcls=T1t=0∑t=Tlcls(ft(zt;θf),y)
在本文中,对单标签视频数据集使用标准交叉熵损失,对多标签视频数据集使用二进制交叉熵损失。
退出门
g
t
g_{t}
gt参数化是一个多层感知器,预测部分观察到的视频帧
x
1
:
t
x_{1:t}
x1:t是否足以准确地对整个视频进行为识别。 每个门
g
t
g_{t}
gt 接收聚合表示
z
t
z_{t}
zt 和
z
t
−
1
z_{t-1}
zt−1作为输入(如图 2-右下角)。每一个输入首先独立地传递给具有 64 个神经元的两层 MLP(两个流之间共享权重)。 然后将生成的特征串联并线性投影并馈送到 sigmoid 函数。(MLP的连接方式是全连接,由输入层,隐藏层和输出层组成)
3.4 门的训练和损失函数
由于在训练的时,为了保证最大的识别准确度,门会推迟启动,以便在最后一个分类器上进行分类。为了解决这个问题,最小化预测门控输出和伪标签之间的二元交叉熵,门控参数
θ
g
\theta_{g}
θg以一种自我监督的方式学习,其损失函数为:
L
g
a
t
e
=
1
T
∑
t
=
0
t
=
T
B
C
E
(
g
t
(
z
t
−
1
,
z
t
;
θ
g
)
,
y
t
g
)
L_{gate}= \frac{1}{T}\sum_{t=0}^{t=T}BCE(g_{t}(z_{t-1},z_{t};\theta_{g}),y_{t}^g)
Lgate=T1t=0∑t=TBCE(gt(zt−1,zt;θg),ytg)
y
=
{
1
l
c
l
s
(
f
t
(
z
t
)
,
y
)
≤
ϵ
0
x
≥
1
y = \begin{cases} 1 & l_{cls}(f_{t}(z_t),y)\leq \epsilon\\ 0 & x \geq 1 \\ \end{cases}
y={10lcls(ft(zt),y)≤ϵx≥1
ϵ
\epsilon
ϵ代表满足
f
t
f_{t}
ft退出最小的损失。
ϵ
\epsilon
ϵ用来控制模型准确性和计算成本之间的权衡。
β
\beta
β为超参数,定义如下:
ϵ
t
=
β
e
x
p
(
t
2
)
\epsilon_{t}=\beta exp(\frac{t}{2})
ϵt=βexp(2t)
模型总体的损失函数如下,分类损失和门损失是共享权重的;
L
=
E
v
,
y
∼
D
t
r
a
i
n
[
L
c
l
s
+
L
g
a
t
e
]
L=E_{v,y}\sim D_{train}[L_{cls}+L_{gate}]
L=Ev,y∼Dtrain[Lcls+Lgate]
4 实验
分析了
β
\beta
β的取值对与模型准确性和计算成本的影响,以及实验数据集,模型评估指标(mAP, GFLOPS),还有一些训练和测试的实施细节,以及在两个任务上的表现(行为识别和整体视频理解,Holistic understanding),并做了一些消融对比实验。
5 结论
本文提出了一种有效的视频识别的条件提前退出方法FrameExit。提出的方法使用门控模块,经过训练,允许网络根据输入视频的推断复杂性自动确定最早的退出点。为了使门做出可靠的决策,使用了一种有效的视频表示,通过累积特征池获得。证明了早期退出机制与一个简单的、确定性的抽样策略相结合,避免了对复杂抽样策略技术的需要。提出的方法与模型无关,可以用于各种网络架构。综合实验表明,本文的方法在平衡准确性和效率的基础上主要用于行动识别和整体视频理解任务。