一种行人重识别方法及系统与流程

文档序号:20841498发布日期:2020-05-22 17:33阅读:209来源:国知局
一种行人重识别方法及系统与流程

本发明涉及图像处理技术领域,特别是涉及一种行人重识别方法及系统。



背景技术:

行人重识别(personre-identification)也称行人再识别,简称为reid,是利用计算机视觉技术判断图像或者视频序列中是否存在特定行人的技术,被广泛认为是一个图像检索的子问题。给定一个监控行人图像,检索跨设备下的该行人图像。在监控视频中,由于相机分辨率和拍摄角度的缘故,通常无法得到质量非常高的人脸图片。当人脸识别失效的情况下,行人重识别就成为了一个非常重要的替代品技术。

传统的行人特征主要有颜色直方图(colorhistograms),局部二值模式(localbinarypatterns)等。对行人特征的处理识别方法主要相似度量学习、卷积神经网络、通过用相似度量学习把行人特征映射度量空间。传统方法中常用的度量学习方法有kissme(mahalanobismetriclearning),局部fisher判别分析(localfisherdiscriminantanalysis),边际fisher分析(marginalfisheranalysis),大间隔最近邻居(locallyadaptivedecisionfunctions),局部自适应决策函数(locallyadaptivedecisionfunctions)和属性一致匹配等,以上方法,计算复杂,且识别精度不高。

2014年,卷积神经网络首次被用来处理行人重识别问题。为了处理人员重新识别中训练数据不足的问题,通常采用图像对或三元组来计算损失。在mr-bcnn中,每个输入图像被划分为三个重叠部分,这三个部分通过特定于部分的卷积网络,并且输出被连接以形成最终表示。使用余弦相似性度量进一步比较两个图像的表示。或者通过ustinova引入双线性cnn来学习判别描述符和直方图损失(histogramloss)以分别训练卷积神经网络。这三种方法都没有针对错位问题进行相应的处理,造成行人重识别的识别率低。



技术实现要素:

本发明的目的是提供一种行人重识别方法及系统,解决现有技术中行人重识别出现错位和造成行人重识别的识别率低的问题。

为实现上述目的,本发明提供了如下方案:

一种行人重识别方法,包括:

获取双线性卷积神经网络模型;所述双线性卷积神经网络模型包括由残差网络构成的主干网络和分干网络;

获取输入行人图像;所述输入行人图像包括待识别的行人图像和待搜索库中的图像;

利用所述双线性卷积神经网络模型的主干网络,提取所述输入行人图像的中间特征;所述中间特征为所述主干网络中的残差块输出的多层特征图;

对所述中间特征进行切片操作,得到所述输入行人图像的分块特征;

利用所述双线性卷积神经网络模型的主干网络对所述分块特征进行卷积和线性整流操作,得到所述输入行人图像的第一行人分块细粒度特征;所述第一行人分块细粒度特征为所述输入行人图像中行人整体的特征;

利用所述双线性卷积神经网络模型的分干网络对所述分块特征进行卷积和线性整流操作,得到所述输入行人图像的第二行人分块细粒度特征;所述第二行人分块细粒度特征为所述输入行人图像中行人不同位置的特征;

对所述第一行人分块细粒度特征和所述第二行人分块细粒度特征采用双线性池化层进行融合,得到所述输入行人图像的融合特征;所述融合特征为行人不同位置的融合细粒度特征;

根据所述待识别行人图像的融合特征与所述待搜索库中图像的融合特征之间的距离,确定所述待搜索库中与所述待识别行人图像相同的图像。

可选的,所述对所述第一行人分块细粒度特征和所述第二行人分块细粒度特征采用双线性池化层进行融合,得到所述输入行人图像的融合特征,之后还包括:

对所述融合特征进行自适应池化操作和卷积操作,得到降维后的融合特征;

利用损失函数l=0.6*l1+0.4*l2对所述降维后的融合特征进行优化;l1为主干网络的损失值,l2为分干网络的损失值。

可选的,所述获取双线性卷积神经网络模型,之前还包括:

使用pytorch深度学习库对所述双线性卷积神经网络模型进行训练。

可选的,所述获取双线性卷积神经网络模型,之后还包括:

去除所述双线性卷积神经网络模型的逻辑回归层。

一种行人重识别系统,包括:

模型获取模块,用于获取双线性卷积神经网络模型;所述双线性卷积神经网络模型包括由残差网络构成的主干网络和分干网络;

图像获取模块,用于获取输入行人图像;所述输入行人图像包括待识别的行人图像和待搜索库中的图像;

中间特征提取模块,用于利用所述双线性卷积神经网络模型的主干网络,提取所述输入行人图像的中间特征;所述中间特征为所述主干网络中的残差块输出的多层特征图;

切片模块,用于对所述中间特征进行切片操作,得到所述输入行人图像的分块特征;

第一行人分块细粒度特征确定模块,用于利用所述双线性卷积神经网络模型的主干网络对所述分块特征进行卷积和线性整流操作,得到所述输入行人图像的第一行人分块细粒度特征;所述第一行人分块细粒度特征为所述输入行人图像中行人整体的特征;

第二行人分块细粒度特征确定模块,用于利用所述双线性卷积神经网络模型的分干网络对所述分块特征进行卷积和线性整流操作,得到所述输入行人图像的第二行人分块细粒度特征;所述第二行人分块细粒度特征为所述输入行人图像中行人不同位置的特征;

融合特征确定模块,用于对所述第一行人分块细粒度特征和所述第二行人分块细粒度特征采用双线性池化层进行融合,得到所述输入行人图像的融合特征;所述融合特征为行人不同位置的融合细粒度特征;

识别模块,用于根据所述待识别行人图像的融合特征与所述待搜索库中图像的融合特征之间的距离,确定所述待搜索库中与所述待识别行人图像相同的图像。

可选的,还包括:

降维模块,用于对所述融合特征进行自适应池化操作和卷积操作,得到降维后的融合特征;

优化模块,用于利用损失函数l=0.6*l1+0.4*l2对所述降维后的融合特征进行优化;l1为主干网络的损失值,l2为分干网络的损失值。

可选的,还包括:

训练模块,用于使用pytorch深度学习库对所述双线性卷积神经网络模型进行训练。

可选的,还包括:

去除逻辑回归层模块,用于去除所述双线性卷积神经网络模型的逻辑回归层。

根据本发明提供的具体实施例,本发明公开了以下技术效果:

本发明所提供得一种行人重识别方法及系统,通过在双线性卷积神经网络的主干网络上设置分支网络,并利用主干网络将图像进行切片操作;通过切片操作将过滤图像的背景信息;再利用主干网络和分干网络均对切片后图像进行融合,得到融合特征,得到不同位置的融合细粒度特征,使得行人信息的表示形式中包括更多的信息,防止了错位问题的发生,进而提高了行人重识别的识别精度。

附图说明

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

图1为本发明所提供的一种行人重识别方法流程示意图;

图2为本发明所提供的一种行人重识别方法中双线性卷积神经网络模型的原理图;

图3为本发明所提供的一种行人重识别方法中双线性卷积神经网络模型的结构示意图;

图4为本发明所提供的一种行人重识别方法中双线性卷积神经网络模型训练过程中loss值和top1错误的曲线示意图;

图5为本发明所提供的一种行人重识别系统示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的目的是提供一种行人重识别方法及系统,解决现有技术中行人重识别出现错位和造成行人重识别的识别率低的问题。

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

图1为本发明所提供的一种行人重识别方法流程示意图,如图1所示,本发明提供的一种行人重识别方法,包括:

s101,获取双线性卷积神经网络模型;所述双线性卷积神经网络模型包括由残差网络构成的主干网络和分干网络。

s102,获取输入行人图像;所述输入行人图像包括待识别的行人图像和待搜索库中的图像。

s103,利用所述双线性卷积神经网络模型的主干网络,提取所述输入行人图像的中间特征;所述中间特征为所述主干网络中的残差块输出的多层特征图。

s104,对所述中间特征进行切片操作,得到所述输入行人图像的分块特征;

s105,利用所述双线性卷积神经网络模型的主干网络对所述分块特征进行卷积和线性整流操作,得到所述输入行人图像的第一行人分块细粒度特征;所述第一行人分块细粒度特征为所述输入行人图像中行人整体的特征。

s106,利用所述双线性卷积神经网络模型的分干网络对所述分块特征进行卷积和线性整流操作,得到所述输入行人图像的第二行人分块细粒度特征;所述第二行人分块细粒度特征为所述输入行人图像中行人不同位置的特征。

s107,对所述第一行人分块细粒度特征和所述第二行人分块细粒度特征采用双线性池化层进行融合,得到所述输入行人图像的融合特征;所述融合特征为行人不同位置的融合细粒度特征。

s108,根据所述待识别行人图像的融合特征与所述待搜索库中图像的融合特征之间的距离,确定所述待搜索库中与所述待识别行人图像相同的图像。

图2为本发明所提供的一种行人重识别方法中双线性卷积神经网络模型的原理图,如图2所示,对提取的特征进行切片操作,进一步的将图像信息中的背景信息过滤掉。

所述双线性卷积神经网络模型是通过残差网络(resnet)构建所述双线性卷积神经网络模型主干网络。

作为另一个实施例,为了最大限度地模型复杂性,使用resnet50作为所述双线性卷积神经网络模型的主干网络。主干网络的具体层数如表1所示,减少通道,精简残差块,即残差块精简为三个。用第二层残差块输出的特征进行切片操作,把每个行人的中间特征水平分割为4个部分作为分支网络的输入,分支网络也是从切片的位置开始。

图3为本发明所提供的一种行人重识别方法中双线性卷积神经网络模型的结构示意图,如图3所示,所述双线性卷积神经网络模型中的主干网络的上下均设置有分支网络,主干网络上下设置的分支网络结构相同。

作为另一个实施例,分干网络的具体层数如表1所示,分支网络第一层(conv1)的卷积和大小为3*3,步长为2*2。第二层(conv2)先经过3*3的最大池化,步长为2*2,然后使用3个残差块对输入的特征进行卷积。每个残差块由3个卷积层组成分别是,32个大小为1*1、32个大小为3*3和64个大小为1*1的卷积核。第三层(conv3)由3个残差块组成,每个残差块分别由64个大小为1*1、64个大小为3*3和128个大小为1*1的卷积核组成。第四层(conv4)由3个残差块组成,每个残差块分别由128个大小为1*1、128个大小为3*3和256个大小为1*1的卷积核组成。第五层(conv5)由3个残差块组成,每个残差块分别由256个大小为1*1、256个大小为3*3和512个大小为1*1的卷积核组成。然后使用紧凑型双线性池化进行特征的融合。再使用自适应池化和1*1的卷积对特征进行降维。其中1*1卷积的个数由训练集中行人的个数确定,本实施案例使用market-1501数据集,设置为751。对降维后的特征使用然后使用softmax进行分类。

表1

为了提高识别精度,对融合特征进行优化,具体的操作为:

对所述融合特征进行自适应池化操作和卷积操作,得到降维后的融合特征;

利用损失函数l=0.6*l1+0.4*l2对所述降维后的融合特征进行优化;l1为主干网络的损失值,l2为分干网络的损失值。

作为一个具体的实施例,所述卷积操作为1*1卷积,并使用分类器softmax分类。

其中,损失函数l=0.6*l1+0.4*l2具体的确定过程如下:

step1:利用确定每个网络的损失值;y(i)是双线性卷积神经网络模型的真实标签,是双线性卷积神经网络模型的输出值。

step2:根据图4中loss值和top1错误的曲线示意图,确定主干网络和分干网络的权重。

step3:确定损失函数l=0.6*l1+0.4*l2。

进一步的,为了保证所述双线性卷积神经网络模型的准确性,使用pytorch深度学习库对所述双线性卷积神经网络模型进行训练。

作为一个实施例,所述双线性卷积神经网络模型使用pytorch深度学习库进行实现和训练,并使用随机梯度下降(sgd)进行优化,初始学习率设置为0.01,每10个epoch后再除以10,批大小设置为32,每一个结果输出层前都设置dropout层,保留概率为0.5。所有的训练和测试图像的尺寸设置为384×192。每个训练图像首先通过减去其信道均值进行归一化,然后按随机顺序反馈给网络进行训练。

进一步的,在s101之后还包括:

去除所述双线性卷积神经网络模型的逻辑回归层。

为了验证本发明所提供的一种行人重识别方法识别的准确性,在s108之后还包括:

利用累积匹配特征曲线(cumulativematchcharacteristiccurve,cmc)和平均精度均值(meanaverageprecision,map)对本发明所提供的一种行人重识别方法识别的准确性进行验证。

cmc是把行人重识别看作是一个排序问题,使用在图库中第一次匹配成功的概率用rank1来表示,即排在排序表中第一位的图片是正确结果的概率,通并过实验多次取平均值得到。

map是平均精度(averageprecision,ap)的均值,是将行人重识别作为一个图片检索时的评价标准,ap和map的公式如下:

其中k是查找图像的序列号,p(k)是已经检索到的图像相关的图像占的比例,检索到的图像是第k个图像的相关图像时,b(k)的值1,否则为0。

本发明还提供了一种行人重识别系统,图5为本发明所提供的一种行人重识别系统示意图,如图5所示,所述行人重识别系统包括:模型获取模块501、图像获取模块502、中间特征提取模块503、切片模块504、第一行人分块细粒度特征确定模505、第二行人分块细粒度特征确定模块506、融合特征确定模块507和识别模块508。

模型获取模块501用于获取双线性卷积神经网络模型;所述双线性卷积神经网络模型包括由残差网络构成的主干网络和分干网络。

图像获取模块502用于获取输入行人图像;所述输入行人图像包括待识别的行人图像和待搜索库中的图像。

中间特征提取模块503用于利用所述双线性卷积神经网络模型的主干网络,提取所述输入行人图像的中间特征;所述中间特征为所述主干网络中的残差块输出的多层特征图。

切片模块504用于对所述中间特征进行切片操作,得到所述输入行人图像的分块特征。

第一行人分块细粒度特征确定模块505用于利用所述双线性卷积神经网络模型的主干网络对所述分块特征进行卷积和线性整流操作,得到所述输入行人图像的第一行人分块细粒度特征;所述第一行人分块细粒度特征为所述输入行人图像中行人整体的特征。

第二行人分块细粒度特征确定模块506用于利用所述双线性卷积神经网络模型的分干网络对所述分块特征进行卷积和线性整流操作,得到所述输入行人图像的第二行人分块细粒度特征;所述第二行人分块细粒度特征为所述输入行人图像中行人不同位置的特征。

融合特征确定模块507用于对所述第一行人分块细粒度特征和所述第二行人分块细粒度特征采用双线性池化层进行融合,得到所述输入行人图像的融合特征;所述融合特征为行人不同位置的融合细粒度特征。

识别模块508用于根据所述待识别行人图像的融合特征与所述待搜索库中图像的融合特征之间的距离,确定所述待搜索库中与所述待识别行人图像相同的图像。

本发明所述的一种行人重识别系统还包括:降维模块和优化模块。

降维模块用于对所述融合特征进行自适应池化操作和卷积操作,得到降维后的融合特征。

优化模块用于利用损失函数l=0.6*l1+0.4*l2对所述降维后的融合特征进行优化;l1为主干网络的损失值,l2为分干网络的损失值。

作为一个实施例,所述的一种行人重识别系统还包括:训练模块。

训练模块用于使用pytorch深度学习库对所述双线性卷积神经网络模型进行训练。

作为另一个实施例,所述的一种行人重识别系统还包括:去除逻辑回归层模块。

去除逻辑回归层模块用于去除所述双线性卷积神经网络模型的逻辑回归层。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1