zhunzhong07 / person-re-ranking Goto Github PK
View Code? Open in Web Editor NEWPerson Re-ranking (CVPR 2017)
Person Re-ranking (CVPR 2017)
hello sir,
My doubt is that under the file re_ranking.m what does "backward_k_neigh_index" variable signify?
does it signify the k reciprocal NN? if not could you kindly enlighten me as to what does it mean.
Thank you
Hi!
When using multi query evaluation in Market1501, this
original_dist = np.concatenate(
[np.concatenate([q_q_dist, q_g_dist], axis=1),
np.concatenate([q_g_dist.T, g_g_dist], axis=1)],
axis=0)
shows MemoryError even in a 32GB memory window PC. This line of code should run on the GPU
Kindly provide a re_rank_gpu version of this function for very large evaluation
Thank you
It seems that values of rank1 and mAP produced by state-of-the-art methods on CUHK03 are very close (some method's mAP are even higher than rank-1 accuracy). But on other datasets such as Market-1501 and DukeMTMC-reID, mAP is usually 10%~15% lower than rank-1 accuracy.
What is the reason for higher mAP on CUHK03?
I use the evaluation code to test my model trained on CUHK03, the mAP is also 10%~15% lower than rank-1 accuracy, which is inconsistent with the values reported.
label_train = importdata('data/Market-1501/train_label.mat');
cam_train = importdata('data/Market-1501/train_cam.mat');
train_feature = importdata(['feat/Market-1501/' netname '_IDE_train.mat']);
Hello sir, I understand what the data 'feat/Market-1501/' netname '_IDE_train.mat' means.
But I cannot see the creation process of 'data/Market-1501/train_label.mat' and 'data/Market-1501/train_cam.mat'. What does the these data mean? How can I create it ? Could you give me a little explanation, sir ?
Thank you very much !
Hi, can you please share the code to generate Figure 7 in your paper?
I found that the PCB(RPP) method only got 57.5 MAP in their paper. But in your table , it shows 67.5
Hello, when I ran the code of this article, I found that Rank1 really improved, but why is Rank2~Rank10 dropped significantly ?
不扯英文了……
关于k k1 k2,有个疑问:
按你论文所述,R是由马氏距离的前k个邻居生成的,然后再做k/2的扩充,得到R*,然后论文定义说R*的大小为k1,而N(p,k)的大小为k2。而N(p,k)不正是马氏距离前k个邻居嘛,也就是应该有k=k2。
但是在代码中,为什么R*的生成是用k1个邻居以及k1/2个扩充,后来做Local Query Expansion的时候用的又是k2。是不是搞混了。
In your paper,you set k1 to 20, k2 to 6 in experiments on Market-1501 . I want to know why the values of k1,k2 are these.(you set k1 to 7, k2 to 3 in experiments on CUHK-03 is on this question.)
@zhunzhong07 Hi,i want to know your batchsize, but i cannot find it. Can you tell me the value of batchsize or where i can find it. Thank you very much.
how to compute CMC and rank-m
can you teach me
thanks
Can you please tell that which protocol are you using for cuhk03 and market?
multi shot / single shot gallery?
multi / single query?
With no reranking, distance values are distributed evenly across the whole 0-1 range. But with reranking, although the accuracy improves ~2%, the distance histogram gets compressed into narrow range (0.7-0.9) with several distance values > 1. This looks incorrect. I studied the problem further and found that this is due to Jaccard distance that has over 90% values as 1s.
Use custom dataset (unable to share the dataset, 4k images, 200 identities) with reranking (k1=54, k2=6, lambda=0.3. - this gave the best overall fscr
). Plot histograms of
Final distance must be evenly distributed across the whole 0-1 range.
k1
depend on the number of images in the dataset? V is of size NxN (total num images). When k1 << N
V has many 0s even after qe. Could this be why my Jaccard distances are all 1s?For the Market-1501 dataset, there are a number of junk images for each query image in the gallery set, and some of the junk images are from from the same camera as the query image, so they may affect the retrieval performance if they are used for re-ranking.
I want to know:
Hi, @zhunzhong07. Thanks for the great code. I found a good picture in your paper. I want to draw a picture like that to show the result. But I don't know how it was generated. Do you use the drawing software or generate it through code? Thank you for your help.
First:download cuhk-03.mat and the new training/testing protocol split
cuhk03_new_protocol_config_detected.mat cuhk03_new_protocol_config_labeled.mat, place all in the directory '/data/person-reid/cuhk03/'
Second: I use my own code to generate the bounding_box_train query bounding_box_test, and Is it OK?
The question is how to generate the bounding_box_train query bounding_box_test from the raw data cuhk-03.mat. Do all methods evaluate on the new training/testing protocol split.
你好,感谢作者的算法**,但我对您的算法实现有些疑问
(最开始我用的是罗浩的python版本,他告诉我完全按您的matlab版本复现的)
https://github.com/zhunzhong07/person-re-ranking/blob/master/evaluation/utils/re_ranking.m
代码第10行
original_dist = original_dist./ repmat(max(original_dist, [], 2), 1, size(original_dist, 2));
对距离矩阵如此处理的目的是什么?处理后,距离矩阵已经不是对称的了,并且转置后每一行的元素放缩的scale都不同
代码6行
[~, initial_rank] = sort(original_dist, 2, 'ascend');
对整个query和gallery进行排序,会出现查询样本的k1互近邻中出现查询集样本,这和论文并不一致
另外我试了一下按论文**,每次只传入1个query进行reranking的方法,这样可能会影响了query expansion,但结果似乎大部分情况都会比现在稍好一些(只是太慢)
代码第31行
V(i, k_reciprocal_expansion_index) = weight/sum(weight);
求每个样本的reci-feature, 最终除以了负指数的和,这和论文中也不相同
代码第63行
jaccard_dist(i, :) = bsxfun(@minus, 1, temp_min./(2 - temp_min));
这个距离的计算,好似和论文中计算方法并不等价?
想问一下,这几个地方算法实现的思路是什么?
Hello! your reranking is a good job! However, there is a problem about your usage of q_q_dist. Without q_q_dist, it seems that your reranking would drop a lot. I do the experiments below
mAP of No reranking | mAP of reranking with q_q_dist | mAP of reranking without q_q_dist |
---|---|---|
70.3 | 85.7 | 71.9 |
23.9 | 34.7 | 25.5 |
24.0 | 35.2 | 25.5 |
It is so weird. Could you explain it?
Hi!
I want to know if re-ranking can be applied to VIPeR.v1.0 dataset where we have one image per identity in the gallery? i tried and got less results compared with no-reranking.
Thank you
how do you do resize images?
you directly resize 224x224 ? not do crop? or others?
and how about your Data Augmentation
Hello!
When I run the example ResNet-50 + Global Loss on Market1501, I met the error about Memory Error when it came to the Re-Ranking. Here is the link https://github.com/huanghoujing/AlignedReID-Re-Production-Pytorch. The memory is 8G of my ubuntu. Could you give some tips to solve the Memory Error.Thank you very much!
Hi, Zhun Zhong. I modify the python version to
/
division between python 2 and 3numpy.float16
with numpy.float32
for numerical precisionIt can be found here.
Thanks a lot for your re-ranking work. Thanks also to @michuanhaohao.
Thank you very much for your outstanding work. I have reproduced your code in the past few days. The accuracy is one or two percentage points lower than the one mentioned in your paper. I also want to ask how to draw the CMC curve or PR curve. Do you have any code? Thank you very much. @zhunzhong07
This is just a query... how much time did it take for you to complete the entire re-ranking as described in your esteemed paper?
Because I believe that a nested for loop is computationally very expensive.
Kindly advise.
Thank you
I can see in person-re-ranking/evaluation/data/CUHK03/save_img.m, you load 2 files like:
cuhk03_multishot_config_detected.mat
cuhk03_multishot_config_labeled.mat
I wonder where does these 2 files come from because I cannot find any other relevant code to create or describe them.
Thanks!
不finetune的基础上,loss一直不收敛,各种调参都没有效果
加上ResNet_50.caffemodel进行finetune,loss直线下降,这是啥情况
The claim is made in this repo and the according paper that there are 1,467 identities in 14,096 images for the CUHK03 dataset. However, the original authors claim that there are 1,360 identities in 13,164 images, see also their website.
So which is correct and how can there be a difference in these numbers in the first place?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.