发明内容
本发明的目的是要解决行人图像部分之间的对齐对行人再识别结果影响较大的问题,为此,本发明提供基于异构部件深度神经网络的行人再识别方法。
为了实现所述目的,本发明提出一种基于异构部件深度神经网络的行人再识别方法,所述方法包括以下步骤:
步骤S1,构建基于异构部件的深度神经网络;
步骤S2,利用所述基于异构部件的深度神经网络,为每一幅行人图像提取卷积激活图并形成一个张量;
步骤S3,利用水平平均池化对每个张量进行平均分割得到K个部分,并且对每个部分的元素在水平方向求平均得到K个基于部分的特征向量,即可将每幅行人图像表示为K个基于部分的特征向量;
步骤S4,对于某一批次行人图像中的两幅图像,利用对准距离对其K个基于部分的特征向量进行对齐,并结合批次硬三元组损失和对准距离学习所述基于部分的特征向量的对齐,进而得到该批次硬三元组损失;
步骤S5,对于某一批次行人图像中的每一幅,为行人图像的每一部分应用交叉熵损失学习基于部分特征向量的判别性,得到该批次K个交叉熵损失;
步骤S6,利用所述步骤S4得到的硬三元组损失和所述步骤S5得到的K个交叉熵损失的和更新所述深度神经网络的网络参数,得到训练完成的深度神经网络;
步骤S7,利用训练得到的深度神经网络提取待查询图像的K个基于部分的特征向量,并将其串联成一个特征向量作为每一幅待查询图像最终的特征表示向量;
步骤S8,通过计算待查询图像和图像库中图像的特征表示向量之间的距离得到所述待查询图像的匹配结果。
可选地,所述步骤S1包括以下步骤:
步骤S11,选择预训练网络模型并进行初始化;
步骤S12,对预训练网络模型进行修改得到基于异构部件深度神经网络。
可选地,所述步骤S12包括以下步骤:
步骤S121,去掉预训练网络模型全局平均池化层之后的层;
步骤S122,将预训练网络模型最后的全局平均池化层替换为水平平均池化层,用于获得K个基于部分的特征向量,并增加一个卷积层用于对基于部分的特征向量降维;
步骤S123,利用批次硬三元组损失函数构建所述预训练网络模型的第一个分支;
步骤S124,利用K个全连接层和K个交叉熵损失函数构建所述预训练网络模型的第二个分支;
步骤S125,对批次硬三元组损失函数和K个交叉熵损失函数求和得到最终的损失,进而得到基于异构部件的深度神经网络。
可选地,所述步骤S2包括以下步骤:
步骤S21,将每一幅行人图像的大小调整到预设大小;
步骤S22,随机选择N幅行人图像作为一个批次输入到基于异构部件的深度神经网络中;
步骤S23,利用所述深度神经网络最后的卷积层为每一幅输入的行人图像提取卷积激活图并形成一个张量。
可选地,所述步骤S3包括以下步骤:
步骤S31,利用水平平均池化对每个张量进行平均分割得到K个部分并且对每个部分的元素在水平方向求平均得到K个维数为C的基于部分的特征向量;
步骤S32,利用卷积核对所述基于部分的特征向量降维,得到维数为c的特征向量。
可选地,所述步骤S4包括以下步骤:
步骤S41,计算两幅行人图像之间的距离dij;
步骤S42,规定搜索范围T,在第二幅行人图像中,为第一幅行人图像的每个部分搜索与其距离最短的部分用于两幅图像部分之间的对齐,对齐部分之间的距离称为局部最短距离;
步骤S43,对两幅行人图像部分之间所有的局部最短距离求和得到两幅图像的对准距离;
步骤S44,利用对准距离挖掘一系列的三元组样本;
步骤S45,利用批次硬三元组损失和三元组样本学习基于部分的特征向量的对齐,得到该批次硬三元组损失。
可选地,所述步骤S44包括以下步骤:
步骤S441,在一个批次的行人图像中,利用对准距离为每一幅行人图像找到与之具有相同的行人类别但对准距离最大的一幅图像作为最不相似正样本;
步骤S442,在一个批次的行人图像中,利用对准距离为每一幅行人图像找到与之具有不相同的行人类别但对准距离最小的一幅图像作为最相似负样本;
步骤S443,将每一幅行人图像的与之最不相似正样本和最相似负样本组成一个三元组样本。
可选地,所述步骤S5包括以下步骤:
步骤S51,为行人图像的每个部分赋予与其原始图片相同的真实标签;
步骤S52,将所述行人图像的K个基于部分的特征向量输入到所述深度神经网络的K个全连接层,输出K个M维的向量表示所述行人图像的各个部分的预测概率;
步骤S53,将K个M维的向量和对应的真实标签输入到各自的交叉熵损失函数中得到K个交叉熵损失,进一步学习得到基于部分特征向量的判别性。
可选地,所述步骤S6中,采用小批量随机梯度下降法训练网络,计算网络损失值的导数,通过反向传播对所述深度神经网络的参数进行更新,得到训练完成的网络。
可选地,所述距离为欧式距离。
本发明的有益效果为:本发明利用对准距离学习行人图像部分的对齐,并利用不同的损失学习更具有判别性的基于部分的特征,从而提高行人再识别匹配的正确率。
需要说明的是,本发明得到了国家自然科学基金项目No.61501327、No.61711530240,天津市自然科学基金重点项目No.17JCZDJC30600,天津师范大学“青年科研拔尖人才培育计划”No.135202RC1703,模式识别国家重点实验室开放课题基金No.201700001、No.201800002,中国国家留学基金No.201708120040、No.201708120039和天津高等学校创新团队基金项目的资助。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
图1是根据本发明一实施例基于异构部件深度神经网络的行人再识别方法的流程图,下面以图1为例来说明本发明的一些具体实现流程。本发明的方法是一种基于异构部件深度神经网络的行人再识别方法的方法,其具体步骤包括:
步骤S1,构建基于异构部件的深度神经网络,图2显示了根据本发明一实施例构建的基于异构部件的深度神经网络的结构框图;
进一步地,所述步骤S1包括以下步骤:
步骤S11,选择预训练网络模型并进行初始化;
在本发明一实施例中,所述预训练网络模型可以从以下网络模型中选择:CaffeNet、VGG19、ResNet-50,比如选择ResNet-50。
步骤S12,对预训练网络模型进行修改得到基于异构部件深度神经网络。
其中,所述步骤S12包括以下步骤:
步骤S121,去掉预训练网络模型最后的全局平均池化层之后的层;
步骤S122,将预训练网络模型最后的全局平均池化层替换为水平平均池化层,用于获得K个基于部分的特征向量,并增加一个1×1的卷积层用于对基于部分的特征向量降维;
步骤S123,利用批次硬三元组损失函数构建所述预训练网络模型的第一个分支;
步骤S124,利用增加的K个全连接层和K个交叉熵损失函数构建所述预训练网络模型的第二个分支;
步骤S125,对批次硬三元组损失函数和K个交叉熵损失函数求和得到最终的损失,进而得到基于异构部件的深度神经网络。
步骤S2,利用所述基于异构部件的深度神经网络,为每一幅行人图像提取卷积激活图并形成一个张量;
进一步地,所述步骤S2包括以下步骤:
步骤S21,将每一幅行人图像的大小调整到预设大小,比如384×128;
步骤S22,随机选择N幅行人图像作为一个批次输入到基于异构部件的深度神经网络中;
在本发明一实施例中,所述一个批次包含S个行人类别,每个行人类别包括R幅图像,即:N=S×R。
在本发明一实施例中,所述一个批次中行人的类别数量S=16,每个行人类别包含的图像数量R=4,一个批次行人图像的数量N=64。
步骤S23,利用所述深度神经网络最后的卷积层为每一幅输入的行人图像提取卷积激活图并形成一个大小为C×X×Y的三维的张量,C为卷积激活图的数量,X×Y为卷积激活图的大小。
在本发明一实施例中,所述深度神经网络为ResNet-50时,卷积激活图的数量为2048,卷积激活图的大小为24×8。
步骤S3,利用水平平均池化对每个张量进行平均分割得到K个部分,并且对每个部分的元素在水平方向求平均得到K个基于部分的特征向量,因此,可将每幅行人图像表示为K个基于部分的特征向量;
进一步地,所述步骤S3包括以下步骤:
步骤S31,利用水平平均池化对每个张量进行平均分割得到K个部分并且对每个部分的元素在水平方向求平均得到K个维数为C的基于部分的特征向量;
步骤S32,利用1×1的卷积核对所述基于部分的特征向量降维,得到维数为c的特征向量。
在本发明一实施例中,所述特征向量降维后得到的维数c为256。
步骤S4,在训练过程中,对于某一批次行人图像中的两幅图像,利用对准距离对其K个基于部分的特征向量进行对齐,并结合批次硬三元组损失和对准距离学习所述基于部分的特征向量的对齐,进而得到该批次硬三元组损失;
进一步地,所述步骤S4包括以下步骤:
步骤S41,计算两幅行人图像之间的距离dij;
其中,任意两幅行人图像可分别用K个基于部分的特征向量表示为U={u1,u2,...,uK}和V={v1,v2,...,vK},则dij可表示为:
dij=||ui-vj||2
其中,ui∈R256×1和vj∈R256×1分别表示第U幅图像的第i个基于部分的特征向量和第V幅图像的第j个基于部分的特征向量。
步骤S42,规定一个搜索范围T,在第二幅行人图像中,为第一幅行人图像的每个部分搜索与其距离最短的部分用于两幅图像部分之间的对齐,对齐部分之间的距离称为局部最短距离;
其中,与第一幅行人图像第i个部分对齐的局部最短距离可表示为:
在本发明一实施例中,所述搜索范围T是第二幅行人图像中从上到下与第一幅行人图像的第i个部分最邻近的T个部分,T根据划分部分的数量K的不同可以取不同的值。
步骤S43,对两幅行人图像部分之间所有的局部最短距离求和得到两幅图像的对准距离,在一个批次里面计算任意两幅行人图像的对准距离,得到N×N个对准距离;
其中,两幅行人图像U和V的对准距离可表示为:
在本发明一实施例中,所述对准距离可以看作行人图像之间的相似度,对准距离越小,相似度越大。
步骤S44,利用对准距离挖掘一系列的三元组样本;
其中,所述步骤S44包括以下步骤:
步骤S441,在一个批次的行人图像中,利用对准距离为每一幅行人图像找到与之具有相同的行人类别但对准距离最大的一幅图像作为最不相似正样本;
步骤S442,在一个批次的行人图像中,利用对准距离为每一幅行人图像找到与之具有不相同的行人类别但对准距离最小的一幅图像作为最相似负样本;
步骤S443,将每一幅行人图像的与之最不相似正样本和最相似负样本组成一个三元组样本。
步骤S45,利用批次硬三元组损失和三元组样本学习基于部分的特征向量的对齐,得到该批次硬三元组损失。
其中,所述批次硬三元组损失可以表示为:
其中,
和
表示第i类行人的第a幅和第p幅图像,
表示第j类行人的第n幅图像,m是批次硬三元组损失的阈值,[Z]
+=max(Z,0)。
步骤S5,对于某一批次行人图像中的每一幅,为行人图像的每一部分应用交叉熵损失学习基于部分特征向量的判别性,得到该批次K个交叉熵损失;
进一步地,所述步骤S5包括以下步骤:
步骤S51,为行人图像的每个部分赋予与其原始图片相同的真实标签;
步骤S52,将所述行人图像的K个基于部分的特征向量输入到所述深度神经网络的K个全连接层,输出K个M维的向量表示所述行人图像的各个部分的预测概率;
在本发明一实施例中,所述M表示行人图像的类别数量。
步骤S53,将K个M维的向量和对应的真实标签输入到各自的交叉熵损失函数中得到K个交叉熵损失,进一步学习得到基于部分特征向量的判别性,其中,第i个交叉熵损失表示为:
其中,
其中,
表示图像第i个部分属于第m个行人类别的预测概率,
表示第i个部分属于第m个行人类别的真实标签,如果行人图像第i个部分的标签为m,
否则,
是第i个全连接层的第m个输出。对K个交叉熵损失求和表示为:
步骤S6,在训练过程中,利用所述步骤S4得到的硬三元组损失和所述步骤S5得到的K个交叉熵损失的和更新所述深度神经网络的网络参数,得到训练完成的深度神经网络;
其中,所述硬三元组损失和K个交叉熵损失的和作为所述深度神经网络的总损失,可表示为:
Loss=LT+LI
在本发明一实施例中,采用小批量随机梯度下降法训练网络,计算所述网络损失值Loss的导数,通过反向传播对所述网络的参数进行更新,得到训练完成的网络。训练的迭代次数为150次,学习速率初始化为0.1,后面的74次迭代中学习速率取为0.01。
步骤S7,利用训练得到的深度神经网络提取待查询图像的K个基于部分的特征向量,并将其串联成一个特征向量作为每一幅待查询图像最终的特征表示向量;
步骤S8,通过计算待查询图像和图像库中图像的特征表示向量之间的距离得到所述待查询图像的匹配结果。
在本发明一实施例中,所述距离可为欧式距离,在该实施例中,所述待查询图像与图像索库中图像的特征表示向量之间的欧氏距离越小,就说明待查询图像与图像库中图像之间的相似度越高,进而得到所述待查询图像的匹配结果。
以网上公开的行人再识别数据库作为测试对象,比如在Market-1501数据库上,行人图像的类别数量M=1501,当K=8,T=3时,行人再识别匹配的正确率为rank-1=94.0%,平均精度mAP=81.2%。由此可见本发明方法的有效性。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。