基于TransReID的行人重识别方法
2021-12-17王晓李丹
王晓,李丹
(四川大学锦城学院,四川成都,611371)
1 概述
行人重识别的目的是在不同的场景和摄像机视图中关联特定的对象,其重要组成部分是提取鲁棒特征和判别性特征,长期以来一直被基于CNN的方法所主导[1],但是基于CNN方法主要集中在较小鉴别区域以及其采用的降采样操作(池化和卷积步长)降低了输出特征图的空间分辨率,极大影响对相似外观物体的区分能力[2]。而基于注意力机制的方法大多数嵌入在深层,更偏爱较大的连续区域,并且很难提取多个多样化的可判别区域。随着多头注意力模块的引入,以及卷积和降采样操作的去除,基于Transformer的模型适合于解决基于CNN的行人重识别中的上述问题。其中多头注意模块捕获了远程依赖关系,激励模型参与人体的不同部位。而Transformer无需降采样操作,可以保留更详细的信息。但为了应对图像中的大变化(例如遮挡,姿态多样性,摄像机视角等问题),Transformer仍需要专门针对行人重识别进行设计。因此构建了一个针对行人重识别的框架——TransReID。
2 基于Transformer的行人重识别方法
■2.1 基线网络ViT-BoT
首先构建一个基于Transformer的强基线框架Vit-BoT,该方法主要分为特征提取和监督获取两个阶段。如图1所示,给定一幅图像x∈RH×W×C,其中H,W,C分别表示其高度,通道的宽度和通道数。我们把它分成N个固定大小的块{xip|i=1,2,…,N}。将其中一个可学习的向量[cls]嵌入标记为xcls,添加到输入序列之前,输入到Transformer层的输入序列可表示为:
图1 基于Transformer的强基线框架Vit-BoT
其中Z0表示输入序列嵌入,P∈(N+1)×D为嵌入的位置。F是一个线性投影映射到D维。此外采用Transformer层来学习特征表示。由于所有的Transformer层都有一个全局的感受野,从而解决了基于CNN方法的有限感受野问题。同时由于没有采用降采样操作,详细的信息得以保留。
原始ViT针对图像分类任务所设计,不能用于行人重识别任务,为此,对其进行了几点适应性调整。
2.1.1 重叠补丁(Overlapping Patches)
在预处理阶段,ViT需要将图像块分割为N个不重叠块,这时会导致每个块的局部邻近结构信息无法较好的保留,故采用滑动窗口形式生成重叠块。假设滑动窗口的步长为S像素,每个块的尺寸P=16,那么重叠部分的形状为(P-S)×P。基于上述定义,如果输入图像的尺寸为H×W,那么所得到的图像块数量如下:
从上式可以得出:重叠区域越大,所提图像块数量越多。而更多的块通常可以带来更好的性能,但同时也会造成更高的计算量。为了更好的区分表示,S通常设置为小于P的值,而S=P时则忽略下角标。
2.1.2 位置嵌入(Position Embedding)
位置嵌入ρi则表示编码图像块Pi的位置信息,它有助于Transformer的Encoder编码空间信息。由于行人重识别任务的图像分辨率不同于图像分类时的原始图像分辨率,故ImageNet网络模型上位置嵌入无法直接应用,因此采用双线性插值辅助ViT-BoT处理任意输入尺寸的图像。
■2.2 TransReID
尽管前述所设计的ViT-BoT可以在目标ReID任务上取得很好的效果,但它并未充分利用ReID数据的特性。为更好的探索边界信息与细粒度信息,我们提出了拼图补丁模块(JPM)与边信息嵌入向量(SIE),并将所提框架称之为TranReID,其结构信息见图2。
图2 TransReID框架
2.2.1 拼图补丁模块(jigsaw patches module, JPM)
为了扩展远程依赖关系并增强特征的鲁棒性,我们提出了JPM,通过移位和补丁洗牌操作重新安排补丁嵌入,并重新对它们进行分组以进一步的进行特征学习。对ViTBoT的最后一层调整为双并行分之结构(采用两个独立Transformer层分别用于学习全局特征与局部特征)并行提取鲁棒特征。因此,该网络倾向于提取具有全局上下文的扰动不变和鲁棒特征。
为了解决上述的问题,我们提出了一个拼图补丁模块(JPM)对嵌入的块重新排列然后将它们重新分组到不同的部分中,每一个都包含整个图像的几个随机嵌入块。具体描述如下:
第一步:移位操作
第二步:补丁洗牌操作
经过前述移动后的块进一步通过置换操作(group=k)进行处理,此时隐含特征变为:。
我们将置换后的特征分成k组,JPM可以将其编码为k个局部特征,因此每个特征可以编码不同的部件,全局特征与局部特征分别采用分类损失£ID,£T进行训练,整体损失定义如下:
2.2.2 边信息嵌入向量SIE
获取更详细的特征之后,特征仍然容易受到摄像机或视点变化的影响。换一种说法,由于场景的偏差,训练模型在对同一对象的不同角度的识别上很容易失败。因此,我们提出了一种边信息嵌入向量(SIE)去合并非视觉信息,例如将摄像机或视点去嵌入表示以学习不变特征。通过可学习向量有效地整合非视觉线索,以缓解不同摄像机或视觉以及其他因素导致的视觉偏差,以摄像机为例,所提出的SIE有助于解决摄像机间和摄像机内匹配所产生的巨大成对相似性差异。SIE也可以很容易地扩展到包括除了我们已经演示的那些以外的任何非视觉线索。
具体的说,如果图像的相机ID为C,那么它对应的相机嵌入可以表示为 S(C),不同位置嵌入会随图像块变化,相机嵌入则对所有块相同。另外,如果视角信息V可知,我们同样可以将其编码到所有块中。
接下来,我们就需要考虑如何集成这两种不同类型的信息了。最简单的一个想法:直接进行相加,即S(C)+S(V)。但这种方式可能导致信息抵消。我们提出采用联合编码方式:S(C,V)。也就是说,如果有 CN个相机ID,VN个视角标签,那么S(C,V)总计有CN×VN个不同的值。那么第i个块的输入定义如下:
因为每个块的嵌入位置不同,但在不同的图像中是相同的,S(C,V)对于每个块是相同的,但是对于不同的图像可能有不同的值。Transformer层能够编码具有不同分布特性、可以直接插入的嵌入向量。
3 实验
■3.1 数据集和评价标准
本文采用Market1501[3]数据集对所提出的基于TransReID的方法进行实验Market1501数据集包括6个摄像头所拍摄到的1501个行人。其中训练集有751人,包含12936张图像,测试集有750人,包含19732张图像,平均每人有26.3张测试数据。
■3.2 实验准备
本文算法基于Colab平台实施,迭代次数为120,GPU为TeslaT4。在训练模型时,将所有图片大小调整为256×256。训练图像通过随机水平翻转、填充、随机裁剪、随机擦除进行图像增强。Batch=8,采用SGD优化算法,动量为0.9,权值衰减为1e-4。学习率初始化为0.008。
■3.3 TransReID学习实验结果
为了测试TransReID学习的有效性,本文分别在Market1501数据集上进行实验验证,训练模型Loss函数收敛情况如图3所示,图中展示了Loss函数的收敛情况随迭代次数的不断增加而不断变化的情况,由图片可以看出,模型在迭代100次时趋于收敛。行人重识别检测图如图4所示。
图3 损失函数图像
图4 行人重识别检测图
4 智能安防
随着道路监控设施及城市监控网络的日益完善,视频侦查作为信息化背景下对现场勘查方法的创新逐渐被利用在刑事侦查之中,成为公安机关办理案件的新技法[4]。然而由于监控设备是24小时不间断工作,且监控摄像头数量庞大,导致数据集也非常大,同时由于不同摄像头之间的差异性,在追踪嫌疑人时增加了一定的难度。在警方确定嫌疑犯基本信息后,采用人力查找监控视频中嫌疑人的行为轨迹是非常费时费力的。故先大致确定嫌疑犯出现的范围,调出视频图像并对其解码预处理,对解码后的视频图像进行行人检测,并在数据库中存储检测结果。通过已知某嫌疑犯的照片,输入到匹配系统中与数据库中行人进行比对,收集监控系统中嫌疑犯出现的时间和地点,并对检测到的目标在视频中的帧序列进行跟踪,可以将嫌疑犯在各个摄像头中的行踪串联起来,实现跨摄像头追踪,嫌疑犯的行为轨迹一旦确定,将对警方破案刑侦有非常大的帮助。
图5 匹配系统
5 结束语
本文研究了一个用于行人重识别的TransReID框架,并且提出两个新的模块,即拼图补丁模块(JPM)和边信息嵌入向量(SIE)。其中JPM可以帮助模型学习更多的全局信息和更具有辨别力的部分,使得模型对扰动具有鲁棒性。而SIE减弱了由不同摄像机和视点引起的场景偏差的负面影响。基于TransReID的方法有着很大的潜力,可以进一步探索重识别的任务,以便更好的应用于我们的日常生活中。