一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于twins多层级特征的行人重识别方法

2022-04-30 12:38:51 来源:中国专利 TAG:


1.本发明属于计算机视觉领域,涉及一种基于transformer架构的多层级特征提取的多分支行人重识别方法。
技术背景
2.行人重识别(person re-identification)也称行人再识别,是利用计算机视觉技术判断图像或者视频序列中是否存在特定行人的技术。广泛被认为是一个图像检索的子问题。给定一个监控行人图像,检索跨设备下的该行人图像。旨在弥补固定的摄像头的视觉局限,并可与行人检测/行人跟踪技术相结合,可广泛应用于智能视频监控、智能安保等领域。由于不同摄像设备之间的差异,同时行人兼具刚性和柔性的特性,外观易受穿着、尺度、遮挡、姿态和视角等影响,使得行人重识别成为计算机视觉领域中一个既具有研究价值同时又极具挑战性的热门课题。
3.行人重识别任务主要包括特征提取和相似度度量两个步骤。在特征提取上,基于 transformer的主干模型考虑到了输入各个部分的关联性和较低的计算代价,对计算机视觉的各个子任务有了更多的选择和可探讨性,它的蓬勃发展带来了更强大的特征表示,对于行人图像具有更好的分辨力和鲁棒性,这将re-id的性能提升到了一个新的水平;在相似度度量上,统一的度量都是采用特征向量间的欧式距离或者是余弦距离作为相似度的度量标准。
4.行人图片中包含主要的人物信息和无用的背景信息,为了让模型学习到有用的目标信息,通常使用卷积神经网络或者transformer来对图片进行特征提取,并对提取的特征进行相应的处理进行学习,最后得到一个识别能力较好的识别模型。
5.一般认为,在深层金字塔架构网络中,不论是cnn还是transformer,不同深度的网络层所提取的特征层次(level)不同:浅层的feature map表示低层次特征,低层次特征有利于定位;深层的feature map表示高层次特征,高层次特征有利于分类。当前特征金字塔存在明显缺陷:更关注特征的尺度(scale),而不关注特征的层次(level)。对于同类中外观复杂多变的不同个体,抽取多个层次的特征是很有必要的。
6.在进行特征学习时,由于得到的是特征提取主干的最后一层的特征图,该特征图的特点是通道数较多,但是特征图尺寸较小。因此若是仅仅使用这一个特征图来构建模型,可能会遗漏图像中某些较为细节的信息,比如目标人物的衣服上的logo。所以,单一层次的特征学习鲁棒性不够高,在做数据集的迁移时,模型往往适应性比较差。因此,对模型做多层级的特征学习是很有必要的。


技术实现要素:

7.为了客观、有效地结合主干的多层级特征,并且对不同层级的特征信息进行融合,本发明提出了一种基于twins多层级特征的行人重识别方法。本发明通过提取twins-svt的第三阶段和第四阶段的特征图,对第三阶段的特征图进行卷积,均值归一化,激活函数,切
片,池化等操作,将第四阶段的特征图进行均值归一化,池化等操作,然后对这两个分支进行了联合训练,分别用cross-entropy center损失和triplet损失来训练模型,最终使用训练好的模型实现行人重识别任务。
8.本发明方法主要包括以下步骤:
9.步骤一,对原生twins-svt模型进行修改,去掉模型最后的全局平均池化(gap)和全连接分类层,这样模型的输出就是主干网络的第四阶段stage4的输出特征图,记为f
s4
∈ b
×7×7×
512;然后将模型的第三阶段stage3的特征图进行提取,得到f
s3
∈ b
×
14
×
14
×
256,其中b表示一个batch的大小。
10.步骤二,将特征图f
s4
经过一个全局平均池化,再将多余的维度压缩,得到特征向量fg∈ b
×
512,再将fg经过全连接层得到分类预测向量pg∈b
×
num_classes,其中num_classes表示数据集的总共分类类别数;
11.步骤三,将特征图f
s3
∈b
×
14
×
14
×
256经过一个convblock模块,得到和主干第四阶段相同通道数的特征图f

s3
∈b
×
12
×
12
×
512。
12.convblock模块包括一个分别是二维卷积,bn层,se注意力,mish激活函数。
13.步骤四,对f

s3
进行水平切分,分别记为part-1,part-2,对应的特征图分别记为2,对应的特征图分别记为得到和
14.对和分别经过全局平均池化,再将多余的维度压缩,得到特征向量和再将和经过全连接层得到分类预测向量和
15.步骤五,将fg,送入三元组损失triplet loss,将pg,送入交叉熵损失 cross-entropy loss center loss,进行联合训练;两个损失函数的定义分别为:
[0016][0017][0018][0019]
公式1中的表示第a的第i张图片,f(
·
)表示模型对图像提取的特征,||
·
||表示求l2 范数,m为损失中的裕度值,n为batch的大小,a,p,n三者的关系为:a与p为同一个人的不同图片,a与n为不同人的图片。
[0020]
公式2中xi是每个batch中的第i张图片的提取的特征,表示特征描述的第yi个类别的类中心,b是batchsize的大小。
[0021]
公式3中pi是真实标签的one-hot向量,one-hot向量是指多分类标签中的真实目标的位置记为1,其余位置为0的向量。qi是模型对第i类的预测概率分数。
[0022]
当训练损失不再有明显的下降变化时,完成训练优化,保存模型参数。
[0023]
步骤六,使用数据集中的query集和gallery集对模型进行性能评估;首先用模型提取 gallery集中的所有样本的表征向量,其中表征向量为fg,三个向量的连接表示,将query集中的每一个样本提取它的表征向量,与gallery集中的向量表计算向量间的欧式距离,将最相近的几个样本记为查询到的结果集;最后计算查询结果的正确率来评估模型的好坏。
[0024]
步骤七,实现实际识别目标的应用。将需要查询的数据集的所有图像送入模型,得到所有图像的表征向量表(每张图像的表征向量为fg,三个向量的连接表示),再将需要查询的目标人物的图像送入模型,得到该图像的表征向量,计算与向量表中的每个向量的距离,按距离从小到大排序,得到排名靠前的若干张图像,即为模型重识别到的结果。
[0025]
本发明与已有的诸多行人重识别方法相比,具有如下特点:
[0026]
第一,在特征提取主干上,选择了比传统resnet50参数量更少,架构更新颖的twins
‑ꢀ
svt,基于transformer实现,实验证明,两者的特征提取能力相当;并结合主干的不同层级间的特征图进行联合训练,对模型的准确率提高有显著的帮助。
[0027]
第二,在特征处理阶段,对第三阶段的特征图设计相应的convblock,在convblock中加入se注意力和更加平滑的激活函数mish,使得两个阶段的特征图的通道数一致。并对该特征图进行切分,使得模型提高对局部信息的关注度。
[0028]
第三,在有监督训练阶段,在特征向量和预测分类分数之间加了bn层,使得后期训练时,不同损失优化目标不一致的问题得到解决。其中特征向量送入三元组损失,预测分类分数送入交叉熵损失和中心损失,进行联合训练。
附图说明
[0029]
图1表示本发明的行人重识别方法流程图;
[0030]
图2表示模型的twins-svt主干;
[0031]
图3表示实施例中特征提取网络对行人图片提取的特征图可视化;
[0032]
图4表示基于twins的多层级特征的行人重识别模型;
[0033]
图5(a)、(b)分别表示激活函数mish和relu的对比;
[0034]
图6(a)、(b)、(c)分别表示实施例的训练过程中模型的总损失、训练集的精度以及评估指标的变化曲线图;
[0035]
图7为实施例的查询结果可视化。
具体实施方式
[0036]
为了有效的提取行人的特征并进行分类识别,本发明主要在twins-svt提取的特征上进行改进。下面结合附图对本发明的实施例作详细说明:本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程。
[0037]
基于twins多层级特征的行人重识别方法,整体执行流程如图1所示,其具体实施方式包括如下步骤:
[0038]
步骤一,对原生twins-svt模型如图2所示进行修改,去掉模型最后的全局平均池化 (gap)和全连接分类层。这样模型的输出就是主干网络的第四阶段的输出特征图,对数
据集market-1501来提取行人图片的特征,记为f
s4
∈b
×7×7×
512;然后将模型的第三阶段的特征图进行提取,得到f
s3
∈b
×
14
×
14
×
256,其中b表示一个batch的大小。主干的4 个阶段的部分特征图提取可视化如图3所示,可以看到第三阶段的特征图比第四阶段保留了更多的人物细节特征。
[0039]
步骤二,如图4模型整体架构所示,将特征图f
s4
经过一个全局平均池化,再将多余的维度压缩,得到特征向量fg∈b
×
512,再将fg经过全连接层得到分类预测向量pg∈ b
×
num_classes,其中num_classes表示数据集的总共分类类别数;
[0040]
步骤三,将特征图f
s3
∈b
×
14
×
14
×
256经过一个convblock模块,得到和主干第四阶段相同通道数的特征图f

s3
∈b
×
12
×
12
×
512。convblock模块包括一个分别是二维卷积, bn层,se注意力,mish激活函数。为了训练的时候的梯度传播的平滑性,把传统的激活函数relu改成mish,两者的对比如图5所示,可以看到在x《0时,relu函数的梯度一直是 1保持不变,而mish函数的梯度在一个平缓的变换范围内,这可能会有利于模型参数的梯度下降更新。
[0041]
再对f

s3
进行水平切分,得到和再对和分别经过全局平均池化,再将多余的维度压缩,得到特征向量和和再将和经过全连接层得到分类预测向量和和
[0042]
步骤四,将fg,送入三元组损失triplet loss,将pg,送入交叉熵损失cross-entropy loss center loss,进行联合训练;三个损失函数的定义分别为:
[0043][0044][0045][0046]
公式1中的表示第a的第i张图片,f(
·
)表示模型对图像提取的特征,||
·
||表示求l2范数,m为损失中的裕度值,在训练时m的值设为0.3。n为batch的大小,设为32,即每次送入4个人物id,每个人物有8张图像。a,p,n三者的关系为:a与p为同一个人的不同图片,a与n为不同人的图片。
[0047]
公式2中xi是每个batch中的第i张图片的提取的特征,表示特征描述的第yi个类别的类中心,b是batchsize的大小。
[0048]
公式3中pi是真实标签的one-hot向量,one-hot向量是指多分类标签中的真实目标的位置记为1,其余位置为0的向量。qi是模型对第i类的预测概率分数。
[0049]
当训练损失不再明显变化时,完成训练优化,保存模型参数。模型训练过程的损失及准确率和评价指标的变化分别如图6(a)、(b)、(c)所示。
[0050]
步骤五,使用数据集中的query集和gallery集对模型进行性能评估。首先用模型提取 gallery集中的所有样本的表征向量(表征向量为fg,三个向量的连接表示),其次将query集中的每一个样本提取它的表征向量,与gallery中的向量表计算向量间的欧式距离,将最相近的几个样本记为查询到的结果集。最后计算查询结果的正确率来评估模型的好坏。模型的map和rank-k如表1所示,其中rk表示re-rank。
[0051]
表1模型在market-1501上的map和rank-k成绩
[0052][0053]
步骤六:实现实际识别目标的应用。将需要查询的数据集的所有图像送入模型,得到所有图像的表征向量表(每张图像的表征向量为fg,三个向量的连接表示),再将需要查询的目标人物的图像送入模型,得到该图像的表征向量,计算与向量表中的每个向量的距离,按距离从小到大排序,得到排名靠前的若干张图像,即为模型重识别到的结果。重识别的结果及可视化如图7所示。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献