paper题目:TransGait: Multimodal-based gait recognition with set transformer
paper是宁波大学发表在Applied Intelligent 2022的工作
paper地址:链接
作为一种可以从远处识别的生物特征,步态在预防犯罪、司法鉴定和社会安全等方面有着广泛的应用。然而,步态识别仍然是一项具有挑战性的任务,在典型的步态识别方法中存在两个问题。首先,现有的步态识别方法对行人的衣服和携带物的鲁棒性很弱。第二,现有的步态识别的时间建模方法不能充分地利用序列的时间关系,并要求步态序列保持不必要的顺序约束。在本文中,我们提出了一个新的基于剪影和姿势特征的多模态步态识别框架来克服这些问题。轮廓和姿势的联合特征对行人的衣服和携带物具有很高的可判别性和鲁棒性。此外,我们提出了一个带有时间聚合操作的集合transformer模型,以获得集合级的空间-时间特征。这种时间建模方法不受帧排列的影响,可以无缝整合在不同场景下获得的不同视频的帧,例如不同的观看角度。在CASIA-B和GREW这两个公共数据集上的实验表明,所提出的方法提供了最先进的性能。在CASIA-B上穿着不同衣服行走这一最具挑战性的条件下,所提出的方法达到了85.8%的rank-1准确率,比其他方法高出很多(>4%)。
步态识别是一种基于人的行走模式的人体识别技术。与人体识别方法中使用的其他人体生物识别信息,如指纹、虹膜和人脸相比,步态信息易于获得,难以伪造,并且适合于长距离的人体识别。由于这样的优势,它一直是生物识别和计算机视觉领域的一个活跃的研究课题,目标是在公共安全和犯罪调查中具有广泛的应用前景。现有的步态识别方法大多是从人的轮廓中提取步态特征。特别是随着深度卷积网络的发展,基于剪影序列的方法已被广泛研究和使用。剪影序列的计算成本低,但可以有效地描述一个人的步态。然而,识别精度受各种外部因素的影响很大,如衣服和携带条件[1, 2]。例如,最近的一个最先进的方法MT3D[3],在CASIA-B步态数据集上,在不同的视角下,正常行走条件下的准确率达到了96.7%[4]。然而,在换衣服的情况下,准确率下降到81.5%。
为了减少服装和携带条件对步态识别的影响,我们提出了一种结合剪影和姿势热图的多模式步态识别方法。剪影和姿势热图从不同角度描述行人。剪影序列描述了行人在步态周期中的外观变化,包含丰富的行人信息。因此,剪影的步态特征具有很强的可判别性。然而,剪影很容易受到行人衣服和物品的干扰,大大影响步态识别的准确性。相比之下,姿势序列描述了行人内部关节在步态周期中的变化。因此,它不包含行人的衣服和携带物的干扰信息,对衣服的变化和携带物具有鲁棒性[5]。如图1a所示,由于服装信息的存在,同一行人在不同服装条件下的剪影有很大的不同,但不同服装条件下的姿势热图是相似的。然而,姿势热图包含的信息较少,不足以区分不同的行人。如图1b所示,在相同的行走条件下,不同行人的姿态热图非常相似,但剪影却有明显的差异。这说明剪影和姿势信息是互补的,可以结合起来准确描述行人的步态。剪影具有丰富的外观信息,有助于区分不同的行人,从而提高类间的辨识度。姿势热图对衣服和携带物的变化具有鲁棒性。因此,在步态识别中,干扰信息的影响被降低,减少了类内差异。在CASIA-B数据集和GREW上的实验表明,剪影和姿势热图的结合可以提高步态识别的准确性,而多模态方法是必须的。
时间建模是步态识别的关键任务之一,因为步态本身就是运动的。在现有的方法中,通常使用LSTM和3DCNN对步态进行时间上的建模。LSTM可以对步态周期中的长期时间特征进行建模。然而,LSTM不能进行并行训练。另一方面,3DCNN通常需要大量的参数。Fan等人[6]选择短期时间特征作为人类步态建模的最有辨识度的特征。然而,只有短期的时间信息不足以提取人类步态的判别特征。尽管上述方法保留了更多的时间信息,但不连续的输入帧和不同的帧率可能会引起明显的退化。这是因为这些方法保留了不必要的顺序约束。因此,我们在步态识别框架中引入了集合transformer模块(STM),对不同时间尺度的运动模式进行建模。首先,STM对步态序列元素的顺序没有任何约束,以便能够在不同的视角下对步态帧之间的互动进行建模。其次,STM自适应地学习步态序列中包含的不同运动模式,包括步态周期的短期、中期和长期时间信息。transformer中的每个多头注意力运算器都集中在不同的运动模式上。我们的主要贡献总结如下。
我们将剪影和姿势热图结合起来,挖掘出行人的稳健和可辨别的步态特征。我们构建了基于部位的多模态特征,这些特征是由来自剪影和姿势热图的分割深度特征组合而成的。这些对应于特定部位的多模态特征描述了行走过程中的部位级运动特征。
我们提出了STM,这是一个用于步态识别的新型时间建模模块。对应于一个部位的多模态特征序列被输入到STM中,以提取多个运动特征用于步态识别。所提出的STM网络融合了多模态视觉信息、基于部件的细粒度特征和步态序列的时间相对性。与其他视觉任务中使用的transformer模型不同,STM由于其对帧排列的鲁棒性而具有灵活性。
所提出的方法在CASIA-B和GREW数据集中的表现优于最先进的步态识别方法。
图1 剪影(上)和姿势(下)的例子。(a)不同服装条件下的同一个行人:剪影是不同的,但姿势热图是相似的。(b) 不同的行人:不同行人的姿势热图是相似的,但剪影是不同的。
就人体表征而言,步态识别可以分为基于剪影的方法[3, 6-13]和基于姿势的方法[14-19]。剪影一直是文献中最常用的人体表征。剪影可以有效地描述行人在步态期间的外观变化,这是因为剪影中没有描述与步态识别无关的信息,如颜色[2]。然而,由于它描述的是行人的外观,所以对服装和携带物的变化非常敏感。基于姿势的步态识别方法通常采用三维骨架作为人体表示,因为三维骨架不容易受到衣服和携带物的影响。然而,三维姿态估计方法存在两个问题:i)基于三维骨架的方法严重依赖身体关节的精确检测,对遮挡比较敏感;ii)三维骨架只描述步态期间身体关节的变化,不能完全反映行人的步态。
近年来,随着深度学习的发展,二维姿态估计有了很大的进步。由于姿势信息在人类步态识别中非常重要,因此二维姿势是比三维姿势更可行、成本更低的技术方案。Feng等人[20]利用从RGB图像中提取的人体关节热图来提取时间特征。然而,当完全忽略剪影时,只使用姿势的识别率并不令人满意。Li等人[21]整合了人体的三维关节、二维关节和剪影。这种方法取得了最先进的结果,但相对复杂。Zhao等人[22]分别提取了剪影和姿势的单模态步态特征,而不是将剪影和姿势串联起来作为多模态的身体表示来提取多模态步态特征。在这项工作中,我们的目标是解决步态识别对服装和携带物的鲁棒性问题。我们提出了一种使用剪影-姿势身体表示的多模式步态识别方法。剪影-姿势身体表示法在描述行人的步态变化方面更为全面。它对行人的服装和携带物的变化也很稳健。在本文中,我们选择2D姿势热图来描述行人关节的变化。由于二维姿态热图是人体关节的概率图,它比三维骨架对姿态估计误差更稳健。
步态识别中的时间表示可分为基于模板的方法和基于序列的方法。基于模板的方法使用统计函数将步态信息聚合到一个图像中,可分为两个子类别:时间模板和卷积模板。时间模板在输入到网络之前聚合了步态信息,如步态能量图像(GEI)[23]和步态熵图像(GENI)[24]。卷积模板在经过几层卷积和池化操作后聚合了步态信息,包括集合池化[9]和步态卷积能量图(GCEM)[25]。基于序列的方法学习了步态序列中的时间关系,而不是将其汇总。基于序列的方法可以分为三个子类别。基于LSTM的方法[7, 25, 26],基于3DCNN的方法[3, 27]和基于微动作的方法[6]。Zhang等人[7]将人体分为几个部分,每个部分使用LSTM时间注意模型提取步态的空间-时间特征。Lin等人[3]提出了一个多时间尺度的3DCNN(MT3D)模型,该模型改进了3D池化层来聚合每个局部时间片段的时间信息。Fan等人[6]提出了一个微动捕获模块(MCM),它由一个微动模板生成器和一个时间池化模块组成。微动模板生成器利用注意力机制和统计函数来聚合局部相邻的帧,并获得若干局部微动模板。然后,这些微动模板被聚合起来,通过时间池化模块获得步态特征。这种方法证明了微动对步态识别是有效的。然而,该方法只考虑了微动作模式而没有考虑其他运动模式。例如,起始运动和未来落地运动之间的关系对步态识别是有益的。因此,我们使用集合transformer模块来模拟输入集合中各元素之间的相互作用,transformer中的多头注意力中的每个头都会学习步态序列中的不同运动模式,然后将这些运动模式特征聚合起来进行步态识别。
Transformer在基于序列的任务,特别是在自然语言处理(NLP)任务中表现出了出色的性能[28, 29]。它最初是为了解决RNN不能并行训练的问题而设计的[30]。该transformer由一个自注意力模块和一个前馈神经网络组成。自注意力模块学习了注意力机制中任何两个框架之间的关系,提供了更好的并行性。多头注意力是由多个自注意力组成的。每个头提取不同模式的序列特征,这有助于捕捉更丰富的序列信息。transformer已被用于许多计算机视觉任务中,如动作识别[31, 32],和帧合成[33]。近年来,transformer也被用于图像空间特征提取[34, 35]。Dosovitskiy等人[34]首次引入transformer代替CNN进行图像空间建模。Liu等人[35]提出了一种基于移位窗口方案的分层transformer结构,该结构可以灵活地在各种尺度上建模,其计算复杂度与图像大小呈线性关系。Yao等人[36]在步态识别中使用该transformer对行人关节的空间关系进行建模。在本文中,我们将transformer用于步态识别的时间建模。作为一个包络不变的基于注意力的神经网络模块,STM被提出来学习和聚集步态周期中的不同运动模式。
图2描述了提出的步态识别模型的整体结构。首先,从输入的步态序列中获得剪影和姿势热图。然后,它们被送入相应的特征提取模块,表示为 E s E_{s} Es和 E p E_{p} Ep,以提取帧级特征。然后,剪影和姿势特征图被串联起来,得到剪影-姿势多模态框架级身体特征。多模态的框架级身体特征通过水平池化(HP)模块被水平分割成部分级特征。对于每个部分,我们使用STM来提取步态序列中不同时间尺度的运动模式,并通过时间聚合获得空间-时间的细粒度特征。最后,提取的集合级部分运动特征被用于识别人类步态。
图2 TransGait的整体框架。 E s E_{s} Es和 E p E_{p} Ep分别代表剪影特征提取器和姿势特征提取器,c表示连接操作。HP代表Horizontal Pooling,STM代表set transformer模块。
让我们将数据集中受试者的 RGB 图像序列表示为
{
I
i
∣
i
‾
=
1
,
…
,
t
}
\left\{I_{i} \mid \underline{i}=1, \ldots, t\right\}
{Ii∣i=1,…,t},其中
t
t
t是序列中的帧数。背景减法和预训练姿态估计网络(CPM)[37]分别用于从RGB图像序列中提取相应的轮廓序列和2D姿态热图序列,记为
{
S
i
‾
∣
i
‾
=
1
,
…
,
t
}
\left\{\underline{S_{i}} \mid \underline{i}=1, \ldots, t\right\}
{Si∣i=1,…,t}和
{
P
i
∣
i
=
1
,
…
,
t
}
\left\{P_{i} \mid i=1, \ldots, t\right\}
{Pi∣i=1,…,t}。然后,我们通过
E
s
E_{s}
Es和
E
p
E_{p}
Ep提取轮廓和 2D 姿势热图序列的空间特征。
s
i
=
E
s
(
S
i
)
p
i
=
E
p
(
P
i
)
si=Es(Si)pi=Ep(Pi)
将轮廓特征图
s
i
s_{i}
si和姿态特征图
p
i
p_{i}
pi拼接得到轮廓-姿态多模态特征图
m
i
m_{i}
mi,如下:
m
i
=
[
s
i
,
p
i
]
m_{i}=\left[s_{i}, p_{i}\right]
mi=[si,pi]
其中
[
⋅
]
\left[\cdot\right]
[⋅]表示连接操作。以多模态特征作为身体表示特征,分别比轮廓特征和姿势特征对行人的衣服和携带物具有更强的鲁棒性和更强的判别力。
最近的行人重识别方法从局部部分生成深度表示,用于人的细粒度判别特征[38-40]。受这些工作的启发,我们使用水平池化(HP)模块来提取部分人体的判别性部分特征。如图 3 所示,HP 模块将多模态特征图
m
i
m_{i}
mi水平拆分为
n
n
n个部分(我们在实验中选择
n
=
16
n=16
n=16)。然后,HP 模块通过全局平均和最大池化对
m
i
m_{i}
mi的每个部分进行下采样,以生成列特征向量
m
p
j
,
i
m p_{j, i}
mpj,i。
m
p
j
,
i
=
Avgpool
2
d
(
m
j
,
i
)
+
Maxpool
2
d
(
m
j
,
i
)
m p_{j, i}=\operatorname{Avgpool} 2 \mathrm{~d}\left(m_{j, i}\right)+\operatorname{Maxpool} 2 \mathrm{~d}\left(m_{j, i}\right)
mpj,i=Avgpool2 d(mj,i)+Maxpool2 d(mj,i)
其中
j
∈
1
,
2
,
…
,
n
j \in 1,2, \ldots, n
j∈1,2,…,n.我们将多模态特征序列转化为
n
\mathrm{n}
n个部位级特征向量,得到多模态部位表示矩阵
M
P
=
M P=
MP=
(
m
p
j
,
i
)
n
×
t
\left(m p_{j, i}\right)_{n \times t}
(mpj,i)n×t。多模态部分表示矩阵的对应行向量记为
M
P
j
,
⋅
=
M P_{j, \cdot}=
MPj,⋅=
{
m
p
j
,
i
∣
i
=
1
,
…
,
t
}
\left\{m p_{j, i} \mid i=1, \ldots, t\right\}
{mpj,i∣i=1,…,t}。然后,对于MP的
j
j
j部分,STM提取集合级时空特征
v
j
v_{j}
vj。请注意,STM 不需要严格的顺序输入,即使输入混乱也可以获得相同的输出。
v j = S T M j ( M P j ) v_{j}=\mathrm{STM}_{j}\left(M P_{j}\right) vj=STMj(MPj)
最后,我们使用几个独立的 FC 层将从 STM 中提取的特征向量映射到度量空间以进行步态识别。
图3 HP的结构(以n = 4为例)
作为transformer的一个组成部分,self-attention 机制显式地模拟了序列中所有实体之间的交互。自注意力是在接收元组输入(查询、键、值)时定义的,并将缩放的点积执行为
Attention
(
Q
,
K
,
V
)
=
softmax
(
Q
K
T
d
q
)
V
\text { Attention }(Q, K, V)=\operatorname{softmax}\left(\frac{Q K^{T}}{\sqrt{d_{q}}}\right) V
Attention (Q,K,V)=softmax(dqQKT)V
其中
Q
=
X
W
Q
(
W
Q
∈
R
n
×
a
q
)
,
K
=
X
W
K
(
W
K
∈
\mathbf{Q}=\mathbf{X} \mathbf{W}^{Q}\left(\mathbf{W}^{Q} \in \mathbb{R}^{n \times a_{q}}\right), \mathbf{K}=\mathbf{X} \mathbf{W}^{K}\left(\mathbf{W}^{K} \in\right.
Q=XWQ(WQ∈Rn×aq),K=XWK(WK∈
R
n
×
d
k
)
,
V
=
X
W
V
(
W
V
∈
R
n
×
d
W
)
\left.\mathbb{R}^{n \times d_{k}}\right), \mathbf{V}=\mathbf{X} \mathbf{W}^{V}\left(\mathbf{W}^{V} \in \mathbb{R}^{n \times d_{\mathbb{W}}}\right)
Rn×dk),V=XWV(WV∈Rn×dW),
X
\mathbf{X}
X表示输入序列嵌入。
多头注意力包括多个自注意力块,其中每个自注意力头在序列元素之间寻找不同的关系。多头注意力模块公式如下:
MultiHead
(
Q
,
K
,
V
)
=
Concat
(
head
1
,
…
,
head
h
)
W
0
\text { MultiHead }(Q, K, V)=\text { Concat }\left(\operatorname{head}_{1}, \ldots, \text { head }_{h}\right) W^{0}
MultiHead (Q,K,V)= Concat (head1,…, head h)W0
其中
h
e
a
d
i
=
{head}_{i}=
headi= Attention
(
Q
W
i
Q
,
K
W
i
K
,
V
W
i
V
)
\left(Q W_{i}^{Q}, K W_{i}^{K}, V W_{i}^{V}\right)
(QWiQ,KWiK,VWiV)
在本文中,我们提出了 STM,这是一个基于注意力的模块,它扩展了标准transformer网络 [28] 以学习步态集合中元素之间的交互。请注意,我们使用适合步态识别任务的时间池化(TP)来进行特征聚合,而不是其他transformer使用的 [cls] 标记。与原始transformer不同的是,位置嵌入没有添加到输入中。根据 Gaitset [9],步态序列中每个位置的轮廓和姿势热图具有独特的外观,因此本身包含它们的位置信息。
如图 4 所示,STM 由三个子模块组成:多头注意力块 (MAB)、前馈模块和时间池化模块。 MAB利用多头注意力机制在时间尺度上寻找步态序列的不同运动模式,公式如下:
MAB
(
X
)
=
MultiHead
(
X
W
Q
T
,
X
W
K
T
,
X
W
V
T
)
\operatorname{MAB}(X)=\text { MultiHead }\left(X W_{Q_{T}}, X W_{K_{T}}, X W_{V_{T}}\right)
MAB(X)= MultiHead (XWQT,XWKT,XWVT)
图 4 STM的框图
前馈模块包含一层 MLP 和 ReLU 激活函数。 temporal pooling 模块提取序列中最具判别力的运动特征向量,其中
max
(
⋅
)
\max (\cdot)
max(⋅)用作 temporal pooling 的实例函数。集合transformer公式如下:
O
j
,
[
0
]
=
M
P
j
,
O
^
j
,
⋅
[
i
]
=
M
A
B
j
(
O
j
,
[
i
−
1
]
)
+
O
j
,
[
i
−
1
]
O
j
,
⋅
[
i
]
=
O
^
j
,
⋅
[
i
]
+
ReLU
(
f
j
θ
(
O
^
j
,
⋅
[
i
]
)
)
v
j
=
TP
(
O
j
,
⋅
[
D
T
]
)
=
max
(
O
j
,
⋅
[
D
T
]
)
O[0]j,=MPj,ˆO[i]j,⋅=MABj(O[i−1]j,)+O[i−1]j,O[i]j,⋅=ˆO[i]j,⋅+ReLU(fθj(ˆO[i]j,⋅))vj=TP(O[DT]j,⋅)=max(O[DT]j,⋅)
其中
f
j
θ
f_{j}^{\theta}
fjθ表示对应部分
j
j
j的前馈模块,
θ
\theta
θ是参数。
D
T
D_{T}
DT是集合Transformer 中的层数。
网络超参数。 E S E_{S} ES和 E p E_{p} Ep结构相同但参数不同,由三个卷积模块组成。每个卷积模块包括两个 3 × 3 3 \times 3 3×3卷积层、一个最大池化层 [41] 和一个 Leaky ReLU 激活。 HP模块的part number n n n设置为16。STM中的层数设置为2,heads的数量设置为8。由于set transformer的优势,STM可以在不进行深度堆叠的情况下提取有区别的时间特征可以在低层观察整个序列。用于设置超参数 D T D_{T} DT的消融研究在第 4.4 节中讨论。
损失和采样器。采用单独的批量所有(BA+)三元组损失[42]来训练网络。不同样本之间对应的列特征向量用于计算损失。批量大小设置为 ( p , k ) (\mathrm{p}, \mathrm{k}) (p,k),其中 p \mathrm{p} p表示人数, k \mathrm{k} k表示批次中每个人的样本数。
测试。在测试阶段,gallery和probe之间的距离被定义为相应特征向量的平均欧几里德距离。