面向行人重识别分集特征挖掘的多分支深度神经网络构造进展
2021-03-24吴晓富尹梓睿赵师亮张索非
吴晓富,尹梓睿,宋 越,张 磊,谢 奔,赵师亮,张索非
(1.南京邮电大学 通信与信息工程学院,江苏 南京 210003 2.95958部队,上海 200120 3.南京邮电大学物联网学院,江苏 南京 210003)
行人重识别(Person Re-Identification,ReID)是计算视觉应用的主要领域之一,其核心任务是寻找出现在不同摄像头视图中的特定行人[1-2]。作为一个跨摄像机的特定行人检索问题,由于人工智能理论和应用的相互推动,该问题近年来得到了广泛的关注和长足的发展。对于给定的待查询行人,需要匹配出在不同地点、时间段甚至不同摄像头捕捉到的同一行人图像[3]。作为一个复杂检索问题,ReID面临着:不同摄像机捕捉的行人图像具有包括视角、图像分辨率、光照、遮挡等一系列差异,这些差异对于检索精度的提高构成了巨大的挑战[2]。
为了提高行人重识别的性能,如何构建具有分集特征挖掘能力的深度神经网络近年来成为行人重识别的热点问题之一。鉴于多分支深度神经网络的不同分支具有表达不同特征的便利性,因而成为实现分集特征挖掘的流行网络模型。近年来,通过多分支深度神经网络来获得分集特征的方法得到了广泛的关注,主要包括4大类:(1)局部分割分集网络,典型如 PCB[4]、PLR-OSNet[5];(2) 注意力分集网络,典型如 ABD-Net[6]、 MHN[7];(3) 遮蔽分集网络,典型如 BDB[8]、SDB[9];(4) 异构分集网络,如BC-OSNet[10]、ASNet[11]。
本文主要针对行人重识别多分支分集技术的进展进行回顾与梳理,通过实验给出在典型行人ReID数据集的性能评估,并对未来的相关研究方向进行展望。
1 多分支深度神经网络与分集特征挖掘
一般地,假设具有L个分支的多分支深度神经网络由公共网络fc(·)以及L个子分支网络fl(·),l= 1,2,…,L构成。 这样,给定输入的图像x,多分支深度神经网络输出L个支路特征矢量:Fl=fl(fc(x)),l=1,2,…,L。 对L个支路特征矢量进行拼接(Concatenation),得到x的最终特征矢量
鉴于不同支路特征矢量的相同位置分量(如第i个分量)可以代表完全不同的特征,如何衡量不同分支特征矢量之间的分集性是个非常困难的问题。例如2个分支特征矢量F1与F2之间的平方欧式距离越大并不能说明第一分支与第二分支的分集性能越好。事实上,如果F2是F1的置换形式,虽然实质上两矢量表达的特征完全是一样的,但其欧式距离非但不为0,而是可以相当大(取决于具体置换)。为此,一个可能的方式是引入一个对抗网络(Adversary Network)[12]g,使得[7]
虽然以上方法在文献[7]中取得了一定的效果,但在其他实验中的结果并不理想,对抗网络的收敛性及其性能在理论和实践上都无法得到严格的保证。
为此,近几年来计算视觉方向的会议如CVPR、ICCV对行人重识别的特征分集问题进行了广泛的探讨,下面分4大类进行介绍。
2 局部分割分集网络
局部分割的思路在于将图像全局的特征图进行局部分割,每一个分支对应到图像的一个局部,通过各分支有效学习局部细粒度特征,最终提高特征的分集表达能力。
2.1 PCB
相较于单分支的全局特征,PCB(Part-based Convolutional Baseline)网络将特征水平均匀分块,实现对局部特征的挖掘;同时提出了 RPP(Refined-Part Pooling)[4]方法来对齐局部特征,修正由于 PCB 均分策略而产生的对齐缺陷,进一步提升PCB的性能。
PCB 网络选用 ResNet50[13]为主干网络,将最后一个Stride变为1,使得主干网络获得的特征图尺寸从12×4扩大到24×8,并将特征图垂直分割为L个部分,经过平均池化和特征压缩后获得L个列向量F,然后将其分别送入到全连接层,最后计算L组交叉熵(Cross Entropy)的和作为损失函数。测试时,PCB 可以将L个列向量Fl,l=1,2,…,L进行拼接得到特征F(见式(1))用于最后的判别。
相比基本的 IDE[4]网络,PCB的 mAP在 Market1501[14], Duke[15], CUHK03[16]上 分 别 提 高 了8.9%、13.5%、15.3%,在行人重识别的分集特征挖掘领域是具有里程碑意义的算法(见图1)。
图1 PCB网络结构
2.2 PLR-OSNet
结合PCB结构局部分割的思想,PLR-OSNet[5]是一种二分支深度神经网络模型,该分集网络由全局分支(Global Branch)和局部分支(Local Branch)组成。其中的局部分支采用统一分割策略进行局部特征分解。与PCB所不同的是,PLR-OSNet并没有将L个局部特征单独分解为L个支路,而是提出将L个部分级特征向量拼接成单个列向量用于单独的一个Local Branch,最终在该Local Branch上仅使用一个损失函数训练,这与现有基于部分分割的方法形成了鲜明的对比,如图2所示。测试时可以将全局分支特征和局部分支特征拼接后作为最后判别的特征。
图2 PLR-OSNet网络架构
PLR-OSNet全局特征结合局部特征,很好地实现了分集特征挖掘,对比PCB+RPP算法,其mAP在Market1501上继续提高了7.3%。
3 注意力分集网络
类似于人类的注意力机制,利用注意力机制能有效提高神经网络的表达能力,在行人重识别领域得到了广泛的应用。为获取分集增益,加入注意力机制的多分支网络也被证明是行之有效的手段之一。
给定输入图像的某中间特征张量X∈RC×H×W,注意力机制可理解为对输入特征张量的所有元素进行加权,也即
其中,A(X)∈RC×H×W表示注意力模块的输出权重。⊙表示Hadmard乘法(逐元素相乘)。
3.1 ABD-Net
ABD-Net是一种融入注意力机制以及正交正则化技术的双分支网络。通过注意力机制,能够使网络注意力集中于前景的行人,从而淡化环境的影响,同时加入了正交正则化来保证不同支路特征具有分集多样性。
具体而言,ABD-Net分别针对通道融合和位置感知,加入了一对互补的注意力模块:通道注意力模块(Channel Attention Module)A(X)= rep[V]|H,W,以及位置感知模块(Position Attention Module)A(X)=rep[M]|C,其中 rep[V]|H,W表示信道掩模矢量在空间维度H、W上的重复扩展,同理rep[M]|C表示空间掩模在信道维度C上的重复扩展。ABD-Net最终获得注意力加强的特征,如图3所示。为了增强输出特征的多样性,该网络提出了特征值差异正交约束(Spectral Value Difference Orthogonality,SVDO),并将其用于网络各个层的输入和输出端;通过同时正则化卷积、全连接层的权重和输出的特征张量,能够有效降低不同分支网络特征之间的相关度。
图3 通道注意力模块和位置感知模块
3.2 MHN
ABD-Net的注意力机制相对于输入张量X而言是一阶的。为挖掘注意力机制的分集机理,MHN首次提出高阶注意力机制(High-Order Attention,HOA)。高阶注意力机制的核心是定义给定输入张量X的R阶多项式表达
其中,⊗rX表示X分量的r阶多项式表达式,以体现X各分量之间的高阶关系。最终,高阶注意力权重可以表示为
实验中,MHN以ResNet50为骨架网络,使用基于PCB的多分支网络,每一个分支利用不同阶数的HOA模块获得的差异化分集特征,如图4所示。
图4 混合高阶注意力网络(MHN)
其中R=1、2、3分别代表一阶、二阶、三阶注意力模型,通过不同的HOA模块实现具有分集能力的多分支网络,然后连接到全连接层。为了使不同阶注意力模型输出特征更好地实现分集性能,如式(2)所示,MHN还通过训练对抗网络来分辨不同分支的特征,使得不同分支的特征实现更高的分集度。
4 遮蔽分集网络
遮蔽分集网络主要是通过在分支网络中添加遮挡部分,以此强化未遮蔽部分特征表达能力的学习,提取更富表达力的特征,从而提高ReID模型的泛化能力。
4.1 BDB
针对深度卷积神经网络训练时易出现过拟合的问题,各种数据增强技术获得了广泛的运用。例如,Random Erasing[17]直接对数据库中的图像进行随机的擦除,获得增强的数据集,一定程度上改善了过拟合现象。BDB网络首次提出在网络中间层的特征层面进行随机的遮蔽,以迫使神经网络学习更富有表达力的特征。如图5所示,BDB网络包含两个分支,也即全局分支与特征丢弃分支。其中,全局分支提取全局特征;而特征丢弃分支则通过随机去除一个区域(该区域图案在一个批次内保持不变),区域内的所有像素均被清零,再经过最大值池化和全连接层,最后计算各种损失函数。
图5 BDB(Batch DropBlock)结构
通过加入遮蔽分支的方式,BDB可以实现全局分支和特征丢弃分支之间的多样性,有效实现了分集特征的挖掘。
4.2 SDB
BDB作为一种典型的特征擦除方法,已经被证明对ReID是有效的。然而,BDB的丢弃模式在不同批次的擦除区域都不相同,其网络可能难以学习到稳定的结构。基于该缺陷,SDB(Slow DropBlock)提出了随机擦除图案在Q个批次(Batch)中保持不变,并将擦除操作直接移至图像输入端。如图6所示,SDB表示生成的擦除块至少在Q>1个批次中保持不变,当Q=1时,SDB等同于BDB,擦除的区域同样可以置零或者设为擦除区域值的平均。
图6 不同的Dropout方法的比较(Batch Size=2)
由于删除了大量的输入图像,SDB采用通常的训练方式难以收敛。为了解决这一问题,论文提出了一种新的具有保证收敛性的双批次输入联合训练方法。该方法在训练过程中采用超级批次样本进行训练,一个超级批次由两个批次组成(一个常规批次和一个遮蔽批次),因此其输入图像批次大小可表示为2B×H×W×3的图像张量(Tensor)。每个批次的样本数量均为B。超级批次首先输入到共享网络,生成的特征图被分成两个子批次,一个用于全局分支,一个用于局部分支。
SDB通过对不同局部分支输入批次的擦除区域高度设置,获得了不同特征的多样性,并将不同比值下的SDB分支与全局分支拼接,进一步提升了网络性能。实现结果显示,四分支网络SDB-4对比BDB 网络,mAP 在 Market1501,Duke,CUHK03上分别提高了2.0%、3.5%、4.0%。
5 异构支路分集网路
除了以上3大类分集网络外,还有一些工作无法归入以上 3 类,如 ASNet[11]和 BC-OSNet,本文将其归入异构支路分集网络,其关键特征在于各支路通过各种异构技术获得分集。下面以BC-OSNet为例。
在交通运输方面,公路运输占全国总运量的90%;吉布提通往亚的斯亚贝巴铁路已通车,国内其他地区的铁路线也在计划中。全国有40多个机场,其中亚的斯、迪雷达瓦和巴赫达尔为国际机场。亚的斯亚贝巴国际航空港每周有35个航班直飞北京、上海、广州、香港和成都,各地区的首府和商业城市也都有国内航线提供服务。埃塞航空为非洲最大的航空公司,可直飞许多非洲国家和世界其他国家。
如图7所示,BC-OSNet以 OSNet为骨架网络,结合了PLR-OSNet的部分分级方式,以及Relation Network[18]的 GCP 和 One-vs-Rest模块,再加上全局分支,组成四分支网络。其中,One-vs-Rest[18]关系模块考虑了身体各个部位与身体其他部位之间的关系,使得每个部分级别特征都包含了相应部位本身以及身体其他部位的信息,使其更具识别性。全局对比池化(GCP)[18]则通过对比全局特征和局部特征,以获得更加突出的全局特征表达。
图7 BC-OSNet框图
最终 BC-OSNet在 Market1501、Duke、CUHK03三大数据集上都获得了性能的明显提升。
6 实验结果分析与讨论
6.1 数据集
实验部分主要围绕ReID领域3个比较流行的数据集上展开,分别是Market1501、Duke和CUHK03。
6.2 实验环境及参数配置
本文实验采用的硬件和软件仿真环境如表1所示。
表1 实验平台参数
6.3 实验复现与性能比较
在本次实验中,复现了部分分集网络,主要包括PCB、PLR-OSNet、SDB,并加入了更多的训练技巧。在训练和测试中,输入图像尺寸被统一到尺度384×128;数据增强方法采用了随机翻转、随机檫除、随机裁剪;优化器则选用了Adam[19]优化器,动量设置为0.9,衰减为5e-04;在训练期间,批次大小设置为64,每批包含16个行人身份,每个行人有4张样本图像。训练的Epoch数量为120,学习率初始化为3.5e-5;训练过程中采用Warmup策略使学习率呈线性增长,经过20个Epoch,学习率变化为3.5e-5;到达60个Epoch,学习率变化为3.5e-5;再到90个Epoch,学习率变化为3.5e-6。损失函数使用行人ID Loss[5], Soft-Margin TripletLoss[20]和Center Loss[21],即
最终通过PyTorch编程实现神经网络端到端的训练,表2给出了基于局部分割分集算法的实验结果。从实验结果可以看出,通过局部分割实现支路分集的特征挖掘技术在ResNet、OSNet等网络架构上都有很好的表现。
表2 局部分割分集网络复现实验
表3 SDB性能复现对比
由表3可以看出,遮蔽分集的方式使得多分支网络学习到了更多的有效特征,能有效提高行人重识别性能。
最后,在统一的实验平台上给出了BC-OSNet实验结果,其设置如下:Epoch的数量改为160,学习率初始化为3.5e-5,在训练过程中使用Warmup,使学习率呈线性增长,经过20个Epoch,学习率变化为3.5e-4;到达60个Epoch,学习率变化为3.5e-5;再到130个Epoch,学习率变化为3.5e-6。表4中显示了与不同方法的性能比较,可以看出,BCOSNet以4个分支网络的规模相比于其他流行算法表现出几乎最好的性能。
表4 在Market1501和Duke数据集上的各种网络性能对比
6.4 网络参量大小比较
表5中给出了不同网络的参数量大小,一些网络由于没有公布代码,参量大小不好确定。由表5可知,由于OSNet网络的参量规模较小,以它为骨架搭建的多分支网络参量规模都较小。如BC-OSNet虽然有4个分支,最终参量规模为8.2×106,仍大幅小于ResNet50,因此适合资源受限的应用场景。
表5 部分网络的参数量
7 结束语
分集特征挖掘一直是提高行人重识别准确率的重要手段,本文简要总结了近年来基于多分支深度神经网络实现分集特征挖掘的各类算法,分别是局部分割分集、注意力分集、特征遮挡分集、异构分支分集。可以看出,使用多分支网络充分挖掘行人信息来提高检测性能是性能提高的主流手段之一,是近年计算视觉会议CVPR、ICCV行人重识别有监督学习领域的关注热点,取得了丰硕的成果。
然而,目前多分支神经网络提取特征之间的分集度数学上仍然缺乏严格的定义,式(2)虽然给出了一种可能,但该定义仍存在以下明显缺陷:(1)依赖对抗网络的定义本身不直接;(2)对抗网络本身难以收敛;(3)实验效果不突出。因此,如何给出特征分集的严格数学定义并设计有效的多分支网络来挖掘行人的细粒度信息是未来继续提升行人重识别性能的关键。