APP下载

异构分支关联特征融合的行人重识别

2022-11-15璠,彭

计算机与生活 2022年11期
关键词:特征向量条纹分支

陈 璠,彭 力

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

行人重识别(person re-identification,Person Re-ID)是计算机视觉中的一项重要任务,其目的是从多台摄像机捕捉的一组行人图像中检索出一个特定的人。

早期的Person Re-ID 技术对整幅图像提取全局特征进行图像检索,但是由于真实场景下的行人图像存在光照差异大、拍摄视角不统一、物体遮挡等问题,从图像整体提取的全局特征易受无关因素的干扰,识别精度不高[1]。基于局部特征的方法因此被提出,通过挖掘人体部位[2-5]、行人姿态[6-9]等关键信息,可加强模型对人体关键区域的学习,降低无关因素的干扰。

基于特征空间分割的方法在空间尺度上将特征划分为多个局部显著性区域,让模型在训练过程中学习不同区域的差异性,并强制每个区域满足独立的ID 预测损失。Zheng 等人通过将卷积网络输出的特征图均分为6块,考虑了全局特征和局部特征之间的渐变关系,金字塔模型包括6 层共计21 块不同尺度区域,再将最后一层的特征串联起来以使模型能够提取到具有较强上下文联系的特征[4]。PAR(partaligned representations)模型将人体分割成若干个可区分的区域,再将每个区域的特征向量连接起来,得到最终的特征向量表示[5]。上述基于空间分割的方法能够简单直观地细化特征,加强特征的鲁棒性。另外,该方法考虑到图像间行人粗糙的几何对应关系,将所有局部特征以特定顺序进行连接以得到行人的结构化特征。虽然此类方法在一定程度上能够解决几何变化和遮挡等问题,但没有顾及身体局部区域之间的关系,可能降低具有相似属性的不同行人在对应部位的区分度。

为了进一步提升采用特征空间分割方法的模型的重识别性能,有研究者构建具有多个分支的网络模型,例如全局特征分支和局部特征分支。Yao等人提出的零件损失网络(part loss networks,PL-Net)通过引入零件损失自动检测人体部位,并计算每个零件的分类损失,以影响全局分支的特征表达[10]。Wang等人设计了一种整合全局特征和局部特征的多粒度模型(multiple granularity network,MGN),包括一个全局分支和两个局部分支,MGN 通过将特征图划分成多个条纹特征图,并且改变不同分支的条纹数量来获得多粒度局部特征表示[3]。对于采用多个分支的模型,全局特征增强了模型对背景信息的学习,而局部特征可融合人体关键特征。但这些模型的每个分支均使用同构特征,即这些特征均复制自全局分支的高层,使模型缺乏结构多样的差异特征。

针对上述问题,本文提出一种异构分支关联特征融合的行人重识别算法。将OSNet(omni-scale network)与注意力机制相结合作为主干共享卷积网络,以学习到具有更强显著性和区分性的行人关键特征;将分支网络输出的行人特征进行水平均等分割,再提取关联条纹特征,从而全面利用位于条纹间的综合信息;设计异构特征提取模块,以增加模型学习差异特征所需的结构多样性。

1 异构分支关联特征融合的行人重识别

1.1 网络结构

本文所提模型结构如图1 所示,包括3 个分支,分别为全局分支(v1)、条纹特征关联分支(v2)和异构特征提取分支(v3),图中D表示特征向量的维数。骨架网络选用的是OSNet[11],由5个卷积块Convi组成,其中i=1,2,3,4,5。OSNet 是支持全尺度特征学习的轻量级网络,保证较高的特征提取效率,并且能够有效地捕获不同感受野范围下的尺度特征。为了学习图像中更值得关注的关键信息,在OSNet 的Conv2和Conv3层分别添加空间注意力模块(spatial attention module,SAM)和通道注意力模块(channel attention module,CAM)。全局分支由OSNet的Conv5组成,且仅使用全局最大值池化(global max pooling,GMP),GMP 可以促使网络识别相对较弱的显著特征,以保证全局分支与其他分支之间的功能多样性。条纹特征关联分支通过条纹特征关联模块将不同的条纹特征进行关联计算,以加强条纹间信息的相关性,进而最优地学习并整合局部特征信息。异构特征提取分支将OSNet 的Conv5替换为网络Res-Net50 的Conv2、Conv3和Conv4,以学习更具结构多样性的特征。共享卷积网络输出的特征图经过全局分支,获得1 个512D 的特征向量g1;经过条纹特征关联分支和平均池化(average pooling,AP),获得8个256D的关联特征向量fi(i=1,2,…,8),再串联为特征向量g2;经过异构特征提取分支和降维操作,获得1个512D的特征向量g3。

训练阶段,对3个特征向量gj(j=1,2,3)分别使用ID 预测损失函数、中心损失函数和三元组损失函数进行监督优化。测试阶段,将特征向量gj(j=1,2,3)串联为特征描述符G,并使用特征描述符G进行相似性判断。

1.2 注意力模块

在深度学习领域中,注意力机制的使用普遍且广泛[12-15],类似于人类观察物体时将视线聚焦于小部分重要区域,它可以帮助卷积神经网络(convolutional neural networks,CNN)将关注的重点放在目标的细节信息并抑制无用信息,寻找对特征图影响较大的区域,增强模型对重要局部区域的关注度[1],进而使CNN 网络对信息进行快速筛选,从中总结出高价值信息,提高信息处理与提取的效率和准确度。卷积网络中低层网络提取到的更多是图像中的细节特征,如行人的边缘轮廓特征,高层网络提取的是全局的语义信息。由于低层特征图对高层特征图的生成至关重要,后者依赖于前者,只有低层网络的卷积核提取到行人更多的边缘特征,高层网络才能将该行人进行最佳的抽象映射。

本文在骨架网络OSNet中加入注意力模块SAM和CAM。SAM 可以突出卷积网络的有效部分并抑制像素级背景杂波的干扰,在空间域中捕获并聚合语义相关的像素点。如图2所示,为了降低计算复杂度,本文使用1×1 的卷积核,将输入图像的通道数由c减少至c/r。但单独使用SAM 的模型会过度集中于图像前景,而忽视低相关特征,因此加入CAM 模块。CAM旨在将每个通道的权重压缩到一个特征向量中[16],并将具有相同语义信息的通道进行组合,最后与原始特征融合使模型能够学习关键通道的特征,如图3 所示。首先在式(1)中用全局平均池化对每个通道中的特征值相加后平均,以将每个通道的特征压缩到一个1×1 的二维矩阵中,最终特征通道上所响应的全局分布均由二维矩阵z表征。

图2 SAM模块Fig.2 Structure of SAM

图3 CAM模块Fig.3 Structure of CAM

式中,uc、zc分别表示输入特征u和输出特征z的第c个通道,H、W分别表示输入特征u的高和宽。

然后根据式(2),使用激活函数ReLU和Sigmoid激励通道特征图。特征图先经过两层全连接层,之后利用激活函数强化通道特征的非线性响应,从而得到最终的通道注意力图s。

式中,δ表示激活函数ReLU,σ表示激活函数Sigmoid,W1和W2分别为两层全连接层的权重矩阵,s为输出的特征注意力图。

最后利用式(3)融合原始特征u与通道注意力图s,从而重新分配原始特征图中的各个通道的权重。

1.3 条纹特征关联模块

局部特征的使用降低了数据集中行人样本复杂化的影响,且这些关键的局部特征更具代表性,更有助于网络模型区分不同的行人。

本文算法根据人体的结构特征,将分支网络v2输出的特征图进行水平均等分割,由于分割后的条纹相互独立,且每个条纹仅包含自身的信息,当每个条纹不与其余条纹进行通信时,如果直接将这些局部特征单独用于行人检索,会混淆具有相似属性的不同行人在相应部位的区分度。因此提出条纹特征关联模块,该模块解释了行人身体各个部位与其他部位之间的关系,使每个条纹特征都包含了对应部位本身和其他部位的综合信息,从而更具鉴别力。如图1所示,条纹特征关联模块接收来自所在网络分支提取的特征图,将最后一个卷积块Conv5的输出特征图在竖直方向上水平分割为均等的8块,通过条纹间的关联计算依次将每个条纹与其他条纹进行通信,从而获得8 个关联条纹特征向量,并将平均值池化(AP)作用在所得的关联条纹特征上。

如图4 所示,首先选中其中一个条纹特征向量fi(i=1,2,…,8),尺寸为1×1×C,将平均池化AP作用于其余7 个条纹特征向量fj(j≠i),以获取包含其余条纹综合信息的向量gl(l=j)。然后将1×1 的卷积层用于向量fi和gl,以减小通道数至c,并产生尺寸为1×1×c的向量。条纹特征关联模块连接特征,并且为每个fi输出一个关联特征向量qi。此时每个特征qi(i=1,2,…,8)均包含了行人的全部信息。关联计算过程为:

图4 条纹特征关联模块Fig.4 Stripe feature correlation module

其中,i=1,2,…,8 且j≠i,l≠i。Bp是一个子网络,包含1×1的卷积层、BN层和ReLU层;C表示特征的串联。能够使局部的条纹特征对遮挡与几何变化更具辨别性和鲁棒性。特征关联模块通过线性方式计算特征qi,计算成本低的同时保持了特征表示的紧凑性。

1.4 异构特征提取模块

在行人重识别任务中,结合全局特征和局部特征的多分支网络可以同时关注行人的轮廓信息和细节信息,但目前很多网络的不同分支使用的均是同构特征,致使模型缺乏结构多样的差异特征。

针对上述问题,本文通过增加异构特征提取分支,增强网络模型学习差异特征的能力,同时使其更具有判别力。具体为:异构特征提取分支将OSNet的Conv5替换为ResNet50[17]的Conv2,3,4,如图5(a)所示,ResNet50 的每个卷积块Conv 均由不同数量的卷积和恒等连接的残差块构成,残差块使用3 个卷积层(1×1,3×3,1×1)堆叠而成,其中两个1×1 的卷积负责调整维数,3×3 的卷积对图像进行下采样。通过对残差块中卷积参数的设置,使残差块的输入和输出特征图尺寸一致,从而进行线性操作,保证将网络深层的梯度值有效地传递至网络浅层,以避免深度网络的退化和梯度弥散问题。对于输入张量X∈RH×W×C,经残差块后对应的输出Y为:

图5 异构特征提取模块Fig.5 Structure of heterogeneous feature extraction module

异构特征提取分支v3的特征提取过程如图5(b)所示,v3 分支接收来自OSNet 骨架网络输出的特征图,并将其送入ResNet50 网络的Conv2,3,4层,再经过全局最大池化GMP 和全局平均池化(global average pooling,GAP)后得到一个2 048D的特征向量。为了提高计算效率,使用1×1 的卷积将得到的特征向量降维至512D。对于输入张量X∈RH×W×C,经v3 后对应的输出Fo为:

其中,Fres1、Fres2、Fres3分别为ResNet50 中Conv2,3,4层的网络表示;Wres1、Wres2、Wres3分别为每层网络对应的权重;YR1、YR2、YRo分别为ResNet50中Conv2,3,4层的输出;Gm表示全局最大值池化GMP;Ga表示全局平均值池化GAP;C1×1表示1×1卷积操作。

1.5 损失函数

联合多种损失函数,可以帮助网络模型学习到区分度更高、鲁棒性更强的行人特征。在训练阶段,组合三种不同的损失函数,包括ID 预测损失(softmax loss)、中心损失(center loss)[18]以及三元组损失(triplet loss)[19]。通过最小化组合后的损失函数来优化网络模型,总损失函数为:

其中,Ls-id为单一ID损失,α、β分别是中心损失和三元组损失所占的权重。

在基于特征空间分割的行人重识别研究中,大多数方法采用多重ID 损失函数对行人身份进行预测。如图6 所示,输入的行人图像通过骨架网络进行特征提取得到张量T,在特征空间中T被均匀划分为n条水平条纹,再经过平均值池化和降维等操作生成n个特征向量gi(i=1,2,…,n),最后使用n个分类器以产生n个ID 预测损失值。多重损失函数Lm-id为:

通过多重ID损失函数来监督每个条纹特征向量gi(i=1,2,…,n),模型可以将局部区域的特征学习到最优以区分不同的人。然而如图6所示,许多条纹特征可能无法捕捉到不同行人的具有明显区分性的信息,因此降低对行人整体的预测准确率。

图6 单一ID损失与多重ID损失Fig.6 Single ID loss vs multiple ID loss

为了更高效地利用模型学习到的局部显著性区域的判别特征,本文将n个条纹特征向量串联成一个列向量g用于产生单一的ID 预测损失值。单一ID损失函数Ls-id为:

其中,W是特征向量g对应分类器的权重矩阵,Wj和是权重矩阵W的第j列和第yi列,Ns为样本数目。

由于向量g包含输入图像中行人的完整信息,使用单一ID损失函数可以驱动g学习并整合局部显著性区域中足够多的判别信息。

2 实验结果与分析

2.1 实验配置与数据集

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

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

训练阶段,输入图像的分辨率大小调整为256×128,batchsize选择为64,包括16个不同行人且每人4张图像。通过随机水平翻转、随机擦除和归一化策略进行数据增强。骨架网络OSNet通过ImageNet数据集预先训练的模型参数进行初始化。max_epoch(训练总轮数)设置为150。使用Adam 优化本文模型,基础学习速率初始化为3.5E-5。使用warmup策略预热学习率激活网络[22],初始学习率为0.000 3,为了保持损失的稳定下降,分别在epoch=60 和epoch=90 两个阶段设置学习率衰减点以实现指数衰减,衰减系数为gamma=0.1。

2.2 多分支联合学习实验结果

为了测试多分支联合学习的有效性,本文分别在Market-1501 数据集和DukeMTMC-reID 数据集上进行了实验验证,结果分别如表1和表2所示。

表1 Market-1501数据集上不同分支的实验结果Table 1 Experimental results with different branches on Market-1501 dataset 单位:%

表2 DukeMTMC-reID数据集上不同分支的实验结果Table 2 Experimental results with different branches on DukeMTMC-reID dataset 单位:%

对于Market-1501 数据集,对比两分支联合学习的模型,三分支联合学习模型的rank-1精度分别提高2.3个百分点和1.1个百分点,mAP分别提高了1.8个百分点和0.6 个百分点。其中,两分支(v1+v2)联合学习的模型在加入异构特征提取模块后,模型的rank-1 精度提高了2.3 个百分点,mAP 提高了1.8 个百分点。本文所提三分支模型相对全局单分支模型在rank-1精度上提升了3.3个百分点,在mAP上提升了3.6个百分点。

对于DukeMTMC-reID数据集,本文所提三分支模型对比两分支联合学习的模型,rank-1精度分别提升了1.9 个百分点和1.8 个百分点,mAP 分别提升了2.9 个百分点和2.1 个百分点。其中,两分支(v1+v2)联合学习的模型在加入异构特征提取模块后,模型的rank-1 精度提高了1.9 个百分点,mAP 提高了2.9个百分点。相对全局单分支在rank-1 精度上提升了3.2个百分点,在mAP上提升了4.7个百分点。

结果表明,多分支联合学习可以使模型学习到鲁棒性更强的特征,异构特征提取模块对于提取更加多样化的特征效果明显。

2.3 注意力机制的影响

本文将主流的注意力模块添加到共享卷积网络中,以使模型更专注于显著性较强的特征,实验结果如表3和表4所示。从表中数据可以得出,注意力模块对模型性能的提升做出了贡献,在Market-1501 数据集上rank-1精度提高了0.6个百分点,mAP提高了0.5个百分点;在DukeMTMC-reID数据集上rank-1精度提高了0.7个百分点,mAP提高了0.3个百分点。

表3 Market-1501数据集上注意力机制的实验结果Table 3 Experimental results of attention modules on Market-1501 dataset 单位:%

表4 DukeMTMC-reID数据集上注意力机制的实验结果Table 4 Experimental results of attention modules on DukeMTMC-reID dataset 单位:%

2.4 不同种类ID损失函数下的实验结果

与PCB(part-based Conv baseline)[2]及其变体采用多重ID 损失不同的是,本文通过将多个关联条纹特征向量串联为一个新的特征向量,并用单一ID 损失函数进行监督优化。多重ID损失的利用使模型中ID 损失的数量等于分割条纹的数量,好处在于可能迫使每个条纹特征向量使用带有身份标签的数据集在每个指定的局部区域学习特征,但缺点在于某些条纹特征向量可能无法产生可靠的ID预测。

以Market-1501数据集上三分支联合学习模型为例,如表5所示,单一ID损失下的模型相比多重ID损失下的模型在rank-1 精度上提升了1.9 个百分点,在mAP 上提升了3.6 个百分点。同理在DukeMTMCreID数据集上,如表6所示,单一ID损失下的模型相比多重ID 损失下的模型在rank-1 精度上提升了1.8个百分点,在mAP上提升了3.8个百分点。实验结果表明,单一ID损失函数在本文所提模型中的表现更好。

表5 Market-1501数据集上不同损失函数实验结果Table 5 Experimental results with different losses on Market-1501 dataset 单位:%

表6 DukeMTMC-reID数据集上不同损失函数实验结果Table 6 Experimental results with different losses on DukeMTMC-reID dataset 单位:%

2.5 与现有方法的比较

表7和表8所示为本文网络模型与其他一些网络模型的性能比较,包括MGN[3]、OSNet[11]、SONA(secondorder non-local attention networks)[23]、Auto-ReID[24]、Bag Of Tricks[25]、St-ReID(spatial temporal ReID)[26]、MHN(mixed high-order attention network)[27]、CAMA(class activation maps augmentation network)[28]和IAN(interaction and aggregation network)[29]。所有结果中St-ReID 模型表现最好,但是该算法需要获取行人图像的时间和空间信息,而行人数据集包含的时空信息量巨大,训练过程占用较多的资源且花费时间较长,使得计算效率较低。本文方法在两个公开数据集上展示了较强的鲁棒性和判别力。在Market-1501数据集上得到的rank-1 精度和mAP 分别为96.7%和89.5%;在DukeMTMC-reID 数据集上得到的rank-1精度和mAP分别为91.7%和81.6%,显著优于其他方法。结果表明,本文构建的模型不仅继承了OSNet的轻量级特性,而且显著提升了重识别的精度。图7展示了本文方法在Market-1501测试集上的部分测试结果,并与OSNet 模型的测试结果进行了比较,实验结果表明本文模型具有较好的特征映射性能。

表7 在Market-1501数据集上与主流算法的比较Table 7 Comparison with mainstream algorithms on Market-1501 dataset 单位:%

表8 在DukeMTMC-reID数据集上与主流算法的比较Table 8 Comparison with mainstream algorithms on DukeMTMC-reID dataset 单位:%

3 结束语

本文提出了一种基于异构分支关联特征融合的行人重识别算法。使用条纹特征关联模块,综合了位于条纹间的关联信息;加入异构特征提取分支,增加了网络模型学习差异特征所需的结构多样性;结合注意力机制,使网络模型学习显著性和区分性更强的行人关键特征;采用单一ID 损失函数对条纹特征关联模块进行监督,避免特征的错误学习,并提高预测的可靠性。本文将该算法分别在Market-1501和DukeMTMC-reID 数据集上进行有效性实验验证。实验结果表明,该算法能够有效提高行人重识别的准确度。

实验过程中,全局分支对整幅图像提取特征时会受到复杂背景的影响以及前景遮挡的干扰。在今后的研究过程中,将考虑结合人体骨骼姿态图以进一步提升模型的行人重识别能力。

猜你喜欢

特征向量条纹分支
二年制职教本科线性代数课程的几何化教学设计——以特征值和特征向量为例
克罗内克积的特征向量
一类离散时间反馈控制系统Hopf分支研究
软件多分支开发代码漏合问题及解决途径①
谁是穷横条纹衣服的人
巧分支与枝
三个高阶微分方程的解法研究
条纹回归
春日条纹变奏曲
条纹,条纹,发现啦