一 各种方法性能比较
Method | Key | Market r1 | Market mAP | Duke r1 | Duke mAP |
(1)BOT | global+BNNeck | 94.5 | 84.5 | 86.4 | 76.4 |
(2)PCB | partial+RPP | 93.8 | 81.6 | 83.3 | 69.2 |
(3)MGN | partial | 96.6 | 94.2 | 88.7 | 78.4 |
(4)HPM | partial | 94.2 | 82.7 | 86.6 | 74.3 |
(5)ST | Spatial-Temporal | 98.1 | 99.3 | 94.5 | 92.7 |
(6)LU |
二 方法介绍
1.BOT(global)
[1]Luo H, Jiang W, Gu Y, et al. A strong baseline and batch normalization neck for deep person re-identification[J]. IEEE Transactions on Multimedia, 2019, 22(10): 2597-2609.(罗浩)
paper:1906.08332.pdf (arxiv.org)
code:https://github.com/michuanhaohao/reid-strong-baseline
这篇文章的主要创新点为:
(1)提出了一个 仅提取全局特征,利用多种有效的trick(warmup,random erasing augmentation,label smooth,last stride) 的简单和高效的baseline。
(2)提出了BNNeck,解决分类交叉熵损失和度量三元组损失在空间中的不一致性,计算三元组损失后,特征经过BN层再计算交叉熵损失,将两个损失相加为最后的损失。
(3)研究了center loss对类内紧致性和类间远离性的效果,但会降低检索性能。
2.PCB(partial)
[2]Sun Y, Zheng L, Yang Y, et al. Beyond part models: Person retrieval with refined part pooling (and a strong convolutional baseline). In: Proceedings of the European conference on computer vision (ECCV), Munich, Germany, 2018. 480-496
paper:http://arxiv.org/pdf/1711.09349
这篇文章的主要创新点为:
(1)提出了一个提取标准分块特征的baselin:PCB。
(2)对于分块内的不一致性进行分析,发现块内部分向量与其他块相似度会更大,提出了重新分块池化(RPP),利用一个分类网络,计算向量对各个块的隶属度,以此计算feature map再进行全局平均池化
3.MGN(partial)
[3]Wang G, Yuan Y, Chen X, et al. Learning discriminative features with multiple granularities for person reidentification[C]//Proceedings of the 26th ACM international conference on Multimedia. 2018: 274-282.
code:https://github.com/Gavin666Github/reid-mgn
blog:(1条消息) 多粒度网络(MGN)的结构设计与技术实现_DRACOYU的博客-CSDN博客_多粒度
这篇文章的主要创新点为:
提出了一个端到端的提取多粒度(多尺度)特征的多分枝网络
从resnet50网络的conv4_2层分为三个分支,分别提取全局特征和部分,全局最大池化后得到2048维特征,利用1x1卷积降维为256,对于降维后的局部特征和降维前的全局特征计算分类损失,对降维后的全局特征计算三元组损失。
4.HPM(partial)
[4]Fu Y, Wei Y, Zhou Y, et al. Horizontal pyramid matching for person re-identification. In: Proceedings of the AAAI Conference on Artificial Intelligence, Honolulu, Hawaii, USA, 2019. 8295-8302
paper:https://arxiv.org/abs/1804.05275
code:https://github.com/OasisYang/HPM
这篇文章的主要创新点是借鉴了spp提出了水平金字塔池化Horizontal Pyramid Pooling
featuremap被分为四个branch,每个branch分为不同尺度的stripe,对每个stripe做GAP和GMP然后求和得到2048维特征向量,之后降维到256,按照分类的思想,接FC,计算分类softmax损失。在inference时,将各个维度的特征concat为3840维向量。这篇文章没有用度量损失,推理维度过高,计算量应该比较大,整体思路比较简单,效果还可以。
5.Spatial-Temporal Reid(多模态)
[5] Wang G , Lai J , Huang P , et al. Spatial-Temporal Person Re-identification[J]. 2018.
paper:https://arxiv.org/pdf/1812.03282.pdf
code:https://github.com/Wanggcong/ Spatial-Temporal-Re-identification
这篇文章在外观信息(使用PCB)的基础上加入了有监督的时空信息(摄像头编号和时间信息)。主要贡献有三:1.双模态的结构2.时空信息直方图方法3.Logistic平滑方法
利用训练集的不同人出现在摄像头的时间差得到时空信息直方图,其横轴为按照不同时间差(论文采用100帧)划分很多个bin。
首先计算从相机i到相机j且时间差落入第k个bin的图像对为一个人的概率,其中代表从i到j且时间差为k的人的个数。
得到的图为上方左边的图,可以看到由于样本数少且时空信息随机性大,直方图很不平滑。于是引入Parzen Window method来进行平滑化。计算所有bin的p,乘高斯项(越靠近k越大),求和来计算,从而得到上方右侧较为平滑的图像。
最终得到了两个模态的信息,提出了Logistic Smoothing来聚合信息,将余弦相似度和时空匹配概率送入Logistic函数,相乘得到最终的概率,会使得pst的最小值不至于太小,这一步是为了防止,具有过小的时空匹配概率和很大外观相似度的样本被误判。
这个方法可以应用于任何具有相机编号和时间戳的数据集上,不过其鲁棒性不好说(假如有的人走了回头路?),可以加在在其他方法中试一试。
6.LUPerson(无监督预训练)
[6] Fu D , Chen D , Bao J , et al. Unsupervised Pre-training for Person Re-identification[J]. 2020.
paper:[2012.03753] Unsupervised Pre-training for Person Re-identification (arxiv.org)
code:https://github.com/DengpanFu/LUPerson
这篇文章将无监督学习方法MoCo应用于ReID领域,提出了无标签的LUPerson数据集,包含20万人400万张图片,利用改进的MoCo方法(改了下参数和数据增强方法)在LUPerson上预训练主干网络后,再在ReID数据集上训练baseline,显著提高了性能。
LUPerson的制作过程很有借鉴意义,作者在Youtube上搜索100个城市加街道名称,获取视频后进行初筛,筛掉视频长度太短的,重复的,静止的,VR视频等,之后利用YOLOv5进行检测,获得行人图片,之后利用HRNet做姿态识别来获取行人关键点判断行人是否完整,此外还有置信度,高宽比等限制条件,最终得到了无标签的数据集。
MoCo是何凯明等提出的一种contrastive learning 方法,详细可以参考博客:MoCo: Momentum Contrast 无监督学习 - 知乎 (zhihu.com),作者在此基础上调整有两点,1是数据增强方法中去除了颜色抖动(color jitter)因为颜色对于ReID模型学习到有判别力的模型是一个比较关键的信息),加入了ReID常用的随机擦除(RandomErasing).2是对contrastive loss的温度参数进行调整由0.2到0.07。这里温度参数越小,类间的差距会越大,因为相比于分类任务,ReID任务的类间差距更小,所以为了弥补这一差距,将温度参数减小。