基于Siamese网络的用于行人重识别的方法与流程

文档序号:14715112发布日期:2018-06-16 01:11阅读:770来源:国知局
基于Siamese网络的用于行人重识别的方法与流程

本发明涉及计算机视觉技术领域,特别是一种基于Siamese网络的用于行人重识别的方法。



背景技术:

近年来,随着视频监控系统大量普及,视频监控系统在打击犯罪、维护稳定实践中正发挥着越来越重要的作用,视频侦查已成为公安机关侦查办案的新手段。在视频侦查应用中,针对特定嫌疑目标(尤其是人)的检索是重要需求。目前这一过程主要通过人工完成,耗费大量的人力物力以及时间,影响侦查办案效率。特定目标监控视频检索的核心关键问题——行人重识别,是指判断不同监控摄像头下出现的行人图像是否属于同一行人。随着技术发展和应用需求的增加,这一问题正逐渐发展为学术研究和行业应用的热点。

为了在多摄像头画面下准确匹配同一行人,相关学者分别在时空线索、生物特征和外貌视觉特征的基础上开展行人重识别研究。虽然特定应用条件下人脸识别技术等于行人身份识别,然而在实际视频监控环境下,存在监控视频画面的分辨率较差、行人对象尺度较小以及行人对象姿态的随意性等因素,导致人脸、步态等生物特征难以提取。相对于时空线索和生物特征,行人的外貌视觉特征容易提取,并且具有一定的个体辨识力,而且在一定的时空范围内,行人对象往往不会换装。因此,现有研究大多采用行人图像的外貌特征。

在现有基于外貌的行人重识别研究中,研究者围绕特征提取及相似性度量发展了许多方法。特征提取的重点在于设计鲁棒可靠的行人图像特征表示模型,即能够区分不同行人,同时能够不受光照和视角变化的影响;相似性度量的重点在于学习符合行人图像特征分布特性的距离函数,从而使同一行人图像特征距离较小,不同行人图像特征距离较大。然而,这些方法应用到实际监控业务中仍存在不足,由于行人重识别问题中的图片来源于不同的摄像头,摄像头所处的角度、光照等环境的影响,使同一个行人的不同图片中,外貌特征会有一定程度的变化,而不同行人的外貌特征可能比同一个人的外貌特征更相似。

为了尽量减少不可控监控环境因素的干扰,现有的行人重识别技术不得不在每个监控点的识别结果中都提供一组图像供人选择,再通过交互的相关反馈方法提炼识别结果。这种处理方式不仅增加了人工研判的工作量、降低了视频分析的自动化程度,而且,由于视角和光照差异,行人的外貌特征会发生很大的变化,可能导致提供的排序靠前的结果可信度却更低。



技术实现要素:

本发明的目的在于提供一种基于Siamese网络的用于行人重识别的方法,通过结合卷积神经网络去获取图像特征并得出图像间的相似度,以提高识别的准确率。

实现本发明目的的技术解决方案为:一种基于Siamese网络的用于行人重识别的方法,包括以下步骤:

步骤1,预训练ResNet-50网络:将ImageNet数据集作为训练数据集,训练一个ResNet-50网络,使ResNet-50网络具有初始值;

步骤2,调整ResNet-50网络:将ResNet-50网络的softmax输出层替换为一个大小为1*1*4096*n的卷积层,在该卷积层后再加上一个softmax层进行归一化操作;

步骤3,搭建形成一个Siamese网络:将步骤2所得的ResNet-50网络进行复制,然后将两个ResNet-50网络做并行连接,形成一个Siamese网络;

步骤4,完善Siamese网络:将步骤2中的两个1*1*4096*n卷积层数据输入到一个平方层中,平方层后依次加入一个1*1*4096*2的卷积层和一个softmax层,组成一个完整的Siamese网络;

步骤5,预处理训练数据集:将训练数据集中的所有图像进行随机剪裁,得到一组尺寸为224*224的训练数据集,将剪裁后得到的训练数据集顺序打乱,从中抽取相同和不同类别的图像,组成新的训练数据集;

步骤6,训练Siamese网络:使用步骤5中所得的训练数据集,训练步骤4中的Siamese网络,利用随机梯度下降法求解损失函数,对网络中的参数进行升级优化;

步骤7,将待查图像与训练数据集中的图像匹配成图像对:使用训练好的模型进行行人识别,将一幅待查图像作为Siamese网络的一个输入,将训练数据集中的图像作为Siamese网络的另一个输入,与待查图像匹配成图像对,并得到Siamese网络对两图像的判别和分类结果;

步骤8:进行行人重识别:将两张图像的分类结果和两图像是否一致作为判别条件,判断训练数据集中哪些图像和待查图像属于同一个行人。

进一步地,步骤1所述的预训练ResNet-50网络,采用dropout或Batch Normalization方法对图像进行优化,使ResNet-50网络具备图像特征提取的能力。

进一步地,步骤2所述的调整ResNet-50网络,具体为:

将ResNet-50网络的softmax输出层替换为一个大小为1*1*4096*n的卷积层,其中n为训练数据集中图像所属标签总数,经过了这个卷积层后,得到一个1*1*n大小的张量,然后将这个张量输入一个softmax层中进行归一化处理。

进一步地,步骤4所述的完善Siamese网络,具体如下:

步骤2中卷积层的输入即ResNet-50网络的输出,是一个大小为1*1*4096的张量,这个张量表示ResNet-50网络对输入图像提取的特征;将两个ResNet-50网络提取的图像特征通过平方层做相减平方处理,得到两图像的相似度,再通过一个1*1*4096*2的卷基层和一个softmax层,然后将结果归一化处理。

进一步地,步骤6所述的训练Siamese网络,具体如下:

将步骤5中生成的新训练集输入到Siamese网络中进行训练,损失函数分为三个部分:两个ResNet-50网络的交叉熵和经过平方层输出的交叉熵,交叉熵表达式如下:

其中,K为输入图像的个数,i为输入图像的编号,p为这幅图像所属的真实标签,为通过卷积神经网络分类的概率结果;

然后使用随机梯度法对三个损失函数的和求最优解,从而对相应参数优化升级。

进一步地,步骤8所述的进行行人重识别,具体如下:

步骤4中所构建的Siamese网络具备两个功能:对输入图像分类,度量两个输入图像的相似度;如果两图像的分类结果同属一类并且两图像的判别结果为1,那么训练数据集中的图像和待查询图像是同一个行人;如果两图像的分类结果同属一类或者两图像的判别结果为0,则不是同一个行人。

本发明与现有技术相比,其显著优点为:(1)提高了图像深度特征的区分程度和行人进行重识别的准确率;(2)减少了在大规模图像集中查询图像的查询时间。

附图说明

图1为本发明基于Siamese网络的用于行人重识别的方法的流程示意图。

图2为本发明基于Siamese网络的用于行人重识别的方法的系统结构示意图。

具体实施方式

本发明利用经过预训练的ResNet-50网络对图像进行特征提取,为了度量图像间的相似程度,使用了两个相同的ResNet-50网络构成一个Siamese网络,然后使用训练数据集对这个Siamese网络进行训练,这个Siamese网络可以对输入图像进行标签分类,还可以完成两图像间相似程度的度量。

结合图1~2,本发明基于Siamese网络的用于行人重识别的方法,包括以下步骤:

步骤1:预训练ResNet-50网络:将ImageNet数据集作为训练数据集,训练一个ResNet-50网络,使ResNet-50网络具有理想的初始值;理想的初始值是指具备一定学习图像特征的能力;

步骤2:微调ResNet-50网络:将ResNet-50网络的softmax输出层替换为一个大小为1*1*4096*n的卷积层,在卷积层后再加上一个softmax层进行归一化操作;

步骤3:搭建形成一个Siamese网络:将步骤2所得的ResNet-50网络进行复制,然后将两个ResNet-50网络做并行连接,形成一个Siamese网络;

步骤4:完善Siamese网络:将步骤2中的两个1*1*4096*n卷积层数据输入到一个平方层中,平方层后依次加入一个1*1*4096*2的卷基层和一个softmax层,组成一个完整的Siamese网络;

步骤5:预处理训练数据集:将训练数据集中的所有图像进行随机剪裁,得到一组尺寸为224*224的训练数据集,将剪裁后得到的训练数据集顺序打乱,从中抽取相同和不同类别的图像,将相同行人的图像抽取出多对,不同行人的图像抽出多对,组成新的训练数据集;

步骤6:训练Siamese网络:使用步骤5中所得的训练数据集,训练步骤4中的Siamese网络,利用随机梯度下降法求解损失函数,对网络中的参数进行升级优化;

步骤7:将待查图像与训练数据集中的图像匹配成图像对:使用训练好的模型进行行人识别,将一幅待查图像作为Siamese网络的一个输入,将训练数据集中的图像作为Siamese网络的另一个输入,与待查图像匹配成图像对,并得到Siamese网络对两图像的判别和分类结果;

步骤8:进行行人重识别:将两张图像的分类结果和两图像是否一致作为判别条件,判断训练数据集中哪些图像和待查图像属于同一个行人。

进一步地,步骤1中所述的预训练ResNet-50网络,采用dropout或Batch Normalization方法对图像进行优化,使ResNet-50网络具备图像特征提取的能力。

进一步地,步骤2所述的微调ResNet-50网络,具体为:

将ResNet-50网络的softmax输出层替换为一个大小为1*1*4096*n的卷积层,其中n为训练数据集中图像所属标签总数,经过了这个卷积层后,得到一个1*1*n大小的张量,然后将这个张量输入一个softmax层中进行归一化处理。

进一步地,步骤4所述的完善Siamese网络,具体如下:

步骤2中卷积层的输入即ResNet-50网络的输出,是一个大小为1*1*4096的张量,这个张量表示ResNet-50网络对输入图像提取的特征;将两个ResNet-50网络提取的图像特征通过平方层做相减平方处理,得到两图像的相似度,再通过一个1*1*4096*2的卷基层和一个softmax层,然后将结果归一化处理。

进一步地,步骤6所述的训练Siamese网络,具体如下:

将步骤5中生成的新训练集输入到Siamese网络中进行训练,损失函数分为三个部分:两个ResNet-50网络的交叉熵和经过平方层输出的交叉熵,交叉熵表达式如下:

K为输入图像的个数,p为这幅图像所属的真实标签,为通过卷积神经网络分类的概率结果;

然后使用随机梯度法对三个损失函数的和求最优解,以对相应参数优化升级。

进一步地,步骤8所述的进行行人重识别,具体如下:

步骤4中所构建的Siamese网络具备两个功能:对输入图像分类,度量两个输入图像的相似度;如果两图像的分类结果同属一类并且两图像的判别结果为1,那么训练数据集中的图像和待查询图像是同一个行人;如果两图像的分类结果同属一类或者两图像的判别结果为0,则不是同一个行人。

综上所述,本发明使用自定义的Siamese网络提取行人图像中的深度特征值,并计算图像间的相似程度。首先用ImageNet网络对Siamese网络中的ResNet-50网络进行预训练,使网络具有一定的提取图像特征的能力;然后将ResNet-50网络的输出层替换为一个卷机层,复制这个ResNet-50网络并将其并行连接,对替换的卷积层的两个输入做一个差平方层,用来计算两图像深度特征的相似程度,形成了一个完善的Siamese网络;最后使用训练图像集对Siamese网络进行训练。训练完成的Siamese网络能够提高对图像深度特征的区分程度,进而提高对行人进行重识别的准确率。

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