huanghoujing / AlignedReID-Re-Production-Pytorch

Reproduce AlignedReID: Surpassing Human-Level Performance in Person Re-Identification, using Pytorch.
639 stars 190 forks source link

在duke数据集上测试mAP只有30.76% #14

Closed JpHu2017 closed 6 years ago

JpHu2017 commented 6 years ago

作者你好,请问在duke数据集上测试,参数设置和market1501有什么不同吗?为什么mAP会这么低?

huanghoujing commented 6 years ago

你是在duke上训练然后测的吗?还是直接用market1501训好的模型测试的?

JpHu2017 commented 6 years ago

我是把market1501训练好的模型直接用在duke测试集上。这样出来的效果会差这么多吗?

huanghoujing commented 6 years ago

是的,不同库之间的差异很大的。所以现在有些文章在研究怎样更好地跨库迁移。

JpHu2017 commented 6 years ago

好的,谢谢。请问您在duke数据集上做个训练吗?如果有的话,能否给我一份。感激不尽啦。

huanghoujing commented 6 years ago

不客气的。duke上你也可以自己训,运行script/tri_loss/train.py时,数据集选为duke即可:--dataset duke。如果需要训好的模型,我后续也上传一个。

JpHu2017 commented 6 years ago

ok 😁

huanghoujing commented 6 years ago

您好,三个数据库上用triplet loss训练的模型可以下载了,性能有更多提升,参考这个工程.

ghost commented 6 years ago

你的这么高吗,我的market训练去duke测试,性能是rank-1:33%, mAP:16.5%,我一会用这个代码跑一下,谢谢!

JpHu2017 commented 6 years ago

自己训练的模型效果会更好,你可以试试

liangbh6 commented 6 years ago

@Simon4john 请问你是用aligned reid的模型测试还是用IDE?

ghost commented 6 years ago

@liangbh6 我用的是IDE,alignedreid 我直接去杜克数据集合测试性能一选大概是30%,所以很奇怪楼主测出来的怎么这么高。

liangbh6 commented 6 years ago

@Simon4john 我看你说能到33%这么高,很怀疑自己搞错了什么==。IDE在market1501的baseline我调到83%,拿去在duke上测试只有rank1 27%这样。高手,请问有没有数据集增强或者学习率方面的tricks要用到?

ghost commented 6 years ago

@liangbh6 你用的是caffe框架吗,我在caffe 上market性能76%,在杜克上测试性能是33%

ghost commented 6 years ago

@liangbh6 @JpHu2017 楼主的map 能到30.76%,我的mAP才16.5%我也很好奇是不是我的代码搞错了。

JpHu2017 commented 6 years ago

30.76是re-ranking以后得

liangbh6 commented 6 years ago

@Simon4john 我用的pytorch,在market1501训练,market上测试rank1 83%, mAP 62%, duke上测试rank1 27%, mAP 14%。不同框架差别这么大吗? @JpHu2017 请问没有re-ranking之前是多少?

ghost commented 6 years ago

@liangbh6 我用的是caffe的框架,这里https://github.com/zhunzhong07/IDE-baseline-Market-1501。不知道pytorch的情况。

liangbh6 commented 6 years ago

@Simon4john 好的, 谢谢

ghost commented 6 years ago

我用了这里提供的triple loss (pytorch),在market训练得到rank-1:86.4%,mAP:72.2%的性能,然后在duke上测试性能是:rank-1:30.1%, mAP:14.0%。 此外,在duke上训练得到rank-1:79.2%,mAP:61.7%的性能,在market上测试,得到了rank-1:39.4%, mAP:16.9%的性能。

另外一方面,我在caffe上用了IDE这个代码训练IDE,在market上得到了76%的rank1,在duke上测试得到了33%的rank-1。

综合上述两种情况,我很好奇不同框架之间的差异这么大吗?还是其他的原因?

huanghoujing commented 6 years ago

我发现模型在source domain上训得分数越高,不一定在target domain也更高,很可能还会有反作用。这是domain shift不可避免的问题。这也不是说source domain上训得老高的模型就不实用,毕竟有时候训练跟测试的数据分布就是很一致的。要做跨domain的话要专门研究,仅仅在source domain上实现一个表现很好的baseline是不够的。

ghost commented 6 years ago

@huanghoujing 您说的我很同意,有时候在某一个数据集合学的很好不一定会让学到的特征的泛化能力或者迁移到其他数据集合的能力增强。这里有个文章貌似就说了这个问题:Image-Image Domain Adaptation with Preserved Self-Similarity and Domain-Dissimilarity for Person Re-identification (https://arxiv.org/pdf/1711.07027.pdf)

huanghoujing commented 6 years ago

Yeah, recently there are several interesting papers on arXiv tackling transfer in ReID using GAN. The following list is what I have knowledge of.

coldgemini commented 6 years ago

are same persons appear in training sets? otherwise why is the performance across domain so different?

huanghoujing commented 6 years ago

Generally, different training sets do not contain the same person. E.g. training sets from Market-1501, DukeMTMC-reID, CUHK03, etc are independent.