徐龙壮,彭 力,朱凤增
(江南大学 物联网工程学院物联网技术应用教育部工程研究中心,江苏 无锡 214122)
行人重识别是一项在多摄像头采集的行人图像库中识别出特定行人的技术,其广泛应用于智能监控与安保领域,可在庞杂的视频监控图像中快速锁定并追踪目标行人。不同摄像头通常无重叠视域且安装位置与角度不同,受光照、视角、姿态与遮挡等因素影响,目标行人在不同摄像头拍摄的画面中外观存在差异[1],这增加了行人重识别难度。因此,行人重识别任务仍面临较大挑战,成为近年来计算机视觉领域的研究热点。
研究人员最早利用纹理特征、边缘特征、颜色直方图和联合特征等进行行人重识别,然而上述特征识别度有限且重识别精度较低,无法应用于大规模复杂的行人重识别任务。随着深度学习技术的发展,出现了基于卷积神经网络的重识别方法,使行人重识别精度大幅提升,深度学习网络在行人重识别领域得到广泛应用。文献[2]提出一种基于视角信息嵌入的行人重识别模型,利用改进的深度分离卷积提取视角单元特征,提高了网络泛化能力。文献[3]提出一种异常值标签平滑正则化方法,利用生成式对抗网络形成图像并与原数据集图像共同训练,从而获得鲁棒性更好的特征。
上述方法均使用图像全局特征,然而由于在复杂情况下图像全局特征识别度有限,因此研究人员采用更易被识别的局部特征提升重识别精度。文献[4]建立一种卷积基准模型(PCB),将特征图沿垂直方向平均切为6 个分块预测行人身份,并使用精确部分池化(Refined Part Pooling,RPP)网络使每块特征图精细化以提升其识别度,但该模型易忽略全局特征且丢失各分块边缘的局部信息。文献[5]采用骨骼关键点定位模型对行人的头部、上身和下身区域进行定位,将这些区域与整张行人图像一起输入参数共享的卷积神经网络,虽然能完整提取全局与局部特征,但对模型精度要求较高。文献[6]提出一种将全局信息与各粒度局部信息结合的端到端特征学习网络(包括一个全局分支和两个局部分支),并联合多个Softmax 损失函数和三元组(Triplet)损失函数获取具有高识别度的特征,但其未考虑两种损失函数约束同一个特征向量时存在目标冲突,加大训练模型收敛难度。
针对上述问题,本文提出一种多任务金字塔重叠匹配方法。获取全局特征信息、多尺度局部特征信息以及各分块之间的边缘信息,使用Softmax 损失函数、三元组损失函数和中心损失函数联合优化网络,并设计特征归一化(Feature Normalization,FN)层结构减少损失函数在嵌入空间内优化目标不一致的影响,获取不同任务之间的互补特征。
本文网络主要由特征提取网络、金字塔重叠匹配网络、特征归一化层和全连接(FC)层构成,其结构如图1 所示(D为特征向量维数)。采用ResNet50网络作为特征提取网络,并对其进行如下改进:1)移除ResNet50 网络的全局平均池化(GAP)层和全连接层;2)将卷积(Conv)层Conv4_1 的步长设定为2,使特征图尺寸增大2 倍,以便下一步分块提取局部信息。将特征图沿垂直方向平均切为4 个基本块,将相邻基本块进行两两组合或三三组合直到形成完整的原特征图,共得到10 个不同尺寸的分块,从而形成金字塔重叠匹配网络。将该网络中上述分块经过全局平均池化转变为10 个包含多尺度局部特征的2 048 维特征向量,使用1×1 卷积核将上述特征向量分别降至512 维并进行串联,采用三元组损失函数和中心(Center)损失函数对其进行优化,然后通过FN 层进行向量特征归一化后,分别送入不共享权重的全连接层,再使用Softmax 损失函数对其进行优化。在推理阶段,将通过FN 层前的10 个512 维特征向量串联为新特征向量,查询图像时使用新特征向量与图库中的图像进行相似性匹配以获取更好的匹配结果。
图1 本文网络结构Fig.1 Structure of the proposed network
当全局特征不能很好地表征复杂行人图像样本时,如何有效提取局部特征成为提升重识别精度的关键。常用的局部特征提取方法包括图像切块方法、基于注意力机制的方法、响应图极值点方法[7]以及骨骼关键点定位方法等,其中图像切块方法较其他方法更简单有效,因此,本文基于传统图像切块方法,同时受HPM[8]网络由粗到精提取多种局部特征的启发,提出一种带有重叠区域的水平金字塔匹配方法来匹配不同尺度的特征,如图2(a)所示。
图2 3 种方法的图像切分效果Fig.2 Image segmentation effect of three methods
本文对行人图像的切分方法具体如下:1)将特征图沿水平方向切为4 个基本块,每个基本块大小为特征图的1/4,这4 个基本块作为金字塔第1 层;2)金字塔第2 层为第1 层相邻2 个基本块沿垂直方向合并得到的3 个分块,每组相邻分块会重叠1 个基本块区域;3)金字塔第3 层为第1 层相邻3 个基本块沿垂直方向合并得到的2 个分块,相邻分块会重叠2 个基本块区域;4)第4 层为第1 层4 个基本块的合并,所得图像与原始特征图相同。第i层的第j个分块表示为:
图2(b)、图2(c)分别为PCB、HPM 方法的图像切分效果。可以看出,与PCB、HPM 方法相比,本文方法包含更多的全局信息、多种尺度局部信息以及分块之间的边缘信息。当切分图像边缘存在识别度较高的细小特征(如图2 中行人的书包)时,采用本文方法能在很大程度上保留该特征的完整性,使各特征信息融合后所得总特征的识别度更高。PCB 方法是将特征图切为6 个分块,并使用RPP 网络使一个分块的边缘特征划分到与其相似的另一个分块,该方法虽然考虑了分块边缘信息,但整个过程并非是端到端完成训练,操作过程较复杂。HPM 方法是将特征图分别切分为2 等分、4 等分和8 等分,加上原始特征图共有15 个分块来识别行人身份。由于同一个行人的不同图像之间常会出现身体部分错位及姿态变化的情况,因此切成过于细小的分块会占用较多硬件资源与训练时间,且不能有效提升整体识别精度。本文采用大小适中的4 等分块,不会占用较多硬件资源与训练时间。
多任务学习是指多种损失函数联合训练和优化网络模型,其中每种损失函数使用的度量方法以及通过网络提取的特征所包含信息均不同。目前行人重识别方法通常使用Softmax 损失函数与三元组损失函数联合训练模型[6,9-10]以获取泛化能力更强的特征,然而这两个损失函数在嵌入空间中的目标不一致,其样本分布的二维可视化效果如图3 所示。可以看出:Softmax 损失函数构造出n个超平面将嵌入空间分为不同的子空间,每类特征分布在不同子空间内,并使用余弦距离作为度量距离;三元组损失函数在嵌入空间内通过拉近正样本对之间的距离与拉开负样本对之间的距离来增强类内紧密性和类间分离性,并使用欧氏距离作为度量距离。
图3 2 种损失函数的样本分布二维可视化效果Fig.3 Two-dimensional visualization effect of sample distribution of two loss functions
在图3 中,Softmax 损失函数用于优化余弦距离,而三元组损失函数用于优化欧氏距离,如果同时使用这两种损失函数优化网络中同一个特征向量,则会产生目标冲突,在训练过程中将出现损失不收敛及特征提取不准确的情况。针对该问题,本文设计出一种特征归一化层结构,将其放在网络中512 维特征向量后,归一化后的512 维特征向量采用Softmax 损失函数计算损失,而归一化前的512 维特征向量采用三元组损失函数和其他损失函数计算损失。
对于每一个输入特征向量f,其特征归一化计算公式为:
其中,m为输入特征向量f的维数为归一化后的输出特征向量。特征归一化可以平衡原特征向量的异常特征分布,加快Softmax 损失函数收敛,同时归一化前后分布的变化,并减少Softmax 损失函数对原特征向量的约束,使三元组损失函数更易收敛。
除了Softmax 损失函数和三元组损失函数,本文还引入中心损失函数[11]增强类内距离约束,以抵消三元组损失函数对同类距离约束较弱的影响。中心损失函数会在网络训练中学习每个类别的深度特征中心,并惩罚深度特征与其相应类别中心之间的距离LCenter,计算公式如下:
其中,yj为最小批次中第j张图像的标签为第yj类深度特征中心,N为所有批次图像的总数目。中心损失函数可使同一类特征向内聚集,从而增强类内紧凑性。由于中心损失函数也是对欧氏距离进行优化,因此将其与三元组损失函数一起用于约束同一个特征向量。
本文总损失函数表达式为:
其中,M为局部向量的分支数目,λ为中心损失的平衡参数,xik为最小批次中第i张图像的第k个局部向量,yik为对应于xik的图像标签,W和b分别为xik对应的最后内积层的权重矩阵和偏置向量,da,p和da,n分别为三元组正样本对与负样本对的特征距离,α为控制距离边缘的超参数,[z]+=max(z,0)。
为验证本文方法的有效性,选择常用的行人重识别数据集Market1501[12]、DukeMTMC-reID[13]和CUHK03[14]进行实验,并将本文方法与当前流行的部分重识别方法进行比较。
Market1501 数据集是通过DPM[15]行人检测方法由6个摄像机采集获得,共有32 668张图像,包含1 501个行人。不同摄像机之间存在视图重叠。本文将数据集中包含751 个行人的12 936 张图像作为训练集,其他包含750 个行人的19 732 张图像作为测试集,其中包括3 368 张查询图像和16 364 张图库图像。
DukeMTMC-reID 数据集是DukeMTMC 数据集的1 个子集,专用于行人重识别。该数据集由8 个摄像机采集获得,其中被2 个及以上摄像机同时拍摄到的行人有1 404 个。本文将其中702 个行人的16 522 张图像作为训练集,将余下702 个行人的19 889 张图像作为测试集,测试集中有2 228 张查询图像和17 661 张图库图像。
CUHK03 数据集由5 对摄像机采集获得,共有13 164 张图像,包含1 467 个行人,每个行人都被2 个摄像机同时拍摄。该数据集提供含有人工标注和DPM 两种检测框的图像,本文使用含有DPM 检测框的图像。将数据集中包含767 个行人的6 880 张图像作为训练集,将包含余下700 个行人的6 284 张图像作为测试集。
在行人重识别方法中,目前通常使用首位命中率(Rank-1)和平均精度均值(mean Average Precision,mAP)来评价重识别精度,因此,本文将Rank-1 和mAP 作为行人重识别精度评价指标。
本文实验选用ResNet50网络作为提取图像特征的主干网络,使用经ImageNet 数据集预训练过的权重对其进行初始化。在训练过程中,行人图像尺寸为384 像素×192 像素,训练批尺寸(B)为40(包含10 个行人,每个行人有4 张图像)。使用Warmup 学习率策略激活网络,基本学习率设置为0.000 3,网络共迭代训练120 次,在第40 次和第70 次进行指数衰减,衰减系数为0.1。使用随机梯度下降法优化网络模型,动量值为0.9,权重衰减系数为0.000 5。网络的损失为中心损失、Softmax 损失和三元组损失之和,中心损失函数的平衡参数为0.001 0,三元组损失函数的边缘参数为0.3。在实验时,将FN 层前10 个特征向量串联得到的5 120 维特征向量进行行人相互匹配,以欧氏距离作为度量距离。本文实验环境为:8 GB NVIDIA GTX 1070 GPU显存,ubutu16.04 操作系统,pytorch1.0.1 深度学习框架和python3.6 编程语言版本。
为验证多任务训练以及FN 层结构的有效性,本文在Market1501 数据集上采用不同损失函数以及损失函数的组合对图像全局特征进行训练,实验结果如表1 所示。可以看出:Softmax 损失函数和三元组损失函数(以下称为2 种损失函数)联合训练比各自单独训练所得Rank-1 值分别提升1.9 个和4.4 个百分点,mAP 值分别提升5.6 个和7.9 个百分点;Softmax损失函数、三元组损失函数和中心损失函数(以下称为3 种损失函数)联合训练比2 种损失函数联合训练所得Rank-1 值和mAP 值分别提升0.8 个和2.1 个百分点,说明多任务联合训练可增强特征的鲁棒性,提升重识别精度;2 种损失函数和3 种损失函数在增加FN 层后与未增加FN 层时相比,其Rank-1 值均提升1.6 个百分点,mAP 值分别提升2.5 个和0.9 个百分点,说明本文设计的FN 层结构能有效消除多损失函数之间优化目标不一致的影响,提高行人重识别精度。
表1 不同损失函数在Market1501 数据集上的实验结果Table 1 Experimental results of different loss functions on Market1501 dataset %
为验证本文所提分块策略的合理性,将使用Softmax 损失函数训练全局特征的方法定义为基准(Baseline)方法,在此基础上分别增加不同基本块数量得到3 种金字塔重叠方法,并与未使用RPP 网络的PCB 方法和最小4 等分块的HPM 方法进行对比,以上方法仅分块网络结构不同,其他配置均相同。不同切块方法在Market1501数据集和DukeMTMC-reID数据集上的实验结果如表2、表3 所示(Baseblock-n表示切分为n个基本块的金字塔重叠方法)。可以看出:使用局部特征的PCB、HPM 及Baseblock-n(n为4~6)方法的Rank-1 值和mAP 值比仅用全局特征的基准方法有明显提升,这是因为在有遮挡及复杂背景的环境下,局部特征比全局特征识别度更高;使用局部特征的PCB 方法的Rank-1 值和mAP 值最低,其原因在于小尺度局部特征在未对齐的行人样本对中不能正确地相互对应;HPM 方法较本文提出的Baseblock-4方法在Market1501 数据集和DukeMTMC-reID 数据集上的Rank-1 值分别低1.0 个和1.2 个百分点,mAP值分别低0.9 个和1.3 个百分点,这是因为HPM 方法未考虑分块之间的边缘特征信息;Baseblock-5 方法、Baseblock-6 方法的Rank-1 值和mAP值与Baseblock-4 方法相差很小,其原因在于小尺寸分块更易受到行人错位、姿态变化等异常值的影响,对总体识别效果的增益较小。Baseblock-5 方法、Baseblock-6 方法的分支数目分别为15、21,训练过程中要占用较多训练资源,本文采用的Baseblock-4方法更精简,占用训练资源较少。
表2 不同切块方法在Market1501 数据集上的实验结果Table 2 Experimental results of different cutting block methods on Market1501 dataset %
表3 不同切块方法在DukeMTMC-reID数据集上的实验结果Table 3 Experimental results of different cutting block methods on DukeMTMC-reID dataset %
本文对网络参数批尺寸和中心损失函数的平衡参数λ(中心损失占总损失的比例)分别取不同值进行实验,以分析其对行人重识别精度的影响,实验结果如表4、表5 所示。由表4 可以看出:随着批尺寸的不断增大,Rank-1 值和mAP 值升高,这是因为大的批尺寸有助于三元组损失函数挖掘更好的难正样本对和难负样本对(更好的难正样本对表示正样本对中样本差异较大,更好的难负样本对表示负样本对中样本差异较小),以此增大不同类别特征之间的距离。本文受硬件资源限制,未能采用更大的批尺寸进行实验,但由于三元组损失函数在小型数据集上挖掘难正样本对和难负样本对会出现饱和状态,因此推测可知批尺寸对重识别精度的提升有限。由表5 可以看出,随着平衡参数的不断增大,Rank-1 值和mAP 值均先增大后减小,并在λ=0.001 0 时取得最大值。这是因为λ取值太小,会使中心损失函数对增强类内距离的约束作用消失,λ取值太大,会使网络过于关注类别中心特征的学习,而减少不同类别样本特征之间的距离优化,造成识别效果较差。
表4 不同批尺寸下本文方法在Market1501数据集上的实验结果Table 4 Experimental results of the proposed method on Market1501 dataset with different batch sizes %
表5 不同λ值下本文方法在Market1501数据集上的实验结果Table 5 Experimental results of the proposed method on Market1501 dataset with different λ values %
图4 为本文方法在Market1501 测试集上对部分查询图像的重识别结果。左侧虚线框内为待查询图像,右侧虚线框内为采用本文方法在图库中得到的与被查询图像相似度最高的前10 张图像,其中仅白框标记的图像匹配错误,其他图像均匹配正确。由此可见,本文方法有很好的行人重识别能力。
图4 本文方法在Market1501 数据集上部分查询图像的重识别效果Fig.4 The re-identification effect of the partial query images on the Market1501 dataset by the proposed method
为验证本文方法的先进性,将本文方法与PSE[16]、MultiScale[17]、GLAD[15]、DaRe[18]、HA-CNN[19]、PCB+RPP、HSP[20]、MLFN[21]等主流方法在Market1501 数据集、DukeMTMC-reID 数据集和CUHK03 数据集上的行人重识别精度进行对比,结果如表6~表8 所示。可以看出,本文方法在3 个数据集上的Rank-1 值和mAP 值较其他方法更高,表明本文方法具有较高的重识别精度。此外,在本文方法的基础上,通过在推理阶段使用串联得到的新特征向量与图库中图像进行相似性匹配,并在上述3个数据集上经重新排序[22]后,能得到更高的Rank-1值和mAP 值。
表6 不同方法在Market1501 数据集上的实验结果Table 6 Experimental results of different methods on Market1501 dataset %
表7 不同方法在DukeMTMC-reID数据集上的实验结果Table 7 Experimental results of different methods on DukeMTMC-reID dataset %
表8 不同方法在CUHK03数据集上的实验结果Table 8 Experimental results of different methods on CUHK03 dataset %
本文针对行人姿态变化、遮挡和错位导致图像特征提取精度较低的问题,提出一种多任务金字塔重叠匹配的重识别方法。使用金字塔重叠网络匹配全局特征和多尺度局部特征,并通过Softmax 损失函数、三元组损失函数和中心损失函数联合训练网络,采用特征归一化层减少各损失函数优化目标不一致的影响,获取鲁棒性更强的共享特征。实验结果表明,与PSE、MultiScale 等重识别方法相比,该方法可有效提升行人重识别精度。下一步将结合分块局部特征与注意力机制,进一步提升行人重识别精度。