基于深度学习的红外图像人体步态识别方法

2022-03-22 03:35朱小鹏云利军张春节
计算机工程与设计 2022年3期
关键词:步态轮廓预处理

朱小鹏,云利军,2+,张春节,王 坤

(1.云南师范大学 信息学院,云南 昆明 650500;2.云南师范大学 云南省光电信息技术 重点实验室,云南 昆明 650500)

0 引 言

人体步态与虹膜、指纹一样,作为每个人独一无二的生物特征[1],在近些年越来越受到了关注。目前在国内对步态识别也展开了相应的研究,但是相比于虹膜识别、指纹识别以及人脸识别,步态识别的相关研究要略显滞后。在虹膜识别、指纹识别、人脸识别等领域中,深度学习等技术也早已成为了较为常用的技术手段,而步态识别的常用技术手段依旧停留在使用传统的图像处理技术。相比于虹膜、指纹、人脸等这些生物特征,步态有着其独一无二的特点与优势[2]。首先步态数据的采集可以是非接触式的方式,采集距离可达50 m;其次,步态数据的采集是一种非配合式的采集方法[3],在采集的过程中并不需要被采集人的完全配合,正是由于这些优点,所以步态识别在被用在刑事侦查领域时能够保证一线公安干警的人身安全。

从目前的步态识别研究中来看,绝大多数还是着重于在可见光下对人体步态数据的收集与识别进行研究,而在红外图像中的步态识别的研究工作则较为少见。由于红外摄像仪与可见光摄像机的成像原理的不同[4],造成了红外摄像仪的成像质量远不如可见光相机的成像质量,但在一些特殊场景和天气中,例如黑夜、大雨、大雪、浓雾等极端天气下和可视条件差等情况下,红外摄像仪仍然能够保持正常工作[5]。基于红外摄像仪的这一特性也极大程度上扩展了步态识别应用的条件与领域。

1 相关工作

1.1 现有研究

目前,在步态识别领域的相关研究仍然不多,特别是利用深度学习等方法进行步态识别任务的研究则更为少见。现有的步态识别方法中较为典型的就是步态能量图(gait engery image,GEI)[6]。通常我们把每个人的行走过程定义成若干个步态周期组成的集合,而步态能量图的主要思想就是把人体行走中的某个步态周期中的所有轮廓按照某种规则相叠加在一起,以此构成该识别目标的步态模板,再以此模板去完成相关的识别任务。该方法的优点在于能够最大程度减少步态轮廓图中的噪点干扰,同时也能够较为有效融合步态轮廓图中的空间信息。但是步态能量图所存在的不足也较为明显,当采集步态信息的时候,如果两个摄像头所拍摄的角度有较大差别,那么生成的步态能量图势必会因为角度原因产生差别。

例如,Maryam Babaeea等[7]提出了一种基于深度学习的方法来将不完整的步态周期转换为相应的完整步态能量图(GEI)。更确切地说,这种转变是通过训练几个独立的自动编码器完成的,然后把它们组合成一个统一的模型。

另外,施沫寒、王志海提出了区别于单纯依靠图像本身进行步态识别的方法,将步态周期中的时间序列作为一个重要的因素,并使用基于Shapelet的时间序列分类方法进行步态识别[8],但是该方法与深度学习相关方法相比时仅在数据量较小时准确率较好。Hanqing Chao等[9]提出了一种步态识别的观念,即把步态周期中的每帧图片视为单个步态特征,再使用深度神经网络对这些单帧步态图片进行特征学习,在使用CASIA-B的数据集进行训练后,最终得出的准确率能够维持在95%左右。

Zifeng Wu等[10]提出了一种基于深度卷积神经网络(CNN)的步态识别方法网络。通过一小组标记的多视角人类行走视频,可以训练深度网络以此来对人物身份进行识别。

除了以上这些方法,还有相关研究人员使用非计算机视觉领域的方法完成了对人体步态的识别。当视角发生改变后带来的是识别准确率的下降,为了解决此问题,Xianye Ben等[11]提出了张量分析法,该方法通过通用的张量表示框架实现了跨视点步态识别任务。

1.2 研究准备

在研究中,本文采用了CASIA-C步态数据库[12],该数据库是由中国科学院自动化研究所生物识别与安全技术研究中心所提供的。CASIA-C步态数据库为红外图像数据库,其中包含了153人在正常行走、快走、慢走、携带包走等4种条件下的步态图片。CASIA-C数据库为本文的研究提供了基础条件,但由于红外摄像机本身的成像原理,造成了CASIA在成像后具有图像缺失等缺点,因此本文利用传统图像处理技术对该数据集进行了前期预处理。

在识别模型方面,采用了本团队前期的研究成果,在可见光的步态识别研究中所搭建的LFN模型[13],并在LFN的基础上做了进一步的改进与优化,使得模型的识别准确率和稳定性都有了较大的改善,改进后的模型将其称为LFN V2。

2 数据集与模型

本文实验采用的数据集为生物识别与安全技术研究中心所提供的红外步态数据库,但由于红外图像本身存在对比度低、噪点多、边缘模糊、视觉特性差[14-16]等特点,为了抑制红外图像所产生的不属于步态的额外信息,本文在该数据集的基础上做了相应的预处理,以满足本文的实验要求。在前期使用本团队搭建的用于可见光的步态识别模型得到了良好的效果,但由于红外图像存在轮廓缺失的情况,从而造成了步态轮廓特征的丢失,使该模型应用在红外图像时出现了不稳定的情况。基于此,本文对模型做了进一步改进。

2.1 数据预处理

由于CASIA-C的原始数据是把用红外摄像仪所拍摄的行人步行视频分解成单帧图像后,再进行了简单的前背景分离,这就造成了在CASIA-C数据集中每张图片的行人步态轮廓并不在统一的位置,当直接把这样的源数据用作模型输入时,就会导致模型在进行步态特征学习时,会学习到很多不必要的行人轮廓所处的空间信息,这与我们仅仅只想关注行人本身的步态特征相违背。

基于此,本文将对CASIA-C数据库做出相应的预处理,其主要思想就是需要获得每个行人步态轮廓的外接矩形,且需要保证外接矩形在每张步态轮廓的方向一致,以免增加额外的空间信息。因为CASIA-C数据集已经将所有图像转为了二值化图像,所以本文在确定步态轮廓外接矩形的坐标点时,选择了直接对图形的像素点进行逐个扫描。由于图像本身是二值化图像,所以当像素值由0变换为255后,就可以判定其属于步态轮廓范围,当把整幅图像扫描结束后,将图像中属于步态轮廓的列像素最小的坐标记为ymin, 将列像素中最大的坐标记为ymax, 同时在图像的行像素中将最小的坐标记为xmin, 最大的行像素的坐标记为xmax。 由这4个点可以得出行人步态轮廓外接矩形的顶角坐标为 (xmin,ymin), (xmax,ymin), (xmin,ymax), (xmax,ymax), 随后根据这4个顶角坐标就可以确定出行人步态轮廓的外接矩形,并按照这个外接轮廓截取出符合预期的数据。按照以上方法进行预处理后的效果如图1所示。

图1 轮廓裁剪后的对比

从图1中可以看出,经过预处理后能够很好丢弃掉不属于步态本身的空间特征信息,从而使模型只专注于对步态特征的提取。同时为了防止后期数据归一化时的人体轮廓的形变,我们按照裁剪出来的人体外接矩形的长或宽的尺寸,在周围填充上黑色像素,使其变为一张正方形的图片,以利于后期对数据归一化时调整图像大小不会发生形变。

对数据预处理的第二步就是抹除掉人体轮廓中不属于步态信息的特征,例如因红外热成像本身的原因,使其会记录下行人在被采集图像时所穿衣服的大致轮廓,或者是由于行人佩戴了饰品,从而造成图像局部的空洞。这些因素都会在无意间增加与步态信息无关的特征,从而使得模型学习了这些无关特征后降低模型的泛化能力。

由于非步态信息的特征在图像中的表现大多数为黑色的空洞,所以在这部分的预处理中本文使用了图像形态学中的闭运算,其数学表达式为

img=close(source,element)= erode(dilate(source,element)

(1)

式中:img表示经过闭运算得出的最后图像,close表示闭运算,erode表示图形学中的腐蚀[17],dilate代表图形学中的膨胀[18],source表示原图像,而element则表示在进行闭运算时所需核的尺寸。将闭运算展开之后,可以发现闭运算的本质就是对图像中人体轮廓部分先进行膨胀以弥合图像本身的黑洞,再进行腐蚀把由于膨胀而变形的人体轮廓恢复到接近原始的状态。经过闭运算之后的效果如图2所示。

图2 经过闭运算后步态对比

图2中,图2(a)、图2(c)为没有经过闭运算的步态图像,图2(b)、图2(d)是经过闭运算处理后的步态轮廓图像。从图中可明显看出,经过闭运算处理之后的图像把穿着的衣服、所背包裹以及发际线带来的轮廓很好弥合了起来,使得模型着重于对步态轮廓的学习而不需要对这部分的特征进行学习,从而提高了模型的泛化能力。

2.2 模型改进

在对步态识别的前期研究中,对可见光条件下的人体步态识别进行了深入研究,搭建了自己的步态识别模型并取得了较好的效果。由于红外图像的成像质量要远低于普通可见光图像,而且由于红外图像本身的特性给步态识别带来了许多额外的信息,使得该模型并没有在红外图像的步态识别中表现出良好的性能。基于此,本文对该模型进行了改进,以使其能够在红外图像的步态识别中表现出良好的识别效果。具体方法包括以下3个步骤:

(1)保证LFN的大框架不发生改变,只在局部进行微调,以保证模型依然具有对步态特征进行学习的能力。考虑到红外图像的步态轮廓图具有更多的噪点,导致了图像具有更多的冗余信息,我们在设计模型的时候希望获得更大范围的步态特征信息。因此本文在LFN的基础上取消了全连接层之前的最后一个池化层,以此来获得更大范围的步态轮廓信息。同时,为了抑制图像训练中的过拟合现象,把LFN中Dropout随机隐藏神经元[19]的个数由50%增大到了60%,从而使得模型获得更强的鲁棒性。

(2)把所有的卷积层后连接的激活函数由线性整流函数(ReLU)[20]改成了Maxou[21]激活函数,这主要是因为在使用ReLU时如果权重为负数的时候梯度将会被置为0,从而导致这个神经元有很大的概率将不会再被任何数据所激活。Maxout的工作原理类似于池化层,根据模型设计者自己设置的超参k,然后输出k个参数中的最大值。由于Maxout具有非常强的拟合能力,所以能够拟合出任意激活函数的形态,同时也能够很好弥补ReLU中神经元死亡的缺点。

(3)对LFN的优化器以及学习率的调整策略进行了更改。在LFN中使用的优化器为Adam[22],其优点在于拥有较高的计算效率同时对内存需求较少,并且能够自动进行学习率的调整,但在实验验证过程中Adam的表现并不稳定。所以,本文在优化器方面将其改为随机梯度下降(SGD)的优化算法,并将初始学习率设置为0.05,同时每经过30轮训练后把学习率迭代更改为上次学习率的0.8倍。经过实验验证,发现改进之后的LFN V2相比于LFN,在识别能力和正确率的稳定性方面都有了较大进步。改进后的LFN V2结构如图3所示。

图3 改进后的模型结构

与LFN一样,改进后的LFN V2对输入层经过一次卷积、激活和池化操作之后,再对得到的图片张量数据赋值为3份,然后用所分得的3份数据各自进行相应的计算。上面两层分别进行卷积、激活、池化等操作后,再把所得的结果相加,而最下面的一层中池化层核的尺寸要大于上面两层的池化层,其目的是为了能够得到与上两层不同的感受野特征,以此达到更好的效果。

该模型的各部分参数见表1。

表1 模型结构参数

由表1可以看出卷积层Conv4中所输出的张量维度为256,但我们将Maxout的超参设置为2,卷积层Conv4的维度被Maxout合并为了128,因此该部分数据能够正常与上部分数据相合并。

2.3 损失函数

损失函数的主要作用是衡量当前模型中样本的预测值与真实值之间的大小,本文中依然选择了对数似然函数作为损失函数,相比与其它的损失函数,在多分类任务中对数似然函数要更加简洁,同时在样本量足够多的条件下其收敛性更好。其公式如下所示

(2)

3 实验设置与结果

3.1 实验设置

3.1.1 数据集设置

首先,分别从未经预处理和经过预处理过后的数据集中随机挑选出实验中将要用到的数据,其中行人样本为153个,在每个样本中随机挑选出250张图片,这些图片中分别包含了正常步行、快步行走、慢速行走以及携带包行走,由于250张图片是随机挑选的,所以这4类照片的数量并不严格相等。同时,再次将每个样本中的250张图片随机按照80%与20%的比例分为实验的训练集与测试集,所得训练集共30 600张图片,测试集7650张图片。

3.1.2 实验设置

在实验设置中,以同样的数据集作为前提,分别以LFN模型和改进之后的LFN V2模型进行实验对比,实验主要分为在同一模型条件下,使用未经处理的数据集和经过处理的数据集进行效果对比,ReLU与Maxout效果对比,取消全连接层之前的池化层与未取消全连接层之前的池化层对比,使用Adam优化器与SGD优化器对比。在比较过程中,主要以测试集的识别准确率为对比目标。在加载实验数据集的时候我们会统一将步态轮廓图压缩成64*64分辨率大小的图片,然后再输入模型内进行训练。

此外,由于缺少相关红外图像方面的步态识别研究,本文将选取非红外图像的步态研究成果作为本次实验的横向对比。

3.2 实验结果

在实验中,首先使用了原版LFN模型进行了实验,并将其实验结果作为对照组。实验所用数据集如前文介绍,共用153名非重复的行人步态轮廓,其中每个行人包含200张的训练集图片与50张测试集图片,训练集与测试集的图片相互之间不重复。

本文使用LFN模型进行了1000轮的实验,根据其实验结果中的数据绘制了准确率的曲线图,如图4所示。

图4 原LFN模型的识别准确率

图4中,位于上方的虚线为模型训练集的正确率,在经过1000轮训练后,模型在训练集上的准确率能够达到99.5%以上。图中下方的实线是模型对测试集的正确率,由曲线可以看出在经过800轮的训练之后,模型对测试集的正确率开始逐渐收敛到97.5%至98.0%之间,其准确率最高可以达到98.24%,但也可以明显看出,测试集的准确率波动幅度较大。

在ReLU与Maxout的对比中,我们首先采用了未经轮廓裁剪与形态学处理的原始图像数据,在该次实验中,我们仅仅对ReLU与Maxout进行了更换,模型结构与超参设置均保持不变,使用ReLU进行了1000次迭代训练后,根据训练结果绘制了准确率曲线,如图5所示。

图5 激活函数为ReLU的识别准确率

由图5可以看出,使用ReLU激活函数的模型,在测试集的准确率基本上维持在98%以下。

随后在同样的超参设置下,我们将ReLU改为Maxout后同样进行了1000次的迭代训练,训练结果如图6所示。

图6 激活函数为Maxout的识别准确率

由图6可以看出将ReLU改为Maxout后经过1000次的迭代训练,在测试集上的识别准确率收敛到98.5%左右,由以上两次对比实验结果可以看出在未经预处理的数据集上,使用Maxout的效果要优于ReLU的效果。

随后我们对取消全连接层前面的池化层的合理性同样进行了实验验证,此外在本轮实验中我们所采用的数据集是经过上文方法预处理后的数据集。同样地,我们依旧在保证模型基本结构与超参的设置不变的前提下,将有最后一个池化层和没有最后一个池化层进行了实验对比。如图7所示为保留最后一个池化层后经过1000次迭代训练的准确率曲线。

图7 保留最后一个池化层的识别准确率

从图7我们可以明显的看出,在保留了最后一个池化层后模型在测试集上的准确率是明显低于98%,且在前100轮训练中准确率的波动性较大。

随后我们将经过预处理之后的数据输入到经过上文所述的改进模型后,在同样的超参设置下进行了1000轮训练,训练后的准确率如图8所示。

图8 LFN V2模型的识别准确率

由图8可以看出在改进后的LFN V2模型中,在测试集上的正确率平均约在98.8%左右,由上述实验对比结果可以看出,虽然在前期由于模型的各种参数与学习率大小还未达到较为理想的区间,导致在训练的前200轮中,测试集的正确率具有较大的波动,但是随着模型对参数的学习,以及模型学习率按照预先设置的条件进行改变后,测试集的准确率波动有了明显的改善,经过400轮训练后模型在测试集的准确率收敛到了98.8%左右,并在随后的训练中一直保持在这个范围,没有出现明显的波动。经过改进后的LFN V2模型无论是在模型的稳定性以及识别正确率上都优于未经改进或改进不完全的模型。

由于红外步态识别方面的相关研究较少,所以使用了较为相近的基于可见光的步态识别的相关研究成果与本文的模型作横向对比,对比结果见表2。

表2 步态识别相关研究对比

表2中所选横向对比的模型都是应用在可见光下的步态识别,并且在其研究过程中将人体的步态按照摄像机不同的角度进行了区分,且所选用的数据皆是其研究数据中最好的结果。虽然从数据上看,本文的模型识别结果要好于其它模型,但是由于应用领域不同及其研究的是不同角度上对步态识别的结果,所以其在单一角度上的图片总量要少于本文数据集,因而仅从数据上比较并不严谨,在此列出的原因仅是为了与本文给出的模型效果进行简单的横向对比。

4 结束语

本文首先对红外图像数据集进行了预处理,剔除了数据集中包含的冗余空间信息,并使用图像形态学中的闭运算,先使图像进行一定程度的膨胀,再对其进行相应的腐蚀操作,以此弥合图像中冗余的纹理信息。此外提出了一种基于深度学习的红外人体步态识别方法。其模型主要来源于本团队早期为可见光人体步态识别设计的一个深度学习模型,并在此模型的基础上进行了改进。经过实验验证,改进之后的模型对红外图像中的人体步态识别的准确率和稳定性有了较大的提升。

猜你喜欢
步态轮廓预处理
基于步态参数分析的老年跌倒人群步态特征研究
求解奇异线性系统的右预处理MINRES 方法
高COD二噻烷生产废水预处理研究
OPENCV轮廓识别研究与实践
基于面部和步态识别的儿童走失寻回系统
步态识人
基于预处理MUSIC算法的分布式阵列DOA估计
高速公路主动发光轮廓标应用方案设计探讨
基于膜过滤的反渗透海水淡化预处理
儿童筒笔画