(2)步态识别论文研读GaitPart: Temporal Part-based Model for Gait Recognition

代码:https://github.com/ChaoFan96/GaitPart

论文:GaitPart: Temporal Part-Based Model for Gait Recognition | IEEE Conference Publication | IEEE Xplore

摘要:

步态识别是目前最具发展前景的基于视频的生物识别技术之一,用于识别长距离行走中的个体行走模式。目前,大多数步态识别方法都是以整个人体为单位来建立时空表征。然而,我们观察到,在行走过程中,人体的不同部位具有明显不同的视觉外观和运动模式。在最新的文献中,利用部分特征进行人体描述已被证实有利于个体识别。综上所述,我们认为人体的每个部位都需要自己的时空表达。然后,我们提出了一种新的基于部分(part)的GaitPart模型,并得到了两方面的性能提升效果:一方面,提出了一种新的卷积应用——Focal Convolution Layer,增强了零件级空间特征的细粒度学习;另一方面,提出了微运动捕捉模块(Micro-motion Capture Module, MCM),在GaitPart中有多个平行的MCM,分别对应人体的预定部位。值得一提的是,MCM是一种新颖的步态任务时间建模方法,它侧重于周期步态的近距离时间特征,而不是冗余的远距离特征。在两个最流行的公共数据集CASIA-B和OU-MVLP上的实验充分证明,我们的方法在多个标准基准上达到了最新的水平。

1.introduction 

步态是一种描述人的行走模式的生理和行为生物特征。与其他生物识别模式,如面部,指纹和虹膜它可以很容易地在远距离捕获,不需要受试者的明确合作。因此,步态识别在犯罪侦查、门禁、社会安全等方面具有巨大的应用潜力。步态识别作为一项视觉识别任务,其本质目标是从人体形状的时间变化特征中学习唯一不变的表征。然而,在现实场景中,诸如携带背包、穿着外套和摄像机视点等变化会导致步态外观发生巨大变化,这给步态识别带来了重大挑战。为了缓解这些问题,许多基于深度学习的方法提供了有希望的解决方案。Thomas等人[25]利用3D-CNN提取时空信息,试图寻找人类步态的通用描述符。GaitNet[30]提出了一种Auto-Encoder框架,从原始RGB图像中提取步态相关特征,然后使用lstm对步态序列的时间变化进行建模。GaitSet[5]假设剪影的外观包含了它的位置信息,从而将步态作为一个集合来提取时间信息(第一篇论文研读已经分析)

    这些方法将整个人体形状作为一个单元来提取时空信息,用于最终的识别。然而,我们观察到人体不同部位在行走过程中具有明显不同的形状和运动模式,如图1(a)所示。[6,15,20,5,12,13,19,28]的更多证据表明,用于人体描述的部分特征可以提供细粒度的信息,有利于个体识别任务。对于时间变化特征,一些最先进的方法没有明确地对时间特征进行建模,从而导致时间序列中重要的不变特征丢失[23,7,3,26]。其他一些方法通过深度叠加3d卷积或循环操作,对远程依赖关系进行建模,以表示对步态序列的全局理解[25,30]。然而,这些方法被认为对周期性步态保留了不必要的远程序列约束,从而失去了步态识别的灵活性[5]。

基于以上发现,我们假设人体的每个部位都需要自己的表达,其中局部的短时时空特征(微运动模式)是人类步态最具区别性的特征。因此,我们提出了一种新的基于时间部分的框架,称为GaitPart。如图1(b)所示,GaitPart由两个设计良好的新颖组件组成,即帧级部分特征提取器(FPFE)和微运动捕获模块(MCM)。  

GaitPart的输入是一系列的步态轮廓。FPFE是一种特殊但简洁的堆叠CNN,它首先将每一帧作为输入,然后对输出特征图进行预定义的水平分割。这样,我们可以得到如图1(b)所示的几个部分级空间特征序列,每个序列对应于人体的某个预定义部分,其微运动模式将被相应的MCM捕获。注意,这些并行mcm之间的参数是独立的,这反映了GaitPart是部分独立的方法。最后的步态表征是通过简单地连接这些mcm的所有输出而形成的。具体来说,我们主要做了以下三点贡献 

1.在FPFE中,我们提出了一种简单而有效的卷积应用,称为焦点卷积(Focal convolution, FConv),以增强对部分级空间特征的细粒度学习。其核心思想是使顶级卷积核关注输入帧中每个特定部分的更多局部细节,直观地利用更细粒度的部分信息

2.在MCM中,我们认为局部短距离时空特征(微运动模式)是周期性步态最具判别性的特征,而远程依赖关系冗长且效率低下。在此基础上,提出了一种基于注意力的MCM模型,对局部微运动特征进行建模,并对整个步态序列进行全局理解。

3.我们提出了一种新的基于部分的步态识别框架,称为GaitPart。在广泛使用的步态数据库CASIAB[17]和OU-MVLP[21]上进行的大量实验表明,GaitPart大大优于先前最先进的方法,显示出其优越性。在CASIA-B上进行了大量严格的消融实验[17],进一步证明了GaitPart中各组分的有效性。

2. Related Work

步态识别。目前的研究大都以空间特征提取和时间建模为重点[16,23,7,3,26,2,1]。对于第一个问题,之前基于cnn的研究通常对整个feature map进行常规的二维[30,5]或三维[25,27]卷积运算。虽然这种空间维度上的均匀操作是自然和广泛使用的,但这些方法忽略了步态任务中人体部位之间的显著差异。为了获得时空表征,许多研究倾向于明确地对时间变化建模[30,25],或者直接将整个步态序列压缩到一帧中[5,23,7,3,26,29]。然而,基于rnn的方法被认为对周期性步态保留了不必要的顺序约束[5],而另一种基于gei的方法[23,7,3,26]尽管具有简单性优势,但对现实场景中的变化很敏感

基于部分模型。将特征图分割成条状并将其汇集成列向量是相关领域中常用的方法。例如,person Re-ID[6,20,15]。这些方法忽略了空间对齐,假设每个列向量可以代表人体的某个相应部位[20]。与人再识别领域不同,我们认为步态任务中基于部位的图式设计应以部位依赖的方式进行。由于步态任务中人体各部位在外观和运动模式上存在显著差异而人体各部位完全有可能具有共同的属性,例如人的颜色和纹理Re-ID 1。因此,GaitPart被设计为部分依赖的方法,其参数在生成时空表示阶段是部分依赖的。在此基础上,提出了一种新颖的卷积技术——焦点卷积(Focal Convolution, FConv),构成了FPFE。更具体地说,FConv首先将输入特征映射分割成几个部分,然后分别对这些部分进行规则卷积,对FConv进行深度叠加,会限制顶层神经元的接受野,使其更专注于输入帧内相应部分的局部细节。

时间模型。步态时间变化建模方法大致可分为三类:基于3dcnn的[25]、基于lstm的[30,14]和基于set5的[5]。其中,基于3dcnn的方法[2,1,22,25]直接提取步态的时空特征进行识别,但这些方法通常难以训练,不能带来可观的性能。Zhang等人[30]提出了一种新的Auto-Encoder框架,从原始RGB视频中提取姿态特征,并使用三层LSTM对这些姿态特征进行时间序列聚合,生成最终的步态特征[30]。然而,基于lstm的方法被认为保留了不必要的周期性步态序列约束[5]。GaitSet[5]假设一个轮廓的外观包含了它的位置信息,提出将步态作为一个集合,以时间池化的方式提取其时空特征。这种方法足够简洁和有效,但没有明确地为时间变化建模。与上述对比,我们观察到具有相似视觉外观的帧很可能在周期性步态中周期性出现,这表明在一个完整的步态周期后不会有判别性的信息增益。这种现象表明,长距离依赖关系(例如,超过一个完整的步态周期)对于步态识别可能是多余的和无效的。因此,GaitPart将注意力转向局部短时时间建模,并提出了微运动捕获模块。更多细节将在3.3节讨论。

3.提出的方法

3.1pipline

在本节中,我们首先介绍了GaitPart的pipline,然后是帧级部件特征提取器(FPFE),最后是时间特征聚合器(TFA)和实现细节,

如图2所示,将包含t帧的步态轮廓序列逐帧送入GaitPart。帧级部分特征提取器(FPFE)是一种特殊设计的卷积网络,用于提取每帧Fi的空间特征fi

 然后,水平池化(Horizontal Pooling, HP)模块将特征映射Fi水平分割为n个部分,旨在提取人体局部的判别性部位信息特征。对于Fi, Fj,i的第j部分,HP模块通过Global Average Pooling和Global Max Pooling将其下采样为列向量pj,i

作为中间结果,SF中(F1 F2 F3 ...Ft)的每个特征映射可以转化为n个part级特征向量,从中可以得到part表示矩阵(PR-Matrix),记为P = (pj,i)n×t。如图2所示,显然,PR-Matrix中对应的向量行,记为Pj,·= {Pj, i|i = 1,2,…, t}表示第j部分的步态变化。因此,自然可以通过将Pj,·聚合成特征向量vj来提取第j部分的时空特征,其表达式为

把所有帧的第n 部分 分别送入MCMn  聚合成向量vj,式中MCMj为第j个微动作捕捉模块(MCM)。由n个参数相互独立的并行mcm组成时序特征聚合器(TFA)。最后,使用几个独立的FC层将从TFA提取的特征向量映射到度量空间,以进行最终的个体识别

3.2. 帧级部分特征提取器

帧级部分特征提取器(FPFE)由三个块(block)组成,每个块由两个焦卷积层(Focal Convolution layer, FConv)组成,目的是提取每一帧的部分信息空间特征。接下来,将首先详细描述焦卷积层,然后是FPFE的确切结构。

Definition.FConv是卷积的一种新应用,它可以首先将输入特征映射水平分割成几个部分,然后分别对每个部分进行规则卷积。设p为预定义部分的个数,特别地,当p = 1时,FConv等价于正则卷积层。

Motivation.为了增强对部分信息空间特征的细粒度学习,开发了FConv。如图3(a)所示,随着网络的深入,通过在FConv中设置超参数p,顶层神经元的接受野将被限制在比正常情况更窄的范围内,这使得即使在深度网络中,顶层神经元也可以关注输入帧对应部分内部更多的局部细节。这种对接受域的约束有望为每个部分提取更细粒度和更精确的特征

Operation.如图3(b)所示,首先将输入特征映射水平分割为p个预定义部分,然后分别对这些部分进行规则卷积运算。之后,将输出的特征图横向拼接,作为FConv的最终输出,FPFE的确切结构如表1所示

 3.3. Temporal Feature Aggregator

Temporal Feature Aggregator (TFA)由n个并行的微动作捕捉模块(Micro-motion Capture Modules, MCM)组成,每个MCM负责对相应部分的短时时空表示进行建模。接下来,我们以MCM的细节为重点,忽略预定义部件的索引。MCM包含两个部分:微动模板生成器(MTB)和时间池(TP)。设Sp ={pi|i = 1,2,…, t}为pr矩阵的一行,pr矩阵是一个具有序列和通道维数的二维张量MTB将部分级特征向量Sp序列映射到微运动特征向量Sm序列,公式为Sm = MTB(Sp)。之后,通过对序列Sm进行聚合,TP模块将提取最具判别性的运动特征向量v,表示为v = TP(Sm),用于最终识别

微动模板生成器(Micro-motion Template Builder MTB)

描述。将帧级部件信息特征向量映射到微运动特征向量中。假定短时时空表征(微运动特征)是循环步态最具判别性的特征,并认为任意时刻的微运动模式应完全由自身及其相邻帧决定。设R (pi, R) = {pk|k = i−R,…,i,……, i + r}表示由pi及其相邻帧组成的子序列,则可以定义第i时刻的微运动特征为:mi = TempFunc (R (pi, r))(4),其中TempFunc为微运动模板函数,目的是压缩子序列R (pi, r)。参考GEI将序列中所有帧的平均值作为步态的时空表示的做法[7],我们将两个统计函数连接起来作为模板函数的实例化。如图4所示,将模板函数应用于Sp的每一个时刻,我们实际上是在执行核大小为2r + 1的1- d全局平均池化和1- d全局最大池化。这样就可以得到微运动特征向量Sm的序列,可以表示为

此外,为了获得更具判别性的微运动表征,引入了通道注意机制,在每个时刻对特征向量重新加权[9,24,12,4]。在实际应用中,采用一维卷积核,重新加权的微运动序列Sre m可表示为

 其中Conv1dNet表示由两个一维卷积层组成的小网络

如图4所示,MTB就像一个滑动窗口检测器。一方面,窗口内的所有帧级特征向量将被TempFunc压缩成一个微运动向量;另一方面,引入通道注意机制,使模型能够根据窗口内的特征对微运动矢量进行重新加权,从而突出更多有鉴别性的运动表达式进行最终识别。在实践中,有两个mtb,在MCM中使用不同的窗口大小(3和5),如图5所示。每个MTB中Conv1dNet的确切结构如表2所示。本设计的目的是在序列维度上融合多尺度信息,从而收集到更丰富的微运动特征

Temporal Pooling

对微运动特征向量序列进行聚合,表示步态运动模式(7)

作为一个周期运动,一个完整的周期应该能够完整地代表理想状态下的整个步态序列

因此,令Sre m (T) = {mre i |i = 1,…, T}表示一个完整的步态周期内的微运动特征序列(T为周期),TP模块应满足如下公式:(8)

选取了应用于序列维的两个自然简单的统计函数,即mean(·)和max(·)作为TP模块的实例化。

显然,当且仅当t是ofT的整数倍时,Eq.9=Eq.10(这里我就不是常数了)然而,现实世界的步态视频长度是不确定的,均值(·)的统计函数似乎是一个糟糕的选择。当TP(·)= max(·)(11)(12)由于步态是一个周期性的动作,很明显Eq.11=Eq.12。因此,在最终决策中使用函数max(·)

实验结果

 

 消融实验和对时空的研究

为了验证GaitPart中每个组件的有效性,我们将在CASIA-B上进行几种不同设置的消融研究,包括在FConv中设置不同的p  value,在MCM模块中只设置一个或两个mtb,在MCM模块中应用注意机制w/和w/o,在TP模块中使用不同的实例。实验结果及分析如下:FConv的有效性。实验组A按照3.4节中FConv超参数p的设置方式,分别进行编号为A- A、b、c、d的4个对照实验,实验结果如表5所示。值得注意的是,在实验A-a的主干中,所有FConvs的p值都设为1,即主干完全由规则层组成。1)我们清楚地发现,所有使用FConvs的实验(包括A-b, c和d)都比实验a获得了更好的性能。这一方面验证了FConv的有效性。另一方面,在GaitPart中也声明了FConv中p值变化的鲁棒性。2) A-d与A-c的比较表明,在Block1(底层)使用FConv会对性能产生负面影响。可能的原因是在底层,相邻部件之间的边缘和轮廓信息会被FConvs破坏。3)在NM子集上,平均rank-1精度先上升后下降,而在BG和CL子集下,平均rank-1精度保持上升趋势。造成这一现象的原因认为,顶层神经元不同的感受野可能适应不同的行走条件,在表3所示的其他基准测试中,没有使用FConvs的实验A在A组中表现最差,但在A组中表现最好。由于A-a中使用的骨干比其他基准测试更轻,更简洁,因此可以松散地和部分地验证MCM模块的有效性。最后,选择综合性能较好的实验A-c作为GaitPart的基线。

1)MCM中的多尺度设计(在3.3节中提到)有助于捕捉鉴别微运动特征。2)通过对比实验B-a和B-d,我们发现引入注意机制是必要的。3)实验B-a与实验B-e的对比表明,TP模块的实例化对GaitPart至关重要

在本节中,我们的目标是公开探索时间信息和外观特征分别在GaitPart中扮演什么角色。为此进行C组实验,实验结果如表7所示。正如您所看到的,在训练阶段(C-a)和测试阶段(C-c)对输入帧进行打乱可以获得较差的性能,但精度下降并不那么严重。结果表明,即使在输入序列的时序信息被打乱的情况下,该模型仍能取得不错的性能。这表明静态外观特征在步态识别中确实起着至关重要的作用。但我们并不认为时间信息是微不足道或不必要的,因为模型在换装条件下获得了相当大的准确性提升,而在现实场景中步态外观变化很大。从表7可以看出,时序信息也是GaitPart中非常重要的鲁棒性特征。

 最后选择Ac Ba Cb  即 p值选1 4 8   MTB1 +MTB2 +ATTENTION(注意力机制)+SORTED (固定帧)

个人总结反思

再读这篇论文又有很大的收获,反思总结复盘真的很有意义的效果,深刻理解了,作者写这篇篇文章的思路。

从一个假定开始——作者认为在行走过程中,人体的不同部位具有明显不同的视觉外观和运动模式人体的每个部位都需要自己的时空表达,然后设计模块对人体进行part级别的划分,设计了Fconv 增强对部分级空间特征的细粒度学习,在帧级部分特征提取器(FPFE)中设计了三个Fconv  block 在H维度划分的p分别是1 4 8 在消融实验中作者还发现在Block1(底层)使用FConv会对性能产生负面影响。可能的原因是在底层,相邻部件之间的边缘和轮廓信息会被FConvs破坏所以在第一个block 不进行焦点卷积,

第二个假设  通过对现象的分析 作者认为长距离依赖关系对于步态识别可能是多余的和无效的,所以设计了 微运动捕获模块(MCM)  ,假定短时时空表征(微运动特征)是循环步态最具判别性的特征,并认为任意时刻的微运动模式应完全由自身及其相邻帧决定,设计了两个MTB,MTB就像一个滑动窗口检测器。一方面,窗口内的所有帧级特征向量将被TempFunc压缩成一个微运动向量;另一方面,引入通道注意机制,使模型能够根据窗口内的特征对微运动矢量进行重新加权,从而突出更多有鉴别性的运动表达式进行最终识别,将TempFunc做为微运动模板函数,其本质是max 和avg 相加,作者设计两个MTB窗口分别为3 和5 在序列维度上融合多尺度信息,从而收集到更丰富的微运动特征 ,并且将微运动模板函数加入了attention机制,这种开阔思维,“不止于此”方法值得我们学习

作者的消融实验中还对时空的进行了研究,静态的外观特征和动态的时间信息都是个体步态的代表性特征。但是,许多先前的方法在没有建模时间特征的情况下取得了良好的性能,在这些最先进的方法中,输入帧的顺序并不重要(gaitdet)作者公开探索时间信息和外观特征分别在GaitPart中扮演什么角色,作者在实验中进行了shuffle 和sorted 固定帧的实验,结果表明,即使在输入序列的时序信息被打乱的情况下,该模型仍能取得不错的性能。这表明静态外观特征在步态识别中确实起着至关重要的作用。但我们并不认为时间信息是微不足道或不必要的,因为模型在跨着装下获得了相当大的准确性提升,而在现实场景中步态外观变化很打,所以在以后的实验中还是要充分考虑时间因素,因为在现实场景中,还是要灵活处理背包 穿大衣 等真实情境,以推动步态识别走向实际应用。

下一篇,我将对opengait 中gaitpart 的代码进行解析,以便更好的理解每个模块的实现过程,提升代码能力的同时,了解步态识别实现过程,最近有点爱上读论文啦,目标是四月读完至少30篇文章!!加油哦

  • 16
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值