步态识别是目前全球前沿的生物特征识别技术,是生物特征识别技术分支之一。步态识别主要是通过人的身高、腿骨、肌肉、关节等身体体型特征和行走姿态来分析、识别人员身份的技术,与指纹、人脸、虹膜等其它生物识别技术相比,步态识别具有远距离、非接触、抗伪装、跨着装、跨视角、对光线不敏感等显著优势,是非常适合在视频监控中应用的生物特征识别方法之一。
一、概述
回首步态识别技术二十多年的发展历程,随着机器学习、深度学习的应用和研究人员的不断攻关克难,许多经典的步态识别算法如雨后春笋般被相继提出,步态识别领域涌现出许多优秀的研究成果,成功挑战了各种难点,在实际应用过程中发挥了巨大的作用。尤其是近五年,步态识别研究从非深度学习转向基于深度学习后,许多基于深度学习的步态识别算法更加完美地解决了各种疑难问题。基于深度学习的步态识别方法通过自动学习辨别表示的能力,重塑了这一领域的研究格局。
步态识别技术虽然相比其他生物识别技术具有典型优势,但在算法模型训练和实际应用过程中也存在很多挑战。步态识别算法是利用图像和视频序列来建立人员模型,达到提取目标人物步态轮廓特征的目的,算法指标会因个人外观,比如人员携带背包、手提物品、戴帽子、穿厚衣服或长裙等,人员身体被部分遮挡,摄像机视角发生变化及以复杂的背景、光线等而产生影响,这通常让步态轮廓分割和人员识别更加困难。
步态识别系统一般由特征提取、特征表示和分类等模型组成基本框架。首先通过目标检测算法和分割算法计算出目标样本的轮廓序列,再对轮廓序列进行特征计算和提取,然后利用提取到的特征进行特征表示,最后依据特征表示来判断人的身份。根据特征提取和特征表示的方法,可以将步态识别方法分为基于表观的方法和基于建立人体模型的方法,基于表观的方法又分为基于特征模板的方法和基于序列的方法。
二、基于表观的步态识别方法
基于表观的步态识别方法通过学习行人的外形特征来匹配识别行人身份,通常使用人体轮廓作为原始输入数据。轮廓是步态识别技术中最常用的身体表示,可非常有效地描述身体状态,将画面背景中每个包含身体主体的图像减去,再进行二进制化即可,可以比较容易被计算出来。一系列的步态轮廓可以表示人员行走时的速度、步长、腿部角度、节奏、步态周期时间以及身体摇摆状态等步态特征,通过光流计算还可以提取出人员行走时的运动数据。同时,行人个体外观的变化对步态轮廓的影响极为敏感,比如行人携带行李或者服装的变化,这也是基于表观的步态识别方法研究人员主要的研究任务和挑战。
基于表观的步态识别方法又可以进一步分为基于特征模板和基于序列的步态识别方法。
1. 基于特征模板的步态识别方法
基于特征模板的步态识别方法通常分为模板的生成和匹配两部分
模板生成首先通过背景减除法来估计每一帧图像中的人体轮廓,再采用“像素级”操作方法对齐轮廓,然后压缩融合生成一个步态模板图像。步态能量图像(Gait Energy Image,GEI)是最流行的特征模板之一,不仅简单而且非常稳定有效,不但计算成本非常低还能达到相对较高的识别率。
模板匹配通常使用规范相关分析(CCA)、线性判别分析(LDA)等机器学习方法和深度学习方法来实现。首先从模板图像中提取行人步态表示,再使用欧式距离或其他度量学习方法来测量表示对之间的相似性,例如视图转换模型(VTM);然后利用视图不变判别投影(ViDP),以学习视图不变表示方式;最后使用向量机(SVM)或最近邻标签、最近邻分类器等识别步态特征。根据技术的演进,下面介绍几种基于深度学习的典型步态模板特征方法。
DeepCNN 提出基于深度卷积神经网络(CNN)框架学习成对的 GEI 之间的相似度,从而实现了跨视角步态识别,取得了相当不错的识别准确率。
该方法最早采用 CNN,且创新性地将步态特征之间的距离度量通过一个网络学习的形式进行更新,在相当长的时间内一直是步态识别领域内准确率最高的方法。针对不同的步态场景,该方法提出了三种不同结构的模型,分别从全局层、中间层、底层进行成对步态特征的融合。其中由于全局层融合的方式可预先存储已注册的步态特征,因此更加贴合实际应用过程中的实时检索需求。
GEI-Net 采用步态能量图 GEI 直接训练一个 CNN 分类器,并在最后一层提取步态特征。其结构简单较易实现,易于迁移至其他数据集,该方法超过了非深度学习方法的步态识别性能,是比较受研究者欢迎的基准框架(Baseline model)。该方法测试时仅需提取测试图像的特征,然后直接与注册库的特征批量化比较相似度,测试时仅需前向传播一次,具有较高的识别速度。
GaitNet 由两个 CNN 组成,分别对应于步态分割和分类,两个 CNN 同时在一个联合学习过程中建模,使得分割的步态轮廓图像更适合于识别,且性能比单独学习更好。通过对原始步态视频序列进行分割得到步态轮廓图,然后将步态轮廓图融合成步态模板,再从步态模板中学习步态特征,实现分割和识别一体化设计,该策略极大地简化了传统的逐步框架,因此对实际应用更为有效。
为了适应不同的视图条件,基于生成对抗网络的方法和自编码器的方法通过生成 - 对抗(或解码 - 编码)的方式从任意的角度转换为一个特定的视图,比如堆叠式渐进自动编码器(Stacked Progressive Auto - Encoders,SPAE)。此编码器前两层重构出不受服饰与携带物品影响的 GEI,之后的各层编码器都负责克服一个相对小的视角变化,通过这样堆叠式的编码器方式实现跨视角的调整。同时,还有学者提出一种步态生成对抗网络(Gait Generative Adversarial Net,GaitGAN)方法以克服协变量的干扰,以 GAN 模型作为回归器,生成不变且具有正常服装和不携带行李的侧视图像。这种方法的一个独特优点是,在生成不变的步态图像之前,不需要视角和其他变化。GaitGAN 将源图像转换为目标图像的转换器的结构图如图 2 所示。
GEI-GAN 是利用深度学习算法增强步态能量图的算法,用一个生成对抗网络(GAN)来解决步态周期不完整的步态识别问题。GEI-GAN 包括生成器、真实 / 假识别器的输入和接受两个输入的身份识别器,可以将一个不完整的 GEI 转换为一个完整的 GEI。此架构成功地从极端不完全的步态周期中重建了完整的步态能量图,解决了行人遮挡等问题,其网络结构如图 3 所示。
这些方法基于步态模板可以在一定程度上处理视野、衣服和搬运条件,但是步态模板在融合过程会导致一些时间信息丢失,仍然存在许多不足之处。
2. 基于序列的步态识别方法
基于序列的步态识别方法是直接从步态剪影序列中提取步态特征的方法,弥补了基于特征模板的步态识别方法丢失行人时间信息的缺陷,可以更加完整的保留行人特征信息。基于序列的步态识别方法直接采用一系列行人轮廓作为输入,学习步态的时序信息,在跨视角识别任务中表现出了优异的性能。
基于3D-CNN 的方法用于行人动作识别,利 用三维卷积提取时空信息,在此基础上基于3D-CNNs 的多角度步态识别的方法,在面对跨视角的环境性能表现很好。基于位置的时空网络(PTSN)在解决识别行人穿着和携带背包等变化对提取人体轮廓的影响取得了不错的成绩。
最近,研究人员认为步态不是一个连续的轮廓,而是一个由独立轮廓组成的集合,采用一个名为GaitSet 的新网络从该集合中提取不变特征,这些方法可以在横视图条件下获得很高的精度。同时为了捕获每个部分的时空特征,设计了一种基于部分的模型(GaitPart)方 法。而 Gait Lateral Network 则是为了防止基于部分的模型中冗余特征而设计,它采用了两阶段的训练策略来有效地学习紧凑的特征。
以上这些基于序列的步态识别方法在性能方面完胜之前基于特征模板的步态识别方法。以下几种是基于深度学习的步态序列特征识别方法的典型代表。
GaitSet 不再使用步态能量图 GEI,而是将步态剪影序列看作一个图像集并从中直接学习步态表达。这种方法的优势在于可以将整个步态序列的每一张图像都作为训练样本,可以充分利用 CNN 的强大学习能力。同时,该方法可以通过遍历整个步态序列学习不同步态图像之间的差异,避免了生成GEI 方法中通常会损失部分信息的局限。此方法在多个公开的跨视角步态数据集上取得了优异的性能,也证明了通过小片段序列学习步态特征的可行性。
GaitPart 假设人体的每个部分都需要自己的时空表达,针对这一假设提出了一个新的见解,即由于人体在行走时具有不同的视觉外观和运动模式,人体的每个部分都需要自己的时空模式。GaitPart 输入的是有序的序列,经过“帧级”部分特征提取器(FPFE)提取了部分级空间特征的细粒度学习,同时设计了微小运动捕获模块(MCM),将多个平行的 MCM 组成为时间特征聚合器,聚合了时间特征。MCM 是一种新的步态任务时间建模方法,它关注短程时间特征,而不是周期步态的冗余长程特征。这种方法具有结构简单、性能优异、速度快、易于实际应用等优点。
Gait Lateral Network 提出利用深度卷积神经网络中固有的特征金字塔来增强步态表示,解决从轮廓中学习诸如服装、携带物和相机视角的挑战。通过由不同阶段提取的帧级和集合级特征以自上而下的方式与横向连接合并,从而增加步态表示。同时为了达到描述步态特征数据足够少、能够实现大量存储、高效识别的目的,GLN 设计了一个压缩模块,显著减少了步态表示的尺寸,而不妨碍准确性。其模型结构如图 4 所示。
MT3D利用框架和区间融合信息集成了多个时间信息。同时通过局部转换模块实现了区间级表示。具体地说,将三维卷积神经网络(三维 CNN)应用于小时间尺度和大时间尺度来提取时空信息。另外 MT3D 还采用一种帧池化方法来解决三维网络与视频帧输入不匹配的方法,并设计了一种新型的三维基本网络块来提高效率。
基于模板的方法可能会丢失时间信息,而基于序列的方法则不能充分利用序列之间的时间关系。同时,MT3D 这种新的多时间尺度步态识别框架弥补了两者之间的劣势,很好地解决了上述问题。
三、基于模型的步态识别方法
基于人体模型的步态识别方法是在于建立一个 2D 或 3D 的人体结构和运动模型,通过将图像动作特征映射到模型的结构成分上,用结构模型来捕获步态的静态信息,用运动模型来捕获步态的动态信息,以此来进行行人身份识别。与基于表观的方法相比,在人体建模精度上基于模型的方法对于解决遮挡和跨视角等问题表现更加突出,对很多变化都具有鲁棒性。
最初,基于模型的方法虽然被证明有能力识别不同类型的步态,但是不如基于表观的方法流行,主要是因为基于模型的方法采用手动标记人体不同的身体部位,或者使用一些特定的设备来捕获人体的关节位置,效果不佳;同时从图像中进行身体建模需要花费高昂的计算成本。
早期研究人员通过一个简单的棒模型来模拟腿,再使用铰接的钟摆运动来模拟行走过程中腿的运动,最后通过提取频率成分作为步态特征进行行人识别。后来研究人员发现行人每个关节在时域中的角度变化可以提高步态识别的准确率,设计出了一个多连接刚体模型,刚体由 14 个部分组成,每个部分通过一个接头连接。为了从身体关节中提取时间特征,采用从 RGB图像中提取的人体关节热图(Heatmap),而不是使用二进制剪影来描述人体姿势,热图通过一个长短期记忆递归神经网络提取时间特征。与基于表观的方法相比,基于模型方法主要依赖位姿信息进行识别,大多数情况下对视角变化和外观变化更具鲁棒性。
后来,研究人员开始利用人体骨骼和身体关节来识别不同的人。为了降低成本,采用低成本传感器采集骨架数据,而不是特定设备。经过实验证明,通过传感器采集到的身体关节数据包含了足够多的人体识别数据效果明显。但是此方法不适合在视频监控场景下应用,原因是视频监控摄像机大多数是RGB 而非传感器。基于 3D 骨架的步态数据集包含骨骼关节的 3D 信息和相应的 2D 轮廓图像,用此数据集构建的步态模型提取到的人体静态和动态特征,通过验证提取到的静态特征和动态特征对于步态识别具有视图不变性,通过最近邻分类法对静态和动态特征进行匹配融合,完成步态识别过程。
近年来,步态识别主要是基于深度学习的方法,使用深度自编码器网络学习了从二维图像到三维姿势的非线性映射,人体姿态估计工作取得了重大进展。使用深度 CNN 的自下而上的姿态估计方法可以创建准确的人体模型,该方法可以处理一个图像中的多个人并且可以预测向量场,称为部分亲和力场(PAFs),直接估计图像中解剖部分之间的关联。从图像中提取的二维姿势并不是视角不变的,但三维姿势是视角不变,即不受视角变化的影响。从一张图像中估计一个三维姿态虽然不太严谨,但由于对人体的限制,基于单一 RGB 图像的三维人体姿态估计方法优于许多最先进的三维姿态估计系统,它也不需要多个摄像头,适用于视频监控场景下的应用。
下面将介绍几种典型的基于深度学习算法的步态识别方法。
PoseGait 利用卷积神经网络从图像中估计行人三维姿态,为了提高特征提取的效率,PoseGait设计了一些基于先验知识的手工特征,将姿态、关节角度、肢体长度、关节动作四种特性连接在一起,在训练阶段结合两种损失来减少类内变化和改善类间变化。该方法使用 3D 人体姿态作为特征,具有很好的紧凑性,只存在于关节之中,将三种基于先验知识的时空特征和人体姿态特征相结合,丰富了特征,提高了识别率。通过实验验证,该方法的性能媲美一些最新的基于表观的方法。
JointGait 利用二维关节识别步态,提出了一种基于模型的步态识别方法,从 2D 人体关节中提取步态信息,而不是人体形状和步态外观,该方法以卷积网络估计人体关节为输入,再构造图卷积网络提取时空步态特征,然后使用关节关系金字塔映射(JRPM)将时空步态特征映射到一个更具鉴别力的空间,最终在融合损失策略下更好地处理变化。在 KinectGait 生物测量数据集数据库上,JointsGait 只使用相应的二维数据,但与那些基于模型的三维关节算法相比,取得了较满意的识别精度。在 CASIA-B 数据库上,该方法在所有行走条件下都大大优于先进的基于模型的方法,当服装严重影响人体外观时,甚至性能优于最先进的基于表观的方法。
最近,一种基于端到端模型的步态识别方法被提出,该方法具有更加先进的性能。具体地说,该方法使用一个被剥皮的多人线性(SMPL)模型来进行人体的建模,并使用一个预先训练好的人的网格恢复(HMR)网络来估计其参数。由于预训练的HMR 不是面向识别的,而是在端到端步态识别框架中对其进行微调。为了应对步态数据集与用于预训练 HMR 的数据集之间的差异,该方法引入了步态数据集中的剪影掩模与由可微渲染器生成的估计SMPL 模型中的渲染剪影之间的重建损失。这使该方法能够让 HMR 适应步态数据集,而不需要监督使用地面真相关节位置。OU-MVLP 和 CASIA-B数据集的实验结果表明了该方法在步态识别和验证场景中的更加先进的性能,这是基于端到端模型的框架产生的明确解纠缠姿态和形状特征的直接结果。
四、总结与展望
基于建立人体模型的方法相当于建模人体的底层结构,基于表观的方法直接从视频中提取步态表示,而没有明确地考虑底层结构。基于建立人体模型的方法在许多情况下,很难从在不受控制的条件下拍摄的视频中精确地恢复身体结构。相比之下,目前基于表观的方法是更适合大规模实际应用的技术,同时随着深度学习和人体建模方法的不断进步,基于模型的步态识别方法也将会大放异彩。