冯 欣,李永波,杨 武
(重庆理工大大学 计算机科学与工程学院, 重庆 400054)
行人重识别(person re-identification)是一项基础但重要的图像识别技术,通过在大量候选行人图像中找到与查询目标图像最为接近的目标来实现跨摄像头等场景的目标重识别任务[1],该技术广泛应用于目标跟踪,行为分析等领域。与人脸识别任务[2]类似,行人重识别旨在提取行人目标在不同视角、不同时间以及不同背景情况下的目标的区别性特征嵌入表达(embedding),并利用度量函数衡量查询图像与候选目标图像之间特征嵌入的相似性。由于行人目标图像在跨摄像头场景下呈现出的各方面差异,行人重识别任务面临更大的挑战,如图1所示,目标由跨摄像头造成的在不同视角下的特征差异、背景差异、目标遮挡情况和行人姿态多样等,都是行人重识别算法需要考虑的重要因素。
传统的行人重识别方法主要采用人工设计的颜色或者梯度等可理解特征来对目标图像进行特征表示。文献[3]利用特定局部二值表示法(LBP)提取特征并进行直方图统计,该直方图被证明是一种非常强大的纹理表示。文献[4]提出了一种尺度不变特征(SIFT)并且被广泛应用于图像识别领域,如图像检索、图像拼接等任务。文献[5]提出了一种用于表示局部梯度(HOG)统计表示的特征。然而单一统计特征无法应用于行人重识别这样的复杂图像任务当中,该任务往往涉及环境理解、尺度变换、图像数据质量不一致等困难。研究人员往往需要融合多种底层局部特征与全局特征来对目标图像进行表征,并利用各种强大的分类器去学习最佳分类权重。文献[6]采用传统特征提取算子提取行人特征并进行目标跟踪任务,以获取行人运动方向。该方法算力要求低,但是特征稳定性不够,跟踪准确度相对不足。
图1 行人重识别任务挑战示例
近年来,为了生成用于区分行人的特征向量,有研究人员仅使用ResNet[7]作为训练行人重识别的基准网络,并使用softmax及triplet等损失函数在Market1501等数据集上训练,得到了很好的准确度。文献[8]基于卷积层权重的相关性假设,认为数据分布的不确定性会造成区分性特征的冗余,削弱了可区分性特征,提出了通过对神经网络权重施加正交约束和奇异值分解的方法来对网络权重进行去相关迭代训练。以此正交化权重学习以提升特征的可区分性。文献[9]认为行人重识别的遮挡,姿态变化问题抑制了某些关键信息的学习,提出了批量块丢弃模块,该模块随机丢弃特征图某位置的子块来去除部分信息。通过基分支及批量丢弃分支的特征图拼接表征图像特征来训练网络,加强关键特征的学习。文献[10]在强基准网络ResNet上对图像特征的提取分块进行,期望从局部特征的角度来改进行人重识别任务。针对行人重识别任务提出基于块的卷积神经网络,加强图像特征的分块专注学习,分块精炼池化用于针对不同图像调整解决特征分块边界与语义块边界不一致的问题,进一步提升了行人重识别网络的性能。文献[11]利用行人重识别任务进行目标跟踪,得益于行人重识别框架及注意力机制特征提取的稳定性,在公开数据集MOT16上取得非常不错的效果。
现有的行人重识别工作都围绕数据增强及普通的位置、通道注意力开展可区分性特征的提取研究,却忽略了通道结构之间的关系信息对于结构特征的学习提升潜力。本文提出结构增强可堆叠注意力模块(structure-enhanced stackable module,SES)。该模块能通过局部信息感受全局结构信息来帮助神经网络建立目标结构特征之间的联系,并强化结构信息,以此提炼更加具有区分性的目标结构特征。SES模块通过对通道结构信息的请求向量与响应向量的交互建模来挖掘关系结构信息,再将结构信息与自身代表向量进行交互加强计算来强化结构表征特征。最后对结构表征特征进行结构分离卷积来获得结构加强因子,对原始特征进行加强,结构特征有了更大的影响域,能抑制非结构化的噪音,从而学习具备结构加强信息的可区分性特征。本文通过大量消融实验验证了SES模块寻找可区分性特征的有效性,并且通过对比实验展现了SES模块加强的行人重识别网络在Market1501[12],CUHK03[13]数据集上具有竞争力的表现。
为了提取更具区分性的特征用于表征行人,本文设计了一种利用目标结构关系的结构增强可堆叠注意力模块能在不同层级的特征图中学习全局结构信息用于加强行人表征向量,该模块可轻易堆叠到任何网络的特征图之后用于增强该特征图的特征表达。结构增强可堆叠注意力模块主要由结构增强向量学习模块及结构分离卷积模块组成。其中,结构增强向量学习模块用于学习包含结构注意力的嵌入向量,而结构分离卷积模块用于学习不同结构所得到的结构注意力嵌入向量的特定映射。
强基线网络ResNet50具有很好的特征提取能力,在行人重识别任务中表现优异[10]。本文在ResNet50的基础上进行结构增强可堆叠注意力模块的研究。ResNet50可分为5个子模块,由第一个低级特征学习模块及后4个残差堆叠模块构成。后4个残差堆叠模块逐级对特征进行卷积计算,提取不同层级的语义特征用于具体图像处理任务。分别对ResNet残差堆叠模块添加SES模块来强化各层级特征,以通过结构增强因子提升网络学习可区分性特征的能力。整体网络结构(SESNet)如图2所示,行人图像经过SES模块强化的ResNet主干网络,得到1 024×16×8的特征图,再经过平均池化得到1 024维特征向量用于表征行人,最后通过该向量与其他行人表征向量计算度量距离。
图2 SESNet整体网络结构
卷积神经网络能够通过卷积核与特征图的卷积计算学习不同层级的结构特征构成特征图通道,不同的通道表示不同的结构特征信息。文献[14]通过神经网络特征图的可视化技术,观察原图像素在不同层级特征的影响度。低层模块经历的卷积计算较少,负责学习低等级的语义结构信息,如颜色、纹路、简单形状信息,不能去除低等级的图像噪音。高层模块通过卷积计算的堆叠,从低等级特征提取更高等级特征,可得到更加丰富的语义结构信息,比如不同姿态的手、腿等信息。高等级信息还能抑制低等级的环境信息及噪音。以往行人重识别研究多通过实验研究不同的网络结构所带来的高等级信息学习能力,来学习强大的行人表征向量,却极少关注不同层级结构特征之间的交互关系对最终表征向量学习的影响。本文通过结构增强可堆叠模块来加强ResNet50对不同层级的结构特征的学习能力,该模块由结构增强向量学习模块及结构分离卷积模块组成,如图3所示。
结构增强向量学习模块的输入为ResNet某层级的特征图X∈RC×H×W,该特征图的各个通道学习到了特定的图像结构信息,通过建立不同通道之间的交互联系来增强网络对行人图像结构关系的挖掘,以强化网络对可区分性特征的学习能力。X经过元素重排(reshape)操作得到X∈RC×(H×W)×1的特征图Xinput。Xinput经过3次输入维度为H×W、输出维度分别为C1、C1、C2的1×1卷积、批量标准化(batch normalization)及ReLU激活函数,进一步得到请求(query)张量Q∈RC×C1×1、响应(response)张量R∈RC×C1×1和表征自身信息的嵌入(embedding)张量E∈RC×C2×1。请求张量Q为
Q=ReLU(BN(WconvXinput))
(1)
响应张量R和嵌入张量E可由式(1)类似计算得出。表征某种结构信息的请求向量qi(qi∈Q)分别与所有响应rj(rj∈R)向量做对应元素相乘,再对其进行1×1卷积得到第i个通道的关系响应向量。为了最大化关系信息的挖掘潜力,本文考虑表征结构信息的特定通道与其他通道双向的关系,即将某通道的主动响应向量及其被动响应向量堆叠作为通道i的结构关系表征向量Si,结构关系向量S可由式(2)得。
(2)
式中Φ(qi,rj)=Conv (qi×rj),是qi,rj对应元素相乘,Conv是卷积核为1×1的卷积计算。此时,S是C×(2C)×1维度的张量。S再经过输入通道为2×C,输出通道为C2的1×1卷积、批量标准化及ReLU激活函数得到结构向量。结构向量与嵌入向量E做对应元素相乘,得到强化之后的嵌入向量
E′=(ReLU (BN (WconvS)))×E
(3)
卷积神经网络的强大之处在于它能通过卷积核与特征图像素进行乘加运算来提取对应像素的某种语义特征,并且该特征通过神经网络自动学习来适应性调节到最适合的抽象特征提取器。如图4所示,卷积计算通过卷积核逐步依次向右、向下移动扫描提取原图的特征得到新的特征图。该特征图表示与卷积核存在相似结构的强度。当卷积核提取原图左上角的特征时,该位置特征与卷积核形状完全一致,得到最大响应值3;当卷积核提取图像中间特征时,由于存在相似结构,得到响应值2;当卷积核提取图像右下角特征时,只有极少部分特征相似,得到响应值1;其余位置均不存在相似结构,均得到响应值0。可知,卷积计算用于提取图像中的某种共性特征以生成表征更高层级信息的特征图。实际应用中,神经网络会根据样本推理结果与标签的差异度量进行反向传播,进而调节卷积核以使卷积核适应性学习到具体的某种结构信息响应图来完成对图像特征的提取。经过网络的学习、推理之后,卷积神经网络每个通道都存储了图像的某种语义结构信息。
图4 卷积特征提取
由于行人重识别的输入图像都是行人,因此图像语义都有着相似的结构信息。每张图的目标数量、目标形态及背景信息都不一样,目标检测网络每层通道所学习到的结构信息存在结构不一致性,是针对特定图像的不同结构的响应信息。针对行人重识别任务输入的结构一致性,特征图每一层的响应存在相似性,本文认为通道结构信息之间的联系存在结构关系稳定性与关系映射差异性。
结构关系稳定性是指每个通道与其他通道之间的关系在输入不同时也存在结构关系稳定性。关系映射差异性是指每个通道与其他通道的关系嵌入向量在统一性衡量为强化因子时存在映射差异性。卷积计算用于提取特征图的共性特征,然而本文认为结构关系信息衡量存在差异性。基于此,设计结构分离卷积模块对表征各通道特定结构关系信息的强化嵌入向量E′进行分离映射。图5展示了结构分离卷积模块结构。针对C维度的特征图,采用C个卷积核Wi,i∈C去分别学习每个通道的强化嵌入向量到注意力强化因子的映射关系,该映射专属于某通道中结构关系信息强化嵌入向量的专属映射,而不是对强化嵌入向量进行统一性衡量。
(4)
图5 结构分离卷积
尽管行人重识别数据集中行人类别数确定,针对数据集能使用标签平滑交叉熵损失[15]满足训练要求。但行人重识别任务往往针对开放世界的行人检测任务。为此,本文使用标签平滑交叉熵损失(label smoothed cross entropy)联和三元组损失(triplet loss)[16]来训练模型。三元组损失通过最大间隔因子Margin使表征同目标的向量之间的距离更近,表征不同目标的向量之间的距离更远,以此来强化神经网络对区分性特征向量的学习能力。联和损失函数可为:
Lloss=Ltriplet+LLSCE
(5)
Ltriplet=max(d (a,p)-d (a,n)+margin,0)
(6)
(7)
式中,函数d为距离度量函数欧氏距离度量;a、p、n分别为查询、匹配、不匹配图像表征向量;batch为一次训练的批次;class为数据集中包含的行人数;y_pred为网络预测的二维向量;y_predij为第i个样本属于j类的概率;qj为平滑因子;λ为平滑度,取0.1;y_labeli为第i个样本所属类别。
为了在训练初期能够找到合适的搜索空间以保证模型稳定性,在训练初期采用warmup[7]的训练方式。随着批次的增加,学习率逐渐进行指数衰减,衰减速率为每50个对数据集的完整迭代训练衰减为之前的一半。实验设置随机数种子,保证初始化参数一致。实验结果为5次实验取均值所得,尽量排除随机性结果。
为验证重识别模型的鲁棒性,本文在经典行人重识别数据集Market1501[12]和CUHK03[13]上对所提出网络结构的区分性特征学习能力进行验证。上述2个经典数据集都具有不同图像质量的样本,样本中行人姿态多样、背景多样、大小不一,很好地反应了真实世界中行人图像样本的多样性。Matket1501数据集是由清华大学在夏天采集。该数据集拍摄了1 501位行人,每位行人都被不同的摄像头拍摄,总计32 668个检测框将行人框选标识。该数据集训练集包含751位行人共计12 936张图像,测试集包含750位行人共计19 732张图像。CUHK03数据集是由香港中文大学在校园采集。该数据集分为detected、labeled和testsets数据集。其中,detected数据集中的行人框是由检测器检测,labeled数据集中的行人框是由人工标注。实验在labeled数据集(CUHK03L)共计14 096张行人图像上进行,每位行人都由不同摄像头拍摄,训练集包含767位行人共计7 368张图像,测试机包含700位行人共计6 728张图像。图6展示了数据集样例图。表1展示了Market1501及CUHK03L数据集的样本分布。
图6 样例数据
表1 Market1501及CUHK03L数据集
算法在PyTorch(V1.7.0)深度学习框架下实现,操作系统为ubuntu16.04。硬件配置如下:CPU为Intel Core i7-7700 @3.6 GHz×8,GPU为NVIDIA GTX10-80Ti×2,内存32 GB。推理批次为64,迭代次数为500。使用随机梯度下降(SGD)优化算法进行模型训练,基础学习率为0.000 8,并随具体批次执行warmup或者衰减策略进行改变。
实验采用平均精度均值指标mAP(mean average precision)及累计匹配特征指标CMC(cumulative matching characteristics)的rank-1等级对实验结果进行评价。测试时指定测试集内的查询图像与候选图像,对测试集所有样本进行特征提取。将查询图像特征与所有候选图像进行相似度衡量。累计匹配特征rank-n指与查询图像相似度排名前n的图像中有正确样本的准确率。平均精度均值指计算所有样本准确率(precision)-召回率(recall)曲线下代表类别精度均值的面积(average-precision)的均值。准确率(Pre)及召回率(Rec)为
(8)
(9)
式中:TP代表真正样本(TruePosition);FP代表假正样本(FalsePositive);FN代表假负样本(FalseNegative)。
本文方法在Market1501及CUHK03L数据集上进行验证。图7展示了随机样本的rank-5查询结果。蓝色框图代表查询图,红色实线框图代表查询正确的结果,黄色虚线框图代表查询错误的结果。从图中可以看出,SESNet能准确找到与查询图对应的行人样本,尽管图例存在错误匹配样本,但该样本的外观及姿态都与查询图像极为相似,这也从侧面反映了SESNet查找特征的准确性及该任务存在的巨大挑战。
图7 SESNet Top-5查询结果
本文分别对SES模块的2部分子模块进行了消融实验以验证SES模块的有效性,并且对比了强基线(baseline)网络ResNet50构建的特征学习网络的性能表现。实验结果如表2所示,其中,SES-代表无结构分离卷积的SES模块。
表2 SES模块消融实验
由表2可知,当SES模块未采用结构分离卷积时,SES-仍通过结构增强向量模块及普通1×1卷积成功建立了目标结构之间的关系,使得网络学习到了注意力加强因子,准确度得到很大提升。由于SES-没有对不同结构的增强向量进行单独映射,不能最大程度挖掘结构间的关系,因此准确率略逊于SES。对SES-模块采用结构分离卷积,即SES模块,则经过SES模块对行人特征结构的增强,准确率再次得到提升。最终,Baseline在CUHK03L数据集上mAP提升3.5%,rank-1准确率提升4.0%。在Market1501数据集上mAP准确率提升4.5%,rank-1提升2.0%。
表3对比了不同行人重识别方法在Market1501数据集及CUHK03L数据集上的表现。对比基于融合全局特征与局部特征的细粒度特征方法[11,17,21],SESNet通过注意力增强因子加强了用于行人重识别任务的重要特征,从而不再通过其他的分支网络来生成局部特征表示,也不会出现特征不对齐的问题[22]。
表3 SESNet与先前方法在Market1501及CUHK03L的指标
对比其他基于注意力的方法[18-19],SESNet具备更加细粒度的结构关系及不同结构特征之间的特定关系语义。对比采用二进制编码及自蒸馏模型的方法[20],SESNet采用连续的数值编码来学习行人特征的细微差异,更利于对相似行人进行判别。因此,SESNet通过多方面的设计改进,使得网络提取的行人表征特征更具备区分性。
为了进一步验证SESNet的特征提取效果,本文使用Grad-CAM[23]可视化方法增强神经网络的可解释性,对基线网络ResNet及结构增强注意力网络SESNet高层特征图进行了特征可视化。图8展示了ResNet及SESNet对样本特征的感兴趣区域热图(heatmap of interest,HOI)。由图8可见,ResNet感兴趣区域随姿态变化而变化,且难以理解。然而,即使人物呈现不同的姿态,SESNet仍然能稳定注意到区分性部位,且抑制了不相关区域的影响。
图8 ResNet和SESNet对样本特征的感兴趣区域热图
为了使神经网络能学习到更具备区分性的表征向量,提出了结构增强可堆叠注意力模块强化强基线网络ResNet50的特征学习能力。结构增强可堆叠注意力模块通过学习更加细粒度的注意力增强向量强化结构表征向量,并且使用结构分离卷积对不同的增强结构向量进行分离映射,得到结构专属的增强因子增强ResNet50网络学习到的不同等级的特征。通过大量对比实验及神经网络可视化技术,在行人重识别通用数据集CUHK03L及Market1501上对结构增强可堆叠注意力模块的强化特征学习能力进行了验证,在CUHK03L及Market1501数据集上实现了具有竞争力的性能表现。最终在CUHK03L数据集上达到了78.0%的平均精度均值及81.3%的rank-1准确率,在Market1501数据集上实现了88.2%的平均精度均值及96.2%的rank-1准确率。