掌桥专利:专业的专利平台
掌桥专利
首页

一种结合两个向量嵌入空间的高精度步态识别方法

文献发布时间:2023-06-19 11:02:01


一种结合两个向量嵌入空间的高精度步态识别方法

技术领域

本发明涉及特征识别技术领域,尤其涉及一种结合两个向量嵌入空间的高精度步态识别方法。

背景技术

步态,即人们的行走方式,可以被用来识别人们的身份。与其它生物识别方式相比,比如人脸识别,指纹识别,步态识别有一些无法替代的优势:它可以远距离、多角度地进行识别;由于识别不需要被识别者的配合,并且步态是一个动态的行为特征,难以伪装和掩饰。

近年来,随着机器视觉的发展,越来越多的科学家开始投入于机器视觉的研究中,在人机交互场景中,为了给不同的用户提供个性化服务,需要对不同的用户进行识别,而传统的人脸识别方式需要人脸离摄像头足够近,并且人脸正对摄像头。为了更加自然地对人进行识别,步态识别是一种更好的选择。此外,步态识别还可以应用于安防领域,以往查看摄像头需要专业人员耗费大量时间精力,而借用步态识别技术,可以快速从监控摄像头中定位到想要查找的行人,节省人力资源。

在众多研究步态识别的方法中,Wu Z等人提出了多种3D卷积神经网络的结构来整合时间维度上的信息,取得了很好的识别效果。在识别过程中,首先对每一帧进行预处理,得到轮廓图,这里主要是避免衣服和背景的颜色信息对识别造成的负面影响。然后将一个图像序列送入3D卷积神经网络提取特征进行识别。文献:Wu Z,Huang Y,Wang L, et al.Acomprehensive study on cross-view gait based human identification with deepcnns[J]. IEEE transactions on pattern analysis and machine intelligence,2016,39(2):209-226.

尽管3D卷积神经网络可以提取一个时间窗口的轮廓信息,它仍然难以关注到全局的信息,为了改善这个问题,Chao H等人基于观察提出了一种新的思路:假设步态轮廓图中已经包含了时间上的先后关系,不再将这个先后关系输入进网络,而是将所有步态轮廓图序列当作一个集合,从而提取集合的特征,性能有了很大的提升,所提网络结构叫做SetNet。但是在训练阶段只用了三元组损失进行优化,而三元组损失是在欧式空间中优化的,计算欧式距离时,特征本身的长度会对最终识别结果造成很大影响。文献:Chao H,HeY,Zhang J,et al.Gaitset:Regarding gait as a set for cross-view gaitrecognition[C]//Proceedings of the AAAI Conference on ArtificialIntelligence.2019,33: 8126-8133.

发明内容

发明目的:克服现有步态识别算法仅仅考虑到在欧式空间中优化特征表达的缺陷,引入在余弦空间中优化特征表达,同时将两种空间的特征表达有效结合起来以达到更好的效果。

为了解决上述技术问题,本发明公开了一种结合两个向量嵌入空间的高精度步态识别方法,该方法能够提升步态识别性能,应用于人机交互、公共安防等领域中,包括如下步骤:

步骤1,获取步态数据训练集,对所述步态数据训练集中的所有训练数据进行预处理,使用预处理后的训练数据进行训练,计算损失并优化网络参数后,得到训练完成的步态识别模型;本发明中,所述步态数据训练集可采用CASIA-B。

步骤2,获取步态数据测试集,对所述步态数据测试集中的所有测试数据进行预处理,将预处理后的测试数据输入所述训练完成的步态识别模型,获得步态识别结果。

进一步地,在一种实现方式中,所述预处理包括:

使用背景减除法得到数据集的步态视频中的行人区域,包括:截取所述步态视频中没有行人出现的任意一帧作为背景图像,将所述步态视频中的每一帧图像作为待处理图像,计算获得所述待处理图像与背景图像像素差值大于预设数量阈值的区域,作为出现行人的区域;本发明中,所述预设数量阈值可选5,其中,5是一个经验取值,通过多次实验所得。

截取所述待处理图像中出现行人的区域,将所述出现行人的区域的像素值标记为1,将除了所述出现行人的区域的其他区域的像素值标记为0;

将标记后的待处理图像按照预设尺寸的高度和宽度进行对齐并输出,得到步态轮廓图序列,所述步态轮廓图为一个包含行人与背景的二值图。本发明中,所述预设尺寸可设为64像素,此处64像素是综合考虑计算复杂度和识别效果的取值。具体对齐并输出的步骤如下:先按照高度将所述待处理图像拉伸到64像素,然后找到所述待处理图像水平方向的中点,以该中点为中心,左右两边各取32像素,如果不够32个像素则补0。

进一步地,在一种实现方式中,所述步骤1,包括:

步骤1-1,从所述训练数据的步态轮廓图序列中采样获得一批样本步态轮廓图序列,将所述样本步态轮廓图序列送入SetNet网络,得到中间步态特征;本发明中,SetNet网络是复旦大学学者提出的用于提取步态特征的网络,该网络将图像序列视为集合,提取集合层面的特征。

步骤1-2,将所述中间步态特征输入批归一化层,得到归一化后的步态特征;

步骤1-3,用所述归一化后的步态特征计算三元组损失;

步骤1-4,将所述归一化后的步态特征送入归一化到长度为1,偏置为0的全连接层中,得到分类结果;

步骤1-5,使用所述分类结果和归一化后步态特征计算带角度间隔的Softmax损失;

步骤1-6,计算所述三元组损失和带角度间隔的Softmax损失的带权和,作为最终的损失;

步骤1-7,使用所述最终的损失进行反向传播优化SetNet网络参数,不断重复所述步骤1-1至步骤1-7,直到所述SetNet网络收敛。具体的,所述反向传播算法是用来训练人工神经网络的常见方法,它通过链式求导法则,计算网络每一层参数的更新方向,设定学习率为0.0003,网络每一层更新的大小为该层参数的梯度乘以学习率。本发明中,不断重复所述步骤1-1至步骤1-7直到SetNet网络收敛,需要50000左右次迭代。

进一步地,在一种实现方式中,所述步骤1-1,包括:

给定每次采样的批次大小为(16,6),即先在所述训练集中随机采样出16个行人,对于每个所述行人,随机采样6个步态轮廓图序列;

将所述步态轮廓图序列一并送入SetNet网络中,所述SetNet网络将步态轮廓图序列作为集合,忽略所述步态轮廓图序列的先后顺序关系,提取集合层面的特征,经过所述SetNet网络后输出中间步态特征。

进一步地,在一种实现方式中,所述步骤1-2,包括:

所述批归一化层(Batch Normalization Layer)是目前神经网络中非常常见的一种网络结构,通过在网络中添加这一结构,使得后一层各个维度的输入处于同一分布下,有利于网络的训练。具体的,假设训练时数据的批量大小为N,用B代表这一批量的数据,用K表示数据的特征维度,根据如下公式计算每一维度的均值

其中,k为特征的维度,

根据如下公式,对输入数据的每一维度进行处理:

其中,∈是一个很小的正数,取∈=10

在训练过程中不断记录每一个批量的均值和方差,在后续测试阶段用在训练过程中得到的训练集整体的均值和方差代替测试数据的均值和方差,用于对所述测试数据进行归一化。

进一步地,在一种实现方式中,所述步骤1-3,包括:

选取符合如下条件的三个样本构成三元组:一个样本作为锚点数据,一个样本对应的身份与所述锚点数据相同,作为正例样本,一个样本对应的身份与所述锚点数据不同,作为负例样本;

通过枚举方式选取一个批量的所有所述三元组,即对于同一个批量中的步态特征,根据如下公式,计算三元组损失L

其中,m

进一步地,在一种实现方式中,所述步骤1-4,包括:

将所述步骤1-3得到的结果送入偏置为0,归一化长度为1的全连接层,

其中,

进一步地,在一种实现方式中,所述步骤1-5,包括:

计算带角度间隔的分类损失L

其中,m

进一步地,在一种实现方式中,所述步骤1-6,包括:

计算两个损失的带权和,使用下式:

L=L

其中,参数α用于调整两个损失之间的权重,取α=0.8,L为最终计算得到的损失。

进一步地,在一种实现方式中,所述步骤2,包括:

步骤2-1,使用与所述步骤1中相同的数据预处理方式,将待识别的步态视频转换为轮廓图序列,将所述轮廓图序列通过训练好的网络,提取步态特征,记作

步骤2-2,将所述步态特征

根据如下公式,计算与待识别步态特征与库中注册的所有步态特征之间的余弦距离:

其中,D

根据如下公式,获得身份的识别结果pred:

其中,库中一共注册有T个行人,

有益效果:本发明所提供的一种结合两个向量嵌入空间的高精度步态识别方法中,使用SetNet网络来提取特征,在训练阶段,网络参数只增加最后一层全连接层,计算三元组损失与基于角度的Softmax损失引导网络参数更新;在测试阶段,移除掉增加的最后一层全连接层,此时网络的参数量和计算量与SetNet相比均没有明显增加;使用步态特征在欧式空间中计算三元组损失,使用归一化后的步态特征在余弦空间中计算带角度间隔的Softmax损失,两种损失的结合,同时考虑到了样本在欧式空间和余弦空间中的距离,从而能够更好地拉近相同人的步态特征,拉远不同人的步态特征,相较于现有技术,显著提升识别准确率。

附图说明

为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例部分提供的一种结合两个向量空间优化步态识别性能的方法的工作流程示意图;

图2是本发明实施例部分提供的一种结合两个向量空间优化步态识别性能的方法中预处理过程的工作流程示意图;

图3是本发明实施例部分提供的一种结合两个向量空间优化步态识别性能的方法中训练阶段过程示意图;

图4是本发明实施例部分提供的一种结合两个向量空间优化步态识别性能的方法中测试阶段过程示意图;

图5是本发明实施例部分提供的一种结合两个向量空间优化步态识别性能的方法与现有技术的效果对比示意图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

本发明实施例公开一种结合两个向量嵌入空间的高精度步态识别方法,本方法可应用于基于深度神经网络的步态识别技术,通过结合两个向量嵌入空间,拉近相同行人步态特征之间的距离,拉远不同行人步态特征之间的距离,以达到更好的跨视角步态识别效果。应用本方案以后,步态识别准确率得到了大幅提升,可以广泛应用于视频监控、智能家居等领域。

为了使本发明的目的、技术方案和优点更加清楚明晰,本章结合附图对发明做更进一步的详细描述。

如图1所示,是本发明实施例部分提供的一种结合两个向量空间优化步态识别性能的方法的工作流程示意图。本发明公开了一种结合两个向量嵌入空间的高精度步态识别方法,包括如下步骤:

步骤1,获取步态数据训练集,对所述步态数据训练集中的所有训练数据进行预处理,使用预处理后的训练数据进行训练,计算损失并优化网络参数后,得到训练完成的步态识别模型;本实施例中,所述步态数据训练集可采用CASIA-B。

步骤2,获取步态数据测试集,对所述步态数据测试集中的所有测试数据进行预处理,将预处理后的测试数据输入所述训练完成的步态识别模型,获得步态识别结果。

如图2所示,是本发明实施例部分提供的一种结合两个向量空间优化步态识别性能的方法中预处理过程的工作流程示意图。本实施例所述的一种结合两个向量嵌入空间的高精度步态识别方法中,所述预处理包括:

使用背景减除法得到数据集的步态视频中的行人区域,包括:截取所述步态视频中没有行人出现的任意一帧作为背景图像,将所述步态视频中的每一帧图像作为待处理图像,计算获得所述待处理图像与背景图像像素差值大于预设数量阈值的区域,作为出现行人的区域;本实施例中,所述预设数量阈值可选5,其中,5是一个经验取值,通过多次实验所得。

截取所述待处理图像中出现行人的区域,将所述出现行人的区域的像素值标记为1,将除了所述出现行人的区域的其他区域的像素值标记为0;

将标记后的待处理图像按照预设尺寸的高度和宽度进行对齐并输出,得到步态轮廓图序列,所述步态轮廓图为一个包含行人与背景的二值图。本实施例中,所述预设尺寸可设为64像素,此处64像素是综合考虑计算复杂度和识别效果的取值。具体对齐并输出的步骤如下:先按照高度将所述待处理图像拉伸到64像素,然后找到所述待处理图像水平方向的中点,以该中点为中心,左右两边各取32像素,如果不够32个像素则补0。

如图3所示,是本发明实施例部分提供的一种结合两个向量空间优化步态识别性能的方法中训练阶段过程示意图。本实施例所述的一种结合两个向量嵌入空间的高精度步态识别方法中,所述步骤1,包括:

步骤1-1,从所述训练数据的步态轮廓图序列中采样获得一批样本步态轮廓图序列,将所述样本步态轮廓图序列送入SetNet网络,得到中间步态特征;本实施例中,SetNet网络是复旦大学学者提出的用于提取步态特征的网络,该网络将图像序列视为集合,提取集合层面的特征。

步骤1-2,将所述中间步态特征输入批归一化层,得到归一化后的步态特征;

步骤1-3,用所述归一化后的步态特征计算三元组损失;

步骤1-4,将所述归一化后的步态特征送入归一化到长度为1,偏置为0的全连接层中,得到分类结果;

步骤1-5,使用所述分类结果和归一化后步态特征计算带角度间隔的Softmax损失;

步骤1-6,计算所述三元组损失和带角度间隔的Softmax损失的带权和,作为最终的损失;

步骤1-7,使用所述最终的损失进行反向传播优化SetNet网络参数,不断重复所述步骤1-1至步骤1-7,直到所述SetNet网络收敛。具体的,所述反向传播算法是用来训练人工神经网络的常见方法,它通过链式求导法则,计算网络每一层参数的更新方向,设定学习率为0.0003,网络每一层更新的大小为该层参数的梯度乘以学习率。本实施例中,不断重复所述步骤1-1至步骤1-7直到SetNet网络收敛,需要50000左右次迭代。

本实施例所述的一种结合两个向量嵌入空间的高精度步态识别方法中,所述步骤1-1,包括:

给定每次采样的批次大小为(16,6),即先在所述训练集中随机采样出16个行人,对于每个所述行人,随机采样6个步态轮廓图序列;

将所述步态轮廓图序列一并送入SetNet网络中,所述SetNet网络将步态轮廓图序列作为集合,忽略所述步态轮廓图序列的先后顺序关系,提取集合层面的特征,经过所述SetNet网络后输出中间步态特征。

本实施例所述的一种结合两个向量嵌入空间的高精度步态识别方法中,所述步骤1-2,包括:

所述批归一化层(Batch Normalization Layer)是目前神经网络中非常常见的一种网络结构,通过在网络中添加这一结构,使得后一层各个维度的输入处于同一分布下,有利于网络的训练。具体的,假设训练时数据的批量大小为N,用B代表这一批量的数据,用K表示数据的特征维度,根据如下公式计算每一维度的均值

其中,k为特征的维度,

根据如下公式,对输入数据的每一维度进行处理:

其中,∈是一个很小的正数,取∈=10

在训练过程中不断记录每一个批量的均值和方差,在后续测试阶段用在训练过程中得到的训练集整体的均值和方差代替测试数据的均值和方差,用于对所述测试数据进行归一化。

本实施例所述的一种结合两个向量嵌入空间的高精度步态识别方法中,所述步骤1-3,包括:

选取符合如下条件的三个样本构成三元组:一个样本作为锚点数据,一个样本对应的身份与所述锚点数据相同,作为正例样本,一个样本对应的身份与所述锚点数据不同,作为负例样本;

通过枚举方式选取一个批量的所有所述三元组,即对于同一个批量中的步态特征,根据如下公式,计算三元组损失L

其中,m

本实施例所述的一种结合两个向量嵌入空间的高精度步态识别方法中,所述步骤1-4,包括:

将所述步骤1-3得到的结果送入偏置为0,归一化长度为1的全连接层,

其中,

本实施例所述的一种结合两个向量嵌入空间的高精度步态识别方法中,所述步骤1-5,包括:

计算带角度间隔的分类损失L

其中,m

本实施例所述的一种结合两个向量嵌入空间的高精度步态识别方法中,所述步骤1-6,包括:

计算两个损失的带权和,使用下式:

L=L

其中,参数α用于调整两个损失之间的权重,取α=0.8,L为最终计算得到的损失。

如图4所示,是本发明实施例部分提供的一种结合两个向量空间优化步态识别性能的方法中测试阶段过程示意图。本实施例所述的一种结合两个向量嵌入空间的高精度步态识别方法中,所述步骤2,包括:

步骤2-1,使用与所述步骤1中相同的数据预处理方式,将待识别的步态视频转换为轮廓图序列,将所述轮廓图序列通过训练好的网络,提取步态特征,记作

步骤2-2,将所述步态特征

根据如下公式,计算与待识别步态特征与库中注册的所有步态特征之间的余弦距离:

其中,D

根据如下公式,获得身份的识别结果pred:

其中,库中一共注册有T个行人,

实施例:

为了验证算法的有效性,在CASIA-B数据集上进行实验。该数据集总共有124个行人,其中第5号行人数据不全,使用除第5号行人之外的前74人进行训练,使用后50个人进行测试。CASIA-B数据集是一个多视角数据集,每个人共有10段走路姿态,其中每段走路姿态有11个拍摄视角。10段走路姿态分别为:正常情况的走路姿态6段,背着背包的走路姿态2段,以及穿着外套的走路姿态2段。在测试阶段,库中的走路姿态包括前4段正常情况下的走路姿态,待识别的样本走路姿态包括后2段正常情况下的走路姿态(NM),2段背着背包的走路姿态(BG)以及2段穿着外套的走路姿态(CL)。按照本发明提供的步骤验证我们算法的效果:

S1、每一条步态数据,对应一个包含有行走姿态的视频,还有对应的身份。对于分在训练集中的行人,首先对视频进行预处理,包含三个步骤:首先,使用背景减除法提取图像中的行人。截取图像中不包含行人,静止的一帧作为背景,然后计算待处理的图像与背景像素差值大于5的区域,算作图中出现了目标,即找到了图像中的行人;将该区域截取出来,然后将行人出现的区域像素值标记为1,没出现的区域像素值标记为0,将图像转换为二值图;将截取后的图像对齐到相同的高度和宽度,输出高度和宽度都为64像素的图像,具体方式如下:先按照高度拉伸到64像素,然后找到图像水平方向的中点,以该中点为中心,左右两边各取32像素,如果不够32个像素则补0。

S2、开始训练阶段,首先在训练数据中采样,生成一批训练数据。采样数据时采用如下方式:给定每一批次大小为(16,6),先在训练集中随机采样出16个行人,然后对于每个行人,随机采样6个步态轮廓图序列。将这些轮廓图序列一并送入SetNet网络中,提取集合层面的特征。经过网络后输出中间步态特征

S3、将中间步态特征

S4、使用下式计算三元组损失L

其中,m

S5、将前述步骤得到的结果送入偏置为0,归一化长度为1的全连接层,

其中,

S6、计算带角度间隔的分类损失L

其中,m

S7、计算两个损失的带权和,使用下式:

L=L

其中,参数α用于调整两个损失之间的权重,取α=0.8,L为最终计算得到的损失。

S8、使用反向传播算法,优化网络参数。不断重复前述S2至S8,直到迭代次数达到50000。

S9、开始测试阶段。对测试集中的注册在库中的数据,使用S1中描述的同样的预处理方法,将录制好的步态视频转换为轮廓图序列;将所有轮廓图序列通过训练得到的模型,提取库中数据的步态特征。

S10、对于每一个待识别的步态视频,使用步骤1中描述的同样的预处理方法,将录制好的步态视频转换为轮廓图序列;将轮廓图序列通过训练得到的模型,提取步态特征,记作

其中,D

根据如下公式,获得身份的识别结果pred:

其中,库中一共注册有T个行人,

S11、统计在整个数据集上的识别精度。如图5所示,提供了本实施例的方法与目前有发表的效果最好的方法的对比结果。这里展示的是不同方法在三种测试情况下的跨视角识别精度,分别是:NM表示正常情况,BG表示有携带背包情况,CL表示有穿着外套情况,其中每个测试情况下的精度计算仅包含库中注册视角与待识别视角不同时的识别精度。图中有的方法只有部分测试集上的结果,是因为这里主要研究的跨视角问题是一个比较困难的问题,全面研究各种走路情况下的跨视角问题的算法还比较少。经过在数据上的验证可以表明,本发明准确度大幅超过之前的方法,表现出了令人满意的结果。

因此,相较于现有技术,本发明所提供的一种结合两个向量嵌入空间的高精度步态识别方法中,使用SetNet网络来提取特征,在训练阶段,网络参数只增加最后一层全连接层,计算三元组损失与基于角度的Softmax损失引导网络参数更新;在测试阶段,移除掉增加的最后一层全连接层,此时网络的参数量和计算量与SetNet相比均没有明显增加;使用步态特征在欧式空间中计算三元组损失,使用归一化后的步态特征在余弦空间中计算带角度间隔的Softmax损失,两种损失的结合,同时考虑到了样本在欧式空间和余弦空间中的距离,从而能够更好地拉近相同人的步态特征,拉远不同人的步态特征,相较于现有技术,显著提升识别准确率。

具体实现中,本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的一种结合两个向量嵌入空间的高精度步态识别方法的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,ROM)或随机存储记忆体(random access memory,RAM)等。

本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。

本说明书中各个实施例之间相同相似的部分互相参见即可。以上所述的本发明实施方式并不构成对本发明保护范围的限定。

相关技术
  • 一种结合两个向量嵌入空间的高精度步态识别方法
  • 结合子空间学习与张量神经网络的步态识别方法及系统
技术分类

06120112773489