刘晓蓉,李小霞,2,秦昌辉
(1.西南科技大学 信息工程学院,四川 绵阳 621000;2.特殊环境机器人技术四川省重点实验室,四川 绵阳 621010)
行人重识别是在特定的监控行人图像,查找该行人在其他摄像头下拍摄到的图像[1]。因摄像头的位置、视角不同,同时受行人姿态、遮挡、光照变化等因素的影响,同一行人的不同图像存在较大的差异。因此,行人重识别成为计算机领域的研究热点。
随着卷积神经网络的发展,基于深度学习的方法被应用于行人重识别任务中。目前,基于深度学习的行人重识别主流方法大多数采用平均池化、最大池化或将两者相结合。本文提出一种多尺度对比池化特征融合的行人重识别方法。基于网络中不同尺度的特征信息,通过构建对比池化模块,同时结合平均池化和最大池化的优点,提取具有强判别性的对比池化特征,从而提升行人重识别的准确度。
传统的行人重识别方法主要分为基于特征表示的方法和基于距离度量的方法。基于特征表示的行人重识别方法主要通过提取颜色、局部二值模式[2](Local Binary Pattern,LBP)、尺度不变特征变换[3](Scale Invariant Feature Transform,SIFT)等 特征。由于单一特征在行人目标表征方面具有局限性,因此研究人员又提出其他方法:文献[4]采用累积颜色直方图表示全局特征,进而提取局部特征;文献[5]引入局部最大发生率(Local Maximal Occurrence,LOMO)。基于距离度量的行人重识别方法通过设计距离函数,使得同一行人目标的距离小于不同行人目标的距离。文献[6-7]分别提出KISSME(Keep It Simple and Straightforward Metric)和最大近邻分类间隔(Large Margin Nearest Neighbor classification,LMNN)算法来学习最佳的相似性度量。
传统的行人重识别方法提取的特征表达能力有限,难以适应实际复杂场景下的行人重识别任务。近年来,越来越多的研究人员将深度学习方法应用到行人重识别领域中,通过提取全局特征和局部特征来获得具有判别性的行人特征表达。文献[8]提出一种全局-局部对齐特征算子(Global Local Alignment Descriptor,GLAD)来提取全局特征和局部特征。文献[9]构建均匀分块的PCB(Part-based Convolutional Baseline)模型,将得到的特征等分后通过RPP(Refined Part Pooling)网络对齐图像块,进而提取各图像块的局部特征。
卷积神经网络是深度学习的代表算法之一,在构建卷积神经网络时,通常会在卷积层之后接入1 个池化层,以降低卷积层输出的特征维度,同时达到抑制噪声、防止过拟合的作用,从而提高网络的泛化性能。卷积神经网络中平均池化能较完整地传递特征信息,但是容易受背景噪声的影响;最大池化能提取出辨识度较优的特征,但更关注局部信息。主流网络的池化方法如表1 所示,大多数基于卷积神经网络的行人重识别方法仅使用平均池化或最大池化,或者将两者池化后输出的特征进行简单融合。
表1 主流网络的池化方法Table 1 Pooling method of mainstream networks
本文设计的行人重识别网络结构如图1 所示,主要包括多尺度特征提取、对比池化模块和分类回归3 个部分。
图1 本文网络结构Fig.1 Structure of the proposed network
卷积神经网络中的不同层次会产生不同空间分辨率的特征图,通过不同卷积层得到的特征图内包含的信息不同。高层特征更关注语义信息,较少关注图像细节信息,而低层特征在包含更多细节信息的同时,也可能包含了混乱的背景信息。因此,研究人员通过结合多个尺度的特征,以这种简单且有效的方式对不同层次的特征进行互补。本文以残差网络结构ResNet50[15]作为行人重识别的骨干网络,用于提取通过ResNet50网络layer3 层和layer4 层的特征。从图1 可以看出,本文设计的行人重识别网络结构移除ResNet50 网络中最后一层的全连接层,引入平均池化层与最大池化层。图1 中Avg(m)、Max(m)分别表示平均池化和最大池化,得到宽和高都为m的特征图。本文分别将ResNet50网络中layer3 层输出的特征进行全局平均池化和全局最大池化,得到输出维度为1×1×1 024的Pavg1和Pmax12个特征图。同理,将ResNet50 网络中layer4 层输出的特征分别进行全局平均池化和全局最大池化,得到输出维度为1×1×2 048 的Pavg2和Pmax2。为降低池化对信息丢失的影响,通过调整平均池化和最大池化的步长(stride),以得到更丰富的特征信息,输出维度为2×2×2 048 的Pavg3和Pmax3。将提取得到的行人图像多尺度特征Pavg1、Pmax1、Pavg2、Pmax2、Pavg3和Pmax3送入到对比池化模块,得到相应的对比特征Pcont1、Pcont2、Pcont3,再将其转化为统一维度进行融合,将融合后的特征送入分类器进行分类,最后得到行人重识别结果。
图2 为卷积神经网络中常用的平均池化和最大池化计算示意图。
图2 池化计算示意图Fig.2 Schematic diagram of pooling calculation
平均池化是对邻域内的特征求平均值,最大池化则是对邻域内的特征求最大值。经过平均池化后得到的特征虽然能够较完整地传递图像的全局信息,但是其计算方式容易受背景杂波和遮挡的影响,难以区分行人和背景。与平均池化相比,最大池化能够降低背景杂波的影响,但最大池化更关注提取行人图像局部的显著特征和行人的轮廓信息,池化后的特征并不能完整包含行人的全身信息。在行人重识别任务中,由于摄像头角度和外界光照的变化,需要在保留行人全身信息的同时去除背景杂波的影响,并且突出行人和背景的差异。在此基础上,本文提出一个对比池化模块,如图3 所示,通过结合最大池化和平均池化的优点,弥补最大池化和平均池化的不足,在保留行人全身信息、加深行人轮廓的同时,更加关注行人与背景的差异,使得行人图像的最终特征表达更全面和更具判别性,从而提高行人重识别的准确率。
图3 对比池化模块结构Fig.3 Structure of contrast pooling module
从图3 可以看出,对比池化模块是将ResNet50提取得到的行人图像多尺度特征Pavg与Pmax相减,并将其得到的特征使用一个1×1 的卷积核进行卷积,以得到Pavg与Pmax之间的差异特征。利用1×1 的卷积核对经过最大池化得到的Pmax特征进行卷积,与之前得到的Pavg与Pmax之间的差异特征相加得到对比特征Pcont。本文提出的对比池化模块结合了最大池化和平均池化的优点,得到的对比特征Pcont在覆盖行人全身和加深行人轮廓的同时降低了背景杂波的影响,并且更加关注行人和背景之间的区别。对比特征Pcont如式(1)所示:
其中:Pavg和Pmax分别为经过平均池化和最大池化后得到的特征;δ1×1(x)为对x使用一个1×1 的卷积核操作。
为了训练模型,本文使用三元组损失(Triplet Loss)和交叉熵损失(Cross Entropy Loss)联合优化模型,损失函数如式(2)所示:
其中:Ltotal_loss为总体损失;为三元组损失为交叉熵损失。三元组损失逐渐缩短正样本对之间的距离,使得正负样本之间的距离逐渐变大。交叉熵损失关注实际输出与期望输出的接近程度。i表示 通过ResNet50 网络layer3 层和layer4 层后,提取到的6 个行人图像基础特征Pavg1、Pmax1、Pavg2、Pmax2、Pavg3和Pmax3中的第i个特征。,j表示通过对比池化模块后提取到3 个对比特征Pcont1、Pcont2和Pcont3中的第j个特征。本文设计的损失函数采用三元组损失和交叉熵损失联合优化模型,通过计算多个损失来加快模型收敛,以提高模型的泛化能力。
本文实验包含以下4 个训练策略:1)在训练阶段,学习率使用WarmUp 方式;2)对训练集的数据进行概率为0.5 的随机擦除;3)使用标签平滑提高模型的泛化性能;4)使用BNNeck(Batch Normalization Neck)对特征进行归一化。此外,所有实验重复3 次取得的均值作为实验结果,在避免随机性的同时保证实验结果的准确性。
本文在Market1501[16]和DukeMTMC-reID[17]数据集上对提出的行人重识别方法进行对比。
Market1501 数据集采集于清华大学,包括6 个摄像头拍摄到的1 501 个行人,训练集有751 个行人的12 936 幅图像。测试集有另外750 个行人的19 732 幅图像。测试集又分为查询集和图库集,查询集包含测试集中750 个行人在6 个摄像头中随机挑选出的3 368 幅图像;图库集包含与查询集相同行人的其他13 056幅图像,以及不在查询集中的6 676幅图像。
Duke MTMC-reID 数据集包括8 个摄像机拍摄到的1 404 个行人的36 411 幅图像。训练集有702 个行人的16 522幅图像。测试集有另外702个行人的17 661幅图像。测试集又分为查询集和图库集,查询集包含测试集中702个行人在8个摄像头中随机挑选出的2 228幅图像;图库集包含17 661 幅图像。
本文算法基于Pytorch 框架,实验使用的计算平台是基于64 位的Windows 10 专业版操作系统,硬件配置如下:GPU 为NVIDIA GeForce GTX 1080 Ti、CPU 为Intel®CoreTMi7-7700K CPU @ 4.20 GHz、内存32 GB。在训练模型时,输入行人图像的分辨率设置为288×144 像素,训练批次为32,总共迭代次数为220,使用SGD 优化器优化模型参数,初始学习率设置为0.03,权重衰减率设置为0.000 5,随着迭代次数增加,权重衰减率逐渐增加到0.03,然后分别在迭代到40、110和150次时降到0.003、0.000 3和0.000 3。
本文实验采用累积匹配特征(Cumulative Matching Characteristics,CMC)曲线中的Rank-1、Rank-5、Rank-10 和平均精度均值(mean Average Precision,mAP)作为评估指标。测试时从查询集中取一幅查询图像,将测试集中所有图像与查询图像进行相似度度量,CMC 是指在前K幅候选图像中与查询图像匹配成功的概率,Rank-1、Rank-5、Rank-10的值就是CMC(K)中K=1、5、10 时对应的准确率。mAP 是计算所有样本的准确率-召回率曲线下面积的平均值。
为验证本文方法的有效性,在Market1501 数据集上进行对比实验,重识别结果如图4 所示,每行第一列为查询图像,后10 列为前10 名的查询结果,图4中实线边框表示正确的查询结果,虚线边框表示错误的查询结果。
图4 本文方法的行人重识别结果Fig.4 Person re-identification results of the proposed method
avg 方法是利用本文提出的行人重识别网络结构对行人图像基础特征进行平均池化,以得到特征图。max方法是通过最大池化得到的特征图。在Market1501数据集上,avg 方法、max 方法与本文对比池化模块(contrast)方法的准确率和损失值对比结果如图5所示。从图5 可以看出,contrast方法相较于avg 方法和max 方法的准确率更高,同时损失值下降得更快,验证了contrast方法在行人重识别任务中的有效性。
图5 不同方法的准确率和损失值对比Fig.5 Accuracy and loss value comparison among different methods
本文利用Grad-CAM类激活热力图对avg方法、max方法和contrast方法进行可视化,结果如图6 所示(彩图效果见《计算机工程》官网HTML 版)。从图6 可以看出,avg 方法更关注图像的全局信息,但容易受背景杂波影响;max 方法更注重局部的行人轮廓信息,但并不包含行人全身信息;contrast 方法结合两者的优点,能够包含行人全身的同时,降低背景杂波对其的影响。
图6 不同方法的可视化结果Fig.6 Visualization results of different methods
在Market1501 和DukeMTMC-reID 数据集上,不同方法的性能指标对比如表2 所示。本文提出的contrast+re-ranking 方法通过重排序re-ranking[18]技术优化网络性能,ResNet50_baseline 方法直接利用ResNet50 网络layer4 层输出的特征优化网络性能。从表2 可以看出,本文提出的contrast+re-ranking 方法在Market1501 和DukeMTMC-reID 数据集上的mAP 分别为94.52%和89.30%。
表2 不同方法的性能指标对比1Table 2 Performance indexs comparison 1 among different methods %
在同样以ResNet50 为骨干网络的情况下,contrast 方法和contrast+re-ranking 方法的性能指标能够显著提升。相比ResNet50_baseline 方法,avg 方法和max 方法的性能指标也有明显提升,验证了contrast 方法和contrast+re-ranking 方法在提取网络中多尺度特征方面的有效性。contrast 方法和contrast+re-ranking 方法的指标相较于avg 方法和max 方法有所提升,说明本文所提的对比池化模块结合平均池化和最大池化的优点,对行人重识别网络性能指标的提升具有重要意义。
本文所提方法与近年来行人重识别领域中代表方 法(SVDNet[19]、GLAD[8]、PCB[9]、PCB+RPP[9]、BEF[20]等)的性能指标对比如表3 所示。对比方法的性能指标都引用自原文,其中“—”表示原文献中没有该项实验结果,同时给出了利用re-ranking 技术优化contrast 方法后的性能指标。
表3 不同方法的性能指标对比2Table 3 Performance indexs comparison 2 among different methods %
从表3可以看出,contrast+re-ranking方法的Rank-1和mAP 指标优于对比方法,尤其mAP 指标得到显著提高。在Market1501 数据集上,contrast+re-ranking 方法在经过重排序后相较于基于局部特征的PCB+RPP 方法的Rank-1 指标提高2.61 个百分点,mAP 指标提高了约13 个百分点;其Rank-1 指标相比BEF 方法提高了1.1个百分点,mAP指标提高了7.8个百分点;比DG-Net方法在Rank-1 指标上提高了1.61 个百分点,在mAP 指标上提高了8.52 个百分点;比CtF 方法在Rank-1 指标上提高了2.21 个百分点,在mAP 指标上提升了9.62 个百分点。在DukeMTMC-reID 数据集上,与BEF 方法相比,本文方法(contrast)的Rank-1 指标较低,但是在mAP 指标上提高了1.7 个百分点。contrast方法经过重排序后,其Rank-1 和mAP 指标上均高于对比方法。
表4 为本文方法与对比方法的参数量、计算量和推理时间对比。从表4 可以看出,相比大多数对比方法,本文方法的模型参数量(Parameters)更多,但本文方法的计算量(FLOPs)更小,在单幅图像进行推理时所消耗的时间也更少。
表4 不同方法的参数量、计算量和推理时间对比Table 4 Parameters,calculation and inference time comparison among different methods
本文提出一种多尺度对比池化特征融合的行人重识别方法。通过构建对比池化模块,结合最大池化和平均池化的优点,使得网络更加关注图像中行人与背景的差异,利用重排序技术优化网络性能,以提取网络中不同尺度的特征。在Market1501和DukeMTMC-reID数据集上的实验结果表明,本文方法的首位命中率分别为96.41%和91.43%,相比SVDNet、GLAD 和PCB 等方法,能够有效提高行人重识别的准确率。后续将通过可变形卷积或引入注意力机制的方法,提取更加显著的特征,以提升行人重识别的精度。