《Omnidirectional Feature Learning for Person Re-Identification 》论文笔记

摘要:由于行人再识别(PReID)在智能监控领域的重要作用,受到了越来越多的关注,很多先进的PReID方法是基于部分的深度模型,这些模型中大多数都关注了从水平方向学习一个人身体的部分特征表示,然而,垂直方向的身体特征表示通常被忽略,此外,没有考虑到这些部分特征和不同特征通道之间的关系。本文提出一个多分支深度模型。具体地,这个模型包括5个分支,这5个分支中,两个分支从水平和垂直方向学习带有空间信息的部分特征;一个分支学习由骨干网络最后一个卷积层生成的不同特征通道的相关性;剩下两个分支是识别和三元组子网络,来同时学习有判别力的全局特征和一个对应的度量。所有五个分支可以提高表示学习的质量。我们在3个基准数据集上做了大量对比试验,包括Market-1501,CUHK03 和 DukeMTMC-reID,本文提出的深度框架优于其他有竞争力的先进方法。

一、引言

      作为智能监控的一项基础任务,行人再识别(PReID)目的是从多个摄像机视野中重新识别一个特定的人。近年来,计算机视觉界对其产生了浓厚的兴趣,在PReID上取得了很大的进步,然而,一个人的外观会发生巨大的变化,当面临不可预测的变化,如光照、背景杂乱和人的姿势的时候,这是一个有挑战性的问题。

   最近的研究,从以下两个角度解决PReID:

(1)提取有判别力的描述符来表示不同的身份;(2)学习有效的距离尺度使类间距离大于类内距离。

      得益于深度学习在计算机视觉领域的巨大发展,提出了很多基于深度架构的方法来做PReID。与传统的手工设计方法不同,这些深度学习方法以一种端到端的方式集成了特征学习和距离度量学习,值得注意的是,最近先进的结果都是通过深度学习方法实现的。很多方法尝试学习全局行人特征,当通过深度模型生成了行人全局特征,应用欧氏度量测量两个行人之间的距离。然而,全局特征学习方法有以下缺点:(1)当行人身体被遮挡时,可能在全局特征中引入不想关的信息(2)全局特征在表示外观相似的行人时没有足够的判别力。

     为了缓解这些问题,一些研究([1]《A siamese long short term memory architecture for human re-identification》2016、[2]《Deep representation learning with part loss for person re-identification》)使用预定义的水平条纹将身体分为几个部分,并分别使用这些部分来学习部分特征。然而,在不同的图片中,由于不精确的行人检测、姿势改变,每个身体部分可能定位在不同的位置,这会造成未对齐(misalignment)问题

    一些研究([3]《GLAD: Global-localalignment descriptor for pedestrian retrieval》2017、[4]《Spindle net: Person re-identification with human body region guided feature decomposition and fusion》2017、[5]《Pose invariant embedding for deep person re-identification》)引入姿态标记信息来处理对齐问题,然而,这些方法需要额外的姿态估计步骤。在本文中,类似于[6]《Deep-person: Learning discriminative deep features for person reidentification》,我们通过使用GRU模块一起学习带有空间信息的部分特征而不是分开学习它们,于是就缓解了未对齐问题。

     只有很少基于部分的方法考虑了不同部分特征之间的空间上下文信息。[1]首先使用一个RNN来挖掘提取的序列特征之间的空间上下文信息,但是这篇文章中空间信息学习过程和特征提取过程时分开的;[6]提出利用长短期记忆(LSTM)来学习不同身体部分从头到脚的空间上下文信息。然而,忽略了从垂直方向即从左到右身体部分之间的空间上下文关系。值得注意的是,几乎所有基于部分的模型都忽略了从垂直方向学习部分特征。

        然而,从垂直方向学习部分特征可能非常有用,尤其是当身体的左边或右边被遮挡时。

所以我们提出采用gated recurrent unit(GRU)来同时学习从头到脚和从左到右的不同身体部分之间的空间信息。
     最近的研究表明,CNN特征的鲁棒性可以通过整合一些额外的可以帮助挖掘不同特征通道之间的相关性的学习模块来增强。在本文中,除了基于部分的特征,我们也研究了不同通道之间的相互依赖关系来提高表示的判别能力,为了这个目的,我们用最后一个卷积层生成的特征映射输入GRU模块来学习特征映射之间的相互依赖关系。

    一些研究(《A multi-task deep network for person re-identification》2017,《Joint learning of singleimage and cross-image representations for person re-identification》2016,《Multi-scale deep learning architectures for person re-identification》2017
)已经证明了识别损失和三元组损失的结合可以帮助提高学习到的深度表示的判别能力。三元组损失促使负队之间的相对距离比正对之间的距离大,三元组损失的训练目标与它的测试方式相似,然而,它使用弱标记信息。识别损失将PReID看作是多类分类问题,它充分利用了标记信息,然而,识别损失的训练目标与它的测试模式不一致,因此,这两种损失是相互互补的,在本文中,我们也采用这种混合策略,不像之前的工作,我们使用online instance matching loss(OIM),而不是普遍使用的softmax loss。当数据集包含大量身份且每个身份实例数量有限时,从训练集到测试集的softmax损失的泛化能力可能会减弱,一个可能的原因是,softmax损失需要学习太多的判别函数,而每个标识的实例有限,因此,分类器矩阵在每个反向传播阶段都不能被完全学习。与softmax loss相比,OIM loss是非参数的,因此梯度是直接在特征上执行的,而不是在分类器矩阵上执行的。我们之前的工作[A deep model with combined losses for person re-identification]2019 也证明了OIM和三重损耗相结合的有效性。我们使用OIM loss来训练四个识别子网络,即分支1 ~分支4;三元组损失被应用到池化的特征,来学习相应的相似性度量。在测试阶段,我们选择f_{OIM}作为DukeMTMC-reID和Market-1501数据集的最终行人描述符。对于CUHK03数据集,我们使用f_{Trip}作为最终描述符。

   本文的贡献如下:

(1)我们提出使用GRU来学习全方向相关信息。该模型考虑了人体从头到脚以及从左到右不同部位之间的空间信息;

(2)我们提出学习通道之间的相互依赖关系来提高学习到的描述符的识别能力;

(3)所提出的架构根据数据集的特征选择合适的特征作为最终描述符。我们的模型在广泛使用的PReID数据集上优于其他具有竞争力的先进方法。

二、相关工作

        随着深度学习技术的发展,尤其是卷积神经网络,通过CNN的深度特征学习在PReID领域已经变成一种频繁的方法。大多数基于深度学习的结构基于以下模型:识别模型验证模型三元组模型。识别模型将PReID看作一个多分类任务;验证模型将成对图像作为输入并输出一个值来估计这对图像是否属于同一个人;三元组模型想要使同一个人图像之间的距离尽可能的小,而不同人图像之间的距离尽可能的大。一些方法结合以上提到的两种模型:

(1)《A multi-task deep network for person reidentification》2017 设计了一个结合验证和三元组损失的多任务深度框架来利用这两种损失;(2)《Joint learning of singleimage and cross-image representations for person re-identification》2016 分析了单图像表示(SIR)和跨图像表示(CIR)的优点和局限性,提出成对比较和三元组比较定义来同时学习CIR和SIR;(3)《Multi-scale deep learning architectures for person re-identification》2017 引入一个多尺度深度框架,包含了验证和分类子网络。

在本文中,采用OIM loss和triplet loss来联合监督训练。

      最近,一些研究擦用基于部分的策略来学习有判别力的特征:(1)《Person reidentification by multi-channel parts-based CNN with improved triplet loss function》2016 使用一个全局卷积层来得到全局深度特征,然后将这个全局特征分为4个相等的单个分支来学习基于部分的深度特征。最后,将全局特征和部分特征连接起来组成最终的深度描述符。

为了解决未对齐问题,《Deeply-learned part-aligned representations for person re-identification》2017 提出一个CNN注意力模型,其利用成对行人图像的相似性信息来学习身体部位进行匹配;《Harmonious attention network for person re-identification》2018 提出一个协调的注意力卷积神经网络,以端到端的方式同时学习表示和选择,本文结合了硬注意力和软注意力来学习行人图像的区域级和像素级部分。然而,这些基于部分的方法有以下局限性

(1)使用融合全局和局部特征来检索,增加了内存和时间花费;(2)忽视了不同部分特征之间的相关性;(3)忽视了垂直方向的身体部位信息。

    也有研究尝试挖掘通道之间的关系《Squeeze-and-excitation networks》2018 提出一个机制能够结合网络实现特征重校准,通过重新校准操作,可以同时强调重要的特征和抑制不重要的特征。在本文中,不同于这篇文章,我们采用GRU来直接学习通道之间的相互依赖关系。

三、提出的方法

我们的目标是学习一个行人身体的全方向相关信息

采用的backbone network 是 一个pre-trained ResNet-50《Deep residual learning for image recognition》,将ResNet-50的layer4[0]的kernel size 和stride 重新设置为1,因为全局池化之前越高的空间分辨率包含越详细的行人特征信息。提出的网络包括五个分支。已经证明头、上半身、下半身作为身体部分特征学习可以提高行人描述子的判别能力。与其他基于部分特征学习模型相似,用branch-1从水平方向(从头到脚)学习部分特征,用branch-2从垂直方向学习部分特征,除了部分特征的学习,用branch-3来挖掘通道之间的相互关系,该分支的引入可以增强学习到的描述子的鲁棒性。与我们之前的工作《A deep model with
combined losses for person re-identification》
相似,branch-4和branch-5分别用来学习全局特征和一个相似性度量。

A.基于部分的特征学习

    通常的基于部分的方法将行人身体分为几个水平条纹,然后将每个条纹输入到一个独立的子网络来从水平方向学习部分特征。然而,这些基于部分的方法忽视了不同条纹之间的空间相关性,还忽视了从垂直方向的部分特征学习,为了克服这些局限性:

在本文中,我们使用包含GRU的RNN来学习不同局部特征(从垂直和水平方向)之间的空间信息。

如上图,使用backbone network提取一个维度为16\times 8\times 2048的深度特征,然后,在branch-1和branch-2分别用核尺寸为1\times 81\times 16的平均池化操作来处理这个深度特征,如下图所示,每个经过池化的深度特征表示从垂直或水平方向一个对应的感受野

然后将池化过的深度特征作为序列特征输送到三层双向GRU模块,于是,branch-1和branch-2的GRU模块从水平和垂直方向同时学习带有空间信息的部分特征,然后在branch-1和branch-2分别连接输出的GRU特征作为最终的部分特征,最后,每个GRU特征输入到独立的OIM层来实现多分类任务。

B.挖掘通道之间的相关性

该模型也尝试挖掘不同通道之间的相互依赖关系,如下图所示,

将每个16\times 8的特征通道转化为一个128维的向量,于是每个向量表示一个通道。然后,将2048个向量(通道)作为序列特征输送到3层双向GRU中来学习他们之间的相关性,最后,连接GRU的输出作为一个最终描述符来输入OIM层。                  通过学习这些特征通道之间的相互依赖关系,可以提高学习到的特征描述符的判别能力。

C.损失函数

(1)identification loss

      在本文中,利用online instance matching loss (OIM)来训练识别自网络。OIM loss是非参数的,因此梯度可以直接在描述符上得到,而不需要任何分类器矩阵转换操作。该损失保留了一个循环序列和一个lookup table(LUT)来分别保存未标记和标记的特征

行人M被识别为身份 j 的概率如下:

其中\mu _{k}^{T}\delta _{i}^{T}分别是 循环序列的第k个身份的换位 和 LUT的第j列 。参数\sigma越大,概率分布越柔缓,Q和L分别表示序列大小和LUT的列数。被重识别为循环序列中的第j个ID的概率可以定义为:

OIM的目标是最大化这个对数似然:

(2)triplet loss

   对于branch-5,我们使用batch-hard triplet loss《In defense of the triplet loss for person re-identification》作为损失函数。,

随机抽样P个身份(类),每个身份选择K张图片,在这PK张图像中,对于每个锚点,只选取最难正样本和负样本形成三元组单元。给定一个三元组单元\left ( x_{a}, x_{p},x_{n}\right ) , triplet函数可以定义如下:

其中thre是一个margin; [x]_{+}=max(x,0)F_{w}(x)是图像x的深度描述符;w 表示骨干网络的参数;d(x,y)是x与y的欧氏距离。

(3)总体的损失函数

整个架构通过一个triplet loss和四个OIM loss监督的,最终的损失函数定义为:

其中\lambda _{i}(i=1,2,3,4,5)是不同分支的权衡参数。

四、实验

所用数据集:CUHK03 、Market-1501、 DukeMTMC_reID

A.数据集和标准

(1)CUHK03数据集

        包含1360个身份的13164张图片,6个摄像头,每个行人被两个摄像头拍到。该数据集提供了两种设置,一个是由检测器自动标记,另一个是手工标记,这两种设置中,前者更接近实际场景。我们在这两种设置下评估了提出的方法。

(2)MARKET-1501数据集

      包含1501个行人的32643张标记框,每个行人被至少两个摄像头至多六个摄像头收集,检测框由DPM检测器得到。

(3)DukeMTMC-reID数据集

      为基于图像的Person re-ID而创建,是DukeMTMC数据集的一个子集,包含由8个高分辨率监控摄像头拍摄的1812个身份的36411张图片,这1812个行人中,由1404个人由超过两个摄像头捕获,其余的被看作干扰性识别。

(4)评价指标

          每个数据据都使用Cumulative match characteristic (CMC)作为评价指标, 使用mean average precision (mAP) 对于DukeMTMC-reID和Market-1501; 都使用单一检测设置。此外,我们公布基于k-reciprocal encoding

《Re-ranking person reidentification with k-reciprocal encoding》2017的重排名结果

B.实验细节

      pytorch 框架;丢弃了预训练ResNet-50模型的全连接层并在layer4[0]重新设置核尺寸和步长为1;对于branch-1和branch-2,

设置GRU模块的隐藏单元为256,branch-3的GRU模块的隐藏单元为128;训练图像裁剪为256\times 128;训练时使用随即擦除和随机水平翻转来做数据增强,P和K为16,8;训练epochs为150;使用Adam作为优化器,Adam的权重衰减和初始学习率分别设置为5\times 10^{-4}2\times 10^{-4},学习率根据以下更新规则设置:

设置所有的\lambda _{i}(i=1,2,3,4,5)为1,thre设置为0.5.

   在测试过程中,图像也被裁剪为256\times 128,对于DukeMTMC-reID and Market-1501,使用特征f_{OIM}作为最终描述符来检索。

对于CUHK03数据集,使用f_{Trip}来检索。注意,我们只使用全局特征来检索,因为我们发现仅采用全局特征进行检索的性能几乎与融合特征一样好。我们推测这是因为全局特征已经可以通过基于部分的分支关注到不同局部人体之间的上下文信息,因此,结合包含上下文信息的局部特征并不能明显提高全局特征的性能。此外,应用融合特征进行检索非常耗时,尤其是面对大型图库集时。因此,我们只使用全局特征进行检索。

C.与最先进的方法进行比较

将我们的方法与最先进的方法进行比较,包括DNS , Gated Siamese ,HydraPlus-Net , CNN+DCGAN , SVD-Net , Deep Transfer , TriNet , PCB , Deep-Person, PCBCRPP , Part-Aligned , JLML , GOG ,OIM , PAN , ACRN , SPReID 。其中SPReID实现了最好的表现,详细结果如下:

(1)在Market-1501数据集上

使用751个身份的12936张图片进行训练,用剩下的750个人的19732张图片来测试。

(2)在CUHK03数据集上

(3)在DukeMTMC-reID数据集上

D.消融实验和讨论

为了评估模型中每个组件的有效性,我们设计了几个具有不同配置的基线模型进行比较。对比实验的细节如下:

(1)基于GRU的部分特征学习的影响

   Our-G :抛弃基于GRU的部分特征学习分支,即branch-1和branch-2,并用剩下的分支训练网络;

   Our-G-B1: Our-G  +  branch-1

   Our :Our-G  +  branch-1 +  +  branch-2

(2)挖掘通道之间相关性的影响

    Our/channels  : 丢弃branch-3

(3)行人描述符选择

    如上所述,我们用特征f_{Trip}作为行人描述子来在CUHK03_labeled数据集上进行重识别,对于Market-1501 and DukeMTMC-reID,用f_{OIM}来检索。为了验证这种选择策略:

    可以看到,当使用f_{OIM}作为CUHK03的描述子,mAP和Rank-1的精度明显下降,我们推断这是因为CUHK03数据集包含很多身份且每个身份只有有限的图像样本(平均9.6),使用这种规模的数据集来训练多分类branch-3可能导致过拟合,所以我们使用f_{Trip}作为最终的表示。与[6]不同的是,与f_{Trip}比较,f_{OIM}在Market-1501 and DukeMTMC-reID上实现了更高的结果。这表明OIM loss在较大的数据集上会实现更好的性能。

(4)损失设置的权重

      为了揭示权衡参数变化对所提出的深度架构性能的影响,我们设置了五组不同的参数值:

(5)测试内存和特征提取时间花费

两种方法的batch sizes都设置为128  ;NvidiaTITAN Xp card

五、总结

     在本文中,我们提出了一个全方向特征学习深度模型,所提出的方法可以从垂直和水平方向学习带有空间信息的部分表示,我们使用一个GRU模块来挖掘通道之间的相关性,再者,利用triplet loss 和 OIM loss同时学习一个相似度度量和全局特征。在CUHK03, Market-1501和 DukeMTMC-reID数据集上做了大量实验,证明所提出的深度架构实现了最先进的结果。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值