Learning Discriminative Feature with Multiple Granularities for Person Re-Identification
Abstract
Global和partial feature结合。提出了MGN: Multiple Granularity Network,多分支的深度网络:一个全局特征(global feature representation)分支,两个局部特征分支。本文将图片(抠出来的人物图)统一分割成几个区域,并在不同的局部特征分支上改变number of parts,来实现多细粒度。
在Market-1501, DukeMTMC-reid 和 CUHK03三个数据集上达到了SOTA。
1. Introduction
行人ReID的主要挑战来自于人体不同的姿态,遮挡,衣物,背景的杂乱信息,以及detector的漏检等。
一个直觉性的提取行人特征的方法是直接对检测框抠图出来的所有行人图片进行特征提取,也就是全局特征。全局特征的目的是捕捉不同行人间最明显的特征来代表这个人,比如衣服的颜色。但这个方法在大型场景下(行人多而复杂)有局限性。在一个场景中学到的全局特征,也往往不好迁移到别的场景去。
为了缓解这些问题,一些方法提出可以先去定位突出的身体部分,每一个身体部分只包含这一部分的局部信息,而不会包含其他部分的干扰信息。这样我们就能训练局部特征更多地集中在identities,并让其对全局信息起到辅助作用。
基于身体部分的行人ReID方法大致可以分为三种:
用强结构信息来定位身体部分,比如基于人体比例的经验信息,或者利用姿态估计算法。
用Region proposal methods来定位身体部分。
Enhancing features by middle-level attention on salient parts
但是这些方法也有明显的缺点:
第一,姿态或者遮挡的变化会影响局部特征的稳定性(比如当严重遮挡时你分割出来的身体部分可能已经完全不是目标任务的身体部分了)
第二,these methods almost only focus on specific part with fixed semantics, but cannot cover all the discriminative parts
第三,大多数的前作都不是端到端训练,这增加了模型学习的难度。
本文提出了一个结合全局信息和不同细粒度的局部信息的特征学习策略,如Fig 1所示:
不同的分割区域数量就引入了不同的细粒度。本文定义Global Branch仅仅包含整个人物的图片(不分割),随着被分割的区域个数增多,局部特征包含的更精细的区分信息就越多(其他身体部分的信息都会排除掉了)。既然深度学习机制可以在整张抠图上捕捉人体上的大致注意力信息,那么它也可以捕捉到局部特征中更集中的显著性偏好。MGN就是基于这样的idea,把整个网络分成了一个全局和两个局部分支。
MGN的每个局部分支中,我们把globally-pooled feature maps分成了不同数量的stripes,作为部分人体的区域,来单独学习局部特征。和其他方法相比,本文的局部特征只利用了equally-divided parts,却超过了之前的方法。
3. Multiple Granularity Network
3.1 Network Architecture
如Fig 2所示:
Backbone 是 ResNet-50,在此网络的res_conv4_1 residual block之后,网络结构被分成了3个分支,每个分支和原始的ResNet的后续结构类似。之后各自经过1x1 conv 层减少channel数,最后concat起来成为一个代表当前行人的完整的feature map。
3.2 Loss Functions
分类 -> Softmax Loss
metric-learning -> Triplet loss
3.3 Discussions
Diversity of granularity
3个分支实际上学到的不同的重点的feature representation。全局分支有着大一点的感受野和global max-pooling,它捕捉到的是整体性的、稀疏的特征。而局部分支中没有用strided convolution,且作用在人体部分的图片上,得到的特征更加精细(但是没有全局信息)。不同分支学到了不同侧重点的东西可以有互补作用,这可能是本模型表现提升的原因。