GaitSet(IAAA)(步态识别)

时间:2024-04-01 08:22:55

GaitSet(IAAA2019)(步态识别)
论文地址:https://arxiv.org/pdf/1811.06186.pdf
github:https://github.com/AbnerHqC/GaitSet

GaitSet是一种针对步态识别问题提出的模型,其切入角度新颖,模型灵活性高,速度快,且性能优秀。下面先介绍一下步态识别任务的基本信息(内容来源于网络查询和本论文的Introduction、Related Work部分),然后再介绍GaitSet架构。

1.步态识别任务概述

 步态识别任务和传统行人ReID任务类似,即给定注册样本和验证样本,找出验证样本中和注册样本具有相同身份的那些样本。常用数据集如OU-ISIR MVLP/LP、CASIA-B等。步态识别中每个目标的样本是一段连续序列,且一般是剪影图(silhouette,或者译为轮廓图),其示例如下图(Figure1)。
GaitSet(IAAA2019)(步态识别)
 步态识别可以在一定距离下进行识别,且不需要目标的配合(这相比人脸识别、指纹识别等具有更广泛的应用场景,比如犯罪预防、社会治安等)。不过,步态识别会受一些外部因素的干扰,如目标行走速度、衣着、相机视角、帧率等。
 当前主流的步态识别方法分为两类:基于模板(template-based)基于序列(sequence-based)。前者将所有步态剪影图压缩为单张图片或步态模板,而后提取其步态特征并进行匹配(识别);后者则是直接将剪影序列作为输入来提取特征(比如基于3D CNN或LSTM)。显然,后者引入了更丰富的空间信息,且加入了时序信息,不过与此同时带来了较高的计算代价。

2.数据集介绍

2.1 CASIA-B(http://www.cbsr.ia.ac.cn/english/Gait%20Databases.asp

 CASIA-B是一个比较经典的步态识别数据集(2006),其包含124个目标(subjects),每个目标有3种步行情况和11个角度。3种步行情况指“normal(NM)”、“walking with bag(BG)”、“wearing coar or jacket(CL)”,其中每个目标有6段NM序列、2段BG序列、2段CL序列。11个角度是指0°、18°、…、180°。因此,这124个目标中,每个目标都有11×(6+2+2)=110段序列。经我观察,每段序列长度不定,一般80~100帧。
 另外,该数据集没有官方的划分训练集和验证集,一般的做法是使用三种划分方法:
 (a)Small-sample training(ST):训练集24个目标,验证集100个目标;
 (b)Medium-sample training(MT):训练集62个目标,验证集62个目标;
 (c)Large-sample training(LT):训练集74个目标,验证集50个目标。
 并且,在测试集中,将4段NM序列作为gallery,剩余的2段NM、2段BG、2段CL作为三组probe。

2.2OU-MVLP(http://www.am.sanken.osaka-u.ac.jp/BiometricDB/GaitMVLP.html

 OU-MVLP是目前为止最大的步态数据集,共有10307个目标,14个角度,每个角度2段序列。该数据集的划分方式是,5153个训练集和5154个验证集。验证集中每个角度的一段序列作为gallery,另一段序列作为probe(不过该数据集下载较为困难,需要索取者所在机构的法人代表签字并向官方发送发布协议书)。

3.GaitSet基本介绍

 上文中提到,当前步态识别方法主要是template-based和sequence-based。template-based方法会导致时序信息得不到利用,sequence-based方法则会由于引入了时序约束从而丢失了灵活性。本文的GaitSet并不属于上面的两类,而是一种将步态序列视为一组无序集合来处理的方法。这种处理的好处是:
 (a)灵活(对输入目标步态图的次序、连续性、场景等没有约束);
 (b)速度快(模型直接计算步态特征而非计算步态间的相似度,也就是每一个样本的特征只需要计算一次);
 (c)效果好(详见后文的结果图)。
 至于为何能将步态序列视为无序集合,作者做了如下推理:

通过观察,处于不同位置的剪影图其外观也不同(见Figure1)。即使我们将这些剪影图打乱顺序,还是可以单凭外观特征来将其重新排列回原本的顺序。因此,作者假设,剪影图的外观中已经包含了其位置信息,不需要在输入时候再强加顺序信息了。

4.GaitSet三步架构

 GaitSet模型的整体设计架构可以分成三个部分,整体框架见Figure 2(乍一看图比较复杂,其实思路很清晰):
 (a)帧级特征提取(frame-level):用CNN网络提取帧级特征,维度(n,c,w,h);
 (b)集合特征聚集(set-level):将帧级特征聚合为集合级特征,维度(c,w,h);
 (c)区别性特征映射(discriminative):将集合级特征映射为最终的m维特征,使其更具有区分性从而便于计算相似度。
GaitSet(IAAA2019)(步态识别)

5.GaitSet关键技术介绍

 Figure 2中展示了GaitSet的整体框架,其中帧级特征提取阶段就是使用简单的CNN结构,在此不再介绍,下面针对图中的SP(Set Pooling)、HPM(Horizontal Pyramid Mapping)、MGP(Multilayer Global Pipeline)三个部分做介绍。

5.1 Set Pooling

 Set Pooling用于将帧级特征聚合为集合特征,即将(n,c,w,h)维度的特征聚合为(c,w,h)维度。该功能(函数)需要满足两点:1)排列不变性,即该函数的输出与输入变量的顺序无关(因为GaitSet就是将输入视为无序集合);2)输入集合大小任意,即该函数可以接受任意尺寸的n作为输入维度。
 作者提出了Set Pooling的备选策略:
 (a)统计函数:max()、mean()、median();
 (b)联合函数:将上述统计函数进行结合,比如对其输出进行拼接(concatenate)并用Conv1×1来学习更好的结合权重;
 (c)注意力机制:为上述的联合函数再引入注意力机制,其结构见Figure 3。
 注:经过实验,作者最终选用max()函数作为Set Pooling的实现方法,因为其结构简明且效果也足够好。

5.2 Horizontal Pyramid Mapping

 HPM部分是为了将Set Pooling提取的(c,w,h)维特征映射为m维特征,使其具有更好的区分性,便于计算步态特征间的相似度。其设计思路是基于HPP(Person ReID)的,并做了些许改进(HPP来自于IAAA2019的论文《Horizontal Pyramid Matching for Person Re-identifification》,其思路是将特征图进行多种水平划分来提取特征)。
 下图分别是HPMatching(HPP)和本文HPMapping的结构图,可以看到,HPMapping在做特征提取时将HPMatching中的Conv1×1替换为了参数独立的全连接层。这样做的理由是,水平划分后的每个strip代表了不同感受野和不同空间位置的特征,用参数独立的FCs来提取特征会更有效。
GaitSet(IAAA2019)(步态识别)
GaitSet(IAAA2019)(步态识别)

5.3 Multilayer Global Pipeline

 MGP的设计动机是,CNN中不同层具有不同的感受野,作者使用MGP结构来汇总不同层下的集合信息来提取特征。其结构和网络的主体部分相似,只是会不断加入主体网络不同层下的集合信息。

6.实验结果

 GaitSet在CASIA-B和OU-MVLP上都取得了很好的结果,另外作者也做了消融实验来验证其架构的合理性。下面呈现其在CASIA-B上的结果以及消融实验结果。

 另外,作者也通过实验验证了GaitSet拥有较强的实用性,具体为:
 (a)当输入步态图不完整而是断断续续时,模型效果受影响较小;
 (b)当输入步态图包含不同视角时,有助于提升模型性能;
 (c)当输入步态图包含不同步行情况时(NM、BG、CL),模型仍能提取有效特征。

7.总结

 本文中作者用一种新颖的视角来看待步态识别问题,GaitSet能“有效且高效”地提取“空间和时间”特征,从而获得了优秀的性能。最后作者也证明,GaitSet的实用性也很强,其宽松的输入限制可以使其获得更广泛的应用场景。作者对问题的推理假设很精彩,行文思路也比较清晰严谨,这些都是我们初学者值得学习的地方。
GaitSet(IAAA2019)(步态识别)
GaitSet(IAAA2019)(步态识别)
 另外,作者也积极借鉴了其它学者的研究成果,比如将无序集合的思想引入到步态识别中(该思想最初引入到CV领域是2017年的PointNet,目的是解决点云问题,后来Zaheer et al. 2017进一步公式化了定义在集合上的深度学习任务并描述了排列不变函数(permutation invariant functions,本文的Set Pooling就是该类函数)),比如借鉴Person ReID中的HPMatching框架并针对步态识别问题做改进。
 总之,我认为这是一篇很有学习价值和应用价值的文章。