魏紫薇,屈丹,柳聪
(1.郑州大学 软件学院,郑州 450001;2.战略支援部队信息工程大学 信息系统工程学院,郑州 450001)
行人重识别也称行人再识别,是指在没有交叉视域的多个摄像头监控系统中,给定一个摄像机拍摄的行人图像,利用深度学习、人工智能等技术从其他摄像机中重新识别出该行人。行人重识别作为智能图像处理的关键技术之一,在智能安防、智能追踪、智能管理等应用场景中得到广泛关注与应用[1-2]。
行人重识别系统通常由图像预处理、图像特征提取、网络损失优化、行人排序4 个部分组成:图像预处理对输入图片大小、分辨率等进行处理;图像特征提取旨在提取显著性更强的行人特征,是系统中的关键步骤;网络损失优化是在损失函数最小化原则下通过某种优化算法来寻找最优参数;行人排序是对行人图像之间的相似度依次进行排序并得到排序结果。
在诸多行人特征提取方法中,全局特征提取[3]较早被应用到行人重识别网络中,其缺点是不易捕捉图片之间的细微区别。在这之后,很多研究人员提出全局特征与局部特征相结合的方法[4-6],使得行人重识别性能得到大幅提升。尽管行人重识别技术取得了很大的进展,但是受遮挡、姿态变化、光线变化、图像分辨率等因素影响,其识别精度仍难以满足现实需求[7-8]。为解决该问题,很多研究人员提出基于注意力机制的行人重识别网络[9-11],该类网络利用注意力机制、深度模型来关注行人图像的显著特征,从而降低各种环境变化和背景干扰所带来的负面影响[12-14]。
文献[15]提出包含非局部注意力模块(Non-Local Attention Module,A)、广义平均池化(Generalized-Mean Pooling,G)、加权三元组损失(Weighted Regularization Triplet,W)的AGW 网络,该网络在提取某处特征时利用其周围点的信息,获得了更大的感受野以及更广泛的信息分布。然而,AGW 网络是对当前卷积模块进行注意学习从而训练模型,在训练过程中,当前注意块没有前面的监督信息来进行指导。文献[16]提出连接注意力模块,其通过当前注意块来从前面注意块中收集信息,并将其传递给下一个注意块,使得注意块之间的信息可以相互配合,从而提高注意力模块的学习能力,最终大幅提升网络的特征学习效果。
针对真实环境下行人重识别网络识别精度低的问题,本文提出一种基于连接注意力机制的行人重识别特征提取方法,旨在提取显著性更强的行人图像特征以实现行人识别。使用自动增强技术[17]对图像进行预处理,获取关于平移、旋转、剪切等多种图像处理功能的融合策略,以实现有效的数据增强,进而提升模型的鲁棒性。采用基于连接注意力机制的行人重识别网络模型对行人图像进行特征提取,获得显著性更强的行人特征进行相似度度量。此外,利用三元组损失和圆损失进行损失优化,以获得更高的行人重识别精度。在Market1501[18]、DukeMTMC-reID[19]、MSMT17[20]这3 个主流的行人重识别数据集上进行实验,以验证本文基于连接注意力的行人重识别网络的识别性能。
如图1 所示,本文行人重识别特征提取网络分为4 个步骤:
图1 行人重识别特征提取网络结构Fig.1 Person re-identification feature extraction network structure
1)对输入的行人图片进行预处理。
2)将预处理后的图片输入以ResNet50 作为主干网络、卷积块2~卷积块5 分别结合连接注意力模块的整体网络结构中进行特征提取。
3)对提取的行人特征进行损失优化并完成相似度度量。
4)进行行人排序,得到行人重识别系统的识别结果。
在基于深度学习的网络模型训练过程中,网络模型由最初的浅层网络发展到目前更深、更宽的网络,因此,对数据量的需求也大幅提高,从而避免模型的过拟合问题。在真实环境中,由于数据标注成本等因素影响,导致训练数据欠缺,需要对数据集进行数据扩增。传统的数据增强方法包括尺寸变换、颜色增强等,随着深度学习中更深网络层的出现,简单的数据增强方法已经无法满足各类场景的应用需求。在行人重识别场景中,光照、角度、分辨率等因素的影响使得深度网络的学习更为困难。
自动增强是一种自动搜索合适数据进行标注数据拓展的算法,其包含2 个部分:
1)搜索空间:确定图像变换增强的选择范围。
2)搜索算法:确定图像增强选择范围内的优选结果。
搜索空间中的一个图像增强策略包含5 个子策略,在训练时为每个小批量中的每张图像选择1 个子策略,因此,数据扩展为原始数据的2 倍。在搜索空间中,共有16 种图像运算方法,包括剪切(沿X轴或Y轴)、平移(沿X轴或Y轴)、旋转、最大化图像对比度、反色、均衡、像素点反转、像素点反转叠加、色调分离、对比度、饱和度、亮度、锐度以及随机擦除。每个子策略包含2 种图像运算方法,图像运算包含该方法的应用概率和应用幅度,即以一定的概率选择使用该方法并在图像上采用一定的幅度使用该方法。图像运算方法选择具有随机性,导致图像增强后的图片存在多种结果,因此,确定多种结果中更为合适的一个结果尤为重要。为此,本文采用基于控制器RNN 的搜索算法来采样数据增强策略,该策略具有关于图像变换方式、变换概率和变换幅度的信息。在实验过程中,利用文献[17]中基于ImageNet的增强策略来训练网络模型。综上,本文采用基于自动增强的方法对训练数据进行增强,增加数据量以避免模型过拟合,最终利用更深的网络来提取更细粒度的图片特征。
1.2.1 连接注意力模块
连接注意力模块是在通道注意力(Channel Attention,CA)[21]的基础上通过相邻注意块的信息互连而形成的。通道注意力模块结构如图2 所示,其通过学习通道注意力系数对卷积块进行加权,以获得最终的卷积输出。
图2 通道注意力模块结构Fig.2 Channel attention module structure
对由卷积块产生的特征图X∊RC×W×H进行全局平均池化(Global Average Pooling,GAP)和特征转换,如式(1)所示:
其中:C×W×H表示特征图大小,即通道数、图像宽度和图像高度;ωt是转换参数;XGAP∊RC为全局池化后的特征;T为特征转换,该转换通过双层前向全连接网络来实现,2 个全连接层的非线性激活函数分别为ReLU 和Sigmoid;AT∊RC是转换后的通道注意力系数输出。注意力引导输出Xout∊RC×W×H,如式(2)所示:
其中:⊙表示通道点乘运算,即每个通道注意力系数对每个通道内的像素点进行点乘。最终通道注意力模块输出可表示为:
连接注意力模块结构如图3 所示,其将前序通道注意块的通道注意力系数AT与当前注意块的全局池化结果进行融合,这种融合能够确保当前卷积块的通道注意力系数,是由其全局池化结果和前序卷积块通道注意力信息的联合学习而得到。
图3 连接注意力模块结构Fig.3 Connected attention module structure
在不同阶段由卷积块所产生的特征图通道数不同,与之相关联的注意力图通道数也不同,为了解决通道匹配问题,本文将先前注意块的输出AT采用注意力连接模块进行通道数匹配,该注意力连接模块包括全连接层和归一化层(Layer Normalization,LN),归一化后都采用ReLU 非线性函数。为减少参数量,2 个全连接层在进行通道匹配时,通道数由其中,C和C′分别代表先前和当前通道数量,r为通道衰减参数,其对模型性能的影响将在后续实验中详细分析(可参见表3)。最终,注意力模块的输出如式(4)所示:
从上文分析可以看出,通道注意力通过自主学习的方式得到每个特征通道的重要性程度,赋予重要的特征通道更大的权重,赋予作用较小的特征通道更小的权重,但其只考虑当前注意块通道的重要性程度,忽略了前序注意块的信息,存在特征显著性不强的问题。连接注意力模块在其基础上将之前注意块信息融入到当前注意块中,使得注意块之间的信息相互配合,从而提高了注意力模块的学习能力和网络的特征学习效果。
1.2.2 特征提取网络
本文以ResNet50作为主干网络,分别在卷积块2~卷积块5 中,在残差块引入连接注意力机制,让其在卷积块之间进行信息融合,最终构成特征提取网络,结构如图4 所示。
图4 特征提取网络结构Fig.4 Feature extraction network structure
本文特征提取网络由5 个卷积块构成,其中,卷积块1 包括一个7×7 卷积和最大池化层,其余卷积块均由残差块和瓶颈块组成,不同之处在于瓶颈块叠加的个数不同。以卷积块2 为例,其结构如图5 所示,残差块包含1×1 卷积、3×3 卷积以及连接注意力模块,连接注意力模块在1×1 卷积层之后,瓶颈块包含1×1 卷积、3×3 卷积以及通道注意力模块。为了避免网络层数过多带来的梯度消失问题,残差块采用1×1 卷积进行残差连接,连接注意力模块和通道注意力模块对特征通道赋予不同的权重,以获得显著性更强的行人特征,从而得到识别精度更高的特征提取网络。
图5 卷积块2 的结构Fig.5 Structure of convolution block 2
本文实验使用的损失函数为三元组损失函数[22]和圆损失函数[23],两者能够学习高判别力的行人特征。三元组损失旨在一定距离上将正负样本分开,即最小化正样本对之间的距离,同时最大化负样本对之间的距离,其目标函数如式(5)所示:
其中:xa为固定样本;xp为正样本,即xp与xa具有相同的行人ID;xn是负样本,即xn与xa具有不同的行人ID ;F为特征提取函数,即利用连接注意力优化的残差网络进行特征提取后再进行池化(如图1 所示);表示正负样本对特征之间的欧氏距离;α为手动设置的距离阈值,用于限制正负样本对之间的距离,实验过程中其值取0.3;[·]+表示max(·,0)函数。对于每一个训练批次,挑选出P个行人,每个行人随机挑选K张图片,即一个批次包含P×K张图片,对于每一张图片,挑选出一个与其最不相似的正样本(即与固定样本特征距离最大的样本)和一个最相似的负样本(即与固定样本特征距离最小的样本),最终计算三元组损失。
圆损失旨在学习类别区分性信息,即最大化类内相似度同时最小化类间相似度。假设与x相关的类内相似度分数有K个,类间相似度分数有L个,则圆损失的目标函数如式(6)所示:
其中:sn和sp分别为关于样本空间x的类间相似度和类内相似度,采用余弦相似度来计算类内和类间相似度分数;Δn和Δp分别为类间和类内间隔,实验过程中分别取值0.25 和0.75;αn和αp为非负整数权重因子;γ为尺度因子,实验过程中取值1。
为了最大化地发挥损失函数的作用,本文实验过程中采用总损失Ltotal,如式(7)所示:
其中:m和n分别为损失函数的权重因子,其对实验结果的影响见表5,实验过程中m和n均取值1。
为了验证本文所提方法的有效性,分别在Market1501[18]、DukeMTMC-reID[19]、MSMT17[20]这3 个公开数据集上进行测试。Market1501 于2015 年在清华大学内采集,图像来自6 个不同的摄像头,其中1 个摄像头为低分辨率,训练集包括751 个人的12 936 张图片,测试集包括750 个人的19 732 张图片。DukeMTMC-reID 于2017 年在杜克大学内采集,图像来自8 个不同的摄像头,训练集包括702 个人的16 522 张图片,测试集包括702 个人的19 889 张图片。MSMT17 在北京大学内采集,图像来自15 个不同的摄像头,训练集包括1 041 个人的30 248 张图片,测试集包括3 060 个人的93 820 张图片,其中,11 659 张图片被随机选出作为查询图片,剩下的82 161 张图片作为图库。
本文采用目前行人重识别领域最常用的2 种评价指标,即首位准确率(Rank-1)和平均精确均值(mean Average Precision,mAP)。Rank-1 反映了待选行人图像中匹配值排在首位的图像是待查询行人的概率,mAP 综合考虑精确率和召回率,能够反映图像库中所有正确的图片排在检索列表最前面的程度。
实验采用ResNet50 作为主干网络,并利用ImageNet 预训练参数进行初始化。为了保留图像的分辨率,ResNet50 最后一个瓶颈层的步长设置为1,每个瓶颈层后均叠加一个注意力块。在训练期间,采用自动增强的数据增强策略,输入图片大小为384×128 像素,批次大小是64,其包含16 个行人类别,每个类别包含4 个行人图像。采用随机梯度下降优化器进行网络优化,动量因子为0.9,权重衰减为0.000 5。初始学习率设置为0.01,采用预热学习策略,在训练40 个回合后下降10 倍。模型共训练80 个回合,为了更好地初始化分类器的参数,在前10 个回合只训练分类器参数,即用来计算损失的特征参数,同时冻结网络参数,经过10 个回合迭代后释放网络参数,后70 个回合训练整个网络模型。
本文采用Rank-1 和mAP 这2 种性能指标来衡量所提方法的性能,Rank-1 和mAP 的值越高,说明模型性能越好,行人重识别精度越高。
2.3.1 本文方法与现有方法的性能比较
在Market1501、DukeMTMC-reID、MSMT17 这3 个公开行人重识别数据集上进行测试,将本文方法与PCB[3]、MGN[4]、Pyramid[5]、OSNet[7]、MHN[9]、SONA[10]、AGW[15]、FastReID[24]等基于深度学习的经典行人重识别方法进行比较,结果如表1 所示。
表1 不同行人重识别方法的性能比较Table 1 Performance comparison of different person re-identification methods %
从表1 可以看出:在Market1501 数据集上,本文方法的Rank-1 和mAP 值较其他对比方法均最优;在DukeMTMC-reID、MSMT17 数据集上,本文方法的Rank-1 和mAP 值同样取得了最优结果,超出其他方法1.5 个百分点左右。此外,本文在测试阶段对重排序(Rerank)[25]和查询扩展(Query Expansion,QE)这2 个测试技巧进行实验,从结果可以看出,在Market1501 和DukeMTMC-reID 这2 个数据集上,本文方法的Rank-1 和mAP 值较对比方法均有明显提升。由此可以看出,在3 个公开行人重识别数据集上,本文方法在行人重识别精度方面极具竞争力,这主要得益于连接注意力模块将上下文信息进行融合,提取显著性更强的行人特征进行距离度量,最终获得了较好的识别效果。
2.3.2 消融实验
本文消融实验均以Market1501 数据集为例进行测试。为了探索不同分支对实验结果的影响,将自动增强方法和连接注意力模块嵌入ResNet50 网络中进行识别,其中,M1 表示数据预处理中的自动增强,M2 表示连接注意力机制。从表2 可以看出,2 个分支对实验结果均有一定程度的提升,合并在一起对实验结果的提升更为明显,Rank-1 值提升1 个百分点左右,mAP 值提升3 个百分点左右,因此,增加数据集规模并提取显著性更强的行人特征有助于提升识别精度。
表2 消融实验结果Table 2 Ablation experimental results %
在连接注意力模块中,为了匹配通道大小,引入了通道衰减r,为了探索r值对模型性能的影响,本文进行实验测试。从表3 可以看出:当r值为2 时,实验结果最好;r值为4 和直接采用一个全连接层(即对应表中第一行FC 层)的实验结果相比r值为2 时稍差。
表3 不同通道衰减r 值下的实验结果Table 3 Experimental results under different channel attenuation r values %
本文还测试了不同主干网络对实验结果的影响,ResNet18、ResNet34、ResNet50 分别代表主干网络层数分别为18、34、50 的典型网络,IBN(Instance Batch Normalization)网络是将ResNet50 等典型网络中的BN 层替换为IBN 层之后形成的网络。从表4可以看出,当主干网络为ResNet50 时,更深的网络结构提取了更高层次的行人特征,识别效果更好。为了验证本文所采用损失函数的有效性,对m和n的取值进行测试。从表5 可以看出,三元组损失和圆损失联合使用时实验效果更好,这主要得益于三元组损失使得正样本对距离更近同时负样本对距离更远,而圆损失在优化距离的同时赋予类间样本与类内样本不同的权重因子,使得其优化方向更为准确。
表4 不同主干网络下的实验结果Table 4 Experimental results under different backbone networks %
表5 不同损失函数下的实验结果Table 5 Experimental results under different loss functions %
2.3.3 行人重识别结果示例
为了更加清晰地呈现行人重识别系统的识别效果,在Market1501 数据集上对识别结果进行可视化,如图6 所示,query 为待查询图片,在图像库中寻找与其为同一个人的图片,显示结果为前10 张相似度最高的行人图片,其中,虚线框内为错误的识别结果,其余为正确的识别结果。从图6 可以看出,错误的检索图片与待查询图片在外观方面非常相似,在提取行人外观特征时,网络模型捕获不到细微的差别,导致了错误的识别结果。因此,如何提取更加细粒度的行人特征,使得网络模型关注到行人图像的细小差别显得尤为重要,这也是本文下一步的研究重点。
图6 部分行人重识别结果Fig.6 Some person re-identification results
在现实环境中,行人重识别容易受光照、姿态等外在变化和不同背景的影响,导致数据量欠缺以及行人重识别系统识别率低的问题。为此,本文提出一种基于连接注意力的行人重识别特征提取方法。将自动增强策略引入图像预处理过程中以提高模型的鲁棒性,将连接注意力模块嵌入ResNet50网络进行特征提取,从而增强行人特征的显著性,在此基础上,进行相似度度量以得到识别精度较高的行人重识别模型。在3 个主流数据集上的实验结果表明,该方法的行人重识别性能评价指标优于PCB、MGN 等方法。在本文方法的基础上,利用预训练模型和transformer 网络来提取更加细粒度的特征以及提升跨域行人重识别模型的精度,将是下一步的研究方向。