多层级重叠条纹特征融合的行人重识别

2021-09-13 01:02:30璠,彭
计算机与生活 2021年9期

陈 璠,彭 力

物联网技术应用教育部工程研究中心(江南大学 物联网工程学院),江苏 无锡214122

行人重识别[1](person re-identification,Person-ReID)旨在将不同物理位置、不同摄像头捕获的同一个人的图像相关联,实现跨摄像头跨场景下的行人识别与检索。

在跨镜头多目标跟踪[2]时,目标行人在某一摄像头视野范围内丢失以后,其轨迹会暂时消失,难以预测该行人会再次出现在哪个摄像头视野中。由此提出通过行人的外观特征[1]将行人的轨迹再次关联。但是由于视角、姿态、遮挡与行人着装类似等因素的影响,同一行人在不同摄像机的拍摄画面中可能呈现较大的外观差异[3],这给行人重识别任务带来很大的困难。因此如何学习到更丰富、更具判别性的行人特征成为Person-ReID的研究热点。

随着深度卷积神经网络(deep convolutional neural networks,DCNN)的快速发展,研究学者提出了很多表现优秀的DCNN 网络模型,使得Person-ReID 的性能得到了很大的提升。根据DCNN 输出特征的类型,将Person-ReID 分成基于全局特征和局部特征两种方法。

基于全局特征的方法通常直接通过全局平均池化层(global average pooling,GAP)得到输出特征图,推理阶段计算速度快,该方法常用于帧率需求较高的情况[1]。例如,Wang等[4]构建的DaRe-Net模型以不同分辨率提取网络每一阶段输出的全局特征,通过级联的方式进行特征融合。这种融合多层特征的方式,提高了模型对难样本的识别准确率,但是得到的高层特征的相似性对分类结果影响很大,而且低层特征在区分细节等方面起到的作用对结果的影响极小[5]。Chen 等[6]融合了分类和验证模型,使得样本的类别信息和样本之间的相似性信息进行互补利用,但是该模型容易忽略图像中不显著的细节及出现次数较少的特征。

提取全局特征的方法简单高效、速度快,但是该方法忽略了图像的空间特征信息,并且极易受遮挡、姿态变化等影响,导致匹配失败。基于局部特征的方法因此被提出。

Sun等[7]提出的PCB(part-based convolutional baseline)模型将网络输出的特征图水平分割为均等的6块,分别经过不同的全连接层进行预测。这种基于块的操作简单有效地利用局部特征进行分类,但是该方法所面临的问题如图1 所示。由于行人姿态变化和尺寸差异,结果会出现行人结构无法对齐的现象,并且单一地对6 个区域进行预测,未使用相邻块之间存在的关联特征,可能导致具有判别性的信息丢失。Fu等[8]提出水平金字塔匹配方法(horizontal pyramid matching,HPM),通过使用不同的金字塔[9]尺度将骨干网络输出的特征图进行多尺度的水平分割,对每个水平区域使用GAP和最大池化相结合的方式得到行人的特征表示,以此来进行预测。HPM 增加了特征表示的多样性,但同样存在行人结构无法对齐的问题。Zheng 等[10]提出一个全新的由粗到细的金字塔模型,能够更有效地利用行人的特征信息,较好地解决图像中行人无法对齐的问题。但该算法含有21个不同尺度的局部特征分支,训练过程中占用过多的训练资源,因此计算效率较低。

Fig.1 Misalignment caused by image dicing图1 图像切块引起的无法对齐问题

针对上述未解决的问题,本文提出一种多层级重叠条纹特征融合的行人重识别算法。基于Resnet-50 的主体框架,将网络不同阶段输出的多分辨率特征进行水平均等分割,再提取重叠条纹特征,以综合利用位于各个相邻块间的重要信息;组合三种损失函数对网络模型进行监督训练,以学习到鲁棒性更强的行人特征;设计组归一化模块以消除不同损失函数在优化方向上存在的差异。

1 多层级重叠条纹特征融合的行人重识别

1.1 行人重识别难点

行人姿态多样化以及尺寸差异一直是行人重识别的难题。由于摄像头的物理位置、抓拍时机、行人视角以及遮挡等因素的影响,检测框中可见的行人外观特征在整幅图像中占据较小的比例。例如,图2(a)中,图像中复杂背景占比较大,小目标行人具有较低的分辨率;图2(b)中,大面积遮挡使得可见的行人部分在整幅图像中占比较小。这类图像在经过网络模型后提取到的干扰信息较多,有效信息较少,并且信息的表征能力较弱。对此,本文提出的多层级重叠条纹特征融合的行人重识别算法,对骨架网络不同阶段的输出特征图进行水平均等分割,再提取重叠条纹特征以弥补丢失的信息,从而更高效地利用图像中的有效信息,削弱图像中无关因素的干扰。

Fig.2 Challenges of person re-identification图2 行人重识别难点

1.2 网络结构

本文所提模型结构如图3所示,包括多分辨率的骨架网络、重叠条纹特征提取模块、组归一化(group normalization,GN)模块和全连接层(fully connected layers,FC),图中D表示特征向量的维数。骨架网络选用的是Resnet-50,由4 个卷积块Convi组成,其中i=1,2,3,4,该网络结构具有更深的层,能够保证较高的特征提取效率。本文对该框架做出了如下修改:(1)移除Resnet-50 最后的全局平均池化层(GAP)和全连接层,以获得尺寸恰当的行人特征图;(2)将第四个卷积块Conv4中的Conv4_1的步长设定为2,使得行人特征图的尺寸变为原来的2倍,方便分块操作并且有利于提取局部信息。骨架网络输出的特征图经过重叠条纹特征提取模块后,共获得11 个条纹特征向量gj(j=2,3,4)。

Fig.3 Block diagram of proposed model structure图3 本文模型结构框图

训练阶段,将上述11个条纹特征向量gj(j=2,3,4)串联为特征描述符G,并使用中心损失函数和三元组损失函数进行监督优化;为了克服过拟合问题并提高模型的性能,将特征向量gj(j=2,3,4)分别送入组归一化模块(GN层)得到特征向量hj(j=2,3,4);将h2、h3和h4分别送入不共享权重的FC层,然后通过交叉熵损失函数进行监督优化。测试阶段,仅使用特征描述符G来进行相似性判断,即把GN层之前的11个512D的向量融合成一个新的向量,通过欧氏距离度量方法,查询图像使用新向量与图库中图像进行相似度匹配。

1.3 重叠条纹特征提取模块

由于行人数据集中存在大量的难样本,相比于使用单一的全局特征,采用更加精细的局部特征可以减少行人数据集复杂化的影响,而且这些关键的局部特征更具有代表性,判别力更强,是区分不同行人的重要判据。目前常用的提取局部特征的方法有图像切块、骨骼关键点的匹配定位以及注意力机制等。

本文算法根据人体的结构特征,将特征图进行水平分割,由于分割后会出现行人结构特征无法对齐以及丢失局部特征信息的情况,因此提出重叠条纹特征提取模块。如图3所示,重叠条纹特征提取模块首先接收来自多分辨率的骨架网络提取的特征图,将最后两个卷积块Conv3和Conv4的输出(tensorT3和T4)分别在竖直方向上水平分割为均等的6 块(s=6),通过使用重叠步长将相邻块成对地组合,并将全局平均池化(GAP)作用在重叠部件上,从而共获得2×(s-1)=10 个重叠条纹特征向量(每个卷积块的输出对应获得5个条纹特征)。为了使卷积计算更快更高效,使用1×1 的卷积核将这10 个特征向量分别进行降维操作得到特征向量g3和g4。Tj到gj(j=3,4)的计算过程可以由式(1)表示:

其中,m=3,4,n=1,2,3,4,5。

此外,将第二个卷积块Conv2得到的全局特征(tensorT2)直接通过GAP和降维操作得到特征向量g2,最终共得到11 个条纹特征向量。这些特征向量中包含多个多尺度的局部特征和全局特征,T3和T4包含了足够丰富的语义信息,T2提供的低层全局特征能够有效区分细节信息,对分类结果产生积极的影响。

如图4中(a)和(b)所示,同一行人的两张图像经过水平分割后,最后一个分块将空地(遮挡物)和小腿对齐,如果直接进行分类预测将会匹配失败;但是经过该模块后,对应的分块中均包含小腿特征,在进行分类预测时能够很大程度上减小特征不对称所导致的度量差异。行人的大部分特征在经过该模块后,又得到了二次的加强利用。因此,该模块能够充分利用到块间的重要信息,从而有效减少行人结构无法对齐所带来的影响。

Fig.4 Example of feature extraction module with overlapping strides图4 重叠条纹特征提取模块示例

1.4 多损失联合学习

联合多种损失函数,能够帮助网络模型学习到鲁棒性更强的行人特征。在训练阶段,组合三种不同的损失函数,包括三元组损失(triplet loss)、中心损失(center loss)和交叉熵损失(cross-entropy loss)。通过最小化组合后的损失函数来优化网络模型。首先将三元组损失[11]应用于特征描述符G,如式(2)所示:

其中,P是批次中的身份数量,K是批次中相同身份的图像数量,α是损失余量,本文α=0.3,Ga、Gp和Gn分别为固定样本、正样本和负样本对应的特征向量,dp是固定样本与正样本之间的欧氏距离,dn是固定样本与负样本之间的欧氏距离。三元组损失函数通过拉近嵌入空间中正样本对之间的距离以及推远负样本对之间的距离,来加强同类别间的紧密性和不同类别间的分离性。但是由于三元组损失函数只考虑到了dp和dn之间的差值而忽略了二者的绝对值,三元组损失对于同类别间的距离约束较弱。为减小这类影响,引入中心损失函数[12],将该损失也应用于特征描述符G,从而使特征空间中的特征分布更加紧凑。在训练过程中,中心损失能够学习各个类别对应的深度特征中心,通过最小化特征和类别中心之间的距离来紧凑同类别的分布,公式如下所示:

其中,m是批处理大小,cyi是第yi个类别的特征的中心向量。然后,对局部特征向量hj的每个条纹特征向量计算交叉熵损失以实现最终的分类,公式如下所示:

其中,m是批次大小,C是训练集中的类别数,W是FC 层的权重向量,b是偏差。总的交叉熵损失计算为所有交叉熵损失的平均值,如下所示:

总损失函数由式(2)、式(3)和式(5)的加权总和计算得出,其中三元组损失和交叉熵损失保持相同的优先级。

其中,β是中心损失所占权重。

1.5 组归一化模块

在深度学习领域中,混用具有不同量纲或量纲单位的评价指标容易使得数据中出现奇异样本数据,从而造成训练时间过长以及损失无法收敛的问题。为了消除指标之间量纲的影响,需要对数据进行归一化[13-14]。最初,网络结构基本只包括一个或者两个隐藏层,仅对输入数据进行归一化。随着网络结构的深度不断提高,Ioffe等[15]将BatchNorm算法应用到了中间层。只需计算整个输入或者随机选取的小批次的均值和方差,提取的矩就会显示出不含预测信息的数据集中数据分布的偏差,移除该偏差能够很大程度改善优化和泛化能力[13,16-17]。最近提出的归一化方法[18-21]将每个训练实例的特征视为一个分布,并分别对每个样本进行归一化。

本文采用多种损失函数对模型进行监督优化,当交叉熵损失函数和三元组损失函数共同作用时,损失函数的优化方向可能出现差异。如图5 中以三分类为例,交叉熵损失函数经改进后使用余弦距离进行度量,通过构造超球面的方式将嵌入空间分成3个不同的子空间,3种类别中的每个特征都被映射为超球面上的点,这样每个类别的特征会被分配到不同的子空间。三元组损失函数则采用欧氏距离进行度量。当这两种损失函数对网络中的同一个特征向量进行监督时,二者优化方向的差异可能使得训练过程中一个损失减小,而另一个损失震荡发散,最终导致整个训练过程中损失的收敛难度变大。

Fig.5 Two-dimensional visualization of sample distribution under different loss supervision图5 不同损失监督下样本分布二维可视化图

为了解决上述问题,提出如图6所示的组归一化结构(GN)。图中GN之前的特征向量记为ft,GN之后的特征向量记为fi。在训练阶段,ft用于计算三元组损失和中心损失,fi用于计算交叉熵损失。组归一化可以使得向量ft中分布异常的特征趋于平稳,使其在超球面更接近于高斯分布,不仅保证了同类别特征的分布更加紧密,而且提高了交叉熵损失的收敛速度。

Fig.6 Structure of group normalization图6 组归一化模块

2 实验结果与分析

2.1 实验配置与数据集

本文所用的深度学习框架为Pytorch-1.0.1,操作系统为Ubuntu16.04,编程语言版本为Python3.6。硬件所用的显卡内存为8 GB的NVIDIAGTX 1070 GPU,CUDA 版本为10.1。实验阶段,通过Market-1501[22]和DukeMTMC-reID[23]数据集对所提算法进行实验验证,并将其与目前较新的几种行人重识别算法进行比较。

Market-1501[22]数据集分为训练集和测试集两部分:训练集包括12 963张图像,对应751个行人;测试集包括3 368张查询图像和19 732张图库图像,共对应750 个行人。DukeMTMC-reID[23]数据集同样分为训练集和测试集两部分:训练集包括16 522张图像,对应702个行人;测试集包括2 228张查询图像和17 661张图库图像,共对应702个行人。

训练时,输入图像的分辨率大小为384×192,batchsize选择为64,包括16个不同行人并且每人4张图像。max_epoch(训练总轮数)设置为120。使用随机梯度下降法(stochastic gradient descent,SGD)优化本文模型,动量为0.9,权重衰减系数为0.000 5。使用warmup策略预热学习率激活网络,初始学习率为0.000 3。为了保持损失的稳定下降,分别在epoch=40,epoch=70 两个阶段设置学习率衰减点以进行指数衰减,衰减系数为gamma=0.1。

2.2 多损失联合学习实验结果

为了测试多损失联合训练以及组归一化模块的有效性,本文分别在Market-1501数据集和DukeMTMCreID 数据集上进行了实验验证,结果分别如表1 和表2 所示,其中基准模型baseline 对应的是仅使用交叉熵损失训练的全局特征模型。

Table 1 Experimental results with different strategies on Market-1501表1 Market-1501上不同策略的实验结果

Table 2 Experimental results with different strategies on DukeMTMC-reID表2 DukeMTMC-reID上不同策略的实验结果

对于Market-1501 数据集,对比两种损失联合学习的模型,三种损失联合学习的模型的rank-1精度提高了1.2 个百分点,mAP 提高了2.3 个百分点。三种损失联合学习的模型在加入组归一化(GN)模块后,模型的rank-1精度提高了2.0个百分点,mAP提高了1.2 个百分点。本文所提模型相对基准模型baseline在rank-1精度上提升了5.2个百分点,在mAP上提升了9.1个百分点。

对于DukeMTMC-reID 数据集,本文所提模型对比两种损失联合学习的模型,rank-1精度提升了2.1个百分点,mAP 提升了1.5 个百分点;相对baseline 在rank-1精度上提升了3.1个百分点,在mAP上提升了6.8个百分点。

结果表明,三种损失联合训练可以使模型学习到鲁棒性更强的特征,组归一化模块对于减弱损失函数间的优化冲突效果明显。

2.3 不同分块模型的实验结果

本文根据人体结构特征进行分块操作,经过实验验证,将行人特征图均分为6块(s=6)为最佳。如表3 所示,此处仅以Market-1501 数据集的实验结果为例,其中baseline对应的是仅使用交叉熵损失训练的全局特征模型。从表中数据可以看出,采用切块提取局部特征的方法比仅使用全局特征的方法在rank-1 精度和mAP 上都有明显的提高,且随着重叠条纹数(s-1)的增加,模型精度也有所提升。这是由于在遮挡及复杂背景等环境下,局部特征比全局特征有更强的辨别能力。但是在s=7 或8时,精度不升反降,是因为小尺寸的条纹更易受到错位、遮挡等异常值的影响。

Table 3 Experimental results with different block models on Market-1501表3 Market-1501上不同分块的实验结果

2.4 不同批尺寸的实验结果

三元组损失中,batchsize=P×K,研究表明[24],随着批尺寸的增加,模型精度也不断提高。因为大的batchsize有助于三元组损失更好地挖掘“难样本对”以约束不同类别之间的距离。但是该规律并不适用于本文算法,如表4所示,随着batchsize的增加,模型精度的提升并不明显,这是因为加入了组归一化(GN)模块。GN计算通道方向上每组数据的均值和方差,与batchsize无关,因此模型精度不会因为batchsize的变化而受影响。因此,即使batchsize受限,本文算法也能够保证模型的精度。

Table 4 Experimental results with different batchsizes on DukeMTMC-reID表4 DukeMTMC-reID上不同批尺寸实验结果

2.5 与现有方法的比较

表5 和表6 所示为本文网络模型与其他一些网络模型的性能比较,其中包括DaRe-Net(deep anytime re-ID)[4]、PCB+RPP(part-based convolutional baseline+refined part pooling)[7]、Pyramid[10]、HA-CNN(harmonious attention convolutional neural network)[25]、GLAD(global-local-alignment descriptor)[26]、PSE(posesensitive embedding)[27]、AWTL(adaptive weighted triplet loss)[28]。所有结果中金字塔模型[10]表现最好,但是该算法包含了21 个不同尺度的局部特征分支,模型较复杂,训练过程占用较多的资源,使得计算效率较低。在Market-1501数据集上,本文方法得到的rank-1精度和mAP分别为95.2%和91.4%,在DukeMTMC-reID数据集上得到的rank-1 精度和mAP 分别为88.4%和78.6%。结果表明,本文所提模型能够有效提升行人重识别的准确率。图7 展示了本文方法在Market-1501 测试集上的部分测试结果,该方法具有较强的鲁棒性和判别力。

Table 5 Comparison with mainstream algorithms on Market-1501表5 在Market-1501上与主流算法的比较

Table 6 Comparison with mainstream algorithms on DukeMTMC-reID表6 在DukeMTMC-reID上与主流算法的比较

Fig.7 Partial test results of Person-ReID model on Market-1501 dataset图7 本文模型在Market-1501数据集上部分测试结果

3 结束语

本文提出了一种基于多层级重叠条纹特征融合的行人重识别算法。使用重叠条纹特征提取模块,弥补了在提取行人局部特征时丢失的信息;加入组归一化模块,减弱了不同损失函数在优化监督时的冲突影响;结合低层的全局特征,使网络模型能够有效区分细节信息。将该算法分别在Market-1501 和DukeMTMC-reID数据集上进行有效性实验。实验结果表明,该算法能够有效提高行人重识别的准确度。

实验过程中,对整幅图像提取局部特征时会受到复杂背景的影响以及前景遮挡的干扰。在今后的研究过程中,将考虑通过网络模型分离出图像中行人的可见部分,并用该部分进行检索,进一步提升模型的行人重识别能力。