Person Search论文——Learning Context Graph for Person Search(CVPR 2019)笔记

1.本文主要内容与创新点

本文主要的思想是同时利用probe和gallery里的context information来让模型产生更好的结果,一个浅显的例子是,被一台摄像机拍摄到一起行走的person,也有很大可能在另一台摄像机的拍摄范围中同时出现,这之中就存在着可供利用的context information。

从论文内容上来说,本文按照如下顺序进行讲述,来解决本文希望达到的目标:(1)首先仍然是传统的Detection思想,另外还有一些feature learning上的优化处理;(2)然后是对instance-level features的扩展,即将两幅图中除了target person之外的其他person作为context candidates;(3)此时虽然有了很多context candidates,但是,其中一些person只在一幅图像中出现,因此对模型来说可能是noise,而在两幅图中同时出现的person可能是positive context,因此需要有一个方法来filter useful contexts from noise ones;(4)有了有益的pisitive contexts,剩下的问题就是如何利用这些context信息来达到更好的结果,为解决这个问题,本文提出了一个context graph model来更好的衡量probe-gallery pairs之间的相似性,该模型的最终输出是the similarity of the targer pair。

2.先看本文实验效果与previous state-of-the-arts的对比

仍然是在两个最常见的person search数据集上进行实验:CUHK-SYSU和相较之更小一点的数据集PRW。

Person Search论文——Learning Context Graph for Person Search(CVPR 2019)笔记_第1张图片

上图是在CUHK-SYSU数据集上的实验结果,可以看到相较于较为经典的OIM,IAN,NPSM等方法,模型将mAP提高了6%-9%左右,将top-1提高了5%-7%左右。

Person Search论文——Learning Context Graph for Person Search(CVPR 2019)笔记_第2张图片

上图是在PRW数据集上的实验结果,可以看到相较于较为经典的OIM,IAN,NPSM等方法,模型将mAP提高了9%-12%左右,将top-1提高了20%-24%左右。

再看不同gallery-size下模型的表现以及与其他模型的对比:

Person Search论文——Learning Context Graph for Person Search(CVPR 2019)笔记_第3张图片

可以看到本文模型的表现始终是最好的,当gallery-size增长时也维持在最好的水平,但是仍然存在当gallery-size增加时模型性能急剧下降的情况。

3.各部分更详细一些的理解

3.1 Instance Detection and Feature Learning

3.1.1 Pedestrian Detection

首先用ResNet-50的part 1(conv1 to conv 4_3)进行卷积,图像分辨率变为1/16,得到1024通道的feature maps,然后将feature maps送入RPN网络,得到person proposals(一些bounding box),共128个,然后将bounding box送入ROI Pooling,再送入ResNet-50 part2。将part 2的卷积结果送入average pooling layer生成2048维的feature。该2048维的feature进一步送入两个全连接层(Fc),第一个全连接层为一个binary Softmax以判断该proposal是不是person,另一个全连接层为256维,feature经过它之后进一步通过L2正则化作为之后推理的feature(个人理解用在了contextual graph representation learning这一步,作为最开始的instance-level feature)。

3.1.2 Region-based Feature Learning

part-based model对人体的每个part分别提取特征,再采取一定方法综合起来形成最终的person feature,这样的方法对于person re-id已被证实是有提升效果的,因此本文也设计了一个region based learning-framework来对part features进行建模。

将ResNet-50 part2的卷积结果分别送入3个part-sensitive pooling  layers,每个part-sensitive pooling  layer将输入的7*7特征图中的7*3大小区域池化为2048维的特征向量,3个part-sensitive pooling  layers分别对应人体的上身,躯干,下身。

3.2 Contextual Instance Expansion

本文认为,同时出现在probe和gallery中的person可以作为positive contexts,而没有同时出现的person为noise,利用这些positive contexts,就可以进一步提升对target person的判断效果。定义好了positive contexts是什么,要完成positive contexts的选取,接下来的问题就是:如何判断一个人在probe和gallery中同时出现,即如何判断probe和gallery中的某个person是同一个人?(个人觉得detection已经框定了行人,这一部分的工作其实就已经在做person re-id了,已经在解决匹配的问题,而下一个部分的context graph represention learning又是进一步做了re-id的工作,再加上本文feature提取和表示的优化,所以本文实验效果有所提高,但相当于进行了两阶段,很多次匹配的方式个人感觉有些不够简洁直接)要判读两个person是不是同一个人,这就要用到之前part-sensitive pooling layers提取到的part features了。

采用part-based的方法,可以按照以下公式的方式来衡量两个person的相似性。其中i,j表示第i个person和第j个person,将每个person分为R个part,则每个part的相似性为该part对最终相似性的贡献度w_r与该part的属于两个person的两个特征向量x的夹角余弦值之积。

对于w_r的取值,通常的方式是选取经验值,然而,对于不同的情况(光线,遮挡情况等),每次赋予每个part不同的权重是更为合理的方式。本文为此提出了一个relative attention network,分别将3对上文提到的part features和1对person整体的feature送入relative attention network,network每次输出该对feature对应的w_r值。

至此就能采用part-based的方式衡量两个person的相似性了,也就解决了如何判断某个人是否同时出现在了probe和gallery中的问题(插一句,既然都能判断某个人是否同时出现在两幅图里了,那岂不是就可以解决寻找target person的问题了?所以下一部分的context graph感觉上其实有一点刻意,为了进一步提升效果)。

总结一下,这一部分解决了扩展instance-level features的扩展,并且filter出了其中有益的positive contexts。

3.3 Contextual Graph Representation Learning

既然有了positive contexts,接下来要解决的问题就是如何利用这些contexts辅助target person的搜索了。

本文提出了一种graph structure,图中每个node包含一对person的features(可能是作为context的person,也可能是target person)。图的结构为星型结构,以target为中心,target分别和每个context相连。如果有K个context person,1个target person,则graph共有N=K+1个节点,用N*N的邻接矩阵A表示图的结构,则矩阵如下:

其中i,j \in [1,....,N]。

初始的特征矩阵为X,X为N行2d列的矩阵,N行代表N个person对,也即N个图节点;d为每个person的特征维数,由于一行为一对person,所以X为2d列。对初始矩阵X进行图卷积(这个过程中就利用到了positive context),最终就可计算得到target pair之间的相似度。

图卷积网络的每一层操作定义如下:

 

A是图的邻接矩阵(始终不变),z^{(l)}是第l层的输出,w^{(l)}是第l层的可学习参数矩阵,\sigma为ReLU激活函数。则上式进行的操作可以理解为:通过图的结构(邻接矩阵A)对context和target的特征进行整合,这样就实现了利用context的想法。

经过图卷积操作之后,利用全连接层将所有顶点的特征整合为一个1024维的特征向量,再经过后续处理(论文未提及)得出target pair之间的相似度。

4 一些实验得出的有益结论

4.1 Effective of Part-based Learning Framework

本文将一个person分为了3部分,分别是upper midlle lower,然后将三部分的特征综合用于person的匹配。在实验部分,作者尝试了单独用每个部分以及直接用the whole person作为该person的特征进行匹配,得出的结论是upper和middle部分包含的information差不多,并且多于lower部分包含的information,而直接用the whole person作为特征时,发现效果好于单独使用某一部分的特征(合乎常理)。另外,为4种方式每种方式分配权重0.25时(即表格中uniform的方法),效果是最好的,这也证明了part-based learning的有效性,该部分实验结果如下:

Person Search论文——Learning Context Graph for Person Search(CVPR 2019)笔记_第4张图片

4.2 Effective of the relative attention network

给4个part的每一个都分配0.25的权重是有效的,但是对于不同的场景和不同的instance,分配不同的权重比在直觉上是更合理的做法,因此本文提出了relative attention network的方法。实验结果显示,使用relative attention network为每一个part自动分配权重的效果的确好于uniform方式的效果。

4.3 Effective of the contexual graph representation learning

实验结果显示,采用contexual graph的方式利用positive contexts来进一步提升target person的匹配是有效果的。uniform方法;仅采用relative attention network方法;采用relative attention network找出positive contexts然后使用contexual graph三种方法的实验效果对比如下图所示:

Person Search论文——Learning Context Graph for Person Search(CVPR 2019)笔记_第5张图片

另外,实验还发现,top-K positive contexts pairs中的K取3时,实验效果最好,这是因为前几个pairs的确是有增益的context,而在增加pair,可能就会引入noise。下图是不同取值的K对实验结果的影响:

Person Search论文——Learning Context Graph for Person Search(CVPR 2019)笔记_第6张图片

5 对于contexual graph的graph structure的探讨

一种相较更为传统的graph方法是:build two separate graphs for each image pair,然后用两个共享同样权值的GCN(图卷积网络)去提取每一个graph的特征,然后联合属于两张图的两个特征来输出两张图的相似性。而本文的方式是建立一张图来同时model两张image,这样做的一个好处是将一对pair中两个person的关系包含在了一个图节点之中,使得graph能更好的model context information。可见,设计合适的图结构来model context information是很关键的,而或许也存在比本文的graph design更好的design,这也是值得再思考的地方。两种设计graph的方式实验结果对比如下:

Person Search论文——Learning Context Graph for Person Search(CVPR 2019)笔记_第7张图片

6 总结

本文的主要思想是利用同时出现在probe和gallery中的context information来辅助对target person的搜索。并且采用了part-based feature learning的方式和relative attention network的方式来进一步提升效果。

总体来讲,本文的效果相较OIM,IAN,NPSM等经典方法还是有较大的提升的。

你可能感兴趣的:(计算机视觉)