Re-ranking Person Re-identification with k-reciprocal Encoding

基于k倒排编码的reid重排研究,论文中,作者提到当用reid方法获得初始的top-k排序后,重排方法是提升reid准确率的有效手段,作者提出了一种重排方法,通过编码特征降低计算量,并引入Jaccard距离,与原始距离做加权进行最终的rank list计算,该方法的好处是不需要人工交互或者任何标签数据,即可对任意的reid方法应用该手段来提升reid性能,并且可以应用到大规模数据集上,作者在Market-1501,CUHK03,MARS和PRW上做了实验,验证了方法的有效性。 
如图: 
这里写图片描述 
直接使用k-nearest neighbors 的top-k重排,因为往往含有hard negative样本即错匹配在top-k中,会引入噪声到重排系统,使重排性能提升效果被限制。 
但是,从图中可看到probe是一个true matched的倒排近邻,而不是false matched的倒排近邻。因此作者设计三个步骤引入K-reciprocal encoding method for reid re-reranking. 
1.编码加权的k倒排近邻进一个向量,形成k倒排特征向量,这样使得可以一次性提取特征,让reranking处理可以通过向量的比较轻易被执行,然后用该特征计算两图像间的Jaccard距离 
2.为获得鲁棒的k倒排近邻特征,设计了局部query expansion 方法进一步提升reid性能 
3.最终的距离由加权的原始距离和Jaccard距离得到 
框架如下: 

这里写图片描述 

整个的pipeline如上图所示,样本已经是提取出来的行人图片,然后使用训练好的resnet50提取特征,基于这些特征计算出马氏距离和杰卡德距离,然后对这2个距离做一个加权求和,得到最终的距离。



作者回顾了: 
Re-ranking for object retrieval如AQE/DQE/CDM等方法 
Re-ranking for re-ID 
Using the k-nearest neighbors to implement reranking directly may restrict the overall performance since false matches are often included. To tackle this problem, in this paper, we investigate the importance of k-reciprocal neighbors in person re-ID and hence design a simple but effective re-ranking method。

作者采用1/2 k倒排最近临加入到k倒排近临,以增加k以外的正样本到k倒排近临中,而Jaccard距离计算如下: 
这里写图片描述 
会非常耗时,所以作者通过特征再次编码减少计算复杂度,考虑了越近的样本应该赋予更大的权重,如下:

这里写图片描述

距离计算方法

问题定义

给定probe person gallery set,可以度量它们的马氏距离:

 

这里是特征向量,M是半正定矩阵。我们可以根据这个距离对pG排序,距离从小到大排列:

 

我们的目标是对这个初始排序列表重新排序,使得更多的正样本出现在列表的前段。

 

2 K-reciprocal Nearest Neighbors

首先,定义k-nearest neighborsk-nn),即排序列表的前k个样本:

 

接着,定义k-reciprocal nearest neighborsk-rnn),简单地说就是满足都在对方的k-nn列表里这一条件的的集合:

 

然而,由于光照、姿态、视角等一系列变化,正样本可能会被排除到k-nn列表外,因此我们定义了一个更鲁棒的k-rnn集合:

 

上式的意思是,对于原本的集合R(p,k)中的每一个样本q,找到它们的k-rnn集合R(q,k/2),对于重合样本数达到一定条件的,则将其并入R(p,k).通过这种方式,将原本不在R(p,k)集合中的正样本重新带回来。文中给了一个例子来说明这一过程,如下图所示:

 

 

3 Jaccard距离

作者认为,假如两张图片相似,那么它们的k-rnn集合会重叠,即会有重复的样本。重复的样本越多,这两张图片就越相似。那么很自然地就想到用Jaccard Distance度量它们k-rnn集合的相似度:

 

然而,上面的距离度量有三个缺点:

1.取交集和并集的操作非常耗时间,尤其是在需要计算所有图像对的情况下。一个可选方式是将近邻集编码为一个等价的但是更简单的向量,以减少计算复杂度。

2.这种距离计算方法将所有的近邻样本都认为是同等重要的,而实际上,距离更接近于probe的更可能是正样本。因此,根据原始的距离将大的权值分配给较近的样本这一做法是合理的。

3.单纯考虑上下文信息会在试图测量两个人之间的相似性时造成相当大的障碍。因为,不可避免的变化会使得区分上下文信息变得困难。因此,为了得到鲁棒的距离度量,结合原始距离和Jaccard距离是有必要的。

为了克服上述缺点,我们开始改造Jaccard距离。首先,将k-rnn集合编码为N维的二值向量=,其中每个元素由以下指示函数定义:

 

接着,为了给每一个元素根据原始距离来重新分配权值,我们采用了高斯核。于是将向量改写为:

 

于是,计算Jaccard距离时用到的交集和并集的基数就改写为:

 

此处直接看下面的公式理解的更容易些

最后,我们终于得到了改造过的Jaccard距离:

 

对于每个属于p的knn的gj,比较其与p和gi的距离,不是0就是e的多少次方,交集即只取双方都有的,一方没有就取零,并集则任何一方不为零就取这个值。

这个改造过程,实际上是将集合比较问题转化为纯粹的向量计算,实践起来更简单。

 

4 Local Query Expansion

基于来自同一类的图像可能共享相似特征的想法,我们使用probek-nn集合来实现local query expansion

 

特别要说明的是,这个query expansion被同时用到了probe galleries 上。(这里我的理解是对每个向量定义为其k-nn集合向量的平均,通过这种方法来提升性能。根据我的测试,去掉这一步仍然有不错的效果,但mAP会有少许的下降。)因为k-nn集合可能会混有噪声,因此我们将k值设置得比较小。为了与前面的k做区分,我们定义前面用到的为,而这里用到的为k1<k2.

 

5 最终距离

在这里有参数,最终计算距离如下:

 

6 复杂度分析

参考原文内容。

另外,作者采用控制变量法,分析了超参数的设置,包括k1,k2和距离融合的权重设置lamda 
k1和k2分别对应 这里写图片描述 中的k值,前面的k1为k倒排的top-k设置,后面的k为Local Query Expansion的k最近临的阈值设置,一般前者远大于后者。 
k倒排特征由probe的k近临膨胀得到,膨胀包括了probe和galleryies的膨胀,膨胀如下: 
这里写图片描述  
膨胀后,使得到的k倒排特征更强健,再进行最终的距离计算。。。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值