APP下载

基于阶梯型特征空间分割与局部注意力机制的行人重识别

2022-02-24石跃祥

电子与信息学报 2022年1期
关键词:分块集上阶梯

石跃祥 周 玥

(湘潭大学计算机学院·网络空间安全学院 湘潭 411105)

1 引言

行人重识别是在跨监控设备下检索出给定行人图像目标的技术,广泛应用于智能安防、人机交互、电子商务等领域。由于监控设备下的行人图像存在角度变化、光照、遮挡和分辨率低等问题,行人重识别仍然是一项具有挑战性的任务。早期行人重识别的研究通常是对行人图像提取颜色直方图、HOG、纹理等手工特征。但手工设计的特征描述能力有限,传统算法识别率比较低。此外,许多研究者在距离度量学习方法上进行研究,周智恒等人[1]提出一种等距离度量学习策略,陈莹等人[2]提出一种双向参考集矩阵度量学习算法。为克服度量模型的过拟合问题,He等人[3]提出环推度量学习算法。2016年后,随着深度学习在行人重识别任务中的应用,算法性能大大超过了早期的传统方法。

基于深度学习的行人重识别主要可以归纳为基于生成对抗网络[4]、特征空间分割、行人姿势和注意力机制的方法[5]。研究者利用生成对抗网络来扩大数据集和增加数据多样性,如Zheng等人[6]利用生成对抗网络来生成更多模拟的数据。在全局特征遇到性能瓶颈后,研究者更加注重局部特征的研究。Sun等人[7]提出的PCB模型将所提取的全局特征均匀分成6个水平块。Wang等人[8]提出了一种整合全局特征和局部特征的多粒度模型。但简单的分块可能造成块与块间有效信息的丢失,且无法实现水平块之间的对齐。Zhao等人[9]借助人体的14个姿势关键点生成7个子区域,然后将其与全局特征一起送入特征融合网络得到最终的行人特征表示。Miao等人[10]利用姿态将有用信息从遮挡中分离出来。结合人体姿势信息进行预测,能够有效避免姿态错位导致的特征对齐困难,但需要大量额外的监督和姿势预测过程。另一个比较有效的是注意力方法,它可以模仿人类的视觉信号处理机制,并且不需要使用具体的语义特征,相比结合姿势的方法,能在一定程度上减轻工作。Song等人[11]利用二值掩膜设计了一种对比注意力模型来分别学习身体和背景区域的特征。Li等人[12]提出了注意力融合卷积神经网络模型,从而优化图像未对准的情况。注意力机制方法对于行人遮挡和分辨率低等问题有一定的帮助,但在识别的过程中可能丢失一些比较重要的数据。

为了解决上述问题,本文将特征空间分割和注意力机制相结合,提出了更加有效的特征空间分割方式,针对局部分支引入了注意力机制策略。首先,改进了以往空间分割的方法,对切分为多个水平区域的特征图进行阶梯型特征提取,与之前的强制水平分割相比,阶梯型特征提取能够关注更多的边缘信息,加强局部特征之间的联系。其次,在多个局部分支中引入了分支注意力,按重要性给每一个局部分支分配相应的权重,从而在更注重包含比较多重要信息的分支同时削弱无关信息的关注程度。最后,在每一个局部分支后引入卷积核注意力、通道注意力和空间注意力,结合多类注意力机制能够获得更好的判别特征。

2 特征空间的分割及注意力机制的引入

2.1 网络结构

本文网络结构如图1所示,该网络以ResNet-50为骨干网络,且在最后一层卷积conv5_x前划分成两个独立的分支。第1个分支延续原始ResNet-50相同的体系结构,提取行人图像的全局特征。第2个分支提取多粒度的局部注意力特征。

图1 阶梯型局部分支注意力网络(Stepped Local Branch Attention Network,SLANet)结构

对于第2个分支,在conv5_x中设置卷积步长为1,从而增大网络输出的特征图来获得更多的特征信息。随后又划分为3个独立的分支:分支1、分支2、分支3。将调整为384×128大小的图像输入到网络后,在该分支经过conv5_x得到大小为24×8的整体行人特征图,其维度为2048维。在分支1利用所得的整体行人特征图来获取完整图像特征信息。在分支2将整体行人特征图输入到阶梯型分支注意力模块(Stepped Branch Attention Module,SBAM)进行阶梯型特征分块,得到P个不同权重的局部特征。在这里设置P=5,表示划分得到5个局部区域,其中每一个分块区域的大小为12×8。在分支3将整体行人特征图输入到SBAM模块进行阶梯型特征分块,得到P个不同权重的局部特征,设置P=9,每一个分块区域的大小为8×8。对分支2和分支3得到的14个局部特征都单独送入到多尺度自适应注意力模块(Multi-scale Adaptive Attention Module, MAAM),从而得到融合了卷积核注意力、通道注意力和空间注意力的局部特征图,所有经过MAAM模块的特征图尺寸不变。然后对3个分支得到的15个特征图分别进行最大池化和降维处理,得到15个265维特征向量。

在训练阶段,将所有降至256维的特征分别送入全连接层后使用标签平滑的交叉熵损失进行分类学习,对全局分支和分支1得到的256维特征使用三元组损失进行度量学习。在测试阶段,将所有降至256维的特征连接起来作为最终特征,从而充分结合全局和局部信息来获得最强大的识别能力。

2.2 阶梯型分支注意力模块

特征空间分割是一种比较有效的局部特征提取方法,但现如今许多特征空间分割的方法都是水平均匀分块,这种方式能够学习到人体不同区域的差异,但块与块之间的边缘信息容易被忽略。如图2所示,对于尺寸调整后的原始行人图像,若是把它划分成左侧图中的4个水平块,第1块和第2块会将该行人衣服上的白色标志分离,同时第2块和第3块会将红色斜跨包分成两部分。这样则会忽略以及破坏块与块边缘的重要信息,导致在对每一块进行单独分类时达不到最终期待的效果。于是本文提出了一种按特定数量以阶梯型选取图像块从而得到多个分支的方法。对于分支2首先将原始完整行人图像均匀分成8个水平块,最初以第1块为起始块,每4块为一个整体作为一个局部区域,随后以步长为1往下更改起始块进行阶梯型分块,最终得到5个局部分区。可以看到,局部分区(a)和(b)中都包含有衣服上完整的白色标志,局部分区(b)和(c)中都包含有完整的斜挎包信息。该方法更注重图像水平块间的内在联系,能够避免特征学习过程中某些重要信息的丢失。

图2 阶梯型分块方式

2.3 多尺度自适应注意力模块

注意力机制类似于人类观察物体时将视线聚焦于重要区域,其目标是增强模型对图像重要区域的关注从而获得更有区分力的特征信息。本文结合了SKNet[13]自适应感受野大小和CBAM[14]多注意力融合的思想,在网络最后一个卷积层和池化层间引入多尺度自适应注意力模块(MAAM)。

2.4 损失函数

行人重识别网络使用的损失函数一般分为分类损失和度量损失两类。本文使用标签平滑[15]的交叉熵损失对全局和局部特征进行分类,同时使用难样本采样三元组损失[16]对全局特征实现度量学习,选择更难的样本去训练网络能提高网络的泛化能力,根据全局特征和局部特征的差异性联合使用两种损失能够获得更优的性能[8]。将行人图像输入到网络后,负交叉熵损失公式可表示为

3 实验结果与分析

3.1 数据集和评价指标

为了验证本文方法的有效性,在Market-1501[17],DukeMTMC-reID[18]和CUHK03[19]3个数据集上进行了验证。本文使用平均精度均值(mean Average Precision, mAP)和累计匹配特征曲线(Cumulative Match Characteristic, CMC)两种评价指标来评价算法的性能。

3.2 实验环境及参数设置

本文实验在配有硬件Intel(R) Xeon(R) W-2155 CPU@3.30GHz和NVIDIA RTX 2080Ti GPU,操作系统为Ubuntu 19.10的设备上进行,并基于python 3.7.5编程语言和Pytorch 1.3.0深度学习框架来完成算法实现。实验数据集调整图像大小为384×128,采用随机翻转、随机裁剪和随机擦除的数据增强方法。训练批次大小为N=P×K,其中P为每批次中行人的个数,K为每批次中每个行人的图像数量。设置P为8,K为4,批次大小为32。在训练过程中使用Adam优化器来优化网络参数,选择Warmup预热学习率策略,设置初始学习率为0.0004,权重衰减系数为0.0005,网络迭代次数为400次,且分别在第220次迭代和第320次迭代将学习率降为之前的0.1。

3.3 分块策略的有效性

在SBAM模块中,我们将行人图像均匀分成M个水平块,最初以第1块为起始块,每N块为一个整体作为一个局部区域,起始块位置以步长为1向下移动进行阶梯型分块。为了确定M和N的取值,从SLANet网络中删去分支3并移除MAAM模块,在分支2单分支中以控制变量法进行分块实验。由于输入SBAM模块的特征图大小为24×8,为了方便实验,分别以4, 3, 2的高度划分水平块,则对应的总块数分别为6 块、8 块和1 2 块。图3给出了在3种分块数量下组成局部区域的块数取不同值时的实验结果,该实验在Market-1501数据集上进行。从实验数据可以看出,当分块数分别为6块、8块和12块时,组成局部区域的每组块数分别为2,3,4时性能较优。且这3种块数分组方式都比每组块数为1时效果好,验证了该方案下的阶梯型分块相比以往普通的分块方式的有效性。

图3 不同分块方式的对比结果

文献[8]提出了一种多粒度的特征学习策略。在这里,我们将完整图像作为1级粒度,将尺寸水平裁剪成原来的1/2和1/3的图像分别作为2级粒度和3级粒度。对于输入SBAM模块的大小为24×8的特征图,粒度等级为2的情况有:(1)将其划分成6个水平块,每3个水平块为一组;(2)将其划分成8个水平块,每4个水平块为一组;(3)将其划分成12个水平块,每6个水平块为一组。粒度等级为3的情况有:(1)将其划分成6个水平块,每2个水平块为一组;(2)将其划分成12个水平块,每4个水平块为一组。同时将划分成8个水平块,每3个水平块为一组得到的9×8的局部区域近似为粒度等级3。最后将全局特征和这两种粒度作为多分支的方式进行组合实验,从表1展示的结果可以看出,8_4 + 12_4分块方式的性能效果最优,mAP和Rank-1分别达到了87.7%和95.3%。表2展示了单独送入SBAM模块的局部分支个数对行人重识别任务性能的影响。2个局部分支的效果要比只有全局分支和1个局部分支的效果都要好,表示在一定程度上多粒度局部特征方法能够提升行人重识别任务性能。但当局部分支个数增加为3个时,不仅计算复杂度增大,效果也没有明显增强。这是因为前两个分支间的相互作用已经对行人图像达到了一个比较好的局部特征判别能力,并且在分支数过多时,会存在较多的不交叉重叠区域,这些区域单独计算损失,完成这些额外任务在降低速度的同时对性能不会有显著提升。

表1 多粒度分块方法比较(%)

表2 阶梯型多分支的有效性(%)

3.4 联合训练的有效性

表3展示了是否使用两个模块联合训练的性能效果对比,该实验在Market-1501数据集上进行。其中baseline是只使用一个全局分支的情况,在此基础上增加SBAM模块可以明显提高判别性能,mAP和Rank-1分别提升了10.4%和4.8%。将每一个局部区域单独送入到MAAM模块后,mAP和Rank-1分别继续提升了0.4%和0.3%,MAAM模块只是对每个局部特征进行处理,通过对其融合多类注意力机制来辅助完成局部区域的识别,因此相对提升幅度不大。实验证明本文提出的模块在行人重识别任务上能获得优异的性能。

表3 联合训练的有效性(%)

3.5 与现有方法的比较

为了进一步说明本文模型的有效性,将其与多种主流行人重识别算法相比,实验数据如表4、表5和表6所示。从表中数据可以看出,本文提出的方法在Market-1501数据集上的mAP和Rank-1分别为88.1%和95.6%,在DukeMTMC-reID数据集上的mAP和Rank-1分别为80.0%和88.6%。在DukeMTMC-reID上的相对效果较低,主要因为该数据集中不同行人之间的相似性很高且同一行人会存在遮挡、行人重叠等情况,挑战难度较大。同时在CUHK03-Labeled数据集上的mAP和Rank-1分别为78.4%和80.7%,在CUHK03-Detected数据集上的mAP和Rank-1分别为75.2%和78.6%,后者使用DPM自动检测标注方法,存在更多遮挡、错位和人体部分缺失等问题从而更接近实际情况。另外在Market-1501数据集上使用重排序[24]后,本文方法的mAP可以达到94.6%,Rank-1可以达到96.5%。本文方法在3个数据集上的mAP和Rank-1相比于其他方法均有明显提升,表明本文方法对行人重识别任务的性能提升是有效的。

表4 在Market-1501数据集上的性能比较(%)

表5 在DukeMTMC-reID数据集上的性能比较(%)

表6 在CUHK03数据集上的性能比较(%)

图4展示了本文方法SLANet在Market-1501数据集上得到的MAAM模块后输出特征的可视化结果,该可视化结果展示了模型对相关区域的关注程度。从图中可以看出相比CBAM注意力模块,SBAM和MAAM模块的联合更加强调了局部区域的局部注意力,能够带来优秀的行人重识别能力。

图4 可视化结果

4 结束语

对于行人重识别网络模型,本文提出了有效的阶梯型局部分支注意力模块和多尺度自适应注意力模块。阶梯型分支注意力模块以阶梯型划分图像区域从而加强局部特征之间的联系,同时以分支注意力的方式使网络关注更重要的分支从而能提高行人重识别的准确度。多尺度自适应注意力模块对输入特征进行自适应感受野大小的处理,并对特征融入通道注意力和空间注意力,使网络提取的局部特征更具有鲁棒性。同时设计了合理的多分支网络结构,使用多粒度的方法将全局特征和局部特征进行融合,得到更具判别能力的融合特征表示。实验结果表明本文算法在3大主流数据集上均取得了较好的效果。如何高效地提取更有效的局部特征表示并寻求准确率和时间开销的平衡仍然是今后需要重点研究探讨的。

猜你喜欢

分块集上阶梯
面向量化分块压缩感知的区域层次化预测编码
阶梯
钢结构工程分块滑移安装施工方法探讨
GCD封闭集上的幂矩阵行列式间的整除性
关于4×4分块矩阵的逆矩阵*
基于互信息的多级特征选择算法
懒交互模式下散乱不规则分块引导的目标跟踪*
良师·阶梯·加油站
艺术创意阶梯
师如明灯,清凉温润