目录
1. 论文&代码源
《GaitMPL: Gait Recognition with Memory-Augmented Progressive Learning》
论文地址:https://ieeexplore.ieee.org/document/9769988
代码下载地址: 作者未提供源代码?
2. 论文亮点
2.1 问题提出
基于外观的步态识别的目标是学习有效的步态特征,从而区分不同人的剪影图像,因此需要对同一人的识别具有紧凑性,不同人的识别具有分辨性。但现阶段的步态识别有两方面困难样本(hard sample)的挑战:
类内多样性(类内困难正例): 同一个人具有不同的步态图像,如下图第1,2行,ID1这个人正侧面的步态图像是不同的,这容易使模型将这两组步态图像对应到两个不同的人身上,造成识别错误。
类间相似性(类间困难负例): 不同的人具有相似的步态图像,如下图第2,3行,ID1和ID2两个人的正面步态图像是十分相似的,这容易使模型将这两组步态图像对应到同一个人身上,同样也会造成识别错误。
为了减少前两种情况造成的识别错误,作者首先研究了困难样本在模型学习过程中的影响。首先作者假定困难样本之所以“困难”,是因为难/易样本在寻找特征时的“颗粒度”不同,从而造成学习目标的不一致,如下图所示:对于简单负样本(Easy Negatives),网络能够很容易地仅在某一帧(静态)中将其进行区分;但对于困难负样本(Hard Negatives),网络必须在许多帧(动态)中捕捉微妙的变化来实现区分
2.2 模型简述
基于上述提出的问题,作者提出了由两个主要模块构成的GaitMPL模型,分别是动态重加权渐进式学习模块 (Dynamic Reweighting Progressive Learning, DRPL) 和全局结构对齐记忆库模块 (Global Structure-Aligned Memory bank, GSAM) 。
DRPL 负责将难/易样本分开处理,并按照从易到难的渐进式学习方法运行,从而实现训练过程中更为一致的学习目标。
GSAM 引入记忆力机制来增强DRPL,从而更好地处理困难样本。此外,与传统的记忆更新机制(只更新部分元素)不同,作者提出了一种结构对齐的更新策略,从而保证训练过程中GSAM中特征的可靠性。
3. 框架解读
3.1 整体框架
首先,利用CNN对步态剪影序列进行卷积从而提取特征;这些特征一方面被计算出距离矩阵
D
D
D,送入DRPL模块,在模块中生成基于困难样本的注意力权重矩阵
A
A
A,从而将距离矩阵
D
D
D转换为加权后的矩阵
D
′
D'
D′;另一方面送入GSAM模块,通过计算样本特征和记忆库的对数来监督训练过程,增强渐进式学习能力。
给定输入步态剪影序列
X
∈
R
∣
B
∣
×
N
T
×
H
×
W
X \in R^{| \mathcal B | \times N_T \times H \times W}
X∈R∣B∣×NT×H×W及其对应标签
Y
∈
R
∣
B
∣
Y \in R^{| \mathcal B|}
Y∈R∣B∣。识别的目标是找到一个有效的步态形状表示
f
f
f(这个翻译有点出入)。
其中
∣
B
∣
| \mathcal B|
∣B∣是batch size;
N
T
N_T
NT是每个序列的帧数;
H
H
H和
W
W
W分别是步态剪影的高度和宽度。特征提取部分就是用一个特征提取器
F
F
F来获得一个维度为
N
d
i
m
N_{dim}
Ndim的步态特征
f
∈
R
∣
B
∣
×
N
d
i
m
f \in R^{| \mathcal B| \times N_{dim}}
f∈R∣B∣×Ndim,公式如下:
f
i
=
F
(
x
i
)
,
x
i
∈
X
(
1
)
f_i = F(x_i), x_i \in X\qquad (1)
fi=F(xi),xi∈X(1)
3.2 DRPL
3.2.1 渐进式学习
现有的两种主要的渐进式学习方法是 困难样本挖掘法(Hard Example Mining, HEM) 和 课程学习法(Curriculum Learning, CL) ,前者是“先难后易”,后者是“先易后难”。困难样本挖掘的核心思想是假设样本越困难其中包含的信息量越有价值;课程学习更适用于具有广泛困难样本的识别任务,与其他视觉任务相比,步态剪影图像由于缺乏颜色和纹理等特征,使得区分更为困难,也就是步态识别中存在很大比例的困难样本,所以文章采用的是课程学习方法。
但是标准的课程学习法的学习过程明确控制了采样顺序,这对模型增加了局限性,为了提高训练效率和简化训练过程,作者提出了一种batch级的渐进式学习策略,该策略还可以灵活地集成到现有的大多数步态识别方法中。
3.2.2 基于困难度的注意力模型
Hardness-Based Attention
核心思想是根据本样本数据与来自同一batch的其他样本数据的距离还衡量困难程度。具体而言,对于正样本,anchor的距离越远,则表示越困难;对于负样本,anchor的距离越近,则表示越困难。
为了将样本困难度与学习过程联系起来,依据每个样本在batch层的相对困难度计算出基于困难度的注意力权重,具体计算式如下:
W
x
i
,
x
,
t
=
{
σ
(
e
x
p
(
d
(
F
(
x
i
)
,
F
(
x
)
)
δ
t
)
)
,
x
∈
S
x
i
+
σ
(
−
e
x
p
(
d
(
F
(
x
i
)
,
F
(
x
)
)
δ
t
)
)
,
o
t
h
e
r
s
(
2
)
W_{x_i, x, t}= \begin{cases} \sigma (exp(\dfrac{d(F(x_i),F(x))} {\delta _t} )) ,& {x \in S_{x_i}^+}\\ \sigma (-exp(\dfrac{d(F(x_i),F(x))} {\delta _t} )), & {others} \end{cases}\qquad (2)
Wxi,x,t=⎩⎪⎨⎪⎧σ(exp(δtd(F(xi),F(x)))),σ(−exp(δtd(F(xi),F(x)))),x∈Sxi+others(2)
其中,
σ
(
⋅
)
\sigma ( \cdot )
σ(⋅)表示的是softmax平滑程度,反映了注意力系数的分布情况,从而让模型更加关注困难样本;
d
(
⋅
,
⋅
)
d( \cdot , \cdot)
d(⋅,⋅)表示的是欧氏距离;
δ
t
\delta _t
δt表示的是控制注意力的权重系数。
3.2.3 渐进训练
通过公式
(
2
)
(2)
(2)中提出的基于困难度的注意力参数计算,我们能够灵活地安排训练的顺序,为了在训练过程中完成“先易后难”的渐进式学习,作者设计了一种可以控制样本注意力权重分布的方法,目的是随着训练的进行,对困难样本给予越来越多的关注,具体表述就是对于公式
(
2
)
(2)
(2)中参数
δ
t
\delta _t
δt的解释:
δ
t
=
δ
m
i
n
+
1
2
(
1
+
c
o
s
(
t
2
T
π
)
)
⋅
ϵ
(
3
)
\delta _t = \delta _{min} + \frac 1 2(1+cos(\frac t {2T} \pi)) \cdot \epsilon \qquad (3)
δt=δmin+21(1+cos(2Ttπ))⋅ϵ(3)
其中,
ϵ
\epsilon
ϵ是一个控制渐进因子变化速度的超参数;
δ
m
i
n
\delta _{min}
δmin是确保数据稳定性的另一个超参数;
t
t
t是当前迭代次数;
T
T
T是总迭代次数。
超参数是在开始学习过程之前设置值的参数。
3.2.4 目标损失函数结构
作者首先将表示特征距离的欧式距离公式
d
(
⋅
,
⋅
)
d(\cdot, \cdot)
d(⋅,⋅)更改为:
d
t
′
(
F
(
x
i
)
,
F
(
x
)
)
=
W
x
i
,
x
,
t
⋅
d
(
F
(
x
i
)
,
F
(
x
)
)
(
4
)
d'_t (F(x_i), F(x)) = W_{x_i,x,t} \cdot d(F(x_i),F(x)) \qquad (4)
dt′(F(xi),F(x))=Wxi,x,t⋅d(F(xi),F(x))(4)
随后,作者设计了一个灵活的目标损失函数,用加权特征距离代替传统的三元组损失距离,形成一个BH-like(batch-hard-like)公式:
L
D
R
P
L
−
B
H
=
∑
i
=
1
P
∑
a
=
1
K
[
m
+
1
K
∑
p
=
1
K
d
t
′
(
F
(
x
i
,
a
)
,
F
(
x
i
,
p
)
)
⏞
p
o
s
i
t
i
v
e
−
1
K
(
P
−
1
)
∑
j
=
1...
P
,
j
≠
i
,
n
=
1...
K
d
t
′
(
F
(
x
i
,
a
)
,
F
(
x
j
,
n
)
)
⏟
n
e
g
a
t
i
v
e
]
+
(
5
)
\mathcal L_{DRPL-BH} = \sum _{i=1}^P \sum _{a=1}^K[m+ \overbrace {\frac 1K \sum _{p=1}^K d'_t(F(x_{i,a}),F(x_{i,p}))}^{positive}-\\ \underbrace {\frac 1{K(P-1)} \sum _{j=1...P,j \neq i,\\n=1...K} d'_t(F(x_{i,a}),F(x_{j,n}))}_{negative}]_+ \qquad (5)
LDRPL−BH=i=1∑Pa=1∑K[m+K1p=1∑Kdt′(F(xi,a),F(xi,p))
positive−negative
K(P−1)1j=1...P,j=i,n=1...K∑dt′(F(xi,a),F(xj,n))]+(5)
其中,
P
P
P和
K
K
K分别表示一个batch中的ID和每个ID的序列数;
x
i
,
a
x_{i,a}
xi,a表示“
i
i
i”这个ID的anchor;
x
i
,
p
x_{i,p}
xi,p表示“
i
i
i”这个ID的正样本;
x
j
,
n
x_{j,n}
xj,n表示“
i
i
i”这个ID的负样本“
j
j
j”。
为了确保优化的平稳性,作者同时还使用了batch-all(BA)三元组损失函数:
L
T
r
i
p
l
e
t
−
B
A
=
∑
i
=
1
P
∑
a
=
1
K
∑
p
=
1
,
p
≠
a
P
∑
j
=
1
,
j
≠
i
P
∑
n
=
1
K
[
m
+
(
F
(
x
i
,
a
)
,
F
(
x
i
,
p
)
)
−
d
(
F
(
x
i
,
a
)
,
F
(
x
j
,
n
)
)
]
+
(
6
)
\mathcal L _{Triplet-BA} = \sum _{i=1}^P \sum _{a=1}^K \sum _{p=1,p\neq a}^P \sum _{j=1,j \neq i}^P \sum _{n=1}^K [m+ (F(x_{i,a}),F(x_{i,p}))-\\ d(F(x_{i,a}),F(x_{j,n}))]_+ \qquad (6)
LTriplet−BA=i=1∑Pa=1∑Kp=1,p=a∑Pj=1,j=i∑Pn=1∑K[m+(F(xi,a),F(xi,p))−d(F(xi,a),F(xj,n))]+(6)
L
D
R
P
L
=
L
T
r
i
p
l
e
t
−
B
A
+
s
t
L
D
R
P
L
−
B
H
(
7
)
\mathcal L_{DRPL} = \mathcal L_{Triplet-BA} + s_t \mathcal L_{DRPL-BH} \qquad (7)
LDRPL=LTriplet−BA+stLDRPL−BH(7)
其中,
s
t
s_t
st是迭代
t
t
t时的平滑系数,可以提高稳定性。
3.3 GSAM
此模块的作用是利用全局优先信息,通过记忆力机制监督训练过程,从而优化DRPL。作为一个辅助分类器,GSAM具有两个功能,一个是使类间特征更具判别性,另一个是使类内特征更加紧凑。与传统的记忆力更新策略不同,GSAM采用了结构对齐的更新策略,它可以保留特征的全局结构,以保证特征的可靠性。接下来将从存储哪些元素、元素是如何更新的以及此模块如何指导整个网络的更新,三个方面进行介绍。
3.3.1 存储哪些元素
记忆库中的元素是十分重要的,因为全局先验信息要对行人标签和步态信息具有辨识度,因此需要涵盖所有协变量信息。此外,由于资源的限制,维护所有协变量下的步态特征是不可行的。
先验信息是指获得样本的试验之前,获得的经验和历史资料。
基于上述原因,作者提出GSAM中存储每个人的核心特征,来辅助区分,而且为了更加高效,存储的元素应尽可能精炼,公式如下:
M
[
i
]
=
∑
s
∈
S
i
F
(
s
)
N
s
(
8
)
\mathcal M [i] = \frac{\sum _{s \in S_i} F(s)}{N_s} \qquad (8)
M[i]=Ns∑s∈SiF(s)(8)
使用当前当前行人
i
i
i的序列提取后的特征总和除以行人个数,作为当前行人
i
i
i的ID级特征。
其中,
M
∈
R
N
i
d
×
N
d
i
m
\mathcal M \in R^{N_{id} \times N_{dim} }
M∈RNid×Ndim是计算所有相应序列的中心特征。
N
i
d
N_{id}
Nid是人的ID;
N
d
i
m
N_{dim}
Ndim是特征维度;
N
s
N_s
Ns是每个ID的序列个数。
此方法有两个优点:
1.可以涵盖所有协变量信息,对跨视角或跨行走条件的情况下具有稳健性。
2.通过将大量序列融合到一个表示方法中,避免了巨大的参数运算量。
3.3.2 元素如何更新
元素的更新是GSAM模块的核心。
如上图所示,如果仅使用PU(Present in the current batch Updated)方法,可能会导致特征空间中batch内的ID和batch外的ID出现特征偏移,因此作者同时还使用了AU(Absent in the current batch Updated)方法,可以在训练过程中保持所有ID的相对位置,使记忆元素有效地代表了全局先验信息,更新策略公式如下:
M
[
i
]
t
=
{
(
1
−
α
)
∣
B
∣
∑
b
∈
B
,
y
b
=
i
F
(
b
)
+
α
M
[
i
]
t
−
1
,
i
∈
y
B
(
1
−
β
)
(
1
∣
B
∣
∑
b
∈
B
F
(
b
)
−
M
[
i
]
t
−
1
)
+
β
M
[
i
]
t
−
1
,
o
t
h
e
r
s
(
9
)
\mathcal M[i]^t= \begin{cases} \frac {(1-\alpha)}{|\mathcal B|} \sum _{b \in \mathcal B , y_b = i} F(b)+\alpha \mathcal M[i]^{t-1} ,& {i \in y_{\mathcal B}}\\ (1-\beta)(\frac 1{|\mathcal B|} \sum _{b \in \mathcal B} F(b) - \mathcal M[i]^{t-1})+\beta \mathcal M[i]^{t-1}, & {others} \end{cases}\qquad (9)
M[i]t={∣B∣(1−α)∑b∈B,yb=iF(b)+αM[i]t−1,(1−β)(∣B∣1∑b∈BF(b)−M[i]t−1)+βM[i]t−1,i∈yBothers(9)
这个公式展示的是ID为
i
i
i的元素的更新过程,其中,
y
B
y_{\mathcal B}
yB是由
t
t
t次迭代后当前batch
B
\mathcal B
B的IDs组成;
∣
B
∣
|\mathcal B|
∣B∣是batch size。
对于属于当前batch中的IDs,使用PU方法,参数为
α
\alpha
α;对于不属于当前batch中的IDs,元素向当前batch中IDs的平均方向更新,参数为
β
\beta
β。
3.3.3 如何更新网络
GSAM可以作为全局先验信息,通过经典交叉熵损失来监督训练过程,为了进一步确保空间特征的紧凑性,GSAM还可以约束类内方差,其损失函数如下:
L
G
S
A
M
=
L
C
E
(
F
(
X
)
M
T
τ
,
Y
)
+
(
F
(
X
)
−
F
(
X
)
‾
)
2
(
10
)
\mathcal L_{GSAM} = \mathcal L_{CE}(\frac{F(X) \mathcal M^T}{\tau},Y)+(F(X)-\overline {F(X)})^2 \qquad (10)
LGSAM=LCE(τF(X)MT,Y)+(F(X)−F(X))2(10)
其中,
F
(
X
)
F(X)
F(X)与
M
\mathcal M
M之间是矩阵乘法;
τ
\tau
τ用于平衡特征的贡献程度;
F
(
X
)
‾
\overline {F(X)}
F(X)是batch级的平均特征。值得一提的是,在训练阶段,GSAM引入的参数和计算成本会随着ID数量的增加而线性增加;但是GSAM不参与测试阶段,因此不会引入额外的计算量。
3.3.4 整体训练过程
总损失函数为:
L
t
o
t
a
l
=
L
D
R
P
L
+
γ
t
L
G
S
A
M
(
11
)
\mathcal L_{total} = \mathcal L_{DRPL} + \gamma _t \mathcal L_{GSAM} \qquad (11)
Ltotal=LDRPL+γtLGSAM(11)
其中,
γ
t
\gamma _t
γt是一个融合因子,用于平滑训练过程,
γ
t
=
s
i
n
(
π
t
2
T
)
\gamma _t = sin(\frac {\pi t}{2T})
γt=sin(2Tπt),
t
t
t是当前迭代次数,
T
T
T是总迭代次数。
下面表示的是GaitMPL训练过程的伪代码:
4. 实验结果
4.1 实验前提(参数设置)
实验使用的是CSAIA-B和OU-MVLP两个数据集。在特征提取部分采用MT3D和GaitGL两个模型构架,形成GaitMPL(M)和GaitMPL(G),由于DRPL和GSAM是与模型无关的,可以应用于任何方法,因此GaitMPL的所有配置及特征提取器是相同的,如:构架、特征维度、分辨率、优化器和batch size等。
在公式
(
3
)
(3)
(3)中
δ
m
i
n
=
0.1
\delta _{min}=0.1
δmin=0.1,
ϵ
=
1.4
\epsilon =1.4
ϵ=1.4,公式
(
9
)
(9)
(9)中
α
=
0.9
,
β
=
0.9
\alpha=0.9, \beta=0.9
α=0.9,β=0.9,公式
(
10
)
(10)
(10)中
τ
=
0.1
\tau = 0.1
τ=0.1。
4.2 结果数据
4.2.1 SOTA模型对比
4.2.2 消融实验
5. 总结
在本篇论文中,作者提出了一种新的渐进式学习网络——GaitMPL,用来解决步态识别中的困难样本问题。
- GaitMPL由两个模块构成,即动态重加权渐进式学习(DRPL)和全局结构对齐记忆库(GSAM)。DRPL的目的是通过从易到难的渐进式学习,来缓解学习目标在简单样本和困难样本之间的不一致性;GSAM引入了记忆机制来增强渐进式学习过程,并使用结构对齐的策略来保持记忆库中特征的可靠性。
- 在两个主流的基准数据集中(CASIA-B和OU-MVLP)的实验表明,GaitMPL及其模块具有一定的有效性和可推广性。
- GaitMPL的两个模块可以被集成到大多数现有的方法中,有可能实现识别性能的提高,并且在测试阶段没有引入额外的成本(计算量)。
参考博客: