Re-ranking Person Re-identification with k-reciprocal Encoding
Re-ranking Person Re-identification with k-reciprocal Encoding
Abstract
In this paper, we propose a k-reciprocal encoding method to re-rank the re-ID results. Our hypothesis is that if a gallery image is similar to the probe in the k-reciprocal nearest neighbors, it is more likely to be a true match.Specifically, given an image, a k-reciprocal feature is calculated by encoding its k-reciprocal nearest neighbors into a single vector, which is used for re-ranking under the Jaccard distance. The final distance is computed as the combination of the original distance and the Jaccard distance.
这篇论文提出了k-reciprocal 编码方法去重排re-ID结果。论文假定底库图片和查询图片在 k-reciprocal近邻是相似的,则它们最有可能是匹配的。论文主要利用原始距离和杰卡德距离完成re-ranking。
Introduction

上图是使用KNN(k=10)聚类的结果,其中Probe为查询图片,P1~P4为正样本,N1~N6为负样本。P1~P4在相似排名上并不靠前,而N1~N6却比较靠前,这说明使用KNN算法得到初始排序结果具有很大噪声。

上图是使用KRNN(k-reciprocal nearest neighbor)算法的重排结果。首先我们需要求出一张图片的表征特征(appearance feature)和k-r特征(k-reciprocal feature)然后分别计算原始距离和杰卡德距离,最后计算最终距离,得出re-ranking列表。
这篇文章的主要工作:
- 提出了单一的k-r特征,有利于re-ranking
- 不需要人工操作和数据标注,采用的是一种自动的和非监督的方法。
- 在多个数据集上,rank-1和mAP性能指标提升。
Proposed Approach
1. Problem Definition
Mahalanobis distance:

M为半正定矩阵 ,\(d(p,{g_i})\) 为文中提到的原始距离。
2. K-reciprocal Nearest Neighbors
KNN:

KNN算法简介:给定测试实例,基于某种距离度量找出训练集中与其最靠近的k个实例点,然后基于这k个最近邻的信息来进行预测。
- 时间复杂度o(n*k):n为样本数量,k为单个样本特征的维度。如果不考虑特征维度的粒度为o(n)
- 空间复杂度o(n*k):n为样本数量,k为单个样本特征的维度。如果不考虑特征维度的粒度为o(n)
KRNN:

∧为合取联结词,叫做合取,比如r=q∧p,那么当且仅当p与q同时为真(或者说同时为1)时r为真(或1),也就是说\({g_i}\)是p的近邻,p也是\({g_i}\)的近邻。

有时候正样本不在K近邻中,也不在k-r近邻中。为了解决这个问题,本文增加了\(\frac{1}{2}\)k-r近邻,来获得更为鲁棒性的\({R^*}(p,k)\)。

3. Jaccard Distance

\(\left| \right|\)代表这个数据集的数量。如果\({g_i}\)和p是相似的,则\({R^*}(p,k)\)和\({R^*}(g_i,k)\)重合部分较多,则杰卡德距离\({d_J}(p,{g_i})\)就越小。
这步操作有3个缺点:
- 获得\({R^*}(g_i,k)\)和\({R^*}(p,k)\)数据非常费时。
- 计算所有近邻的权重都是相等的。
- 没有考虑到原始距离和杰卡德距离的联系。



4. Local Query Expansion
因为同一类别的图片具有相似的特征,我们使用KNN方法完成本地查询操作。

5. Final Distance

6. Complexity Analysis
假设底库图片集大小为N,一般情况下距离测量和重新排序的时间复杂度分别为\(O({N^2})\),\(O({N^2}\log N)\)。但是,我们提前在本地上计算距离和进行排序,故时间复杂度分别为\(O({N})\),\(O({N}\log N)\)。
Re-ranking Person Re-identification with k-reciprocal Encoding的更多相关文章
- 使用C#通过Thrift访问HBase
前言 因为项目需要要为客户程序提供C#.Net的HBase访问接口,而HBase并没有提供原生的.Net客户端接口,可以通过启动HBase的Thrift服务来提供多语言支持. Thrift介绍 环境 ...
- 支付宝app支付服务器签名代码(C#)
1,引入支付宝的sdk(AopSdk) 支付宝接口文档网站可下载,注意下载C#版本: 2,代码写的比较简单 public static string RSASign(string OrderNo,de ...
- 自定义Base16加密
自定义Base16加 ...
- 爬虫、请求库requests
阅读目录 一 介绍 二 基于GET请求 三 基于POST请求 四 响应Response 五 高级用法 一 介绍 #介绍:使用requests可以模拟浏览器的请求,比起之前用到的urllib,req ...
- request模块
一 介绍 二 基于GET请求 三 基于POST请求 四 响应Response 五 高级用法 一 介绍 # 介绍:使用requests可以模拟浏览器的请求,比起之前用到的urllib,requests模 ...
- 爬虫 requests 模块
requests 模块 介绍 使用requests可以模拟浏览器的请求, 比起之前用到的urllib,requests模块的api更加便捷(本质就是封装了urllib3) ps: requests库发 ...
- 请求库之requests模块
本片导航: 介绍 基于GET请求 基于POST请求 响应Response 高级用法 一.介绍 #介绍:使用requests可以模拟浏览器的请求,比起之前用到的urllib,requests模块的a ...
- 爬虫 之Requests库的详细使用
1.什么是Requests? Requests是用Python语言编写的,基于urllib3来改写的,采用Apache2 Licensed 来源协议的HTTP库. 它比urllib更加方便,可以节约我 ...
- 爬虫之requests请求库
介绍 #介绍:使用requests可以模拟浏览器的请求,比起之前用到的urllib,requests模块的api更加便捷(本质就是封装了urllib3) #注意:requests库发送请求将网页内容下 ...
- django模型操作
Django-Model操作数据库(增删改查.连表结构) 一.数据库操作 1.创建model表
随机推荐
- JAVA遇见HTML——JSP篇:JSP内置对象(上)
JSP九大内置对象 JSP内置对象是Web容器创建的一组对象,不使用new关键就可以使用的内置对象. <% int[] value={60,70,80}; for(int i:value){ o ...
- linux基础知识和常用命令
1.修改主机名 切换到root,然后执行 vim /etc/sysconfig/network,进入其中,更改hostname即可.insert进入修改,esc+:,wq保存退出. 2.用户切换 普通 ...
- 洛谷P1169 棋盘制作【悬线法】【区间dp】
题目:https://www.luogu.org/problemnew/show/P1169 题意:n*m的黑白格子,找到面积最大的黑白相间的正方形和矩形. 思路:传说中的悬线法!用下面这张图说明一下 ...
- [HNOI2015]开店 简要题解
主席树. 推下式子,发现点的深度和好算,lca深度和不好算. lca深度之和有个套路:先给a到根路径+1,再算b到根的和. 如果可以离线,即LNOI的LCA.本题强制在线,可持久化. 由于区间修改,使 ...
- SIGAI深度学习第五集 自动编码器
深度学习模型-自动编码器(AE),就是一个神经网络的映射函数,f(x)——>y,把输入的一个原始信号,如图像.声音转换为特征. 大纲: 自动编码器的基本思想 网络结构 损失函数与训练算法 实际使 ...
- 【luogu1468】[Violet]蒲公英--求区间众数
题目背景 亲爱的哥哥: 你在那个城市里面过得好吗? 我在家里面最近很开心呢.昨天晚上奶奶给我讲了那个叫「绝望」的大坏蛋的故事的说!它把人们的房子和田地搞坏,还有好多小朋友也被它杀掉了.我觉得把那么可怕 ...
- 【线性代数】5-2:置换和余因子(Permutations and Cofactors)
title: [线性代数]5-2:置换和余因子(Permutations and Cofactors) categories: Mathematic Linear Algebra keywords: ...
- mac brew 使用教程
brew services list #查看系统通过 brew 安装的服务 brew services cleanup #清除已卸载无用的 ...
- 7.27T2
不可做题 sol:首先有个很显然的性质就是答案一定是在叶子上最优,然后画画图发现就是从最底层看,如果一条链就看做一个点,向上的第一颗非链的节点,它的儿子数-1就会对答案贡献,所有这样的累加起来就是答案 ...
- 为win10下的linux子系统终端添加powerline
一切按照上一篇完成,如果成功了,你厉害了我的哥,如果不成功,win10安装powerline字体才可以,才可以,才可以 sudo apt install build-essential cmake g ...