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

一种基于对比聚类的无监督行人重识别方法

2022-08-13 20:52:30 来源:中国专利 TAG:


1.本发明涉及计算机视觉和行人重识别领域,特别涉及一种基于对比聚类的无监督行人重识别方法。


背景技术:

2.行人重识别也称行人再识别,被认为是一个图像检索的子问题,目标是在不重叠的多个监控摄像区域中检索特定行人。行人重识别技术可以弥补单个固定摄像头的视觉局限,并可与行人检测及行人跟踪技术相结合,被广泛应用于智能监控、视频追踪等安防领域。随着深度学习技术的发展与大规模数据集的提出,目前有监督的行人重识别方法在性能上取得了巨大的提升,然而基于有监督学习的算法极大地依赖于人工标注的真实标签,阻碍了行人重识别技术的进一步发展。另一方面,在现实中很容易获取大量无标注的行人图像数据,研究如何使用大规模无标注行人图像训练更为鲁棒的行人重识别模型,具有较大的研究价值。因此,无需任何标注信息的无监督行人重识别方法被提出以解决上述问题。
3.无监督行人重识别方法中主要包括基于伪标签的方法和基于图像生成的方法,其中基于聚类的伪标签法被证实较为有效,且保持目前最先进的精度。目前大部分基于聚类的伪标签方法在训练上分为两步:第一步,使用初始特征编码器对行人图像进行特征编码;第二步,对编码的特征进行聚类得到伪标签,以监督网络的训练。尽管该类方法可以一定程度上随着模型的优化不断提升伪标签的质量,但是模型的训练往往被无法避免的伪标签噪声所干扰,并且在初始伪标签噪声较大的情况下,模型有较大的崩溃风险。此外,基于聚类的伪标签方法往往没有用到全部的无标签训练数据,基于密度的聚类算法本身会产生聚类离群值,这些聚类离群值由于无法分配伪标签,通常被简单地丢弃而不用于模型训练。然而此类聚类离群值往往正是行人数据集中值得挖掘的困难训练样本,尤其在训练的早期,往往存在大量的聚类离群值,若简单丢弃它们将大幅减少训练样本,严重损害模型的性能。
4.对比学习近几年被广泛应用在无监督表示学习任务上,对比学习可以在无监督的情况下,让模型充分学习到同类别样本之间的相似性,以及不同类别之间的差异性,将每一个未标注的样本视为不同的类别,通过优化对比损失去学习样本实例的判别性表示。然而目前的对比损失大多为样本实例级别的,难以正确地度量行人图像数据集中的类内关系。


技术实现要素:

5.为了解决上述问题,本发明提出了一种基于对比聚类的无监督行人重识别方法,通过进行聚类簇质心及未聚类离群值的联合对比学习,充分挖掘目标域数据集中的困难训练样本,并有效地建模行人的类内关系。
6.具体而言,本发明提出的一种基于对比聚类的无监督行人重识别方法的技术方案包括以下步骤:
7.步骤1:使用初始特征编码器f
θ
对无标注训练数据集中的行人图像进行前向计算,利用编码的特征初始化基于类别原型的特征存储单元;
8.步骤2:在每轮训练前使用dbscan聚类算法对特征存储单元中的编码特征进行聚类,根据聚类可靠性评价标准进行聚类结果的筛选;
9.步骤3:对于每一组小批量训练样本,使用编码器f
θ
对其进行特征编码得到小批量样本特征f,利用统一对比损失函数计算小批量样本特征f与特征存储单元中特征之间的损失,并进行网络的反向传播更新;
10.步骤4:在每一次迭代训练过程中,利用小批量训练样本前向计算得到的编码特征,以动量更新的方式动态更新特征存储单元;
11.步骤5:根据预先设定的训练轮回数,循环进行步骤2-步骤4,直到行人重识别模型收敛。
12.进一步地,步骤1中特征编码器及特征存储单元的初始化过程为:
13.使用resnet-50深度神经网络作为特征编码器f
θ
,并使用imagenet图像数据集上的预训练权重对其进行初始化;
14.使用特征编码器f
θ
对行人图像数据集中的样本进行前向计算提取特征,得到特征集合{v1,

,vn},其中n表示行人图像数据集中的样本数量,将特征集合中的特征以实例为单位全部存储到特征存储单元中,使得在聚类簇和未聚类离群值不断变化的情况下,特征存储单元中的类别原型仍然能够得到持续更新。
15.进一步地,步骤2中对特征的聚类及筛选过程为:
16.首先使用dbscan聚类算法对步骤1中特征存储单元中的特征集合{v1,

,vn}进行聚类,特征存储单元中的类别原型进一步分为聚类簇质心及未聚类离群值实例其中nc表示聚类簇的数量,no表示未聚类离群值的数量,随后依据聚类独立性与聚类紧密性标准,对聚类的结果进行筛选,并采用k-reciprocal近邻算法对检索结果进行重排序。
17.特征存储单元中的聚类簇和未聚类实例都被看作平等且独立的类,故聚类的可靠性对训练的影响至关重要,且网络在训练的一开始对于图像的辨别性较差,聚类的噪声也较大,因此提出自步学习策略改善聚类的效果。具体地,在每轮训练开始前重新进行聚类,从最可靠的聚类开始,保留可靠的聚类簇,而将不可靠的聚类簇中的特征拆解回无聚类的离群值实例中,逐步增加聚类簇的数量,通过调整dbscan聚类算法中样本的∈-邻域距离阈值,交替放宽与缩紧聚类标准,得到更为可靠的聚类结果。
18.所述聚类独立性标准用于度量类间距离,表现为特征集合与放宽聚类标准后特征集合之间的交并比:
[0019][0020]
其中|
·
|表示集合中特征的数量,i(fi)表示同一个聚类簇中的样本集合,i
loose
(fi)表示放宽聚类标准后同一个簇中的样本集合,r
indep
(fi)表示簇i(fi)的独立性得分;
[0021]
所述聚类紧密性标准用于度量类内距离,表现为特征集合与缩紧聚类标准后特征集合之间的交并比:
[0022]
[0023]
其中i
tight
(fi)表示缩紧聚类标准后同一个聚类簇中的样本集合,r
comp
(fi)表示簇i(fi)的紧密性得分;
[0024]
通过以上聚类可靠性评价标准实现聚类簇之间的独立性及样本之间的紧密性的度量,该聚类可靠性评价标准的出发点在于,一个可靠的聚类应当在多尺度的聚类环境下保持稳定,设置超参数α,β∈[0,1]表示独立性和紧密性阈值,保留类间独立性r
comp
(fi)》α且类内紧密性r
indep
(fi)》β的聚类簇样本,将其余样本划分为未聚类的离群值。
[0025]
进一步地,步骤3中的统一对比损失函数表示为:
[0026]
给定无标签的训练样本通过特征编码器编码后将特征全部存储到特征存储单元中,使用步骤2中的自步学习策略将特征集合划分为聚类簇特征和未聚类离群值特征,从而整个训练数据集被分为有聚类伪标签的样本集合和不属于任何聚类的离群值实例样本集合且
[0027]
给定训练样本使用特征编码器对每个训练样本进行前向计算得到编码的特征f,构建统一对比损失函数:
[0028][0029]
其中,z

表示特征f的正面类别原型,τ表示温度系数,《
·
,
·
》表示向量内积,ck为当前聚类k的质心,表示聚类内的类别原型,vk为当前聚类k离群点的实例特征,表示无聚类的类别原型;
[0030]
若f属于聚类簇k,那么z

=ck为聚类簇k的质心;若f属于未聚类离群值,那么z

=vk为未聚类离群值实例特征,上述对比损失促进编码特征靠近其真实类别,对小批量样本编码特征后,与两种类别原型进行比较,使得每个训练样本靠近它所属于的类别而远离其他类别。
[0031]
进一步地,步骤4中特征存储单元动量更新的过程为:
[0032]
首先将训练样本全部以实例为单位进行特征存储,此后将每个小批量样本中的特征根据索引号以动量更新的方式累加到特征存储单元对应的实例特征中;
[0033]
在特征存储单元中,对同一聚类簇中的特征{v1,

,vn}计算特征之间的平均值得到聚类簇质心而未聚类离群值的实例特征直接从特征存储单元中提取剩余的实例特征,第k个聚类簇的质心表示为:
[0034][0035]
其中ik表示第k个聚类簇的特征向量集合,|
·
|表示集合中特征向量的数量,特征存储单元中的实例特征{v}最初通过网络前向计算初始化一次,在此后的训练过程中不断进行更新以进行更为鲁棒的聚类;
[0036]
在每一轮训练过程中,使用小批量样本中的编码特征以动量更新的方式更新特征存储单元中的类别原型,对实例特征vi及当前样本特征fi进行动量加权求和,得到更新后的实例特征:
[0037]
vi←
mvi (1-m)fi[0038]
其中m∈[0,1]为动量因子,表示实例特征vi及样本特征fi在动量更新过程中所占的比重,给定更新后的vi,若fi属于聚类簇k,那么对应的聚类簇质心ck相应进行更新。
[0039]
进一步地,步骤5中本方法整体的训练流程为:
[0040]
对于无标注训练数据集通过resnet-50特征编码器进行特征编码,使用得到的特征集合初始化特征存储单元;
[0041]
在此后的每一次训练轮回中,依据聚类独立性及聚类紧密性标准,对特征存储单元中的特征集合{v}进行聚类,将训练样本划分为聚类簇样本和无聚类离群值样本计算中的聚类质心;
[0042]
对于每个小批量中的训练样本,使用特征编码器f
θ
进行特征编码,计算对比损失,并进行反向传播更新编码器f
θ

[0043]
更新特征存储单元中的特征集合{v},依据更新后的特征集合{v}再进行聚类簇质心ck的更新;
[0044]
循环进行特征编码器f
θ
及特征存储单元的更新,直至模型实现较好收敛。
[0045]
与现有技术相比,本发明的有益效果在于:
[0046]
(1)本发明提出特征存储单元存储无标签数据域上所有有效信息用以学习更充分的特征表示,通过动态更新特征存储单元提供聚类及未聚类离群值实例两种监督信息,充分利用无标注数据集中的困难训练样本;
[0047]
(2)本发明提出使用自步学习策略对聚类结果进行筛选,网络训练过程从特征存储单元中的最可靠聚类开始,通过将更多未聚类离群值放进新的聚类簇中进行多次特征聚类,得到更为可靠的聚类结果,逐步提高特征表示的判别性,可以有效缓解伪标签噪声问题且优化特征表示的学习过程;
[0048]
(3)本发明提出多尺度聚类可靠性度量标准,包括聚类独立性和聚类紧密性标准,先从最可靠的聚类簇开始,再逐步增加聚类簇的数量,由简入难,结合自步学习策略逐步创建更可靠的聚类,实现特征存储单元及行人重识别网络的动态优化,大幅提升无监督行人重识别模型的性能。
附图说明
[0049]
图1是本发明实施例基于对比聚类的无监督行人重识别方法流程图;
[0050]
图2是本发明实施例基于对比聚类的无监督行人重识别方法系统示意图;
[0051]
图3是本发明实施例统一对比损失计算示意图;
[0052]
图4是本发明实施例特征存储单元动量更新示意图。
具体实施方案
[0053]
下面结合实施例与附图对本发明的具体技术方案作进一步详细描述,以下实施例或附图用于说明本发明,但不用于限制本发明的范围。
[0054]
系统实施例
[0055]
参考图1-图4,本实施例提供一种基于对比聚类的无监督行人重识别方法,该方法
包括以下步骤:
[0056]
步骤1:使用初始特征编码器f
θ
对无标注训练数据集中的行人图像进行前向计算,利用编码的特征初始化基于类别原型的特征存储单元;
[0057]
步骤2:在每轮训练前使用dbscan聚类算法对特征存储单元中的编码特征进行聚类,根据聚类可靠性评价标准进行聚类结果的筛选;
[0058]
步骤3:对于每一组小批量训练样本,使用编码器f
θ
对其进行特征编码得到小批量样本特征f,利用统一对比损失函数计算小批量样本特征f与特征存储单元中特征之间的损失,并进行网络的反向传播更新;
[0059]
步骤4:在每一次迭代训练过程中,利用小批量训练样本前向计算得到的编码特征,以动量更新的方式动态更新特征存储单元;
[0060]
步骤5:根据预先设定的训练轮回数,循环进行步骤2-步骤4,直到行人重识别模型收敛。
[0061]
上述步骤可概述为以下过程:(1)特征编码器及特征存储单元的初始化过程;(2)特征的聚类及筛选过程;(3)统一对比损失计算过程;(4)特征存储单元动量更新过程;(5)整体网络训练过程。
[0062]
下面进行具体描述。
[0063]
(1)特征编码器及特征存储单元的初始化过程
[0064]
使用resnet-50深度神经网络作为特征编码器f
θ
,并使用imagenet图像数据集上的预训练权重对其进行参数初始化,将最后一层的全连接层替换为批量标准化层和l2正则化层,以适应无监督任务的需要;
[0065]
在训练过程中,每一个小批量样本包含64张无标注行人图像,至少属于16个不同的类别,在聚类簇和未聚类离群值被视为独立的类别的情况下,每个聚类簇分配4张行人图像,每个未聚类离群值分配单张行人图像,数据集中每张行人图像的尺寸在训练前被调整为256
×
128,并使用随机翻转、随机裁剪及随机擦除等方式进行数据增强。
[0066]
使用特征编码器f
θ
对行人图像数据集中的样本进行前向计算提取特征,得到特征集合{v1,

,vn},其中n表示行人图像数据集中的样本数量,将特征集合中的特征以实例为单位全部存储到特征存储单元中,使得在聚类和未聚类离群值不断变化的情况下,特征存储单元中的类别特征仍然能够得到持续更新。
[0067]
(2)特征的聚类及筛选过程
[0068]
首先使用dbscan聚类算法对步骤1中特征存储单元中的特征集合{v1,

,vn}进行聚类,特征存储单元中的类别原型进一步分为聚类质心及未聚类离群值实例其中nc表示聚类的数量,no表示未聚类离群值的数量,随后依据聚类独立性与聚类紧密性标准,对聚类的结果进行筛选,并采用k-reciprocal近邻算法对检索结果进行重排序。
[0069]
在dbscan算法中,将最大∈-邻域距离阈值设为d=0.6,将最少邻域点数量设为4,即一个聚类簇最少包含4个样本。通过调整dbscan聚类算法中样本的∈-邻域距离阈值,交替放宽与缩紧聚类标准,得到更为可靠的聚类结果,调整邻域距离d=0.58及d=0.62实现聚类标准的放宽与缩紧。
[0070]
特征存储单元中的聚类和未聚类实例都被看作平等且独立的类,故聚类的可靠性对训练的影响至关重要,且网络在训练的一开始对于图像的辨别性较差,聚类的噪声也较大,因此提出自步学习策略改善聚类的效果。具体地,在每轮训练开始前重新进行聚类,从最可靠的聚类开始,保留可靠的聚类,而将不可靠的聚类拆解回无聚类的离群值实例中,逐步增加聚类的数。
[0071]
所述聚类独立性标准用于度量类间距离,表现为特征集合与放宽聚类标准后特征集合之间的交并比:
[0072][0073]
其中|
·
|表示集合中特征的数量,i(fi)表示同一个簇中的样本集合,i
loose
(fi)表示放宽聚类标准后同一个簇中的样本集合,r
indep
(fi)表示簇i(fi)的独立性得分;
[0074]
所述聚类紧密性标准用于度量类内距离,表现为特征集合与缩紧聚类标准后特征集合之间的交并比:
[0075][0076]
其中i
tight
(fi)表示缩紧聚类标准后同一个簇中的样本集合,r
comp
(fi)表示簇i(fi)的紧密性得分;
[0077]
通过以上聚类可靠性评价标准实现聚类之间的独立性及样本之间的紧密性的度量,该聚类可靠性评价标准的出发点在于,一个可靠的聚类应当在多尺度的聚类环境下保持稳定,设置超参数α,β∈[0,1]表示独立性和紧密性阈值,其中α被初始化为α=0.9*r
indep-1th
,在此后的训练中保持一致,r
indep-1th
表示第一次训练轮回中求得的聚类独立性标准,β被设置为整个训练过程中的最大聚类紧密性标准r
comp-max
,以充分保留每个聚类簇中相距最紧密的样本,保留类间独立性r
indep
(fi)》α且类内紧密性r
comp
(fi)》β的聚类样本,将其余样本划分为未聚类的离群值。
[0078]
(3)统一对比损失函数计算过程
[0079]
给定无标签的训练样本通过特征编码器编码后将特征全部存储到特征存储单元中,使自步学习策略将特征集合划分为聚类特征和未聚类离群值特征,从而整个训练数据集被分为有聚类伪标签的样本集合和不属于任何聚类的离群值实例样本集合且使用特征存储单元用于存储样本特征的正面原型,对于一个来自无标注数据集的样本,若其在聚类内,则正面原型为其所对应的聚类质心,反之,若其不在聚类内,为聚类离群值,则正面原型为该离群值所对应的实例特征。
[0080]
如图3统一对比损失计算示意图所示,给定训练样本使用特征编码器对每个训练样本进行前向计算得到编码的特征f,将特征f与其对应的类别原型进行向量点积运算计算相似度,构建统一对比损失函数:
[0081][0082]
其中,z

表示特征f的正面类别原型,τ表示温度系数,根据经验设为0.05,《
·
,
·

表示向量内积,ck为当前聚类k的质心,表示聚类内的类别原型,vk为当前聚类k离群点的实例特征,表示无聚类的类别原型;
[0083]
若f属于聚类k,那么z

=ck为聚类k的质心;若f属于未聚类离群值,那么z

=vk未聚类离群值实例特征,上述对比损失促进编码器特征靠近其真实类别,对小批量样本编码特征后,与两种类别原型进行比较,使得每个训练样本靠近它所属于的类别而远离其他类别。
[0084]
(4)特征存储单元动量更新过程
[0085]
如图4特征存储单元动量更新示意图所示,首先将训练样本全部以实例为单位进行特征存储,此后将每个小批量样本中的特征根据索引以动量更新的方式累加到特征存储单元对应的实例特征中,动量更新方式广泛应用于深度学习中的优化算法,可以使参数更新时在一定程度上保留之前更新的方向,同时又利用当前小批量中样本的特征微调最终的更新方向,简言之就是通过积累之前的动量来实现当前的特征的更新。
[0086]
在特征存储单元中,对同一聚类簇中的特征{v1,

,vn}计算特征之间的平均值得到聚类质心而未聚类离群值的实例特征直接从特征存储单元中提取剩余的实例特征,不失一般性,假定特征集合{v}中的未聚类离群值特征索引为{1,

,n0},那么聚类特征索引为{nc 1,n},第k个聚类的质心表示为:
[0087][0088]
其中ik表示第k个簇的特征向量集合,|
·
|表示集合中特征向量的数量,特征存储单元中的实例特征{v}最初通过网络前向计算初始化一次,在此后的训练过程中不断进行更新以进行更为鲁棒的聚类;
[0089]
在每一轮训练过程中,使用小批量样本中的编码特征以动量更新的方式更新特征存储单元中的类别原型,对实例特征vi及当前样本特征fi进行动量加权求和,得到更新后的实例特征:
[0090]
vi←
mvi (1-m)fi[0091]
其中m∈[0,1]为动量因子,表示实例特征vi及样本特征fi在动量更新过程中所占的比重,根据经验设为0.2,给定更新后的vi,若fi属于聚类簇k,那么对应的聚类质心ck相应进行更新。
[0092]
(5)整体网络训练过程
[0093]
对于无标注训练数据集通过resnet-50特征编码器进行特征编码,使用得到的特征集合初始化特征存储单元,使用adam优化器进行模型参数的更新,权重衰减设为0.0005,训练轮回数设为70,采用学习率调度的方式进行模型的训练,以动态的方式来响应优化的进展情况,初始学习率设为0.00035,每20个训练轮回将学习率减小10倍。
[0094]
在此后的每一次训练轮回中,依据聚类独立性及聚类紧密性标准,对特征存储单元中的特征集合{v}进行聚类,将训练样本划分为聚类样本和无聚类离群值样本计算中的聚类质心;
[0095]
对于每个小批量中的训练样本,使用特征编码器f
θ
进行特征编码,计算对比损失,
并进行反向传播更新编码器f
θ

[0096]
更新特征存储单元中的特征集合v,依据更新后的特征集合{v}再进行聚类簇质心ck的更新;
[0097]
循环进行特征编码器f
θ
及特征存储单元的更新,直至模型实现较好收敛。
[0098]
最后应说明的是,本实施例提供了一种基于对比聚类的无监督行人重识别方法的理论前提、实施步骤和参数设定。此外,本实施仅为本发明较佳的具体实施方式,具体的实施过程中还需要根据具体的变量和数据调整参数的设置,以达到更好的实际效果。
再多了解一些

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

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

相关文献