听说云从科技跨镜追踪(ReID)技术刷新三项世界纪录,就找来他们最近发表的论文来看看。
相关报道
论文地址

摘要

通过结合全局和局部feature来提高跨镜追踪(person re-identification)的精度是很有效的。之前那些基于局部的方法主要关注于特定的预定义的语义来学习局部表征。这增加了训练的难度但是并不高效或者对于高偏差的数据并不鲁棒。这篇论文我们提出了一种端到端的特征学习策略,把不同粒度的判别信息统一起来,我们仔细的设计了Multiple Granularity Network (MGN) 多粒度网络。它是一个多分支深度网络结构,包含了一个全局信息表示分支,还有两个用于局部特征表示的分支。和基于语义区域的学习不同。我们统一的把把图像分割成几个条,并且在不同的局部分支上变化分块的个数,用于获得不同粒度的局部特征的表示。我们基于主流的测试数据Market-1501,DukeMTMC-reid
以及CUHK03设计了我们的综合实验。试验证明,我们的方法稳定,而且比现有主流方法有明显提升。比如以Market-1501 数据集单查询为例,我们实现了经过re-ranking后的Rank-1/mAP=96.6%/94.2% 的表现。

介绍

跨镜追踪是一个很有挑战性的任务,从不同监控摄像头拍摄的行人图片里获取一个给定的行人。从监控视频截图的场景复杂,对于Re-ID最大的挑战来自于人的多变,比如姿势,遮挡,衣服,背景复杂,识别失败等。随着深度卷积网络的发展,引入了很多更强的表征,可以更好的判别和增加鲁棒的识别行人。这也把Re-ID推入一个新的层次。就在最近的几个月里,很多深度Re-ID方法已经在识别率和mAP值方面有了突破。

对于行人表征的直觉的方法是从图片上整个身体提取辨别特征。全局特征的学习是去获取哪些最重要的可以分辨不同行人外观的表征。在大规模 Re-ID的场景下,因为监控视频图像的复杂性,让Re-ID的精度不高。而且因为Re-ID训练数据总量以及多样性欠缺,让模型放弃了很多不是很重要的特征或者不常见的特征,这样在判别时对于有很多相似共同点的人或者有较大intra variances的时候适用性不强。
为了解决这个问题,从图像中定位重要的身体部位来提取局部信息的表征已经被证明是一种有效的途径来改进Re-ID的精度。每个局部身体部位只包含整体信息的一部分。因为它只关注与局部,不受外部信息影响,所以更加能学到局部特征。并且可以作为对全局特征的重要补充。
基于局部信息的Re-ID可以根据他们使用的局部定位方法不同分为3个流派:
1. 用强结构信息来定位身体局部区域,比如根据对人体构造的经验知识。或者用强的基于学习的姿势信息。
2. 用region proposal方法来获取特定的区域。
3. 在中间层对显著的身体区域做feature增强。

这些方法有很明显的不足:
1. 姿势或者遮挡的变化会影响局部特征的可靠性。
2. 这些方法只关注有固定予以的特定部分。
3. 大部分方法都不是端到端的,增加了训练的难度。

这篇文章里,我们提出了一种学习特征的策略。它集合了全局和不同粒度的局部信息。
图1

对身体部分划分从粗到细的粒度,最左边列里是整个身体的图片,它是最粗粒度的。中间和右边的列是将行人从原始图片分成2个和3个条状块。分的条越多,细节粒度就越小。

如图1所示,不同数量的分割条引入了粒度的多样性。我们定义一个全局流,包含着唯一的全局信息。这也是粒度最粗的情况。当分割的数量越多,每个分割的小图里就更能集中发现这个小区域里的区别信息,并不受其他相邻区域干扰。因为深度学习的机制保证了能从整幅图里将注意力集中到人的身体上。同样,也可以从每个小的区域里提取到更集中的一些显著的特征。需要注意的是,这些局部区域并不需要根据语义特别设置,这些区域只是将原始图片进行等分。根据我们的观察,随着观察区域的缩小,对于区别信息的识别程度越高。基于这个动机,我们设计了这个多粒度网络Multiple Granularity Network (MGN)。它是一个多分支的网络结构,可以分为一个全局和两个局部分支。从ResNet-50的第四个残差阶段介入。在MGN的每一个局部流里,我们把全局池化后的feature映射到不同数量的条块里作为局部信息用来独立学习局部信息的表征。
和之前给予部分方法相比,我们的方法只利用了等分的块来进行局部特征的学习。但是获得的效果却比之前的都好。另外我们的方法是端到端的。另外我们发现这个多分支的架构也使得多分支协作的提升了各自的表征能力。

相关工作

随着深度学习的兴起,利用深度网络来学习特征变成ReID一个通用的做法。之前通过深度预计网络和身体局部特征学习的网络来解决Re-ID问题就获取了比同时代手动构造特征算法高的精确度。以ResNet-50加上ID-discriminative Embedding(IDE)作为现代深度Re-ID系统表现的基线。人们提出了很多改进它的方法。有的提出精心设计中间层的特征来改进。有的通过引入re-ranking策略来改进精度。
最近几个月,一些深度Re-ID方法将Re-ID带到了一个新的高度。有人提出了一个在训练时基于局部alignment matching来提高精度,也有人沿垂直方向将图片截成几条,然后用LSTM把这些条学到的特征结合起来,在加上全局特征来提高精度。等等,他们虽然有了很大提高,但是表现都和人类差不多。
在所有的关于提高模型表现的策略里,我们认为从部分图片里提取局部表征是最有效的方法。我们建议的是只用简单的水平划分图片来进行局部特征学习。
在Re-ID的系统里,最常用的loss function是clssification loss和metic loss。 一般对于分类我们都用softmax loss。对于metric loss有几种不同的方法,Contrastive loss是在类似Siamese 网络里常用的loss。还有Triplet loss用来根据锚点向量,正向量,反向量来计算loss。在我们的模型里我们同时用到了softmax和triplet loss。

Multiple Granularity Network

图2

上图显示了从不同模型最后输出的不同粒度下的注意力地图。中间列:一个行人图片。左边列:全局注意力地图,右边的列是把原始图片3等分后的图片的注意力地图。
图2显示了从基于IDE baseline model对一个特定图片提取的注意力地图。包括全局和局部分支模型。我们可以发现即使没有显式的引入注意力机制,深度网络经过学习也可以学到对不同的部分作出一些初级的不同的响应。但是为了从复杂的行人图片里去除无关模式,网络深层一般都会集中注意那些身体主体,而不去注意身体的局部的语义模式。因为我们缩小了图片的区域,并且以分类模型来训练学习局部特征。我们可以观察到局部的注意力地图已经开始在一些语义模式上开始聚集。并且也是随着区域大小不同而变化。这个现象反映了图片区域大小和深度网络的关注点,以及它能学到的表征模式之间的关系。
实际上,局部特征的学习在之前的基于部分的方法里只是引入了一个基本的分块粒度多样性。它是用来对所有特征学习的,不管是否用了先验知识。假设有一些合适的粒度,大部分的区分信息的细节都可以被深度网络注意到。基于上边的观察和分析,我们提出了MGN架构来把一个全局和多个细粒度的局部特征结合起来来训练一个更强大的Re-ID模型。

网络架构

图3

如上图所示,我们以ReNet-50作为我们的主干网,然后我们在res_conv4_1块的后边分了3个不相关的分支。他们和原来的ResNet-50有着类似的架构。在测试时,所有的特征被连接到一起来作为最终的行人图片的表征。需要注意的是每个分支里用来降维的1×1卷积和全连接层并不共享参数。每个从特征到特定loss方法的路径表明了一个独立的监督信号。
表1

表1比较了3个分支的setting,输入图片是384×128. map size是指每个分支输出的特征map,Dims指的是不同分支输出的特征的维度和数量。 Feature是output feature表征的符号。
对于全局分支,我们使用了下采样,在res_conv5_1用一个步长为2的卷积,在对应的output feature map接一个全局最大池化(GMP)操作和一个1×1卷积层(带BN),用Relu作为激励函数,最终将2048维的特征降维为256维的特征。这个分支是用来学习全局信息的。
图上的中间和下边的两个分支有着和全局分支类似的网络架构,不同的是我们没有在res_conv5_1块上使用下采样操作。并且输出的feature maps在每个分支都被均匀的水平分成几个块,在每个块上我们独立的应用和全局分支一样的接下来的操作。我们把这些分支叫做Part-N 分支。N代表分的块的数量。
在测试阶段,为了获取最强的区别性能,所有的特征都被缩减到256维,并连接到一起来作为最终的特征,这个特征包含了全局和局部特征。使得学到的特征更加完美。

Loss function

为了释放这个网络架构的最大区分性能。我们使用了softmax loss来做分类,使用triplet loss来做metric学习。
对于基本的区分学习,我们把识别任务看成一个多分类问题,对于第i个学到的特征,f_i,softmax loss的公式为:

其中N是mini batch的batch size,C是分类数。对于三个分支的全局特征我们都用softmax loss,都是应用在1×1卷积降维前。其中包括{Z_g^G,Z_g^{P2},Z_g^{P3}}。对于局部特征f_{pi}^{p2} {\mid}_{i=1}^2,f_{pi}^{p3} {\mid}_{i=1}^3,我们在1×1卷积降维后应用softmax loss。
对于所有的全局特征在经过降维后,都使用triplet loss来增强ranking的性能。我们使用的是batch-hard triplet loss。它是对原始的semi-hard triplet loss的一个改进版:

其中f_a^{(i)},f_p^{(i)},f_n^{(i)}分别代表从锚点图,正样例,负样例提取的特征。其中α是控制margin大小的超参数。也就是正负样本间的差距。这里的正负样本选择的是最远正样本,最近负样本。也就是说选择在一个mini batch里最难区分的正向和负向样本。其中mini-batch里有P个不同的行人,每个行人有K个图片。

讨论

在我们提议的MGN架构里,有几个需要特别讨论的问题。
多分支架构 为什么不把部分和整体的特征放到一个branch里去学习呢?因为那样会降低网络对细节学习的效率。我的的网络共享相同的网络架构(主要是ResNet-50的第四个残差块)来学习行人图片的细节信息。我们也试着把从网ResNet的更深或者更浅的层来接入,发现都没有比这个更好的。
粒度的多样性我们网络的三个分支以不同关注重点学到了行人的表征信息。全局分支有着更大的感受野和global max-pooling,学到了完整但是粗粒度的信息。Part-2 和Part-3学到了局部但是更细节的信息。一个branch分的块越多,学到的信息就越细节。并且不同的branch学到的信息互相帮助,可以提高每个分支的表现。
Softmax&triplet联合训练你可能疑惑对于分类的监督信号对于全局池化特征应用在1×1 filter降维之前。但是对于局部特征都是应用于降维后。这样设置的原因是我们发现如果都在降维后同时使用softmax和triplet loss,网络训练很难收敛,表现下降。现在的设置可以让网络训练稳定的收敛。另外我们对局部特征没有使用triplet loss。可能是因为没有对齐或者其他原因,图片局部内容变化非常剧烈,这样让模型很难训练。

实验

实现

为了获取更多的细节信息,我们把行人图片调整为384×128.我们用ResNet-50基于ImageNet训练的参数来初始化我们的主干和分支网络。对于3个分支我们都是用训练好的ResNet-50的res_con4_1 block后的参数初始化。在训练时,我们只对图片应用了水平翻转来做数据增强。每一个mini-batch,我们都是随机的抽取P个行人,每个行人抽取K个图片。用来使用triplet loss的训练。我们一般设置P=16,K=4。 Margin值我们在整个实验里都设置为1.2。我们选用SGD作为我们的优化器,其中momentum设置为0.9。L2 regularization的weight decay参数设置为0.0005。对于learning rate我们初始化为0.01,我们在训练到40,60个epoch后,分别降低为0.001和0.0001。总共训练了80个epoch。在模型验证时,我们同事提取了原始图片和水平翻转图片的特征,然后用他们的平均值作为最终特征。我们用的是PyTorch。在Market-1501数据集上进行完整训练,自使用2个NVIDA TITAN xp GPU的数据并行加速,一共用了2个小时,不同数据集上,我们用的都是上边的参数设置。

数据集和测试方法

我们在3个现在主流的Re-ID数据集上实验了我们的方法:Market-1501,DukeMTMC-reID,CUHK03。在展示我们的结果之前,先介绍一下这些数据和验证方法。
Market-1501 这个数据集里的数据是从6个摄像头残疾的1501个人。行人已经用DPM detector裁剪出来。整个数据集分为训练集,其中包含751个行人,12936张图片。测试集包含750个人,3368张查询图片,和19732张图片构成的图片库。有单查询和多查询两种验证方式,区别是用来查询的图片数量,如果是多张图片,我们可以把多个图片提取的feature做avg或者max pooling,这样信息和单张查询就更全。
DukeMTMC-reID这个数据集是DukeMTMC的一部分,用来做Re-ID的,它包含了从8个高分辨率摄像头采集的1812个行人的36411个图片。随机选出702个行人的16522张图片作为训练集,剩下的数据里选取702个人来验证,其中包含2228个查询图片,和17661个图片的库。这个数据集是目前最难的一个,因为行人之间都很相似,同一个人的变化又很大。
CUHK03这个数据集包含了从6个摄像头残疾的1467个人的14097张图片,这个数据集里有两种不同的标注:人工打的标签和DPM检测出来的边界框。这个数据上原本被随机分为20份为了做交叉验证。这种验证方式主要是用来做人设计出来算法的验证的,对于基于深度学习的算法来说,太耗时了。
试验方法我们在每个实验数据上计算了CMC(cumulative matching characteristics)的rank-1,rank-5和rank-10。还有mAP(mean average precision),对于Market-1501数据集,我们对单查询和多查询都做了实验。



模块有效性

为了验证网络里的不同模块的有效性,我们进行了剥离实验。实验都是基于Market-1501数据集单图查询模式。其他和对照试验无关的参数都是和上边说的一样。比较的图标如下:

MGN vs ResNet-50 通过结果比较,ResNet-50 和我们的网络不适用triplet loss,我们发现MGN效果明显较好。我们也试了ResNet-101,它和MGN模型有类似的参数量。ResNet-101确实对结果有提高,但是没有MGN好。这说明更深的网络没有我们精心设计的网络结构好。我们的结构更适合用来学习Re-ID的特征。
多branch还是多network我们的在一个network里有多branch和ensemble多个独立的网络类似,但是我们相信多个branch的配合可以比多个独立的network有更好的表现。我们训练了3个独立的ResNet-50,每个代表我们的一个branch。在我们的实验里,我们通过两个方面来看我们多branch的有效性。一方面,从全局的方面,我们比较了MGN和三个独立网络的ensemble。ensemble后的结果确实比每一个独立的网络好,但是还是比MGN差1到2个百分点。不论在Rank-1还是mAP。这证明了多个branch互相是可以促进的。另一方面,从局部特征来说,我们对比了一个branch学到的细节特征和独立网络学到的细节特征,同样,branch学到的细节特征比独立网络更好。我们认为多分支学习,可以互相补足对方的盲点信息。
多分支架构设置多分支深度网络在Re-ID任务里并不少见,但是我们的MGN在多粒度学习上超越了之前的架构设计。基于我们说的架构,我们可以直觉的推导出很多网络架构,我们可以增加或者减少branches。我们试着去掉branch3,还有增建了branch4,我们发现去掉branch3,网络表现明显下降,而增加branch4,网络效果没有明显增加。所以我们最终确定3 branch架构。另一方面我们可一个改变branch里的分块数,作为超参数来调节。我们试过了分成2,3,4块,还是发现我们目前的设置是最好的,我们如果设置为part-2,part-4,也就是第三个分支分成4块,而不是3块,发现网络效果反而下降了。对于part-2/part-4 和part-3/part-4我们做了对比,前者的设置造成了更多的表现丢失。这因为2,4均等分,造成了分块之间没有重叠部分。但是后者的设置分块之间是有重叠部分。我们认为分块重叠使得分支之间可以互相配合学到更多的细节特征。
Triplet Loss之前的很多做Re-ID的研究都用了triplet loss 来学习连续值 softmax来学习分类值。也这命了这种方法的有效性。在我们的实验里也证明了这种方法对模型表现的提高。这种提高在ResNet-50和MGN网络里都起到作用。在triplet loss的帮助下,我们可以看到它对ResNet-50的模型在Rank-1/mAP有1.2%和3.6%的提升。对于MGN模型也有0.4%和0.7%的提升。我们发现了两个有意思的事:1. mAP的改进比Rank-1明显。这证明ranking对metric值的学习是有影响的。2.Triplet loss的学习对ResNet-50的改进比MGN大。triplet loss的设计让网络能学到更多的细节来满足triplet loss中的margin值。我们的网络设计本来就是突出了局部特征,所以对我们的网络的影响没有那么大。需要注意的是在实验没有使用triplet loss的时候,我们是在降维后的256维的特征上进行的softmax。
多粒度下的注意力我们设计的MGN可以在不同粒度下学到全局和部分特征。下图展示了基于行人图片,从不同branch提取的一些attension feature maps。可以看到不同的所有的attension map都过滤了大多数的复杂背景。Global branch注意的是主要的身体结构。对于四肢,手腕,脚这些细节基本忽略。我们推测这是因为随着行人姿势的改变,这些细节对于整个图来说变化太大。在局部branch里,就不关注整个身体了,而是关注于特定的部分,比如我们发现part2里更关注于肩膀,关节。对于part3,就更关注于一些零散的身体细节。比如最后一幅图片,它关注了行人T恤上的标签。

总结

这篇论文我们提出了MGN网络,一个创新的多分支深度神经网络来学习Re-ID的特征表示。MGN里的每一个分支都以不同粒度学到了身体的全局或局部的不同表征。我们的方法直接在水平分隔的特征上学习,这是一个完全端到端的学习。不需要姿势估计,区域识别等。通过实验表明我们的方法比现有的Re-ID方法都要优秀。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

%d 博主赞过: