一.论文摘要
步态是个体的行走方式,是最重要的生物特征识别手段之一。现有的步态识别方法大多以轮廓或关节体模型为步态特征。这些方法在处理诸如服装、携带和视角等混杂变量时会导致识别性能下降。为了解决这个问题,我们提出了一个新的自动编码器框架,明确地从RGB图像中分离出姿态和外观特征,并且基于LSTM的姿态特征随时间的融合产生了步态特征。此外,我们还收集了一个正面视场步态(Fvg)数据集,集中于从正面视角行走中的步态识别,这是一个具有挑战性的问题,因为它包含的步态线索比其他的视角少。FVG还包括其他重要的变化,如步行速度、携带和衣服。通过对casia-b、usf和fvg数据集的广泛实验,我们的方法比从定量的角度看表现出卓越的性能相对于目前最好的方法,计算效率有很大的提高。
二.核心方法
假设有三个视频,视频1和视频2中的目标对象是同一个人A,在视频1中A穿着体恤,视频2中A穿着长羽绒服;视频3的目标对象是B,穿着长羽绒服。视频1和视频2中的步态特征是相同的,视频2和视频3的步态特征不相同。这将导致一个问题,长羽绒服能够轻易地主导行人特征提取,从而导致视频2与视频3比视频1和视频2更相似。
步态识别的核心挑战和目标是提取步态特征,这些特征在目标对象之间是有区别的,但不受不同混杂因素(如角度,行走速度和外观)的影响。
我们实现这一目标的方法是通过特征分离将步态特征与给定的步行视频的外观信息分离开来。
2.1分离外观和姿势特征(姿势是静态的步态特征)
本文提出使用编码器-解码器网络来分离外观和姿势特征。将图像分解后再通过解码器进行重构
f
a
,
f
g
=
ε
(
I
)
f_a,f_g=\varepsilon(I)
fa,fg=ε(I)
其中
f
a
f_a
fa代表外观,
f
g
f_g
fg代表姿势特征,
I
I
I表示视频的一帧图像,
ε
\varepsilon
ε表示编码器。
I
~
=
D
(
f
a
,
f
g
)
\widetilde{I}=D(f_a,f_g)
I
=D(fa,fg)
其中
I
~
\widetilde{I}
I
为重构图像,
D
D
D为解码器。
2.1.1交叉重构损失
重构的 I ~ \widetilde{I} I 图像应该接近原始输入图像 I I I,但是对同一帧图像 f a f_a fa和 f g f_g fg进行重构不能确保编码器学习到准确的外观特征和姿势特征。因此本文采用使用不同帧图像的 f a t 1 f_{a}^{t_1} fat1和 f g t 2 f_{g}^{t_2} fgt2进行重构(仍然不能保证学习到准确的对应特征),旨在防止 f a f_a fa包含了姿势特征信息。
使用L2距离度量交叉重构损失,即:
L
x
r
e
c
o
n
=
∣
∣
D
(
f
a
t
1
,
f
g
t
2
)
−
I
t
2
∣
∣
2
2
L_{xrecon}=||D(f_{a}^{t_1},f_{g}^{t_2})-I_{t2}||_2^2
Lxrecon=∣∣D(fat1,fgt2)−It2∣∣22
如公式所示,如果
f
a
f_a
fa包含了
t
1
t_1
t1时的姿势信息,与
t
2
t_2
t2时的一帧图像做距离度量,损失值会较大
2.1.2步态相似度损失
交叉重构损失预防了外观特征 f a f_a fa被过度表示,包含了姿势特征。然而姿态信息 f g f_g fg可能包含外观信息。
为了使
f
g
f_g
fg尽可能的只包含姿势特征信息,本文使用了在两个不同条件
c
1
c_1
c1和
c
2
c_2
c2(
c
1
c_1
c1和
c
2
c_2
c2表示不同的外观信息,如衣服)下的具有相同目标人的视频,将两个视频中的步态信息进行距离度量。如下式所示:
L
g
a
i
t
−
s
i
m
=
∣
∣
1
n
1
∑
t
=
1
n
1
f
g
(
t
,
c
1
)
−
1
n
2
∑
t
=
1
n
2
f
g
t
,
c
2
∣
∣
2
2
L_{gait-sim}=||\frac{1}{n_1}\sum\limits_{t=1}^{n_1}f_g^{(t,c_1)}-\frac{1}{n_2}\sum\limits_{t=1}^{n_2}f_g^{t,c_2}||_2^2
Lgait−sim=∣∣n11t=1∑n1fg(t,c1)−n21t=1∑n2fgt,c2∣∣22
2.2通过聚合学习步态特征
通过前文的方法,仅仅将姿势特征和外观特征分离,姿势特征组合在一起才是运动的步态特征。因此,本节中,采用了LSTM结构来学习步态特征,LSTM连接一个分类器 C C C,对该视频目标人的身份进行预测。将从视频中提取的姿势特征送进该网络。
让
h
t
h^t
ht为LSTM在t时刻的输出:
h
t
=
L
S
T
M
(
f
g
1
,
f
g
2
,
.
.
.
,
f
g
t
)
h^t=LSTM(f_g^1,f_g^2,...,f_g^t)
ht=LSTM(fg1,fg2,...,fgt)
分类器
C
C
C采用交叉熵作为损失函数:
L
i
d
−
s
i
n
g
l
e
=
−
l
o
g
(
C
k
(
h
n
)
)
L_{id-single}=-log(C_k(h^n))
Lid−single=−log(Ck(hn))
其中,k表示身份标签。
2.2.1用平均特征识别
由于LSTM特性,最后一个输入
f
g
t
f_g^t
fgt会对输出
h
t
h^t
ht产生极大的影响,导致LSTM的输出变化随着时间t。因此采用了平均LSTM输出作为分类的步态特征。如下式:
f
g
a
i
t
t
=
1
t
∑
s
=
1
t
h
s
f_{gait}^t=\frac{1}{t}\sum\limits_{s=1}^{t}h^s
fgaitt=t1s=1∑ths
分类器的损失被重写为:
L
i
d
a
v
g
=
−
l
o
g
(
C
k
(
f
g
a
i
t
n
)
)
=
−
l
o
g
(
C
k
(
1
n
∑
s
=
1
n
h
s
)
)
\begin{aligned} L_{id_avg} &=-log(C_k(f_{gait}^n))\\ &=-log(C_k(\frac{1}{n}\sum\limits_{s=1}^{n}h^s)) \end{aligned}
Lidavg=−log(Ck(fgaitn))=−log(Ck(n1s=1∑nhs))
2.2.2增量身份损失
将t=1到t=n的每个时刻的交叉熵损失加权相加:
L
i
d
−
i
n
c
−
a
v
g
=
1
n
∑
t
=
1
n
−
w
t
l
o
g
(
C
k
(
1
t
∑
s
=
1
t
h
s
)
)
L_{id-inc-avg}=\frac{1}{n}\sum\limits_{t=1}{n}-w_tlog(C_k(\frac{1}{t}\sum\limits_{s=1}^{t}h^s))
Lid−inc−avg=n1t=1∑n−wtlog(Ck(t1s=1∑ths))
整个训练过程的损失函数为:
L
=
L
i
d
−
i
n
c
−
a
v
g
+
λ
r
L
x
r
e
c
o
n
+
λ
s
L
g
a
i
t
−
s
i
m
L=L_{id-inc-avg}+\lambda_rL_{xrecon}+\lambda_sL_{gait-sim}
L=Lid−inc−avg+λrLxrecon+λsLgait−sim