Reranking论文笔记
最近做了一个ReID的项目,算是开始入门学习,中间学习、掌握的一些东西开始用博客记下来,也算是自己再梳理一遍。
论文:Re-ranking Person Re-identification with k-reciprocal Encoding
第一章 Abstract
第二章 Related Work
第三章 Proposed Aproach
一、Problem Definition
二、K-reciprocal Nearest Neighbors
一个Probe person:p,和一个gallery set: G
K-nearest neighbors: 在gallery set G中对p按距离顺序排列,取前k个。论文中用的是Mahalanobis distance(马哈拉诺比斯距离,协方差距离)
N(p,k)={g10,g20,...,gk0},∣N(p,k)∣=k.
K-reciprocal: 两者相互均在k-nearest neighbors中
R(p,k)={gi∣(gi∈N(p,k)∧(p∈N(gi,k))}
for gi in N_p_k:
if p in N_gi_k:
k-reciprocal.append(gi)
由于照明、姿势、视角、遮挡的变化,会导致一些positive image从k-nearest neighbors中踢出没有进入k-reciprocal nearest neighbors。
R∗(p,k)←R(p,k)∪R(q,21k)s.t.∣R(p,k)∩R(q,21k)∣≥32∣R(q,21k)∣,∀q∈R(p,k)
对k-reciprocal nearest neighbors 计算每个元素的1/2k的k-reciprocal nearest neighbors 然后加入构成k-expansion-reciprocal nearest neighbors。
这个结果并不是用于当做top rank images, 而是作为计算p和gallery之间距离的一个基础。
Jaccard Distance
得到这两个集合的交集和并集是非常time-consuming的,而且当每对图片的 jaccard distance都要计算时,这个挑战更大。另一种可替代的方法是将 neighbor set编码成更加简单但是等价的向量。
Vp=[Vp,g1,Vp,g2,...,Vp,gN]
Vp,gi={1,0, if gi∈R∗(p,k)otherwise
因此:
∣R∗(p,k)∩R∗(gi,k)∣=∣∣min(vp,vgi)∣∣1∣R∗(p,k)∪R∗(gi,k)∣=∣∣max(vp,vgi)∣∣1
dJ(p,gi)=1−∑j=1Nmax(νp,gi,νgi,gj)∑j=1Nmin(νp,gi,νgi,gj)
Local Query Expansion
考虑到,相同class的图片有相似的feature。
νp=N(p,k)1gi∈N(p,k)∑νgi
Final Distance
d∗(p,gi)=(1−λ)dJ(p,gi)+λd(p,gi)
Complexity Analysis
计算prop和gallery成对距离复杂度为,最终排序复杂度