张子昊,周千里,3,王蓉,*
(1.中国人民公安大学 警务信息工程与网络安全学院,北京 100038;2.安全防范技术与风险评估公安部重点实验室,北京 100038; 3.北京市公安局,北京 100740)
利用视频监控进行案件侦破时,多数场合只能看清行人的身体部分,同时需要进行跨视域的连续跟踪查找,因此行人再识别对于查获犯罪嫌疑人及可疑人员,寻找发现侦查破案所需的线索与信息至关重要。行人再识别核心思想是利用行人的整体特征对没有视野重叠覆盖的跨摄像机行人图像间建立对应关系。
依据提取特征方式不同,行人再识别可分为基于特征表达、基于度量学习以及基于深度学习等方法。基于特征表达的方法主要是通过提取行人图像的颜色、纹理、形状和属性特征来对行人进行再识别,但这些浅层的人工特征易受到行人姿态以及行人图片光照、分辨率的影响。基于度量学习的方法是对特征进行相似度度量,主要依靠的是欧氏距离[1]以及马氏距离[2],然而,由于受行人图像复杂背景的影响,使得基于度量学习在行人匹配上遇到了识别精度不高的瓶颈。基于深度学习的方法将特征表达与度量学习结合在一起,实现了端到端的行人再识别,此类方法通过海量的数据来训练模型,使提取到的行人特征更具泛化性。Yi等[3]利用一个孪生网络[4],将输入图片分割为3个重叠的水平条纹,并使用卷积层分别提取3个条纹的特征,最终融合成为一个特征向量作为输出,然后再进行相似度比较。随着全局特征遇到瓶颈,学者开始将目标转到局部特征。Varior等[5]采用图像切块的方式,将被分割好的若干块图像块按照顺序送到一个LSTM 网络,网络最后输出的全局特征融合了所有图像块的局部特征。为了解决局部特征对齐的问题,Zhang等[6]提出了一种端到端的方法AlignedReID,让网络自动学习人体对齐,在提取局部信息时采用动态匹配的方法选取最短路径从而进行行人对齐。为了解决行人再识别数据不足的问题,Deng等[7]通过引入CycleGAN来实现不同摄像头下图片风格的转化,并将生成的图片用于训练。Luo等[8]在AlignedReID基础上提出了动态匹配局部信息(DMLI)的新方法,即AlignedReID++,该方法可以动态调整局部信息,无需额外的监督。
本文在AlignedReID++基础上,提出了一种改进的行人特征提取方法。该方法通过引入空间注意力机制,利用特征的空间特性动态调整特征表达,使提取到的特征更具有全局性和泛化性。同时,又引入了实例正则化(Instance-Normalization,IN)模块来辅助批正则化(Batch-Normalization,BN)层对特征进行归一化处理,提高网络对颜色、纹理特征变化的鲁棒性。
AlignedReID++算法主要包括特征提取和相似度度量2个部分,如图1所示。在特征提取部分,将256×128大小的行人图片通过ResNet50网络进行特征提取,并对提取到的特征分别输入给全局分支和局部分支。在全局分支中使用全局池化层来进一步提取全局特征。在局部分支中使用水平池化层,将行人图片从水平方向进行划分,并对每一条划分后的图片条纹进行局部特征提取。在相似度度量部分,分别对提取到的局部特征和全局特征进行特征间的距离计算。对于全局分支提取到的全局特征,使用L2距离来计算全局距离,其表达式为
图1 AlignedReID++算法流程图Fig.1 AlignedReID ++algorithm flowchart
式中:fA和fB分别为2幅行人图片的特征向量,通过计算2幅图像特征向量之间的L2距离来计算2幅图像的相似度。对于局部特征部分,采用动态匹配局部特征的方法解决行人图片姿态各异无法对齐的问题,对于一幅行人图像的多个水平局部特征,动态地从上至下匹配局部部分,寻找拥有最短距离的对齐。对于2幅图像的局部特征lA={lA1,lA2,…,lAH}和lB={lB1,lB2,…,lBH},首先使用Element-wise的转化,将距离归一化到[0,1)之间,如下:
式中:di,j为第一张图片第i个数值条与第2张图片的第j个数值条的距离,这些距离组成了距离矩阵D。动态的局部距离则定义为在距离矩阵D中,从(1,1)到(H,H)总距离的最短路径。局部距离动态规划计算过程如下:
式中:Si,j为距离矩阵D从(1,1)到(i,j)的总距离,而SH,H则表示2幅图片最短路径的总距离,其计算公式为
所以,2幅图像之间总的距离可以表示为局部距离与全局距离之和:
式中:dl(A,B)为局部距离;λ为平衡全局距离以及局部距离的权重系数,这里取值为1。训练过程中使用Triplet损失[9]作为度量学习的损失,同时在全局分支中,使用Softmax损失来辅助分类,AlignedreID++的整体损失函数为
通常来说,在AlignedReID++算法中提取到的行人特征是由许多子特征组成,这些子特征以组的形式分布在卷积层中的每一层,而子特征易受背景噪声的干扰,会导致错误的识别和定位。BN层[10]是将一个batch的数据进行归一化,增加了不同特征语义之间的差异性,但是当训练数据集和测试数据集差异较大时,单一的BN层会影响测试的结果。
针对上述问题,本文提出一种改进的行人特征提取方法,其框架如图2所示。图中:x、^x、C、H、W分别为空间注意力模块处理前每一个组的特征向量、经过空间注意力模块处理后的每一个组的特征向量、特征图的通道数量、特征图的高度以及特征图的宽度;g为经过全局平均池化(Global Average Pooling,GAP)后的特征向量;a为经过归一化后得到的特征向量矩阵;Fgp(·)为特征向量经过全局平均池化的过程。整体框架与AlignedReID++类似,包括特征提取和相似度度量2个部分。在特征提取网络ResNet50的基础上,引入空间注意力模块SGE(Spatial Group-wise Enhance)[11],根据每个特征在空间上的位置来生成空间因子,动态分配每个特征权重,增强有用特征,抑制可能的噪声。同时,为了进一步增强卷积网络对于不同风格行人图片的泛化性与鲁棒性,在BN层[10]的基础上引入IN层,组成IBN(Instance-batch Normalization)模块,使得网络性能得到进一步的优化。
图2 改进后AlignedReID++算法流程图Fig.2 Improved AlignedReID ++algorithm flowchart
SGE模块通过在每个组里生成注意力向量,根据每个子特征在空间位置上的重要性,动态地分配权重,同时有针对性地学习和抑制噪声。
SGE模块首先将特征图按通道维度分为G个组,对于每一个组进行全局平局池化得到池化后的特征向量g,计算过程为
式中:m为特征向量的维度;Xi为每一个组中的特征向量。之后对于特征向量中的每一个元素,将其与g进行逐元素点乘运算,得到每一个位置对应的注意力权重为
之后,对逐元素点乘后的结果进行归一化处理,使特征向量中数值分布在(0,1)之间,并将处理过后的结果经过Sigmoid激活层,最后,将经过激活层的结果与原组中的特征进行逐元素点乘的运算,得到对于一个组生成的空间注意力初始值,计算过程为
式中:^xi和xi分别为空间注意力模块处理后的每一个组的特征向量和处理前的每一个组的特征向量;σ(ai)代表Sigmoid激活层,ai为经过归一化处理后的特征矩阵。
将空间注意力模块加入到ResNet50特征提取网络中,使得改进后的特征提取网络,提取到的特征更具代表性和泛化性,加入空间注意力机制SGE模块后的模型具体结构如图3所示。图中:x为未经过残差模块处理的特征向量,~x为经过残差模块处理过后的特征向量。
图3 SGE-ResNet模块结构Fig.3 SGE-ResNetmodule structure
在ResNet50特征提取网络的每一个瓶颈层的最后一个BN层之后,加入SGE模块,使得特征提取网络可以根据特征的空间分布来增强有用的特征表达,同时抑制可能的噪声,提高了特征提取的鲁棒性和代表性。这一操作与SEnet[11]的网络架构相似。不同的是,SEnet通过学习的方式来动态获得每一个特征通道的重要性,根据重要性来动态分配权重。而SGEnet是根据每个组中子特征的空间位置来生成注意力向量,根据注意力向量来再学习过程中动态的分配权重,提高有用特征的权重,同时减少可能的噪声。
IN层[12]的作用是将不同风格的图片中的风格信息过滤掉,而只保留内容信息,具有很好的外观特征不变性。因此,为了提高特征提取网络对色调、色差的鲁棒性,使得提取到的特征更具代表性和全局性,本文在BN层的基础上引入IN层,组成IBN模块,将IBN模块加入到ResNet50[13]后的具体结构如图4所示。
图4 IBN模块结构Fig.4 IBN module structure
为了防止网络在高层的语义判别性被破坏,IN层只加在网络低层中,同时为了保留低层中的语义信息,网络低层中也保留BN层。在第一个归一化层,IN层和BN层各占一半的通道数,一方面保证了不增加网络参数和计算量,另一方面也是为了在IN层过滤掉反映外观变化的信息的同时用BN层保留语义信息。
本文选用Market1501、DukeMTMC、CUHK03 3个行人再识别通用数据集作为训练集以及测试集。Market1501数据集包括由6个摄像头拍摄到的1 501个行人,训练集有751人,包含12 936张图像,测试集有750人,包含19 732张图像;CUHK03数据集包含1 467个行人,包含767个行人的训练集和包含700个行人的测试集;DukeMTMC数据集包含了1 404个行人,其中来自702个人的16 522张图片作为训练集,另外的702个人的2 228个查询图像作为测试集,还有17 661张图像作为搜索库(Gallery)。
实验中所有算法都是在Pytorch框架下通过Python语言实现的。训练和测试步骤在NVIDIA GTX1080Ti GPU上运行。训练总轮数epoch设置为300,训练学习率初始设置为0.0002,训练每个bitchsize设置为32,迭代到150个epoch时学习率除以10。总的权重衰减参数设置为5×10-4。困难三元组损失中参数margin设置为0.3。空间注意力机制SGE模块中的分组数设置为64。
实验1将空间注意力机制SGE模块引入ResNet50网络,分别在Market1501、DukeMTMC、CUHK03三个行人再识别通用数据集评价改进模型性能。性能评价均采用全局距离加局部距离的结果(Global+DMLI),以及进行再排序(Re-ranking,RK)后的结果。
Rank1是指搜索结果中置信度最高的图片是正确结果的概率;Rank1(RK)是将结果再排序后,结果中置信度最高的图片是正确结果的概率;CMC(Cumulative Match Characteristic)[14]曲线是一种top-k的击中概率,主要用来评估闭集中rank的正确率,这里取Rank1击中的概率;mAP(mean Average Precision)[15]是模型的平均精度均值,衡量的是模型在所有类别上的好坏;mAP(RK)是将结果进行再排序操作后,模型的平均精度均值;再排序是获得图像特征后,选择L2欧氏距离来计算排序或检索任务的相似度得分。
由表1可以看出,在加入SGE模块后,在Market1501[16]数据集上性能相差不多,但是在进行Re-ranking操作后在Rank1击中率以及mAP上提升了0.4%、0.3%;在DukeMTMC[17]数据集上,Rank1击中率提升了0.8%,mAP 提升了0.2%,进行Re-ranking操作后,Rank1击中概率提升0.5%,mAP提升了1.5%;在CUHK03[18]数据集上,Rank1击中率提升了1%,mAP提升了0.2%,在进行Re-ranking操作后,Rank1提升了3.5%,mAP提升了2.8%。可以看出,在加入空间注意力机制后,相较于原始模型效果有明显提升。
表1 基于SGE模块改进的模型性能在M arket1501、DukeM TMC、CUHK 03数据集上的评价Tab le 1 Evaluation of im p roved m odel perform ance based on SGE m odu le on M arket1501,DukeM TM C and CUHK 03 datasets %
实验2将IN层加入到归一化层[19]中,辅助BN层,组成IBN层共同加入到ResNet50网络中,分别在Market1501、DukeMTMC、CUHK03三个行人再识别通用数据集评价改进模型性能。性能评价均采用全局距离加局部距离的结果(Global+DMLI),以及进行Re-ranking操作后的结果。
由表2可以看出,在引入IBN归一化层后,在Market1501数据集上性能相差不多,Rank1提升了0.2%,mAP提升了1.9%。在进行Re-ranking操作后在Rank1击中率提升了0.5%,mAP提升了1.2%;在DukeMTMC数据集上,Rank1击中率提升了2.9%,mAP提升了2.4%,进行Re-ranking操作后,Rank1击中概率提升1.9%,mAP提升了2.7%;在CUHK03数据集上,Rank1击中率提升了4.2%,mAP提升了3%,在进行Re-ranking操作后,Rank1提升了5.5%,mAP提升了4.5%。可以看出,在引入IBN归一化层后,相较于原始模型效果有明显提升。
表2 基于IBN层改进的模型性能在M arket1501、DukeM TM C、CUHK 03数据集上的评价Tab le 2 Evaluation of im p roved m odel perform ance based on IBN layer on M arket1501,DukeM TM C and CUHK 03 datasets %
实验3将SGE模块和IBN归一化层加入到ResNet50网络中,在Market1501、DukeMTMC、CUHK03三个行人再识别通用数据集评价改进模型性能。性能评价均采用全局距离加局部距离的结果(Global+DMLI),以及进行Re-ranking操作后的结果。
由表3可以看出,将空间注意力机制SGE模块以及IBN归一化层加入到ResNet50网络后,在3个数据集上效果均有显著提升,在Market1501数据集上,Rank1击中率提升了0.8%,mAP提升了2.7%,Re-ranking操作后Rank1击中率提升了0.9%,mAP提升了2%;在DukeMTMC数据集上,Rank1击中率提升了2.9%,mAP提升了3%,Re-ranking操作后Rank1击中率提升了2.2%,mAP提升了2.9%;在CUHK03数据集上,Rank1击中率提升了4.7%,mAP提升了3.2%,Reranking操作后Rank1击中率提升了5.4%,mAP提升了5.1%。
表3 基于IBN层以及SGE模块改进的模型性能在M arket1501、DukeM TM C、CUHK 03数据集上的评价Tab le 3 Evaluation of im p roved m odel perform ance based on IBN layer and SGE m odu le on M arket1501,DukeM TM C and CUHK 03 datasets %
图5给出了原模型以及加入SGE模块和IBN归一化层后的性能曲线。可以看出,改进后的算法在性能上相较于原算法有显著的提升,证明了改进后模型的有效性。
图5 4种网络在Market1501、DukeMTMC、CUHK03数据集上的CMC曲线Fig.5 CMC curves of four networks on Market1501,DukeMTMC and CUHK03 datasets
图6是在不同网络下,针对待查询图库query中的同一幅较为模糊的行人图片,从查询库中输出与其相似度最高的10幅行人图片。绿色标签表示查询结果与待查询图片是同一标签,即是同一个人;红色标签表示查询结果与待查询图片不是同一标签,即不是同一个人。可以看出,在引入SGE空间注意力机制以及IBN归一化层后,查询结果有了很好的改善,表明了改进模型的有效性。
图6 不同网络下相似度最高的10张行人图片Fig.6 Ten most similar pedestrian images on different networks
表4为改进后的方法与行人再识别最新方法的比较。可以看出,与改进前的方法相比较,改进后方法在识别精度上,在Market1501、DukeMTMC和CUHK03 3个数据集上均有提升。与表中其他行人再识别方法相比,改进后的方法在识别准确率上也有较为明显的提升,由此可以得出改进后方法的有效性。
表4 改进后的方法与最新行人再识别方法比较Tab le 4 Com parison between im p roved m ethod and latest pedestrian re-identification m ethods %
1)本文提出了一种基于注意力机制的行人特征提取方法。在AlignedReID++基础上,对特征提取部分进行了改进。通过引入空间注意力模块,根据特征的空间位置,动态地增强有用特征,抑制可能的噪声。同时通过引入新的归一化层IBN层,进一步提高了提取特征的鲁棒性和全局性。
2)相较于改进前AlignedReID++中的Res-Net50特征提取网络,本文方法可以提取更为丰富的行人特征,提取到的特征更具准确性和鲁棒性。在Market1501、DukeMTMC以及CUHK03三个数据集上进行的算法测试实验结果表明,改进后的AlignedReID++算法的准确性更高,具有更强的鲁棒性。