【步态识别】GaitPart 算法学习《GaitPart: Temporal Part-based Model for Gait Recognition》

1. 论文&代码源

《GaitPart: Temporal Part-based Model for Gait Recognition》
论文地址:https://ieeexplore.ieee.org/document/9156784
代码下载地址:https://github.com/ChaoFan96/GaitPart

2. 论文亮点

人体的不同部位在行走过程中具有差异性较大的形态和运动模式,人体描述的局部特征可以提供细粒度信息,有利于个体识别任务,如下图(a)所示。
因此,作者假设人体的每个部分都需要“自己”的表达方式,其中局部短程时空特征(微动作模式)是最具判别力的特征。从而提出GaitPart模型,此模型由帧级部分特征提取器(Frame-level Part Feature Extractor, FPFE)微动作捕捉模块(Micro-motion Capture Module, MCM) 构成。
brief
FPFE是一种特殊而简洁的叠加CNN,它首先将每一帧作为输入,然后在输出特征图上进行预定义的水平分割,得到多个部分的空间特征序列,其微动作模式将被相应的MCM捕捉。
注意:MCM模块是并行且参数独立的!

1. 提出焦点卷积:

在FPFE模块中使用焦点卷积(Focal Convolution, FConv),增强对部分级空间特征的细粒度学习能力;

2. 提出基于注意力的MCM模块:

局部短程时空特征(微动作模式)是周期性步态最具判别力的特征,提出基于注意力的MCM来模拟局部微动作特征和对整个步态序列的全局理解;

3. 提出GaitPart

3. 模型结构

framework

  • t t t帧步态序列被逐帧输入GaitPart

  • FPFE提取每帧 f i f_i fi的空间特征 F i F_i Fi,得到一系列特征图 S F S_F SF S F = { F i ∣ i = 1 , 2 , . . . , t } S_F=\{F_i |i=1, 2, ..., t\} SF={ Fii=1,2,...,t} F i = FPFE ( f i ) F_i=\text{FPFE}(f_i) Fi=FPFE(fi)

  • Horizontal Pooling(HP)提取判别性部分形成的特征,特镇黄土被水平分割成 n n n个部分,对于 F i F_i Fi j j j个部分记为 F j , i F_{j,i} Fj,i,HP操作得到 p j , i p_{j,i} pj,i p j , i = Avgpool2d ( F j , i ) + Maxpool2d ( F j , i ) p_{j,i} = \text {Avgpool2d}(F_{j,i})+\text {Maxpool2d}(F_{j,i}) pj,i=Avgpool2d(Fj,i)+Maxpool2d(Fj,i) p j , i p_{j,i} pj,i可以聚合成PR-Matrix, P = ( p j , i ) n × t P=(p_{j,i})_{n \times t} P=(pj,i)n×t,其行向量 P j P_j Pj代表第 j j j个部分, P j = { p j , i ∣ i = 1 , 2 , . . . , t } P_j=\{p_{j,i}|i=1,2,...,t\} Pj={ pj,ii=1,2,...,t}

  • 通过将 P j P_j Pj聚合成特征向量 v j v_j vj来提取第 j j j个部分的空间特征: v j = MCM j ( P j ) v_j = \text {MCM}_j(P_j) vj=MCMj(Pj)

  • n n n个并行的MCM组成了时间特征聚合器(Temporal Feature Aggregate, TFA),最后用几个独立全连接层将特征向量映射到度量空间。
    framework2

3.1 FPFE(FConv)

FPFE由3个Block组成,每个Block由2个FConv组成。FConv的实质就是先把图像水平分割,再进行卷积,以缩小其感受野
工作原理见下图:
FConv
对于各个Block中的FConv的参数设置,见下表:
FConv par

3.2 TFA(MCM)

TFA由并行的MCM组成,MCM由微动作模板生成器(Micro-motion Template Builder, MTB)时间池化(Temporal Pooling, TP) 组成。
MCM
MTB模块在序列维度上滑动,将每个相邻的 ( 2 r + 1 ) (2r+1) (2r+1)个列向量聚合成一个微动作特征向量。
TP模块用一个简单的max函数来收集帧和通道维度之间最具判别力的微动作特征。

3.2.1 微动作模板生成器(MTB)

MTB是作用就是将帧级部分特征向量映射到微动作特征向量中
假设短距离时空表示(微动作特征)是周期性步态特征中最具判别力的,且任何特定时刻的微动作模式由其自身的相邻帧决定,
R ( p i , r ) = { p k ∣ k = i − r , . . . , i , . . . , i + r } R(p_i , r) =\{ p_k |k=i-r,...,i,...,i+r\} R(pi,r)={ pkk=ir,...,i,...,i+r}代表 p i p_i pi及其相邻 r r r帧组成的序列。 i i i时刻的微动作特征可以定义为: m i = TempFunc ( R ( p i , r ) ) m_i = \text{TempFunc}(R(p_i,r)) mi=TempFunc(R(pi,r))目的是压缩子序列 R ( p i , r ) R(p_i,r) R(pi,r)

注意:下文出现的 S p = { p i ∣ i = 1 , 2 , . . . , t } S_p =\{p_i|i=1,2,...,t\} Sp={ pii=1,2,...,t},同上文的 P j P_j Pj
将TempFunc应用于 S p S_p Sp的每一时刻,实际上就是利用核大小为 ( 2 r + 1 ) (2r+1) (2r+1)的一维全局平均池化和一维全局最大池化,得到微动作特征向量序列 S m S_m Sm,表达式为:
S m = Avgpool1d ( S p ) + Maxpool1d ( S p ) S_m = \text{Avgpool1d}(S_p)+ \text{Maxpool1d}(S_p) Sm=Avgpool1d(Sp)+Maxpool1d(Sp)
利用通道注意力机制(channel-wise attention mechanism) 重新加权每一时刻的特征向量,以使微动作更具判别力,操作式如下: S l o g i t s = Conv1dNet ( S p ) S m r e = S m ⋅ Sigmoid ( S l o g i t s ) S_{logits}=\text {Conv1dNet}(S_p) \\S_m^{re} =S_m \cdot \text {Sigmoid}(S_{logits}) Slogits=Conv1dNet(Sp)Smre=SmSigmoid(Slogits)
Conv1dNet由两个一维卷积层组成。

在实验中,MCM内有两个MTB(尺寸分别为 3 3 3 5 5 5),以使得在序列维度上能够融合多尺信息

3.2.2 时间池化(TP)

聚合微动作特征向量序列,输入量为 S m r e S_m^{re} Smre S m r e ( t ) = { m i r e ∣ i = 1 , . . . , t } S_m^{re}(t)=\{m_i^{re}|i=1,..., t\} Smre(t)={ mirei=1,...,t},TP模块可以用下式表示: v = TP ( S m r e ( T ) ) v =\text{TP}(S_m^{re}(T)) v=TP(Smre(T))
作为一个周期运动,一个完整的周期应能完整地代表(理想状态下)整个步态序列,转化为公式表达即:
∀ t > T , ∃ TP ( S m r e ( t ) ) = TP ( S m r e ( T ) ) \forall t \gt T, \exist \text{TP}(S_m^{re}(t))=\text{TP}(S_m^{re}(T)) t>T,TP(Smre(t))=TP(Smre(T))
此式表明:周期性步态经过一个完整的周期后,不会有任何判别性的损失增益。

时间池化通常有 mean ( ⋅ ) \text{mean}(\cdot) mean() max ( ⋅ ) \text{max}(\cdot) max()两种形式。

TP ( ⋅ ) = mean ( ⋅ ) \text{TP}(\cdot)=\text{mean}(\cdot) TP()=mean()
{ TP ( S m r e ( t ) ) = ∑ i = 1 t m i r e t TP ( S m r e ( T ) ) = ∑ i = 1 T m i r e T \begin{cases} \text{TP}(S_m^{re}(t))=\frac {\sum_{i=1}^t m_i^{re}}{t}\\ \\ \text{TP}(S_m^{re}(T))=\frac {\sum_{i=1}^T m_i^{re}}{T} \end{cases} TP(Smre(t))=ti=1tmireTP(Smre(T))=Ti=1Tmire当且仅当 t t t T T T的整数倍时,等式两端才相等。

TP ( ⋅ ) = max ( ⋅ ) \text{TP}(\cdot)=\text{max}(\cdot) TP()=max()
{ TP ( S m r e ( t ) ) = max ( m 1 r e , m 2 r e , . . . , m t r e ) TP ( S m r e ( T ) ) = max ( m 1 r e , m 2 r e , . . . , m T r e ) \begin{cases} \text{TP}(S_m^{re}(t))=\text {max}(m_1^{re}, m_2^{re}, ..., m_t^{re})\\ \\ \text{TP}(S_m^{re}(T))=\text {max}(m_1^{re}, m_2^{re}, ..., m_T^{re}) \end{cases} TP(Smre(t))=max(m1re,m2re,...,mtre)TP(Smre(T))=max(m1re,m2re,...,mTre)此方法不存在整数倍的问题,因此作者采用这一方法进行TP操作。

4. 实验结果

4.1 参数设置

需要注意,在FConv中有一个预定义参数 p p p,当 p p p较大时,对感受越的约束较强,当 p = 1 p=1 p=1时,FConv相当于常规的卷积层(对感受野的约束消失)。因此,设置 p p p的经验是随着网络的深入而增加的

在训练阶段,由于步态视频的时长是不确定的,需要截取固定长度的片段进行输入:先截取30 ∼ \sim 40帧长度的片段,然后随机提取30个排序的帧进行训练。若原始视频的长度小于15帧,则丢弃掉这段视频,若原始视频的长度为15 ∼ \sim 30帧,则会有重复帧被提取出来。
在测试阶段,无需对视频进行长度上的处理。gallery和probe的距离采用欧氏距离计算平均值。

4.2 识别准确率

4.2.1 CASIA-B

result1

4.2.2 OU-MVLP

result2

4.2.3 消融实验

为了验证GaitPart每个模块的有效性,作者基于CASIA-B数据集的实验进行了消融实验,包括在FConv中设置不同的 p p p值,在MCM模块中使用MTB的个数,在MCM模块取消注意力机制的引入,以及更改TP模块的函数设置。

FConv的有效性:

result3

  1. 所有使用FConv的实验都比未使用的效果好,这一方面说明了FConv的有效性,另一方面也证明了FConv对于 p p p值的改变具有较好的鲁棒性
  2. A-c和A-d显示在Block1 (底层)中使用FConv对性能有负面影响,作者猜测可能是因为底层相邻部分之间的边缘和轮廓信息可能会被FConv破坏
  3. 比较A-a、b、c之间的差异,可以发现在NM子集上的准确率先升后降,而另外两个子集上的准确率在持续上升,作者认为造成这种现象的原因是顶层神经元的不同感受野可以适应不同的行走条件

MCM的有效性:
table6

  1. MTB1和MTB2同时使用可以获得最佳性能,表明MCM中的多尺度设计有助于捕捉最具辨识度的微动作特征;
  2. 注意力机制的引入有利于突出最具代表性的微动作特征;
  3. 使用 max ( ⋅ ) \text{max}(\cdot) max()的TP模块是必要的。

4.2.4 时空关系研究实验

table7

在训练和测试阶段对输入帧的顺序进行打乱,取得了较差的表现,但准确率的下降并不明显,这表明即使在输入序列的时间信息被打乱的情况下,模型仍可以获得较好的识别效果,同时说明了静态外观特征在步态识别中发挥了重要作用。

5. 总结

在本文中,作者提出了一个新的观点,即由于人体在行走过程中的视觉外观和运动模式不同,人体的每个部分都需要有自己的时空模型。因此,我们提出了GaitPart,它包括由FConv组成的帧级部位特征提取器和由几个并行的MCM组成。这两部分的核心目标是加强部分级特征的细粒度学习,并分别提取局部短距离的时空表达。最后,在著名的公共数据库CASIA-B和OU-MVLP上进行的实验证明了GaitPart以及其所有模块的优越性。

0. 知识补充

0.1 注意力机制

0.1.1 概述

我们可以通过眼睛看到各种各样的事物,获取世界上的大量信息,同时也可以免除无关信息的干扰,这是因为我们人类具有对信息进行选择的能力,选择有效信息而忽视无关信息。
同样我们希望网络也能够具有这种能力,因而提出了注意力机制。注意力机制在语义分割和图像描述生成方面具有广泛的应用,操作过程就是对输入进行加权,再输出,对希望网络关注到的部分赋予较大权重,而希望网络忽视的部分赋予小权重

0.1.2 通道注意力机制(Channel Attention)

CAM
先对特征图的空间进行压缩,然后在通道维度上进行学习(卷积),得到各个通道的重要性(权值)。
SENet
通道注意力机制的代表模型是压缩和激励网络(Squeeze and Excitation Network, SENet)
压缩部分:对全局空间信息进行压缩,然后在通道维度进行特征学习。具体而言,就是将维度为 H × W × C H\times W\times C H×W×C维的特征图通过全局平均池化,压缩为 1 × 1 × C 1\times 1\times C 1×1×C维。
激励部分:对已学习的特征形成相应的重要性,进行不同权重的分配。具体而言,就是将压缩部分得到的 1 × 1 × C 1\times 1\times C 1×1×C维融入全连接层,利用简单的门控机制与Sigmoid激活函数预测各个通道的重要性。

0.1.3 空间注意力机制(Spatial Attention)

SAM

空间注意力机制的代表模型是:空间变换神经网络(Spatial Transformer Networks, STN),STN能够对各种形变数据在空间中进行转换并自动捕获重要区域特征。它能够保证图像在经过裁剪、平移或者旋转等操作后,依然可以获得和操作前的原始图像相同的结果。

0.1.4 混合注意力机制

在混合注意力机制中,通道注意力和空间注意力可以通过串联或者并联的方式进行组合。
混合注意力机制的代表模型是:卷积注意力模块(Convolutional Block Attention Module, CBAM),它包括通道注意力模块(Channel Attention Module, CAM)、和空间注意力模块SAM(Spatial Attention Module, SAM)。

0.1.5 自注意力机制(Self-Attention)

神经网络接收的输入是很多大小不一的向量,并且不同向量向量之间有一定的关系,但是实际训练的时候无法充分发挥这些输入之间的关系而导致模型训练结果效果极差。比如机器翻译问题(序列到序列的问题,机器自己决定多少个标签),词性标注问题(一个向量对应一个标签),语义分析问题(多个向量对应一个标签)等文字处理问题。

针对全连接神经网络对于多个相关的输入无法建立起相关性的这个问题,通过自注意力机制来解决,自注意力机制实际上是想让机器注意到整个输入中不同部分之间的相关性。

0.2 消融实验(Ablation Study)

刚刚发现前面几条博客忘记补充消融实验的知识了。。
消融实验的目的就是为了控制变量,以观察某一变量对实验效果的影响。这一实验方法经常应用于步态识别模型的性能评估(至少在最新研究成果中都有使用)。

假设在一个实验中涉及到a, b, c三个部分,实验效果较之前有明显改善,但现在并不知道这三个部分中究竟那个对结果有正面作用,因此我们逐一删除这三个变量中的一个,重新进行实验,再对效果进行评估,最终得出更加完备的实验结论。

参考博客:

GaitPart学习笔记(主干网络论文介绍+代码讲解)

(CVPR-2020)GaitPart:基于时间部分的步态识别模型(一)

(CVPR-2020)GaitPart:基于时间部分的步态识别模型(二)

视觉 注意力机制——通道注意力、空间注意力、自注意力

自注意力机制(Self-Attention)

通道注意力与空间注意力模块

猜你喜欢

转载自blog.csdn.net/weixin_45074807/article/details/128105533