本发明涉及人工智能,尤其涉及一种基于多帧率和位置编码的多分支行人步态识别方法及装置。
背景技术:
1、步态识别是通过行人走路的运动模式来识别一个人的身份。通常身份识别采用基于人脸和外观的方式,然而在拍摄距离远、分辨率低、时间间隔长、光照条件复杂等情况下其表现不尽人意。与其他生物特征相比,步态特征具有可远距离采集、无需配合、很难伪造等优点。在一些不利于识别的情况下,仍可经过分割得到行人的步态轮廓序列,提取到行人的有效步态特征,为在监控视频中找到目标人物提供了可行性。基于上述优势,步态检索技术在行人检索上的应用对于安防监控、刑事调查、追踪嫌犯或走失儿童等多个应用方向都具有重要意义。
2、随着人工智能的发展,基于深度学习的方法已被广泛应用于步态识别任务。现有基于深度学习的步态检索技术训练和测试采用的步态特征大多是基于步态模板或基于步态序列的方法。
3、最常见的步态模板是步态能量图(gait energy image,gei),步态能量图由步态轮廓序列进行对齐、裁剪、相加、平均等操作得到,其计算简单,同时也能很好的表现步态特征。但目前使用步态能量图的步态检索方法存在以下问题。步态能量图的计算过程中的相加再平均操作压缩了时序信息,难以有效地提取步态轮廓图之间连续的时序步态特征。
4、目前使用步态轮廓序列的方法,为了降低计算成本,通常会在加载数据时使用帧采样操作,将输入序列的时序维度减少为设定的若干帧,而这一过程会将步态序列的帧数减少至原有的一半甚至更少。然而,步态特征是一种时序上的微运动模式,来自同一步态序列的步态轮廓图之间,在时序上存在紧密联系。显然,帧采样操作将相邻帧去掉,在很大程度上减少了有效的步态细粒度微运动信息。
技术实现思路
1、针对现有技术中因难以有效地提取步态轮廓图之间连续的时序步态特征、无法保留并提取相邻帧的步态细粒度特征等导致步态识别准确性不高的问题,本发明提出了一种基于多帧率和位置编码的多分支行人步态识别方法,该方法针对多帧步态序列的运动整体模式和局部运动细节的步态特征提取网络,结合时序采样、位置编码和注意力机制等,提出一种多分支行人步态识别方法,以提高步态识别的准确性。
2、为了实现上述目的,本发明采用的技术方案如下:
3、第一方面公开了基于多帧率和位置编码的多分支行人步态识别方法,包括:
4、s1:获取原始数据集,对原始数据集中的图片进行裁剪并重设大小,并将数据集划分为身份标签互不相交的训练集和测试集,再在训练集和测试集上分别划分探针集和图库;将完整的步态轮廓序列按照不同的帧采样策略和降分辨率操作,处理为三组帧率从低到高和分辨率从高到低的输入数据,输入数据具体包括低帧率高分辨率输入、中帧率中分辨率输入、高帧率低分辨率输入;
5、s2:构建基于深度学习的多帧分支步态识别模型,多帧分支步态识别模型的整体网络架构为三分支结构,第一分支、第二分支、第三分支分别处理低帧率高分辨率输入、中帧率中分辨率输入、高帧率低分辨率输入;每个分支均包含位置编码模块、特定卷积模块、侧向特征集中融合连接、特定卷积模块、侧向特征分散融合连接、分块卷积模块、侧向特征集中融合连接;第一分支、第二分支、第三分支的特定卷积模块分别采用二维卷积、bp3d卷积和三维卷积;最后一个侧向特征集中融合连接之后的特征再经过自注意力模块、gem池化、水平金字塔、分块全连接层和bnneck;
6、s3:利用训练集对多帧分支步态识别模型进行训练;
7、s4:将测试集输入训练得到的多帧分支步态识别模型,得到测试集上探针集和图库的分块步态特征,计算探针集和图库的分块步态特征之间的欧式距离并进行排序,将排序第一的身份id作为识别结果返回。
8、在一种实施方式中,步骤s1包括:
9、s1.1:对图片进行裁剪并重设大小,具体包括:对于步态轮廓序列中的每一张步态轮廓图,识别人体的最上、最下、最左和最右端,裁剪为只包含人体的矩形,并将图像大小调整为统一的高度h0和宽度w0;
10、s1.2:划分训练集和测试集为互不相交的两个集合;
11、s1.3:划分探针集和图库集,数据集结构为:每个身份id文件夹下设有不同穿着类型,每种穿着类型下有不同回合拍摄的所有角度下的若干个步态序列;将每种类型下的回合按照一定比例划分给探针集和测试集;
12、s1.4:将完整的步态轮廓序列按照不同的帧采样策略和降分辨率操作,帧率从低到高、分辨率从高到低的三组输入数据xf0、xs0、xt0分别作为三个分支的输入,其中,脚标f、s、t分别表示第一分支、第二分支和第三分支。
13、在一种实施方式中,步骤s3包括:
14、s3.1:将三组帧率从低到高和分辨率从高到低的输入数据分别输入三分支网络的三个分支,经过位置编码模块得到附加各自的高度、宽度、时序坐标的数据;将附加坐标的三组数据输入各自对应的卷积模块,按照帧率从低到高分别使用二维卷积、bp3d、三维卷积,得到各自的一级步态特征;
15、s3.2:将三组一级步态特征进行特征集中融合,将上下两个分支的特征汇聚到中间分支上,具体为:将低帧率高分辨率的一级步态特征在空间上进行池化操作,将高帧率低分辨率的一级步态特征在空间上进行上采样、时序上进行池化操作,逐元素相加到中帧率中分辨率的一级步态特征对应时序位置上;
16、s3.3:将上下两个分支的一级步态特征和中间分支的融合特征继续输入各自对应的卷积模块,得到各自的二级步态特征;将三组二级步态特征进行特征分散融合,具体为:将中间分支的特征做不同处理后分别加到上下两个分支上;
17、s3.4:将中间分支的二级步态特征和上下两个分支的融合特征分别按照不同的设置进行水平分块卷积,得到三个分支的三级步态特征;
18、s3.5:将三组三级步态特征进行特征集中融合,具体为:将上下两个分支的特征汇聚到中间分支上,得到初步帧级步态特征;将初步帧级步态特征通过自注意力模块处理,得到加强帧级步态特征;再将加强帧级步态特征经过gem时序池化,汇聚时间维度上的信息,得到序列级步态特征;
19、s3.6:将序列级步态特征经过水平金字塔池化层,对其进行水平分块、整形和拼接,得到金字塔多尺度特征;
20、s3.7:将金字塔多尺度特征通过分块全连接层,对每一块进行映射,得到分块步态特征,用于计算三元组损失;将分块步态特征经过bnneck层,得到分类概率,用以与真实身份标签一起计算带标签平滑的交叉熵损失;训练阶段,整个网络的损失为三元组损失和带标签平滑的交叉熵损失的加权和,使用优化器adamw进行优化。
21、在一种实施方式中,步骤s3.1包括:
22、s3.1.1:通过位置编码模块根据输入数据的高度h0和宽度w0进行绝对位置编码,由高度和宽度的值,分别生成范围为[-1,1]、间隔为2/w0以及2/h0的浮点数坐标,经过增加维度后拼接在通道维度的最后,附加坐标的三组步态序列数据维度比之前在通道维度上增加2;
23、s3.1.2:将绝对位置坐标拼接在输入的通道维度的最后,得到附加坐标的三组步态序列数据;
24、s3.1.3:第一分支对低帧率高分辨率步态轮廓序列xf0进行二维卷积并经过leakyrelu激活函数,以获取其空间的局部细节信息,得到第一分支一级步态特征xf1=conv2×3(xf0);
25、s3.1.4:第二分支对中帧率中分辨率步态轮廓序列xs0进行bp3d卷积,分为两路进行,首先对高度和宽度平面进行二维卷积,再对时间维度进行卷积,另一路对输入进行三维卷积,两路卷积的结果逐元素相加再经过leaky relu激活函数,以获取其空间与时间特征,得到第二分支一级步态特征xs1,表示为:xs1=conv3d3×3×3(xs0)+conv3d1×3×3(xs0)+conv3d3×1×1(xs0);
26、s3.1.5:第三分支对高帧率低分辨率步态轮廓序列xt0进行整体三维卷积并经过leaky relu激活函数,关注时间方向上的全局运动模式,得到第三分支一级步态特征xt1=conv3d3×3×3(xt0)。
27、在一种实施方式中,步骤s3.2包括:
28、s3.2.1:对第一分支的一级步态特征xf1在空间上进行池化操作,通过最大池化将宽度和高度降为原来的r分之一,使得其与第二分支的xs1高度和宽度一致,再按照时间位置坐标相加到第二分支的一级步态特征xs1对应的时间位置上;
29、s3.2.2:对第三分支的一级步态特征xt1在空间上进行上采样操作,将宽度和高度增加为原来的r倍,与第二分支的xs1高度和宽度一致,再在时间维度上对相邻的若干帧进行最大池化,将帧数降为原来的r分之一,按照时间位置坐标相加到第二分支的一级步态特征xs1对应的时间位置上;
30、s3.2.3:上下两分支的特征经过改变时序上的帧数和空间上的高宽之后,得以与第二分支的一级步态特征xs1相加,得到集中融合后的特征xp1=xs1+maxpoolingr×r(xf1)+maxpoolingr×1×1(upsampler×r(xt1))。
31、在一种实施方式中,步骤s3.3包括:
32、s3.3.1:对于第一分支的一级步态特征xf1,继续进行s3.1.3中的二维卷积、leakyrelu激活函数处理,得到第一分支二级步态特征xf2=conv3×3(xf1);
33、s3.3.2:对于第二分支的集中融合后的特征xp1,继续进行s3.1.4中的bp3d卷积处理,得到第二分支二级步态特征xs2,表示为:xs2=conv3d3×3×3(xp1)+conv3d1×3×3(xp1)+conv3d3×1×1(xp1);
34、s3.3.3:对于第三分支的一级步态特征xt1,继续进行s3.1.5中的三维卷积、leakyrelu激活函数处理,得到第三分支二级步态特征xt2=conv3d3×3×3(xt1);
35、s3.3.4:对于第二分支二级步态特征xs2,在空间上进行上采样操作,将宽度和高度增加为原来的r倍,与第一分支的xf2高度和宽度一致,再在时间维度上对相邻的若干帧进行最大池化,将帧数降为原来的r分之一,按照时间位置坐标相加到第一分支的二级步态特征xf2对应的时间位置上;
36、s3.3.5:对于第二分支二级步态特征xs2,在空间上进行池化操作,通过最大池化将宽度和高度降为原来的r分之一,使得其与第三分支的xt2高度和宽度一致,再按照时间位置坐标相加到第三分支的二级步态特征xt2对应的时间位置上;
37、s3.3.6:第一分支的二级步态特征xf2与经过上采样和时序池化后的第二分支二级步态特征xs2相加,得到第一分支融合特征xq1=xf2+maxpoolingr×1×1(upsampler×r(xs2));
38、s3.3.7:第三分支的二级步态特征xt2与经过空间最大池化后的第二分支二级步态特征xs2相加,得到第三分支融合特征xq2=xt2+maxpoolingr×r(xs2)。
39、在一种实施方式中,步骤s3.4包括:
40、s3.4.1:对于第一分支的融合特征xq1,将其沿着水平方向将高度分为b2块,对每一小块进行三维卷积并通过leaky relu激活,再将每一块的结果沿着高度方向进行拼接,得到第一分支三级特征xf3,b为分块数目基数;
41、s3.4.2:对于第二分支二级步态特征xs2,将其沿着水平方向将高度分为b块,对每一小块进行三维卷积并通过leaky relu激活,再将每一块的结果沿着高度方向进行拼接,得到第二分支三级特征xs3;
42、s3.4.3:对于第三分支的融合特征xq2,不进行任何划分,对其整体进行三维卷积并通过leaky relu激活,得到第三分支三级特征xt3。
43、基于同样的发明构思,本发明第二方面提供了基于多帧率和位置编码的多分支行人步态识别装置,包括:
44、数据预处理模块,用于获取原始数据集,对原始数据集中的图片进行裁剪并重设大小,并将数据集划分为身份标签互不相交的训练集和测试集,再在训练集和测试集上分别划分探针集和图库;将完整的步态轮廓序列按照不同的帧采样策略和降分辨率操作,处理为三组帧率从低到高和分辨率从高到低的输入数据,输入数据具体包括低帧率高分辨率输入、中帧率中分辨率输入、高帧率低分辨率输入;
45、模型构建模块,用于构建基于深度学习的多帧分支步态识别模型,多帧分支步态识别模型的整体网络架构为三分支结构,第一分支、第二分支、第三分支分别处理低帧率高分辨率输入、中帧率中分辨率输入、高帧率低分辨率输入;每个分支均包含位置编码模块、特定卷积模块、侧向特征集中融合连接、特定卷积模块、侧向特征分散融合连接、分块卷积模块、侧向特征集中融合连接;第一分支、第二分支、第三分支的特定卷积模块分别采用二维卷积、bp3d卷积和三维卷积;最后一个侧向特征集中融合连接之后的特征再经过自注意力模块、gem池化、水平金字塔、分块全连接层和bnneck;
46、模型训练模块,用于利用训练集对多帧分支步态识别模型进行训练;
47、步态识别模块,用于将测试集输入训练得到的多帧分支步态识别模型,得到测试集上探针集和图库的分块步态特征,计算探针集和图库的分块步态特征之间的欧式距离并进行排序,将排序第一的身份id作为识别结果返回。
48、基于同样的发明构思,本发明第三方面提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所述的基于多帧率和位置编码的多分支行人步态识别方法。
49、基于同样的发明构思,本发明第四方面提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的基于多帧率和位置编码的多分支行人步态识别方法。
50、相对于现有技术,本发明的优点和有益的技术效果如下:
51、1.本发明创新性地对步态轮廓序列进行时序采样和改变空间分辨率,将不同帧率、不同分辨率的三组步态轮廓序列作为步态识别任务的输入步态表征方式。具体来说,第一分支为低帧率、高分辨率,第二分支为中帧率、中分辨率,第三分支为高帧率、低分辨率。
52、2.本发明创新性提出了三分支网络结构,针对不同帧率、不同分辨率的三组步态轮廓序列分别应用不同的卷积网络,其中提出一种bp3d卷积,将经典三维卷积拆解为空间和时间分别卷积再组合。低帧率、高分辨率分支能够提取步态特征的空间局部细粒度特征;高帧率、低分辨率分支保证有效捕捉到完整步态序列周期中的时序特征信息,同时低分辨率能够降低计算成本;中帧率、中分辨率分支则作为二者的平衡,一定程度上保留了空间部分信息和较短时间段的信息,更重要的是,作为上下两个分支的桥梁。
53、3.本发明创新性提出了三分支之间的集中特征融合和分散特征融合方式,以汇聚不同层次的特征到不同的分支,达到不同的分支之间的特征相互传播和共享学到的特征的效果,更好地利用不同帧率、不同分辨率的三组步态特征的特有信息,因此,通过本发明构建的基于深度学习的多帧分支步态识别模型,可以提高步态识别的准确性。