一、摘要
动作是时空模式,他能被表示为时空的不变特征的集合。动作检测是通过模式匹配去找到这个时空模式的再现。该论文解决了基于模式匹配的动作检测领域的两个主要问题:(1)在3D视频中有效地模式搜索(2)对动作内模式变化的容忍
我们的贡献主要在于:(1)对于多类动作分类,提出了一种可分辨模式匹配叫做基于贝叶斯的交互信息最大值。(2)对于高效动作分析提出了一种新的搜索算法来定位3D视频空间的最优子集。我们的方法是纯数据驱动,并且不依赖于物体检测、追踪或消除背景。它能很好地处理动作内部模式的变化,比如说缩放和速度的变化,并且对于动态的、杂乱的背景,甚至部分遮掩不敏感。
二、介绍
动作可被当作时空物体来处理,可以用3维柱体数据来表示。就像目标检测中滑动窗口的使用,视频中的动作检测能被表述为定位包含目标动作的3D子集,即使滑动窗口在物体检测已经去得了成功,但是在视频空间中定位期望的动作还是一个很有挑战的问题,主要有以下两个难点:
(1)在视频空间中搜索动作比在图片空间中搜索物体复杂度更高。如果事先不知道动作的位置、时距和空间尺度,视频动作的搜索空间是不可能穷举搜索的。比如说,一个一分钟的视频序列,大小为
160
∗
120
∗
1800
160*120*1800
160∗120∗1800,包括超过
1
0
14
10^{14}
1014个不同大小和不同位置的时空子集,这个数值是一张160120的图片所产生的bounding boxes的数量还要大
1
0
6
10^6
106倍。因此,尽管有一些在2D图片空间能高效搜索的方法,但很难扩展到3D视频中,因为它巨大的搜索空间。为了缩小这样庞大的搜索空间,一些方法试图通过对搜索空间的采样来避免穷举搜索,比如说只考虑固定数量的时间和空间规模。然而,这个方法存在探测遗失的风险。并且,下采样后,解决方案的空间非常地大。
(2)人类动作中包含了大量的内模式的变换。同样的动作在它们的视觉表现上可能完全不同,因为动作进行的速度、衣服、缩放、视角等的变换(没有提到部分遮蔽)。当使用一个单一死板的动作模板来匹配模式,那么这个模板将不能检测到不同的动作。一个潜在的解决方法是使用多个模板来覆盖更多的变化,但是所需要的模板数量也会急剧地增加,导致巨大的计算损失。
我们提出了一个有效的动作探测方法来解决上述提到的两个问题。
如图1,一个视频序列被表示成了一个时空不变点集合,每个时空不变点根据关于动作类的交互信息计算一个正的或者负的值来给动作分类投票。动作探测被描述为搜索具有最大总投票数的3D子集,这个3D子集有关于动作类的最大交互信息。为了处理3D视频巨大搜索空间的问题,我们提出的方法是对时间和空间解耦,并对于它们使用不同的搜索策略从而加速搜索。除此之外,为了类比于基于模板的模式匹配,我们的可分辨匹配可以看作是使用了两个模板类,一个来自整个负训练数据,另一个是来自正训练数据,基于此,可分辨识别可用于更精确的模式匹配。
该方法的优势有三点:
(1)提出的可分辨模式匹配方法使用所有的训练数据而非单一模板,能很好地处理动作的变化。通过合并负训练信息,我们的模式匹配对于不同的动作类有更好的区分能力。
(2)不像传统的动作检测需要追踪和检测,我们的方法是纯数据驱动方法,所以并不依赖于追踪和检测。同时,因为我们的方法不依赖于背景的摘取,它能容忍背景被遮蔽和移动。
(3)提出的3D视频搜索方法计算高效,并且适合即时系统的实现。
三、动作模型和匹配
1、“特征袋”(Bag of Features)表示动作
我们把动作看作是一个时空物体,并用一系列的时空兴趣点(spatial-temporal interest points,STIPs)来表示它。与2D图像领域的SIFT特征相比,STIP是将不变特征扩展到3D视频数据。在检测STIPs后,两种类型的特征可以用来描述它们:梯度直方图(HOG)和流量直方图(HOF),HOG是外观特征,HOF是动作特征。因为STIPs对于3D视频具有局部不变性,这些特征对于由速度、缩放、亮度环境、衣服等变化所引起的动作变化具有相对的健壮性。符号表述如下:
视频序列:
V
=
I
t
V={I_t}
V=It,每一帧
I
t
I_t
It包括一系列的STIPs,
I
t
=
d
i
I_t={d_i}
It=di,
我们不选择key-frames,而是通过
Q
=
d
i
Q={d_i}
Q=di来收集所有的STIPs来表示一个视频片段。
2、可分辨匹配
d:描述STIP的特征向量,C={1,2,…,C}:类标签集
以朴素贝叶斯假设为基础,并假设STIPs相互独立,我们可以来评估一个视频片段Q和一个特定类c之间的互信息:
M
I
(
C
=
c
,
Q
)
=
log
P
(
Q
∣
C
=
c
)
P
(
Q
)
=
log
∏
d
q
∈
Q
P
(
d
q
∣
C
=
c
)
∏
d
q
∈
Q
P
(
d
q
)
MI(C=c,Q)=\log{\frac{P(Q|C=c)}{P(Q)}}=\log{\frac{\prod_{d_q\in Q}P(d_q|C=c)} {\prod_{d_q\in Q}P(d_q)}}
MI(C=c,Q)=logP(Q)P(Q∣C=c)=log∏dq∈QP(dq)∏dq∈QP(dq∣C=c)
=
∑
d
q
∈
Q
log
P
(
d
q
∣
C
=
c
)
P
(
d
q
)
=
∑
d
q
∈
Q
S
c
(
d
q
)
=\sum _{d_q\in Q}\log{\frac{P(d_q|C=c)}{P(d_q)}}=\sum _{d_q\in Q}S^c(d_q)
=dq∈Q∑logP(dq)P(dq∣C=c)=dq∈Q∑Sc(dq)
S
c
(
d
q
)
=
M
I
(
C
=
c
,
d
q
)
S^c(d_q)=MI(C=c,d_q)
Sc(dq)=MI(C=c,dq)是
d
q
d_q
dq关于类c的互信息分数,最终决策Q是根据所有关于类c原始特征
d
q
∈
Q
d_q\in Q
dq∈Q的累计互信息值获得,为了评估每一个
d
q
∈
Q
d_q\in Q
dq∈Q的
S
c
(
d
q
)
S^c(d_q)
Sc(dq)的贡献,我们通过可分辨学习计算互信息(公式2):
S
c
(
d
q
)
=
M
I
(
C
=
c
,
d
q
)
=
l
o
g
P
(
d
q
∣
C
=
c
)
P
(
d
q
)
S^c(d_q)=MI(C=c,d_q)=log{\frac{P(d_q|C=c)}{P(d_q)}}
Sc(dq)=MI(C=c,dq)=logP(dq)P(dq∣C=c)
将
P
(
d
q
)
P(d_q)
P(dq)按全概率公式展开
=
log
P
(
d
q
∣
C
=
c
)
P
(
d
q
∣
C
=
c
)
P
(
C
=
c
)
+
P
(
d
q
∣
C
≠
c
)
P
(
C
≠
c
)
=\log{\frac{P(d_q|C=c)}{P(d_q|C=c)P(C=c)+P(d_q|C\neq c)P(C\neq c)}}
=logP(dq∣C=c)P(C=c)+P(dq∣C̸=c)P(C̸=c)P(dq∣C=c)
分子、分母同除
P
(
d
q
∣
C
=
c
)
P(d_q|C=c)
P(dq∣C=c)
=
log
1
P
(
C
=
c
)
+
P
(
d
q
∣
C
≠
c
)
P
(
d
q
∣
C
=
c
)
P
(
C
≠
c
)
=\log{\frac{1}{P(C=c)+\frac{P(d_q|C\neq c)}{P(d_q|C=c)}P(C\neq c)}}
=logP(C=c)+P(dq∣C=c)P(dq∣C̸=c)P(C̸=c)1
假设一个恒等的先验,比如:
P
(
C
=
c
)
=
1
c
P(C=c)=\frac{1}{c}
P(C=c)=c1:
S
c
(
d
q
)
=
log
C
1
+
P
(
d
q
∣
C
≠
c
)
P
(
d
q
∣
C
=
c
)
(
C
−
1
)
S^c(d_q)=\log{\frac{C}{1+\frac{P(d_q|C\neq c)}{P(d_q|C=c)}(C-1)}}
Sc(dq)=log1+P(dq∣C=c)P(dq∣C̸=c)(C−1)C
从上式可以看到,似然率测试
P
(
d
q
∣
C
≠
c
)
P
(
d
q
∣
C
=
c
)
\frac{P(d_q|C\neq c)}{P(d_q|C=c)}
P(dq∣C=c)P(dq∣C̸=c)决定
d
q
d_q
dq对于类c是投正还是投负。当
M
I
(
C
=
c
,
d
q
)
>
0
MI(C=c,d_q)>0
MI(C=c,dq)>0,即
P
(
d
q
∣
C
≠
c
)
P
(
d
q
∣
C
=
c
)
>
1
\frac{P(d_q|C\neq c)}{P(d_q|C=c)}>1
P(dq∣C=c)P(dq∣C̸=c)>1,
d
q
d_q
dq为类c投一个正分
S
c
(
d
q
)
S^c(d_q)
Sc(dq),否则,如果
M
I
(
C
=
c
,
d
q
)
≤
0
MI(C=c,d_q)\leq 0
MI(C=c,dq)≤0,即
P
(
d
q
∣
C
≠
c
)
P
(
d
q
∣
C
=
c
)
≤
1
\frac{P(d_q|C\neq c)}{P(d_q|C=c)}\leq1
P(dq∣C=c)P(dq∣C̸=c)≤1,
d
q
d_q
dq就对类c投一个负分。当收到所有的
d
q
∈
Q
d_q\in Q
dq∈Q的投票后,我们就可以根据对于C的互信息对Q做出最后的分类。
对于C类的动作类别,我们构造了一个C的一对多的分类器,测试动作Q被分到有最大检测分数的类:
c
∗
=
arg
max
c
∈
{
1
,
2
,
.
.
.
,
C
}
M
I
(
c
,
Q
)
=
arg
max
c
∈
{
1
,
2
,
.
.
.
,
C
}
∑
d
∈
Q
S
c
(
d
)
c^*=\arg \max_{c \in \{1,2,...,C\}}MI(c,Q)=\arg \max_{c \in \{1,2,...,C\}}\sum_{d\in Q}S^c(d)
c∗=argc∈{1,2,...,C}maxMI(c,Q)=argc∈{1,2,...,C}maxd∈Q∑Sc(d)
我们把这个叫做基于朴素贝叶斯的互信息最大值
3、计算似然率
T
c
+
=
{
V
i
}
T^{c+}=\{V_i\}
Tc+={Vi}表示类c正训练数据集,
V
i
∈
T
c
+
V_i\in T^{c+}
Vi∈Tc+是类c的一个视频。随着每一个V被一系列STIPs所符号化后,我们用所有的正STIPs集来表示正训练数据:
T
c
+
=
{
d
j
}
T^{c+}=\{d_j\}
Tc+={dj},同样地,用
T
c
−
T^{c-}
Tc−来表示负数据,它是所有的负STIPs集合。
为了对每个
d
∈
Q
d\in Q
d∈Q来计算似然率,我们在训练数据
T
c
+
T^{c+}
Tc+和
T
c
−
T^{c-}
Tc−的基础上应用了核密度估计。使用高斯核
K
(
.
)
K(.)
K(.)和最近邻估计,我们得到似然率:
P
(
d
∣
C
≠
c
)
P
(
d
∣
C
=
c
)
=
1
∣
T
c
−
∣
∑
d
j
∈
T
c
−
K
(
d
−
d
j
)
1
∣
T
c
+
∣
∑
d
j
∈
T
c
+
K
(
d
−
d
j
)
\frac{P(d|C\neq c)}{P(d|C=c)}=\frac{\frac{1}{|T^{c-}|}\sum_{d_j\in T^{c-}}K(d-d_j)} {\frac{1}{|T^{c+}|}\sum_{d_j\in T^{c+}}K(d-d_j)}
P(d∣C=c)P(d∣C̸=c)=∣Tc+∣1∑dj∈Tc+K(d−dj)∣Tc−∣1∑dj∈Tc−K(d−dj)
≈
λ
c
exp
−
1
2
σ
2
(
∣
∣
d
−
d
N
N
c
−
∣
∣
2
−
∣
∣
d
−
d
N
N
c
+
∣
∣
2
)
\approx \lambda^c\exp^{-\frac{1}{2\sigma^2}(||d-d^{c-}_{NN}||^2-||d-d^{c+}_{NN}||^2)}
≈λcexp−2σ21(∣∣d−dNNc−∣∣2−∣∣d−dNNc+∣∣2)
d
N
N
c
−
d^{c-}_{NN}
dNNc−和
d
N
N
c
+
d^{c+}_{NN}
dNNc+是d在类c-和类c+中的最近邻值。
自适应核带宽:
对于一个高斯核,最重要的因素是在密度估计中使用一个自私应的核带宽
σ
\sigma
σ,一个过大的带宽可能过平滑密度函数,然而一个太小的带宽就相当于在最终结果中只使用了最近邻方法。我们采用自适应核策略来代替固定的核,它基于一个STIP周围的纯度来调整核的带宽。对于一个
d
∈
Q
d\in Q
d∈Q我们用
N
N
ϵ
c
+
(
d
)
=
{
d
j
∈
T
c
+
:
∣
∣
d
j
−
d
∣
∣
≤
ϵ
}
NN^{c+}_{\epsilon}(d)=\{d_j\in T^{c+}:||d_j-d||\leq \epsilon\}
NNϵc+(d)={dj∈Tc+:∣∣dj−d∣∣≤ϵ}来表示类c的
ϵ
\epsilon
ϵ最近邻。
相应地,我们用
N
N
ϵ
(
d
)
=
{
d
j
∈
T
c
+
∪
T
c
−
:
∣
∣
d
j
−
d
∣
∣
≤
ϵ
}
NN_\epsilon (d)=\{d_j\in T^{c+}\cup T^{c-}:||d_j-d||\leq \epsilon\}
NNϵ(d)={dj∈Tc+∪Tc−:∣∣dj−d∣∣≤ϵ}来表示d的整个
ϵ
\epsilon
ϵ最近邻。
现在我们来对d定义一个
ϵ
\epsilon
ϵ纯度:
ω
ϵ
(
d
)
=
∣
N
N
ϵ
c
+
(
d
)
∣
N
N
ϵ
(
d
)
\omega_\epsilon(d)=\frac{|NN^{c+}_{\epsilon}(d)|}{NN_\epsilon(d)}
ωϵ(d)=NNϵ(d)∣NNϵc+(d)∣,因为
N
N
ϵ
c
+
(
d
)
⊆
N
N
ϵ
(
d
)
NN^{c+}_\epsilon(d)\subseteq NN_\epsilon(d)
NNϵc+(d)⊆NNϵ(d),所以有
ω
(
d
)
∈
[
0
,
1
]
\omega(d)\in [0,1]
ω(d)∈[0,1]
为了自适应地调整核的大小,我们选择
2
σ
2
=
1
ω
ϵ
(
d
)
2\sigma^2=\frac{1}{\omega_\epsilon(d)}
2σ2=ωϵ(d)1
γ
(
d
)
=
∣
∣
d
−
d
N
N
c
−
∣
∣
2
−
∣
∣
d
−
d
N
N
c
+
∣
∣
2
\gamma(d)=||d-d^{c-}_{NN}||^2-||d-d^{c+}_{NN}||^2
γ(d)=∣∣d−dNNc−∣∣2−∣∣d−dNNc+∣∣2
所以公式2改为:
S
c
(
d
)
=
log
C
1
+
λ
c
exp
−
γ
(
d
)
ω
ϵ
(
d
)
(
C
−
1
)
S^c(d)=\log{\frac {C}{1+\lambda^c \exp^{-\gamma(d)\omega_\epsilon(d)}(C-1)}}
Sc(d)=log1+λcexp−γ(d)ωϵ(d)(C−1)C
实质上,
ω
ϵ
(
d
)
\omega_\epsilon(d)
ωϵ(d)描述了类c在d点的
ϵ
\epsilon
ϵ最近邻时的纯度。
ω
ϵ
(
d
)
\omega_\epsilon(d)
ωϵ(d)越大,给出的预测越可靠,因此投票分数
S
c
(
d
)
S^c(d)
Sc(d)越强。在特殊例子中,当d是离群点时,即
∣
N
N
ϵ
c
+
(
d
)
∣
=
∣
N
N
ϵ
(
d
)
∣
=
0
|NN^{c+}_{\epsilon}(d)|=|NN_\epsilon(d)|=0
∣NNϵc+(d)∣=∣NNϵ(d)∣=0,我们把它当作噪音点,并设
ω
ϵ
(
d
)
=
0
\omega_\epsilon(d)=0
ωϵ(d)=0,这将对最终的投票结果不做任何贡献,因为
S
c
(
d
)
=
0
S^c(d)=0
Sc(d)=0
有效地最近邻搜索
对于每一个
d
∈
Q
d\in Q
d∈Q,我们需要找一个最近邻值来获得投票分数
S
c
(
d
)
S^c(d)
Sc(d),因此一些数量的最近邻值查询需要根据
∣
Q
∣
|Q|
∣Q∣的大小来执行。为了提高在高维特征空间中搜索最近邻值的效率,我们应用局部敏感哈希来估计
ϵ
\epsilon
ϵ-
N
N
NN
NN搜索。
4、视频中的动作检测
4.1、子集互信息最大化
动作检测的任务是识别视频中动作发生的地址(图像中的空间位置)和时间(时间位置)。基于NBMIM准则,因为子集交互信息最大化问题,我们提出了动作检测的新表述
。给定一个视频序列
V
V
V,目标是找到一个时空子集(3D子集)
V
∗
⊂
V
V^*\subset V
V∗⊂V,以便它在类c上有最大交互信息:
V
∗
=
arg
max
V
⊂
ν
M
I
(
V
,
C
=
c
)
=
arg
max
V
⊂
ν
∑
d
∈
V
S
c
(
d
)
=
arg
max
V
∈
Λ
f
(
V
)
V^*=\arg \max_{V\subset \nu}MI(V,C=c)=\arg \max_{V\subset \nu}\sum_{d\in V}S^c(d)=\arg\max_{V\in \Lambda }f(V)
V∗=argV⊂νmaxMI(V,C=c)=argV⊂νmaxd∈V∑Sc(d)=argV∈Λmaxf(V)
f
(
V
)
=
∑
d
∈
V
S
c
(
d
)
f(V)=\sum_{d\in V}S^c(d)
f(V)=∑d∈VSc(d)是一个目标函数,
Λ
\Lambda
Λ代表
ν
\nu
ν中所有合理3D子集的候选集。假设目标视频
ν
\nu
ν的大小为
m
×
n
×
t
m\times n\times t
m×n×t,最有解决方案
V
∗
=
t
∗
×
b
∗
×
l
∗
×
r
∗
×
s
∗
×
e
∗
V^*=t^*\times b^*\times l^*\times r^*\times s^*\times e^*
V∗=t∗×b∗×l∗×r∗×s∗×e∗需要确定6个参数,
t
∗
,
b
∗
∈
[
0
,
m
]
t^*,b^*\in [0,m]
t∗,b∗∈[0,m]代表顶和底的位置,
l
∗
,
r
∗
∈
[
0
,
n
]
l^*,r^*\in [0,n]
l∗,r∗∈[0,n]代表左和右的位置,
s
∗
,
e
∗
∈
[
0
,
t
]
s^*,e^*\in [0,t]
s∗,e∗∈[0,t]代表开始和结束的位置。做为物体识别中bounding-box的对应物,解决方案V是一个3D边界物体,它在目标检测中有最高的分数。
Discriminative Subvolume Search for Efficient Action Detection
最新推荐文章于 2019-04-25 23:23:28 发布