CN110852152A - 一种基于数据增强的深度哈希行人重识别方法 - Google Patents
一种基于数据增强的深度哈希行人重识别方法 Download PDFInfo
- Publication number
- CN110852152A CN110852152A CN201910927206.1A CN201910927206A CN110852152A CN 110852152 A CN110852152 A CN 110852152A CN 201910927206 A CN201910927206 A CN 201910927206A CN 110852152 A CN110852152 A CN 110852152A
- Authority
- CN
- China
- Prior art keywords
- picture
- network
- pictures
- loss
- generated
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000012549 training Methods 0.000 claims abstract description 66
- 238000012360 testing method Methods 0.000 claims abstract description 29
- 239000013598 vector Substances 0.000 claims abstract description 29
- 230000000694 effects Effects 0.000 claims abstract description 17
- 238000013528 artificial neural network Methods 0.000 claims abstract description 5
- 238000003064 k means clustering Methods 0.000 claims abstract description 5
- 230000006870 function Effects 0.000 claims description 54
- 238000012795 verification Methods 0.000 claims description 25
- 238000009499 grossing Methods 0.000 claims description 16
- 230000008569 process Effects 0.000 claims description 14
- 230000004913 activation Effects 0.000 claims description 12
- 239000011159 matrix material Substances 0.000 claims description 8
- 102100040160 Rabankyrin-5 Human genes 0.000 claims description 6
- 101710086049 Rabankyrin-5 Proteins 0.000 claims description 6
- 238000013527 convolutional neural network Methods 0.000 claims description 5
- 238000002474 experimental method Methods 0.000 claims description 5
- 238000005457 optimization Methods 0.000 claims description 5
- 238000011478 gradient descent method Methods 0.000 claims description 4
- 238000005070 sampling Methods 0.000 claims description 4
- 101001081590 Homo sapiens DNA-binding protein inhibitor ID-1 Proteins 0.000 claims description 3
- 238000013135 deep learning Methods 0.000 claims description 3
- 102000049143 human ID1 Human genes 0.000 claims description 3
- 238000007689 inspection Methods 0.000 claims description 3
- 238000010606 normalization Methods 0.000 claims description 3
- 238000013507 mapping Methods 0.000 abstract 1
- 238000000605 extraction Methods 0.000 description 8
- 238000012163 sequencing technique Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/52—Surveillance or monitoring of activities, e.g. for recognising suspicious objects
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Multimedia (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Biophysics (AREA)
- Human Computer Interaction (AREA)
- Probability & Statistics with Applications (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Image Analysis (AREA)
Abstract
本发明提供一种基于数据增强的深度哈希行人重识别方法,首先利用K‑means聚类方法对原始数据集图片进行聚类,然后分别将得到的n组聚类图片通过深度卷积生成对抗网络生成n组无标签行人图片进行数据增强,这样每组生成的图片特征上有更多地相似性。然后将原始数据集图片和生成图片一起放入深度哈希卷积神经网络中训练,用三元组损失分别拉近原始图片和生成图片中相同类行人的距离和拉开不同类行人的距离,对于生成图片,本发明还提出用均值标签平滑损失,让增强的这部分数据达到比较好的正则化效果,最后测试时将提取到的实数值特征映射为01向量,通过计算两个01向量之间的汉明距离判定行人图片的命中率,提高检索速率。
Description
技术领域
本发明涉及图像检索中的行人重识别技术领域,更具体地,涉及一种基于数据增强的深度哈希行人重识别方法。
背景技术
行人重识别,又称行人再识别、Person Re-identification,简称为ReID,是利用计算机视觉技术判断图像或者视频序列中是否存在特定行人的技术。行人重识别被广泛认为是图像检索的一个子问题。就是给定一个监控行人图像,检索跨设备下的该行人图像。
因为在监控视频中,由于相机分辨率和拍摄角度的缘故,通常无法得到质量非常高的人脸图片,当人脸识别失效的情况下,行人重识别就成为了一个非常重要的替代品技术。它可以运用于智能安防,跨镜头跟踪嫌疑人,可以运用在人机交互、相册聚类中,还可以运用于智能商业,如无人超市等。
行人重识别的基本流程一般是特征提取-度量学习-相似度排序。第一步特征提取就是输入图片,通过神经网络对图片提取特征;第二步度量学习就是通过交叉熵损失函数或者度量损失函数计算loss进行反向传播训练提取特征的网络;第三步相似度排序就是在训练完成之后进行检索,即对图片计算余弦距离,然后进行相似度排序。因为现在特征提取网络模型发展已经比较成熟,在特征提取这块上几乎很难再提高特征提取的效果,所以考虑从第二步进行优化,就是设计一个比较好的损失函数。并且由于目前行人重识别数据集有限,容易在数据集表现为过拟合,所以考虑从数据增强来提升行人重识别的实验效果。针对第三步中的计算距离进行相似度排序,由于用实数特征值进行距离计算检索效率较慢。
发明内容
本发明提供一种基于数据增强的深度哈希行人重识别方法,该方法可实现提升行人重识别的命中率。
为了达到上述技术效果,本发明的技术方案如下:
一种基于数据增强的深度哈希行人重识别方法,包括以下步骤:
S1:对原始数据集图片进行K-means聚类,建立深度卷积生成对抗网络分别对n组聚类图片生成n组无标签行人图片;
S2:建立深度哈希卷积神经网络,建立三元组损失和均值标签平滑损失函数;
S3:将原始图片和生成图片一起送入网络中训练,并在测试集上进行测试。
进一步地,所述步骤S1的具体过程是:
S11:对k类原始数据集图片,放入在ImageNet上预训练好的Resnet50网络中,先随机选取n个中心点即n张图片,遍历所有提取到的图片特征,通过计算其他图片特征到中心点特征的欧式距离将每个图片特征划分到最近的中心点中,计算每个聚类的平均值,并作为新的中心点,一共迭代50次左右将原始数据集图片聚类为n个类;
其中,Imagenet是一个包含2万多个类别,有1400多万幅张图片的数据集,是目前深度学习图像领域算法性能检验的“标准”数据集,用于预训练Resnet50网络,直接用Imagenet数据集预训练好的Resnet50网络作为基网络,Resnet50是深度卷积神经网络,哈希指的是在实验最后将实数值特征映射到了哈希维度的特征,即01特征;
S12:建立一个生成器网络G和一个判别器网络D;
S13:在G、D中,除G网络的输出层和D网络的输入层,其他层均使用批量规范化帮助模型收敛,损失函数为V(D,G)=Ex~Pdata(x)[lnD(x)]+Ez~Pz(z)[ln(1-D(G(z)))],其中Ex~Pdata(x)表示在训练数据x中取得真实样本,Ez~Pz(z)表示从已知的噪声分布中提取的样本,x表示真实图片,z表示输入G网络的噪声,G(z)表示G网络生成的图片,D(x)表示D网络判断真实图片为真实的概率,D(G(z))表示D网络判断G生成的图片为真实的概率,G希望自己生成的图片越接近真实越好,即D(G(z))尽可能得大,希望V(D,G)越小越好,D希望D(x)越大,D(G(z))越小,希望V(D,G)越大越好;
S14:使用梯度下降法,在每个epoch的每batchsize张图片训练中,对D网络参数更新一次后,固定D网络,对G网络参数更新两次,以避免D网络的loss为0,即对D和G交替做优化训练,在30个epoch之后停止训练;
S15:该深度卷积生成对抗网络先对整个原始数据集进行训练,在整个数据集训练得到的模型基础上再分别用每组聚类得到的图片进行训练,训练得到n个模型,再用生成器网络G对应生成n组图片,得到n组用于数据增强的图片。
进一步地,所述步骤S12中建立一个生成器网络G的过程是:
G网络的输入是batchsize个N维的随机噪声向量,先通过一个全连接层转化为4x4x1024向量,在reshape成4x4x1024矩阵后通过四层反卷积进行上采样,并逐渐减少通道数,最后得到batchsize张64x64x3大小的图片,最后的输出层使用tanh激活函数,其余层使用relu激活函数,其中N为100。
进一步地,所述步骤S12中建立一个判别器网络D的过程是:
D网络的输入是batchsize张64x64x3大小的图片,通过四个卷积层得到4x4x1024矩阵,在flatten成4x4x1024向量之后经过一个全连接层得到batchsize维向量,最后将得到的batchsize维特征值送入sigmoid函数,输出值小于等于0.5则判别为假图片,大于0.5则判别为真图片,在D网络中所有层都使用LeakyReLU激活函数。
进一步地,所述步骤S2的具体过程是:
S21:使用在Imagenet上预训练好的resnet50网络作为基网络,在网络的最后一层加上一层全连接层,将原本2048维线性转换为所设的hash_bits维度;
S22:对于原始数据集图片,构建三元组损失,在一个batch中,对于一张原始数据集图片a,都挑出其正样本图片p和负样本图片n,p就是和a同属于一个ID的行人图片,n就是和a不属于同一个ID的行人图片,设置阈值margin,损失函数如下:
lossraw=max(dap-dan+margin,0)
其中d是指两张行人图片提取特征之间的欧式距离,通过三元组损失可以拉近正样本对之间的距离,推开负样本对之间的距离,最后使得相同ID的行人图片在特征空间里形成聚类;
S23:对于聚类得到的n组生成图片,由两部分损失组成,一个是和原始数据集图片类似的三元组损失,一个是均值标签平滑损失,对于三元组损失,在一个batch中,对于任意一张生成图片a,p为和a在同个聚类中的生成图片,n为和a在不同聚类中的生成图片,同样设置阈值margin,三元组损失函数如下:
lossgen1=max(dap-dan+margin,0)
对于均值标签平滑损失,因为哈希最后是将特征映射到01空间,而生成数据没有标签,希望其起到一个好的正则化效果并且又不做过分的假设将其引导至某个已有标签,所以希望对于每张生成图片所提取到的hash_bits维的特征值中,映射到哈希空间时01值尽量是要分布均等的,所以让每张生成图片所提取到的hash_bits维的特征值平均值要尽量靠近0.5,进行均值标签平滑,设置的均值标签平滑函数如下:
S24:对于总的损失函数,则是设置如下,其中对于原始图片,flag为0,对于生成图片,flag为1:
loss=(1-flag)*1.0*lossraw+flag*0.1*(lossgen1+lossgen2)。
进一步地,所述步骤S3的具体过程是:
S31:原始数据集已经划分为训练集和测试集,在在训练集每一类行人中抽取一张作为验证集的query图片,剩下的作为训练集,训练集中图片同时也是验证集的gallery;
S32:然后对原始数据的训练集和生成图片数据集进行读取,在读取每个batch的图片时,设定采样方式,设置在每个batch中至少包含3类原始图片和2类生成图片,每类图片至少包含4张,保证每个batch都能提取到足够的三元组进行训练;
S33:将batch_size设定为32,迭代150个epoch,每隔一个epoch在验证集上进行行人ID命中率的验证;
S34:保存验证集上命中率最高的模型best_model,并且在epoch大于40时,保存之后的每一个模型参数,用best_model在测试集上进行测试,并使用rank1,rank5,rank20,mAP作为验证指标。
与现有技术相比,本发明技术方案的有益效果是:
以往在哈希领域没有用到用DCGAN生成的图片进行数据增强,在原始数据集上容易表现为过拟合。本发明提出的将原始数据集进行聚类再分别送入DCGAN中生成图片进行数据增强,在强大的预训练好的resnet50提取特征网络基础上,对这部分无标签的生成数据通过三元组损失拉近同类间的距离并且拉开不同类间的距离,通过均值标签平滑损失让这部分增强的数据达到很好的正则化效果。经过验证,本发明提出的基于数据增强的行人重识别方法不仅在哈希检索。
附图说明
图1为本发明流程示意图;
图2为实施例1中的处理过程示意图。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;
对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
下面结合附图和实施例对本发明的技术方案做进一步的说明。
实施例1
如图1-2所示,一种基于数据增强的深度哈希行人重识别方法,包括以下步骤:
S1:对原始数据集图片进行K-means聚类,建立深度卷积生成对抗网络分别对n组聚类图片生成n组无标签行人图片;
S2:建立深度哈希卷积神经网络,建立三元组损失和均值标签平滑损失函数;
S3:将原始图片和生成图片一起送入网络中训练,并在测试集上进行测试。
步骤S1的具体过程是:
S11:对k类原始数据集图片,放入在ImageNet上预训练好的Resnet50网络中,先随机选取n个中心点即n张图片,遍历所有提取到的图片特征,通过计算其他图片特征到中心点特征的欧式距离将每个图片特征划分到最近的中心点中,计算每个聚类的平均值,并作为新的中心点,一共迭代50次左右将原始数据集图片聚类为n个类;
其中,Imagenet是一个包含2万多个类别,有1400多万幅张图片的数据集,是目前深度学习图像领域算法性能检验的“标准”数据集,用于预训练Resnet50网络,直接用Imagenet数据集预训练好的Resnet50网络作为基网络,Resnet50是深度卷积神经网络,哈希指的是在实验最后将实数值特征映射到了哈希维度的特征,即01特征;
S12:建立一个生成器网络G和一个判别器网络D;
S13:在G、D中,除G网络的输出层和D网络的输入层,其他层均使用批量规范化帮助模型收敛,损失函数为V(D,G)=Ex~Pdata(x)[lnD(x)]+Ez~Pz(z)[ln(1-D(G(z)))],其中Ex~Pdata(x)表示在训练数据x中取得真实样本,Ez~Pz(z)表示从已知的噪声分布中提取的样本,x表示真实图片,z表示输入G网络的噪声,G(z)表示G网络生成的图片,D(x)表示D网络判断真实图片为真实的概率,D(G(z))表示D网络判断G生成的图片为真实的概率,G希望自己生成的图片越接近真实越好,即D(G(z))尽可能得大,希望V(D,G)越小越好,D希望D(x)越大,D(G(z))越小,希望V(D,G)越大越好;
S14:使用梯度下降法,在每个epoch的每batchsize张图片训练中,对D网络参数更新一次后,固定D网络,对G网络参数更新两次,以避免D网络的loss为0,即对D和G交替做优化训练,在30个epoch之后停止训练;
S15:该深度卷积生成对抗网络先对整个原始数据集进行训练,在整个数据集训练得到的模型基础上再分别用每组聚类得到的图片进行训练,训练得到n个模型,再用生成器网络G对应生成n组图片,得到n组用于数据增强的图片。
步骤S12中建立一个生成器网络G的过程是:
G网络的输入是batchsize个N维的随机噪声向量,先通过一个全连接层转化为4x4x1024向量,在reshape成4x4x1024矩阵后通过四层反卷积进行上采样,并逐渐减少通道数,最后得到batchsize张64x64x3大小的图片,最后的输出层使用tanh激活函数,其余层使用relu激活函数,其中N为100。
步骤S12中建立一个判别器网络D的过程是:
D网络的输入是batchsize张64x64x3大小的图片,通过四个卷积层得到4x4x1024矩阵,在flatten成4x4x1024向量之后经过一个全连接层得到batchsize维向量,最后将得到的batchsize维特征值送入sigmoid函数,输出值小于等于0.5则判别为假图片,大于0.5则判别为真图片,在D网络中所有层都使用LeakyReLU激活函数。
步骤S2的具体过程是:
S21:使用在Imagenet上预训练好的resnet50网络作为基网络,在网络的最后一层加上一层全连接层,将原本2048维线性转换为所设的hash_bits维度;
S22:对于原始数据集图片,构建三元组损失,在一个batch中,对于一张原始数据集图片a,都挑出其正样本图片p和负样本图片n,p就是和a同属于一个ID的行人图片,n就是和a不属于同一个ID的行人图片,设置阈值margin,损失函数如下:
lossraw=max(dap-dan+margin,0)
其中d是指两张行人图片提取特征之间的欧式距离,通过三元组损失可以拉近正样本对之间的距离,推开负样本对之间的距离,最后使得相同ID的行人图片在特征空间里形成聚类;
S23:对于聚类得到的n组生成图片,由两部分损失组成,一个是和原始数据集图片类似的三元组损失,一个是均值标签平滑损失,对于三元组损失,在一个batch中,对于任意一张生成图片a,p为和a在同个聚类中的生成图片,n为和a在不同聚类中的生成图片,同样设置阈值margin,三元组损失函数如下:
lossgen1=max(dap-dan+margin,0)
对于均值标签平滑损失,因为哈希最后是将特征映射到01空间,而生成数据没有标签,希望其起到一个好的正则化效果并且又不做过分的假设将其引导至某个已有标签,所以希望对于每张生成图片所提取到的hash_bits维的特征值中,映射到哈希空间时01值尽量是要分布均等的,所以让每张生成图片所提取到的hash_bits维的特征值平均值要尽量靠近0.5,进行均值标签平滑,设置的均值标签平滑函数如下:
S24:对于总的损失函数,则是设置如下,其中对于原始图片,flag为0,对于生成图片,flag为1:
loss=(1-flag)*1.0*lossraw+flag*0.1*(lossgen1+lossgen2)。
步骤S3的具体过程是:
S31:原始数据集已经划分为训练集和测试集,在在训练集每一类行人中抽取一张作为验证集的query图片,剩下的作为训练集,训练集中图片同时也是验证集的gallery;
S32:然后对原始数据的训练集和生成图片数据集进行读取,在读取每个batch的图片时,设定采样方式,设置在每个batch中至少包含3类原始图片和2类生成图片,每类图片至少包含4张,保证每个batch都能提取到足够的三元组进行训练;
S33:将batch_size设定为32,迭代150个epoch,每隔一个epoch在验证集上进行行人ID命中率的验证;
S34:保存验证集上命中率最高的模型best_model,并且在epoch大于40时,保存之后的每一个模型参数,用best_model在测试集上进行测试,并使用rank1,rank5,rank20,mAP作为验证指标。
实施例2
如图1所示,本发明是一种基于数据增强的深度哈希行人重识别方法,首先要了解数据集。实验所用数据集为Market-1501和CUHK03。Market-1501数据集是在清华大学校园中采集,在2015年构建并公开。它包括由6个摄像头(其中5个高清摄像头和1个低清摄像头)拍摄到的1501个行人、32668个检测到的行人矩形框。每个行人至少由2个摄像头捕获到,并且在一个摄像头中可能具有多张图像。训练集有751人,包含12,936张图像,平均每个人有17.2张训练数据;测试集有750人,包含19,732张图像,平均每个人有26.3张测试数据。3368张查询图像(query)的行人检测矩形框是人工绘制的,而测试检索库(gallery)中的行人检测矩形框则是使用DPM检测器检测得到的。CUHK03数据集是在香港中文大学中采集,在2014年构建并公开。它包括由5对摄像头拍摄到的1467个行人、13164个监测到的行人矩形框。训练集有767人,测试集有700人。训练集和测试集行人是不重复的。在测试阶段,随机选择一张图像作为query,剩下的作为gallery。具体的数据即信息详见表1。
表1、实验所用数据集信息
在之前的行人重识别哈希领域中,效果较好的做法是通过CNN网络对图片特征进行提取得到hash_bits维度的实数值特征,设计损失函数进行反向传播,迭代一定次数后通过sign函数将经过sigmoid得到的实数值特征转化为hash_bits维度的01向量,通过汉明距离进行相似度排序。以往的做法在于改进特征提取网络或者设计好的损失函数,或者通过设计二值化函数来做哈希领域的行人重识别,但都是基于原给定数据集,都会面临着数据集有限容易过拟合的问题,而本方法针对以往方法的不足,提出了一种通过聚类和DCGAN生成图片进行数据增强的方法,并针对原数据集图片和生成图片设计了不同的哈希损失函数,提升了哈希领域的行人重识别的命中率,在实数特征领域的行人重识别也达到了很好的命中率效果。
具体方法步骤如下:首先对原始数据集图片进行K-means聚类,建立深度卷积生成对抗网络,先对整个原始数据集进行训练,在整个数据集训练得到的模型基础上再分别用每组聚类得到的图片进行训练,训练得到n个模型,再用生成器网络G对应生成n组图片,得到n组用于数据增强的图片。然后使用在Imagenet上预训练好的resnet50网络作为基网络,在网络的最后一层加上一层全连接层,将原本2048维线性转换为所设的hash_bits维度。对于原始数据集图片,构建三元组损失。对于聚类得到的n组生成图片,由两部分损失组成,一个是和原始数据集图片类似的三元组损失,一个是均值标签平滑损失。通过网络提取到的特征经过sigmoid,得到01之间的实数值特征,然后计算原始数据集图片和生成图片的加和loss,进行反向传播更新网络参数,迭代150个epoch,并且每隔一个epoch在验证集上进行行人ID命中率的验证,保存验证集上命中率最高的模型best_model,并且在epoch大于40时,保存之后的每一个模型参数。用best_model在测试集上进行测试,并使用rank1,rank5,rank20,mAP作为验证指标。
细节如下:
1、对k类原始数据集图片,放入在ImageNet上预训练好的Resnet50网络中,先随机选取n个中心点即n张图片,遍历所有提取到的图片特征,通过计算其他图片特征到中心点特征的欧式距离将每个图片特征划分到最近的中心点中,计算每个聚类的平均值,并作为新的中心点,一共迭代50次左右将原始数据集图片聚类为n个类。建立一个生成器网络G。G网络的输入是batchsize个100维的随机噪声向量,先通过一个全连接层转化为4x4x1024向量,在reshape成4x4x1024矩阵后通过四层反卷积进行上采样,并逐渐减少通道数,最后得到batchsize张64x64x3大小的图片。最后的输出层使用tanh激活函数,其余层使用relu激活函数。建立一个判别器网络D。D网络的输入是batchsize张64x64x3大小的图片,通过四个卷积层得到4x4x1024矩阵,在flatten成4x4x1024向量之后经过一个全连接层得到batchsize维向量,最后将得到的batchsize维特征值送入sigmoid函数,输出值小于等于0.5则判别为假图片,大于0.5则判别为真图片。在D网络中所有层都使用LeakyReLU激活函数。
2、使用梯度下降法,在每个epoch的每batchsize张图片训练中,其中batchsize设置为64,对D网络参数更新一次后,固定D网络,对G网络参数更新两次,以避免D网络的loss为0,即对D和G交替做优化训练。在30个epoch之后停止训练。先对整个原始数据集进行训练,在整个数据集训练得到的模型基础上再分别用每组聚类得到的图片进行训练,训练得到n个模型,再用生成器网络G对应生成n组图片,得到n组用于数据增强的图片。
3、构建特征提取网络,将在Imagenet上预训练好的resnet50网络最后一层加上一层全连接层,将原本2048维线性转换为所设的hash_bits维度。
4、对原始数据的训练集和生成图片数据集进行读取,在读取每个batch的图片时,设定采样方式,设置在每个batch中至少包含3类原始图片和2类生成图片,每类图片至少包含4张,保证每个batch都能提取到足够的三元组进行训练。原始图片和生成图片的区分用flag参数进行区分,flag=1代表生成图片,flag=0代表原始图片。
5、设计损失函数。对网络提取到的图片特征计算loss,进行反向更新参数。对于batch中的每张原始图片a都挑出其正样本图片p和负样本图片n(这里的负样本图片不包括生成图片),损失函数为lossraw=max(dap-dan+margin,0),其中d是指两张行人图片经过网络提取特征后,经过sigmoid函数得到01之间的实数值特征,然后计算两个01之间实数值特征的欧式距离,margin设为hash_bits/12。
6、对于batch中的每张生成图片a也同样挑出其正样本图片p和负样本图片n(这里的负样本图片不包括原始图片),损失函数为lossgen1=max(dap-dan+margin,0),其中d和margin同上述原始图片三元组损失中一致。对于生成图片,还要计算均值标签平滑损失,让每张生成图片所提取到的hash_bits维的经过sigmoid函数后的实数值特征平均值要尽量靠近0.5,进行均值标签平滑,设置的均值标签平滑函数为对于总的损失函数,则为loss=(1-flag)*1.0*lossraw+flag*0.1*(lossgen1+lossgen2),其中对于原始图片,flag为0,对于生成图片,flag为1。
7、在训练集每一类行人中抽取一张作为验证集的query图片,剩下的作为训练集,训练集中图片同时也是验证集的gallery。将batch_size设定为32,迭代150个epoch。每隔一个epoch在验证集上进行行人ID命中率的验证。即将验证集中的每张query图片和训练集中每张图片通过网络提取出特征后,经过sigmoid函数,再将hash_bits维中每个实数值-0.5,通过sign函数转变为01向量,计算query图片提取到的01向量和训练集中每张图片01向量的汉明距离,然后将距离从小到大进行排序,看排在第一张的图片和query图片是否是同一个行人,如果是则命中,计算所有query图片的命中率。保存验证集上命中率最高的模型best_model,并且在epoch大于40时,保存之后的每一个模型参数。
8、用best_model在测试集上进行测试,并使用rank1,rank5,rank20,mAP作为验证指标。rankn的计算就是将测试集中的每张query图片和训练集中每张图片通过best_model网络提取出特征后,经过sigmoid函数,再将hash_bits维中每个实数值-0.5,通过sign函数转变为01向量,计算query图片提取到的01向量和训练集中每张图片01向量的汉明距离,然后将距离从小到大进行排序,看排在前n张的图片中是否有一张和query图片为同一个行人,如果是则命中,计算所有query图片的rankn命中率。mAP就是图像检索通用评价指标,用于计算所有query图片的平均检索精度。
为了和以前方法做对比,采用了之前一些表现效果较好的哈希模型和非哈希模型,并且与进来效果较好的哈希模型进行了不同哈希码位数效果的比较,在CUHK03与Market1501数据集上以相同的迭代次数进行了训练与测试,最终到了如下的实验结果。
表2、哈希模型在CUHK03和Market1501上数据集的效果比较
表3、和近来效果较好的哈希模型在Market1501数据集上不同哈希码位的比较
表4、非哈希模型在CUHK03数据集上的效果比较
模型 | Rank1 | Rank5 | Rank20 | mAP |
DeepReID | 19.9 | 49.8 | 78.2 | - |
Improved Deep | 44.9 | 76.4 | 93.6 | - |
NSL | 54.7 | 84.8 | 95.2 | - |
Gated CNN | 61.8 | 80.9 | - | 51.3 |
SSM | 72.7 | 92.4 | - | - |
MuDeep | 75.6 | 94.4 | - | - |
PDC | 78.3 | 94.8 | 98.4 | - |
本文方法 | 71.8 | 91.5 | 98.5 | 63.5 |
从结果可以看出的发明相较于以前方法有不小的提升,本发明使用聚类和DCGAN进行数据增强,对原始数据集图片和生成图片设计了不同的损失函数,最后将其转化为哈希码进行汉明距离的排序比较,在提高检索速率的基础上同时保证检索效果。和以往的哈希方法相比提升了不小效果,和近来效果较好的ABC模型进行不同哈希码数的对比,可以看到在不同位的哈希码数下,本文方法效果都是优于ABC方法。和以往非哈希方法相比,即不用哈希码进行检索,用实数值特征进行比较检索的模型,本文方法也取得了很好的效果。本发明的具体结构如附图1所示。
相同或相似的标号对应相同或相似的部件;
附图中描述位置关系的用于仅用于示例性说明,不能理解为对本专利的限制;
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (6)
1.一种基于数据增强的深度哈希行人重识别方法,其特征在于,包括以下步骤:
S1:对原始数据集图片进行K-means聚类,建立深度卷积生成对抗网络分别对n组聚类图片生成n组无标签行人图片;
S2:建立深度哈希卷积神经网络,建立三元组损失和均值标签平滑损失函数;
S3:将原始图片和生成图片一起送入网络中训练,并在测试集上进行测试。
2.根据权利要求1所述的基于数据增强的深度哈希行人重识别方法,其特征在于,所述步骤S1的具体过程是:
S11:对k类原始数据集图片,放入在ImageNet上预训练好的Resnet50网络中,先随机选取n个中心点即n张图片,遍历所有提取到的图片特征,通过计算其他图片特征到中心点特征的欧式距离将每个图片特征划分到最近的中心点中,计算每个聚类的平均值,并作为新的中心点,一共迭代40-60次左右将原始数据集图片聚类为n个类;
其中,Imagenet是一个包含2万多个类别,有1400多万幅张图片的数据集,是目前深度学习图像领域算法性能检验的“标准”数据集,用于预训练Resnet50网络,直接用Imagenet数据集预训练好的Resnet50网络作为基网络,Resnet50是深度卷积神经网络,哈希指的是在实验最后将实数值特征映射到了哈希维度的特征,即01特征;
S12:建立一个生成器网络G和一个判别器网络D;
S13:在G、D中,除G网络的输出层和D网络的输入层,其他层均使用批量规范化帮助模型收敛,损失函数为V(D,G)=Ex~Pdata(x)[lnD(x)]+Ez~Pz(z)[ln(1-D(G(z)))],其中Ex~Pdata(x)表示在训练数据x中取得真实样本,Ez~Pz(z)表示从已知的噪声分布中提取的样本,x表示真实图片,z表示输入G网络的噪声,G(z)表示G网络生成的图片,D(x)表示D网络判断真实图片为真实的概率,D(G(z))表示D网络判断G生成的图片为真实的概率,G希望自己生成的图片越接近真实越好,即D(G(z))尽可能得大,希望V(D,G)越小越好,D希望D(x)越大,D(G(z))越小,希望V(D,G)越大越好;
S14:使用梯度下降法,在每个epoch的每batchsize张图片训练中,对D网络参数更新一次后,固定D网络,对G网络参数更新两次,以避免D网络的loss为0,即对D和G交替做优化训练,在30个epoch之后停止训练;
S15:该深度卷积生成对抗网络先对整个原始数据集进行训练,在整个数据集训练得到的模型基础上再分别用每组聚类得到的图片进行训练,训练得到n个模型,再用生成器网络G对应生成n组图片,得到n组用于数据增强的图片。
3.根据权利要求2所述的基于数据增强的深度哈希行人重识别方法,其特征在于,所述步骤S12中建立一个生成器网络G的过程是:
G网络的输入是batchsize个N维的随机噪声向量,先通过一个全连接层转化为4x4x1024向量,在reshape成4x4x1024矩阵后通过四层反卷积进行上采样,并逐渐减少通道数,最后得到batchsize张64x64x3大小的图片,最后的输出层使用tanh激活函数,其余层使用relu激活函数。
4.根据权利要求3所述的基于数据增强的深度哈希行人重识别方法,其特征在于,所述步骤S12中建立一个判别器网络D的过程是:
D网络的输入是batchsize张64x64x3大小的图片,通过四个卷积层得到4x4x1024矩阵,在flatten成4x4x1024向量之后经过一个全连接层得到batchsize维向量,最后将得到的batchsize维特征值送入sigmoid函数,输出值小于等于0.5则判别为假图片,大于0.5则判别为真图片,在D网络中所有层都使用LeakyReLU激活函数。
5.根据权利要求4所述的基于数据增强的深度哈希行人重识别方法,其特征在于,所述步骤S2的具体过程是:
S21:使用在Imagenet上预训练好的resnet50网络作为基网络,在网络的最后一层加上一层全连接层,将原本2048维线性转换为所设的hash_bits维度;
S22:对于原始数据集图片,构建三元组损失,在一个batch中,对于一张原始数据集图片a,都挑出其正样本图片p和负样本图片n,p就是和a同属于一个ID的行人图片,n就是和a不属于同一个ID的行人图片,设置阈值margin,损失函数如下:
lossraw=max(dap-dan+margin,0)
其中d是指两张行人图片提取特征之间的欧式距离,通过三元组损失可以拉近正样本对之间的距离,推开负样本对之间的距离,最后使得相同ID的行人图片在特征空间里形成聚类;
S23:对于聚类得到的n组生成图片,由两部分损失组成,一个是和原始数据集图片类似的三元组损失,一个是均值标签平滑损失,对于三元组损失,在一个batch中,对于任意一张生成图片a,p为和a在同个聚类中的生成图片,n为和a在不同聚类中的生成图片,同样设置阈值margin,三元组损失函数如下:
lossgen1=max(dap-dan+margin,0)
对于均值标签平滑损失,因为哈希最后是将特征映射到01空间,而生成数据没有标签,希望其起到一个好的正则化效果并且又不做过分的假设将其引导至某个已有标签,所以希望对于每张生成图片所提取到的hash_bits维的特征值中,映射到哈希空间时01值尽量是要分布均等的,所以让每张生成图片所提取到的hash_bits维的特征值平均值要尽量靠近0.5,进行均值标签平滑,设置的均值标签平滑函数如下:
S24:对于总的损失函数,则是设置如下,其中对于原始图片,flag为0,对于生成图片,flag为1:
loss=(1-flag)*1.0*lossraw+flag*0.1*(lossgen1+lossgen2)。
6.根据权利要求5所述的基于数据增强的深度哈希行人重识别方法,其特征在于,所述步骤S3的具体过程是:
S31:原始数据集已经划分为训练集和测试集,在在训练集每一类行人中抽取一张作为验证集的query图片,剩下的作为训练集,训练集中图片同时也是验证集的gallery;
S32:然后对原始数据的训练集和生成图片数据集进行读取,在读取每个batch的图片时,设定采样方式,设置在每个batch中至少包含3类原始图片和2类生成图片,每类图片至少包含4张,保证每个batch都能提取到足够的三元组进行训练;
S33:将batch_size设定为32,迭代150个epoch,每隔一个epoch在验证集上进行行人ID命中率的验证;
S34:保存验证集上命中率最高的模型best_model,并且在epoch大于40时,保存之后的每一个模型参数,用best_model在测试集上进行测试,并使用rank1,rank5,rank20,mAP作为验证指标。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910927206.1A CN110852152B (zh) | 2019-09-27 | 2019-09-27 | 一种基于数据增强的深度哈希行人重识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910927206.1A CN110852152B (zh) | 2019-09-27 | 2019-09-27 | 一种基于数据增强的深度哈希行人重识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110852152A true CN110852152A (zh) | 2020-02-28 |
CN110852152B CN110852152B (zh) | 2024-04-09 |
Family
ID=69596149
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910927206.1A Active CN110852152B (zh) | 2019-09-27 | 2019-09-27 | 一种基于数据增强的深度哈希行人重识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110852152B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111476168A (zh) * | 2020-04-08 | 2020-07-31 | 山东师范大学 | 一种基于三阶段的跨域行人重识别方法和系统 |
CN111950372A (zh) * | 2020-07-13 | 2020-11-17 | 南京航空航天大学 | 一种基于图卷积网络的无监督行人重识别方法 |
CN112149618A (zh) * | 2020-10-14 | 2020-12-29 | 紫清智行科技(北京)有限公司 | 适用于巡检车的行人异常行为检测方法与装置 |
CN112488035A (zh) * | 2020-12-14 | 2021-03-12 | 南京信息工程大学 | 一种基于对抗神经网络的跨域行人重识别方法 |
CN112613433A (zh) * | 2020-12-28 | 2021-04-06 | 厦门市美亚柏科信息股份有限公司 | 一种行人重识别的生成数据的伪标签分配方法及系统 |
CN112861780A (zh) * | 2021-03-05 | 2021-05-28 | 上海有个机器人有限公司 | 一种行人重识别方法、装置、介质和移动机器人 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109241317A (zh) * | 2018-09-13 | 2019-01-18 | 北京工商大学 | 基于深度学习网络中度量损失的行人哈希检索方法 |
CN109919084A (zh) * | 2019-03-06 | 2019-06-21 | 南京大学 | 一种基于深度多索引哈希的行人重识别方法 |
CN110046579A (zh) * | 2019-04-18 | 2019-07-23 | 重庆大学 | 一种深度哈希的行人再识别方法 |
-
2019
- 2019-09-27 CN CN201910927206.1A patent/CN110852152B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109241317A (zh) * | 2018-09-13 | 2019-01-18 | 北京工商大学 | 基于深度学习网络中度量损失的行人哈希检索方法 |
CN109919084A (zh) * | 2019-03-06 | 2019-06-21 | 南京大学 | 一种基于深度多索引哈希的行人重识别方法 |
CN110046579A (zh) * | 2019-04-18 | 2019-07-23 | 重庆大学 | 一种深度哈希的行人再识别方法 |
Non-Patent Citations (1)
Title |
---|
YE LIU 等: "Margin-based two-stagesupervisedhashingforimageretrieval" * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111476168A (zh) * | 2020-04-08 | 2020-07-31 | 山东师范大学 | 一种基于三阶段的跨域行人重识别方法和系统 |
CN111476168B (zh) * | 2020-04-08 | 2022-06-21 | 山东师范大学 | 一种基于三阶段的跨域行人重识别方法和系统 |
CN111950372A (zh) * | 2020-07-13 | 2020-11-17 | 南京航空航天大学 | 一种基于图卷积网络的无监督行人重识别方法 |
CN112149618A (zh) * | 2020-10-14 | 2020-12-29 | 紫清智行科技(北京)有限公司 | 适用于巡检车的行人异常行为检测方法与装置 |
CN112149618B (zh) * | 2020-10-14 | 2022-09-09 | 紫清智行科技(北京)有限公司 | 适用于巡检车的行人异常行为检测方法与装置 |
CN112488035A (zh) * | 2020-12-14 | 2021-03-12 | 南京信息工程大学 | 一种基于对抗神经网络的跨域行人重识别方法 |
CN112488035B (zh) * | 2020-12-14 | 2024-04-26 | 南京信息工程大学 | 一种基于对抗神经网络的跨域行人重识别方法 |
CN112613433A (zh) * | 2020-12-28 | 2021-04-06 | 厦门市美亚柏科信息股份有限公司 | 一种行人重识别的生成数据的伪标签分配方法及系统 |
CN112613433B (zh) * | 2020-12-28 | 2022-08-19 | 厦门市美亚柏科信息股份有限公司 | 一种行人重识别的生成数据的伪标签分配方法及系统 |
CN112861780A (zh) * | 2021-03-05 | 2021-05-28 | 上海有个机器人有限公司 | 一种行人重识别方法、装置、介质和移动机器人 |
Also Published As
Publication number | Publication date |
---|---|
CN110852152B (zh) | 2024-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110852152B (zh) | 一种基于数据增强的深度哈希行人重识别方法 | |
CN109961051B (zh) | 一种基于聚类和分块特征提取的行人重识别方法 | |
CN107577990B (zh) | 一种基于gpu加速检索的大规模人脸识别方法 | |
CN111325115B (zh) | 带有三重约束损失的对抗跨模态行人重识别方法和系统 | |
Gilbert et al. | Action recognition using mined hierarchical compound features | |
CN111126360A (zh) | 基于无监督联合多损失模型的跨域行人重识别方法 | |
CN110598543B (zh) | 基于属性挖掘和推理的模型训练方法及行人再识别方法 | |
CN106897669B (zh) | 一种基于一致迭代多视角迁移学习的行人再辨识方法 | |
CN110751027B (zh) | 一种基于深度多示例学习的行人重识别方法 | |
CN103605972A (zh) | 一种基于分块深度神经网络的非限制环境人脸验证方法 | |
CN110309810B (zh) | 一种基于批次中心相似度的行人重识别方法 | |
CN112464730B (zh) | 一种基于域无关前景特征学习的行人再识别方法 | |
CN112036511B (zh) | 基于注意力机制图卷积神经网络的图像检索方法 | |
CN110555386A (zh) | 一种基于动态贝叶斯的人脸识别身份认证方法 | |
CN113033345B (zh) | 基于公共特征子空间的v2v视频人脸识别方法 | |
CN115830637B (zh) | 一种基于姿态估计和背景抑制的遮挡行人重识别方法 | |
CN108133192A (zh) | 一种基于高斯-拉普拉斯分布统计的行人重识别 | |
CN115050044B (zh) | 一种基于MLP-Mixer的跨模态行人重识别方法 | |
CN111160077A (zh) | 一种大规模人脸动态聚类方法 | |
CN112101267B (zh) | 一种基于深度学习和哈希编码的快速人脸检索方法 | |
CN114821632A (zh) | 一种遮挡行人重识别方法 | |
Shi | Person re-identification based on improved residual neural networks | |
Jiashu | Performance analysis of facial recognition: A critical review through glass factor | |
CN109977787A (zh) | 一种多视角的人体行为识别方法 | |
Fu et al. | A Near-Duplicate Video Cleaning Method Based on AFENet Adaptive Clustering |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |