【ReID】Learning Discriminative Features with Multiple Granularities for Person Re-identification

阅读2018 ACM Multimedia一篇著名SOTA,Learning Discriminative Features with Multiple Granularities
for Person Re-Identification[1],文章设计了一个结合多分支和表征度量双学习策略的切片网络,提取全局粗粒度和局部细粒度特征。通过多种细粒度特征的提取和学习来得到更好的具有判别力的表征,实验显示MGN在多个benchmark数据集达到当时的新SOTA。

论文一览:

【ReID】Learning Discriminative Features with Multiple Granularities for Person Re-identification

痛点

当前最直觉的行人表征方法就是提取图片全身的辨别信息,也被称为全局特征学习。

全局特征学习的目的是捕获最明显的外表线索来表示id。但由于ReID训练集缺乏足够的规模和多样性,一些不那么明显的的或者出现频次低的细节特征往往很容易被忽略。这些被忽略掉的细节对全局特征学习就没法提供增益了。这使得全局特征很难适应相似的类间通用属性或较大的类内差异。

为了解决这种问题,局部特征学习被摆上台面。

在局部特征学习中,每个局部body part都有model的一部分进行区域提取,同时通过定位操作来过滤区域之外其他相关或不相关信息的干扰,这使得局部特征能够专注于更细粒度的id,甚至作为全局特征的补充。

如图下,作者发现从最粗粒度的whole image到2切片,到3切片等等一直下去,切片特征的细粒度会不断提高。当这种切片越来越多,细粒度的辨别力也越来越高。基于此作者设计了多粒度网络Multiple Granularity Network
(MGN)
【ReID】Learning Discriminative Features with Multiple Granularities for Person Re-identification

模型

分类任务的监督信号强制将要素正确分类为目标身份,这也推动了学习过程试图在有限的信息中探索有用的细粒度细节。文章提出的MGN从ResNet50的基础上改进而来,文章结构图以及我根据源码加的注释如图(本图内容原创,注释模式参考了博客[2]):

【ReID】Learning Discriminative Features with Multiple Granularities for Person Re-identification

可以看到图中ResNet50 backbone保留了ResNet50的结构一直到layer3[0](以pytorch为准),而后分为三个branch,分别为global branch,part 2 branch和part 3 branch。

global branch提取全局特征表征,学习特征中最显著的外观信息。其结构包括resnet50中的layer3[1:]和resnet50.layer4(就跟resnet50一样),后通过global maxpooling得到特征向量,经过1x1Conv降维后的分别得到triplet loss特征(蓝色箭头),和经过fc层得到id loss特征(红色虚线箭头)。

part 2 branch提取2切片特征,能够关注更细粒度表征,作为global feature的补充。经过resnet50.layer3[1:]和3个bottleneck模块(每个bottleneck模块为3个conv+bn,最后+relu结构),而后再分为两个分支,一个上分支与global branch类似,经过global maxpooling和1x1Conv降维得到triplet loss特征,再经过fc层得到id loss特征,这里相当于提取part 2 branch的global feature。下分支则maxpooling为(32,2048,2,1) 的张量,此时直接切片为两个(32,2048,1,1)的feature,后通过1x1Conv降维和fc layer求得两个切片分支的id loss。这样的处理真的神似PCB[3]。

part 3 branch提取3切片特征,前面和part 2 branch结构一样,上分支求得特征分global maxpooling为(32,2048,1,1),经过降维的到triplet loss特征,再经过fc层得到part 3 branch的global id loss特征。下分支mapooling时下采样为(32,2048,3,1)的张量,然后水平切为3份,分别通过1x1Conv和fc layer求得id loss的特征。

综合看,一共3个branch,由于每个branch都要求一次global id loss,所以有3个id loss feature。同样每个branch也要求一次triplet loss,所以有3个triplet loss feature。其中part 2 branch还要求2个切片的id loss,part 3 branch要求3个切片的id loss,这样MGN网络在training总共有11个feature要输出。加上test有12个feature要输出。

【ReID】Learning Discriminative Features with Multiple Granularities for Person Re-identification

训练的时候,3个用于triplet loss的feature求得后会取平均;而所有的 softmax loss(id loss)求得后也会求平均,两边各自平均之后再直接累加起来得到一个总的loss,再进行反向传播的训练。

在测试阶段,跟正常流程类似,如此多分支的feature不进入fc层(不进入fc层,global id loss支路和triplet loss支路用的就是同一个feature,所以总计为3个,切片feature总共5个,所以一共5+3=8个),而直接将这8个feature堆叠起来,经过降维feature map size为(32,256),8个concatenate起来就是(32,256*8=2048),这个融合的(32,2048)feature即为test时候的feature。

实验

Market1501上的SOTA实验如下,分为了single query和multiple query。可以看到当时即使没有使用re-ranking都已经超过PCB两个点了。

【ReID】Learning Discriminative Features with Multiple Granularities for Person Re-identification

Market的可视化rank如图,绿色框框为正确image,红色框框为错误image。

【ReID】Learning Discriminative Features with Multiple Granularities for Person Re-identification

最后一位行人展示了背着黑色背包的背影,但可以在前视图中以3、6和9 rank获得他的捕获图像。作者认为这归因于局部特征的影响,当某些显着部分被遮盖时,它们会建立丢失的显著性关系。

Duke的SOTA实验如下:

【ReID】Learning Discriminative Features with Multiple Granularities for Person Re-identification

CUHK03的SOTA实验如下:

【ReID】Learning Discriminative Features with Multiple Granularities for Person Re-identification

分离实验如下,可以看到加了part4反而掉点了,而不管是triplet branch还是part2 part3都有提点,为结构合理性背书

【ReID】Learning Discriminative Features with Multiple Granularities for Person Re-identification

attention map可视化如下:

【ReID】Learning Discriminative Features with Multiple Granularities for Person Re-identification

可以看到背景首先被滤除了,global branch注意的是全身,而part branch注意的是一些细节。此即为multiple granularity的真谛呀。

写作


(3 MULTIPLE GRANULARITY NETWORK 第二段第一句)Actually, local feature learning in previous part-based methods
only introduces a basic granularity diversity of partitions to the
total feature learning procedure with or without empirical prior
knowledge.

很棒(o)/~


(1 INTRODUCTION 第四段句3)We define the original image containing
only one whole partition with global information as the coarsest
case, and as the number of partitions increase, features of local
parts can concentrate more on finer discriminative information in
each part stripe, filtering information on the other stripes.

很精要易懂的阐述了过程的意义。

问题

"
(ABSTRACT)Previous part-based methods mainly focus on locating regions with specific pre-defined semantics to learn local representations, which increases learning difficulty but not efficient or robust to scenarios with large variances.
"

作者认为特定预定义的局部信息会增加模型学习的难度,且对于差异较大的场景表现得不够有效和鲁棒。这是个可以深挖的点,但是光diss不讲道理是不行的。

"
(Figure 1)The more stripes images are divided into, the finer the granularity of partitions is.
"

作者认为切片越多,切分的细粒度越高。这个事情绝不是思想实验看起来这么简单,如果越切片细粒度越高,那切片数多了以后很多模型的performance表现反而更差了,这怎么解释呢?这个时候又来承认过高的细粒度会丢失特征就赖皮了昂。

本文结合triplet loss并不是新东西,甚至只能算一种trick。本文最大的贡献还是发现多分支切片策略的有效性,提供了自PCB直接切片以来的切片特征方法新样式,这种方法的内在逻辑是什么?能否结合到统一框架中?

参考文献

[1] Wang G, Yuan Y, Chen X, et al. Learning discriminative features with multiple granularities for person re-identification[C]//Proceedings of the 26th ACM international conference on Multimedia. 2018: 274-282.

[2] https://blog.****.net/m0_37731749/article/details/97169239

[3] Sun Y, Zheng L, Yang Y, et al. Beyond part models: Person retrieval with refined part pooling (and a strong convolutional baseline)[C]//Proceedings of the European Conference on Computer Vision (ECCV). 2018: 480-496.