BFENet:Batch Feature Erasing for Person Re-identification and Beyond(网络阅读笔记)

5 篇文章 1 订阅

论文连接:《Batch Feature Erasing for Person Re-identification and Beyond》

代码链接:https://github.com/daizuozhuo/batch-feature-erasing-network

 

摘要

    本文提出了一种新的训练机制——批特征擦除(BFE),用于行人再识别。应用该策略,以ResNet-50为backbone,训练了一个具有两个分支的新型网络。这两个分支由一个传统的全局分支一个使用BFE策略的特征擦除分支组成。在训练特征擦除分支时,我们在一个batch中随机擦除所有特征映射的相同区域。然后,网络将这两个分支的特征连接起来,以便对人进行重新识别。虽然简单,但我们的方法在行人的再识别方面达到了最新的水平,适用于图像检索问题中的一般度量学习任务。例如,我们在cuhk03 - detection dataset上实现了75.4%的Rank- 1准确率,在Stanford Online Products dataset上实现了83.0%的Recall-1得分,大大超过了现有的作品(超过6%)。

 

1 引言

    行人重识别(reid)是指从多个检测到的行人图像中识别同一个人,通常从不同的相机上看,没有视图重叠。它在监控领域有着重要的应用,在计算机视觉领域也面临着巨大的挑战。最近的研究大多集中在学习合适的特征表示,这对姿态,光照,和视角的变化很鲁棒,以方便人的重新识别。其中,许多作品[21、46、47、72、69]试图对不同的身体部位进行定位,并将其相关特征进行对齐,而其他作品[8、25、28、29、49、54、54、62]则使用粗糙分区或注意选择网络来提高特征学习。

    本文研究了行人re-id神经网络训练的优化过程。我们提出了一种简单却出奇有效的训练机制,即批特征消除(BFE)它随机删除了同一batch图像中所有学习到的特征映射的块。这类似于并行工作[13]中的DropBlock,它丢弃空间相关的特性,将drop-out推广到卷积层。与DropBlock不同,我们提倡批量处理,即以一致的方式裁剪同一批中的所有图像。当输入图像大致对齐时,比如person re-ID,这种批处理操作对于度量学习之类的任务特别有用。直观地说,它在同一批图像中禁用与语义部分相关的所有特征,例如头、腿或包等,以迫使网络更好地表示剩余的特征。图1举例说明了这个想法。

    这种简单的训练策略可以显著提高行人重识别能力。在CUHK03-检测数据集上,采用hard triplet loss[15]的ResNet-50架构[14]和我们的批特征擦除(BFE)实现了74.4%的rank-1精度,比最先进的[56]高7.6%。

    该批特征擦除也可用于不同的度量学习方案中,包括triplet loss[38,15]、提升结构损失[33]、基于加权采样的边缘损失[60]和直方图损失[52]。我们在CUB200-2011 [55], CARS196 [20],上进行了图像检索任务的测试。在商店服装检索数据集[30]和斯坦福在线产品数据集[44]上,BFE可以不断提高各种方案的Rank-1精度。

2 相关工作

    由于人的姿态、背景、光照和摄像条件的变化,行人重识别是计算机视觉中的一项具有挑战性的任务。历史上,人们使用手工特征来重新识别人[4,9,26,27,31,32,35,36,64,75]。最近,基于深度学习的方法主导了人的再识别基准[5,40,48,69,71,77]。

    行人重识别的构造已经从一个分类问题逐渐演变为一个度量学习问题,其目的是为输入图像寻找嵌入特征(embedding feature),从而度量其语义相似性。该研究[74]在Market1501数据集上比较了这两种策略。目前度量学习的工作主要集中在损失函数的设计上,如contrastive loss[53]、triplet loss[33][8,28]、提升结构损失(lifted structure loss)[33]、triplet loss[6]、直方图损失[(histogram loss)52]等。除了损失函数外,距离加权采样[60]、hard triplet minig[15]、边缘采样等硬样本挖掘方法对最终的检索精度也至关重要[61]。另一项工作[67]也研究了互学在度量学习任务中的应用。本文提出的批量特征消除方法是一种通用的训练策略,适用于多种具有不同损失函数的度量学习公式。

    人体是高度结构化的,区分出相应的身体部位可以有效地确定身份。最近的许多研究[28,49,51,54,56,59,65,67,68]总结了不同身体部位的显著特征和人的真实身份的整体线索。其中,基于部件(part-based)的方法[8,49,56]实现了最先进的性能,它将输入的特征图水平分割成固定数量的条带,并从这些条带中聚合特征。然而,将多个分支的特征向量聚合在一起通常会导致复杂的网络结构。相比之下,我们的方法只涉及一个具有两个分支的简单网络,其大小是目前最先进的MGN方法[56]的三分之一。

    为了处理不完善的边界框检测和身体部位的错位,许多工作[25、40、41、42、76]利用注意机制来捕捉和聚焦注意区域。显著性加权[57,70]是解决这一问题的另一种有效方法。受注意力模型的启发,Zhao等人[69]提出了部分对齐的person re-ID表示。基于类似的思想,[18,22,23,29]的作品也表现出了优异的性能,将区域注意选择子网络纳入到person re-ID模型中。为了学习对姿态变化具有鲁棒性的特征表示,姿态引导注意方法[21,46,72]通过姿态估计和人体解析网络融合了人体不同部位的特征。然而,这些方法容易受到姿态估计和语义分析算法的干扰。

    为了进一步提高检索精度,还采用了重排序策略[2,80]和具有特定人物属性的推理。近期的工作还引入了合成训练数据[3]、反向遮挡样本[17]和GAN生成的未标记样本[78],显著增强了输入训练数据集的变异性。[12]中的工作将从一般分类数据集中学习到的表示方法转换为处理person re-ID问题的数据稀疏性。值得注意的是,上述策略也可以与我们的方法联合使用。

3 问题公式化

    行人再识别通常被表述为一个图像检索问题,其目的是从大量候选图像中找出最相似的图像。这个检索问题可以通过找到一个嵌入(embedding)函数 f( . ) 和一个度量函数 D( . ; . ) 来解决,其中嵌入将输入图像 x 映射到高维特征向量 f(x) 和度量D(f(x) , f(y)衡量两个嵌入向量 f(x) 和 f(y) 之间的相似性。

    在本文中,我们简单地把欧几里德距离作为度量D( . ; 0)并尝试训练神经网络学习embeddingf(.)。我们将一般的图像检索问题描述如下。给定一个包含 C类的数据集 X,我们将其分为训练集 Xtrain 和测试集 Xtest,分别包含Ctrain 类和 Ctest 类。注意,Ctrain 和 Ctest之间没有重叠(即,训练集中的类别和测试集中的类别完全不一样)。我们训练网络从 Xtrain 中采样的图像batch中学习具有适当损失函数的嵌入 f( . )。在测试过程中,我们首先计算了 Xtest 中所有图像的特征嵌入,建立了嵌入向量Ftest 的数据库。然后对 Xtest 中的每个测试图像q,计算其 fq,并在嵌入数据库 Ftest 中搜索 k 个最近邻(KNN)。查询图像本身的嵌入被排除在这 K 个最近邻之外。对于每个返回的KNN结果,如果它的类与查询图像的类相同,我们认为它是正确的。

    行人重识别可以看作是图像检索,其中每个Person对应一个类。此外,每个人的图像都有一个相机ID,表明它是从哪个相机捕获的。在行人重识别中,为测试集中 Xtest 中的每个人选择具有挑战性的查询图像,以形成查询数据集Xquery。gallery 数据集 Xgallery由剩余的测试图像组成。换句话说,将行人重识别数据集 X 拆分为 Xtrain、Xquery 和 Xgallery。训练集 Xtrain 包含Ctrain 行人标识,而 Xquery 和 Xgallery 包含相同的 Ctest 标识。我们的行人重识别的训练过程与一般的图像检索过程完全相同。在测试过程中,我们计算了gallery 数据集的嵌入(embeddings)数据库Fgallery,并在 Xquery 中查询每个查询图像的 KNN 结果。为了使问题更具挑战性,我们只考虑当查询图像具有相同的人身份和不同的相机ID时,结果是正确的。

4 批特征擦除(BFE)网络

    本节描述了如何将批处理特征擦除(BFE)应用于行人重识别和图像检索的神经网络中。

    backbone 网络:我们使用ResNet-50[14]作为backbone网络来提取尽可能多的行人特征。在最近的工作[49,56]之后,我们还对backbone ResNet-50进行了轻微的修改,其中没有使用阶段4开始时的下采样操作。这样,我们就得到了一个尺寸为2048*24*8的更大的feature map。

    ResNet-50 baseline:在这个backbone网络的顶部,我们附加了一个分支,它表示为全局分支。具体来说,在ResNet-50的第4阶段之后,我们使用全局平均池化得到一个2048维的特征向量,通过一个1*1个卷积层、一个batch normalization层和一个ReLU层,将triplet loss和softmax loss的维数进一步降低到512。在下面的小节中,我们将backbone网络和全局分支一起表示为ResNet-50 baseline。我们的baseline在Market- 1501数据集上实现了90.4%的Rank-1精度和75.5%的mAP,在Rank-1(+17.9%)精度和mAP(+29.5%)方面都大大优于IDE[74]。

                                                                      算法 1. 批特征擦除层 

    批特征擦除层:给定了单batch输入图像经backbone网络计算得到的特征张量 T, BFE层随机擦除张量 T 的同一区域,擦除区域内的所有单元均归零。具体算法如算法1所示。我们还可视化了 BFE 层在图2中的triplet loss函数中的应用,同时也可以应用于其他损失函数[33,52,60]。擦除区域的高度和宽度因任务而异。但是一般来说,被擦除的区域应该足够大,能够覆盖输入特征图的语义部分。

图1:(a)同一batch的输入图像。(b)对应的特征响应映射自backbone网络(ResNet-50[14])的最后输出,其中灰度强度表示特征向量L2-norm。我们的批特征擦除(BFE)将在所有的图像裁剪掉大部分的feature map,例如红色框。这将禁用与bag和腹部相关的特征,并迫使网络优化其他区域的特征表示。 

                                                        图2:在triplet loss函数[38]上演示的批特征擦除层。

    BFE 网络结构:我们的BFE网络由一个全局分支和一个特征擦除分支组成,如图3所示。引入全局分支有两个目的。首先,它提供了全局特征表示。其次,它对特征擦除分支的训练进行监督。然后将特征擦除分支应用于特征映射 T 上的批特征擦除层,并提供批擦除的特征映射 T‘。然后,我们应用全局最大池化来得到2048维特征向量。最后,将特征向量的维数从2048降为1024,同时考虑了triplet loss和softmax loss。我们的网络中不使用Dropout[45]。

 图3:我们的批特性擦除(BFE)网络的结构与批处理硬三重损失(batch hard triplet loss)[15]展示的行人重识别问题。全局分支是在ResNet-50阶段4之后附加的,而特征擦除分支引入了一个掩码来裁剪瓶颈特征映射中的一个大块。在测试期间,来自全局分支和特征擦除分支的特征被concatenate起来作为行人图像的最终表示。

    在特征图 T上应用堆叠的ResNet bottleneck卷积层摸块[14]是关键。没有它,全局平均池层和全局最大池层将同时应用于T上,使得网络难以收敛。根据我们的观察,在特征擦除层之后,平均池化是不稳定的,因此我们在特征擦除分支上使用全局最大池化,而不是平均池化。

    然后,将全局分支和特征擦除分支的特征串联起来作为行人图像的嵌入向量(embedding vector)。这里,有三点值得注意。1) BFE层无参数,不会增加网络大小。2) BFE层可以很容易地用于除行人重识别之外的其他度量学习任务。3) BFE超参数在不改变网络结构的情况下可调,适用于不同的任务。

    损失函数:损失函数是全局分支和特征擦除分支上的soft margin batch-hard triplet loss(软间隔硬批次triplet loss)[15]和softmax loss之和。具体地说,soft margin batch-hard triplet loss 定义为:

 
    其中 P 为不同的人的数量,K 为每个人的图像数量,所以每个batch中有 P*K 个 triplets。表示 batch-hard triplet loss。对于每个anchor图片 ,我们选择具有最大距离相同的身份(identity) i 作为正图片(positive image)。并从一个具有最小距离不同的身份 j 作为负图片(negative image)。因此,形成一个triplet。是 batch 中所有triplets 的 soft margin batch-hard triplet loss之和。D ( . , .).为欧式距离函数, 为 BFE 网络学习到的特征嵌入。

5 实验

    我们在基准行人重识别数据集上验证BFE网络。在标准图像检索数据集上测试了具有不同度量学习损失函数的 BFE网络。

5.1 行人重识别实验

5.1.1 数据集设置

    我们测试了三个常用的行人重识别数据集,包括Market-1501[73]、dukemtc - reid[37,78]和CUHK03[24]数据集。我们还采用了与近期作品[15,49,56]相同的策略来生成训练、query和gallery数据。请注意,原始的CUHK03数据集被分成20个随机训练/测试分割,用于交叉验证,这通常用于基于手工特征的方法。实验中采用的新的分割方法进一步对训练图像和gallery图像进行分割,并选择具有挑战性的query图像进行评价。因此,CUHK03数据集成为三者中最具挑战性的数据集。

    在训练过程中,将输入图像的大小调整为384*128,然后通过随机水平翻转、归一化和随机擦除等方法进行增强[81]。在BFE层,我们设置擦除高度比 rh 为0.5,擦除宽度比r w为1.0。所有行人重识别数据集中都使用相同的设置。测试图像的大小被调整到384*128,并且只用normalization 进行增强。

    对于每个 query 图像,我们将所有的 gallery 图像按照它们到查询图像的欧氏距离的递减顺序进行排序,并计算累积匹配特征曲线(CMC)。采用rank-1精度和平均平均精度(mAP)作为评价指标。与查询图像具有相同身份和相同相机ID的结果不计算。值得注意的是,所有的实验都是在一个单一query设置中进行的,为了简单起见,没有重新排序[2,80]。

5.1.2 训练

     我们的网络使用4个GTX1080 gpu进行训练,批batch-size为128。每个标识(identity)在一个batch中包含4个实例图片,因此每个批处理有32个标识。backbone ResNet-50是从ImageNet[10]预训练模型初始化的。我们使用batch hard soft margin triplet loss[15]来避免边值参数。我们使用Adam优化器[19],初始化基本学习率为1e-3,然后在100个epochs衰减为1e-4,在300个epochs后进一步衰减为1e-5。整个训练过程有600个epoches,约2小时。

5.1.3 和state-of-the-art比较

    我们的BFE网络与 CUHK03、DukeMTMCreID和Market-1501数据集的最新方法的统计比较如表1所示。我们还展示了BFE256+512的结果,它生成了一个更紧凑的特征嵌入。结果表明,该方法在CUHK03和dukeMTMC-reid数据集上均取得了较好的性能,并在Market1501数据集上取得了较好的性能。值得注意的是,我们的方法相对于以往的方法对CUHK03-Detect数据集取得了最大的改进(即 Rank-1精度7.6% ),该数据集是目前最具挑战性的数据集。对于dukemtc - reid和Market1501数据集,我们的模型只能达到与MGN[56]相似的性能。然而,值得指出的是,MGN得益于一个更大、更复杂的网络,该网络生成8个特征向量,8个分支由11个损失函数监督。模型大小(即,参数个数)MGN是BFE网络的三倍。

表1:与CUHK03、dukemtc - reid和Market1501数据集上现有的person re-ID方法的比较。BFE256+512表示全局分支的特征维数为256,擦除特征分支的特征维数为512。 

    图4显示了一些示例查询结果。我们可以看到,给定一个后视图人的图像,BFE甚至可以检索同一个人的前视图和侧视图图像。

图4:来自所提出的BFE网络的CUHK03-Label dataset上的查询图像的前4个排名列表。正确的结果用绿色边框突出显示,错误的结果用红色边框突出显示。

5.1.4 消融研究

    我们在Market-1501和CUHK03数据集上进行了大量的实验,以分析我们的方法中每个组件的有效性和超参数的影响。

     Triplet和softmax联合训练的好处:BFE网络同时使用triplet  loss 和softmax loss进行训练。表2给出了不同损失组合下Market-1501dataset的性能。可以看出,联合训练方法显著提高了Rank-1精度和mAP性能。

表2:联合训练方法(Triplet + Softmax)对Rank-1准确率(%)和mAP(%)的影响。统计数据是从Market-1501数据集中收集的。

     全局特征擦除分支的好处:如果没有全局分支,BFE网络的性能会比baseline网络差一些,如表3所示。在这种情况下,BFE层充当正则化方法的角色,类似于DropBlock[13]。BFE网络中双分支结构背后的动机是,它既从全局分支中学习最显著的外观线索,又从擦除分支的特征中学习细粒度的鉴别特征。这两个分支相互加强,对最终的性能都很重要。

        表3:全局分支和特征消除分支对Rank-1精度(%)和mAP(%)的影响。我们从Market-1501数据集中收集统计数据 

    与Dropout比较:Dropout[45]随机地降低输入张量的值,是一种广泛使用的防止过拟合的正则化方法。我们用各种Dropout方法替换了BFE层,并在表4中比较了它们的性能。SpatialDropout[50]随机地将输入张量的整个通道归零。在每次转发调用时,归零的通道都是随机的。这里,batch Dropout意味着我们选择随机的空间位置,并dropouts这些位置中的所有输入特性。BFE与batch Dropout的区别在于,BFE归零是一个大的连续区域,而batch  Dropout是一些孤立的特征。DropBlock[13]表示对于一批输入张量,每个张量随机下降一个相邻区域。BFE和DropBlock的不同之处在于,BFE对一个批次内的每个输入张量都删除相同的区域,而DropBlock则删除不同的区域。这些Dropout方法如图5所示。如表4所示,在person re-ID任务中,BFE比这些不同的Dropout策略更有效。

                                          表4:与cuhk03 - detection dataset上其他Dropout方法的比较。 

    BFE 层超参数的影响:图6 (a)研究了擦除高度比对BFE网络性能的影响。这里,在所有的行人重识别实验中,擦除的宽度比固定为1.0。可以看出,当擦除高度比为0.2 ~ 0.7时,Rank-1精度和mAP测量的性能明显优于非擦除网络(擦除高度比为0.0)。这也表明BFE层对各种擦除比设置具有鲁棒性。

 

图6:a)擦除高度比对mAP和CMC评分的影响。擦除宽度比固定为1.0。(b)特征维度对mAP和CMC评分的影响。对cuhk03 - detection数据集进行统计分析。

    embedding维度的影响:维度越高的特征描述符表达能力越强,但在评估过程中可能会出现过度拟合。通常,BFE网络使用512+1024维的嵌入,其中来自全局分支的特征向量为512-维,来自特征擦除分支的特征向量为1024维。在图6 (b)中,我们比较了128+256维、256+512维、512+1024维和1024+2048维等不同特征维的性能。表1和图6显示最佳维度在数据集中是不同的。CUHK03更喜欢较低的维度,因为它有过度拟合的问题,而其他数据集更喜欢较高的维度。一般来说,512+1024维是一个合理的设置。

    特征擦除分支的平局池化 vs. 最大池化:BFE网络在全局分支上使用全局平均池,与原来的ResNet-50网络[14]相同。在图7中,我们比较了不同池方法的特性擦除分支的性能。我们发现,带有最大池的特征擦除分支的rank-1精度先增大,然后逐渐趋于稳定。它也始终优于平均池。因此,经验证据证明了最大池化对于鲁棒收敛和增强特征消除分支性能的重要性。

5.2 图像检索实验

BFE网络结构可以直接应用于图像检索问题。

5.2.1 数据集设计

    对常用的图像检索数据集进行了评价,包括CUB200-2011[55]、CARS196[20]、Stanford online products (SOP)[33]和In-Shop Clothes检索[30]数据集。对于CUB200-2011和CARS196,由于我们的BFE网络要求输入图像大致对齐,所以使用剪裁过的数据集。实验装置与[33]相同。我们在表5中显示了四个图像检索数据集的统计信息。

    在长宽比固定的情况下,将训练图像填充并调整为256*256,然后随机裁剪为224*224。在测试过程中,将CUB200-2011、店内服装检索数据集、SOP图像在较短的一侧填充后缩放到256*256,将CARS196图像直接缩放到256*256。在BFE层中,擦除高度比和宽度比都设置为0.5。我们使用标准的Recall@K 指标来度量图像检索性能。

5.2.2 和state-of-the-art比较

    表6显示,我们的BFE网络在所有实验图像检索数据集中获得了最佳的Recall@1评分。特别是,BFE网络在小型的CUB200- 2011数据集上实现了一个明显的改进(+3.5%),这也是最具挑战性的。大型斯坦福在线产品数据集,包含22634个类别,120053张产品图像,我们的BFE网络超过了最先进的6.7%。我们可以看到,我们的BFE网络适用于小型和大型数据集。

表6:Recall@K(%)与其他最先进的度量学习方法在CUB200-2011(剪裁)、CARS196(剪裁)、店内服装检索和斯坦福在线产品数据集上的得分比较。 

5.2.3 适应其他度量学习方法

    由表7可以看出,我们的BFE网络也可以与其他标准的度量学习损失函数一起使用,如提升结构损失[33]、加权采样裕度损失[60]、直方图损失[52]等来提高性能。为了公平比较,我们在ResNet-50 baseline和BFE网络上重新实现了上述损失函数,以评估它们的性能。在这里,ResNet- 50 baseline和BFE网络的唯一区别是BFE网络有一个额外的特性擦除分支。虽然ResNet-50 baseline的性能优于工作[60]中报告的结果(+1.8%),但是BFE网络仍然可以大幅度提高结果(+7.7%)。因此,我们可以得出结论,所提出的BFE网络可以很容易地推广到度量学习中的其他标准损失函数。

表7:BFE网络性能对其他标准损失函数的度量学习方法。这些统计数据基于CUB200-2011(剪裁过的)数据集。“Baseline”指第4节中定义的ResNet-50 baseline。

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值