Paper:https://link.zhihu.com/?target=https%3A//arxiv.org/pdf/1810.12193.pdf
Code:https://github.com/Klitter/Pyramidal_Person_ReID(侵删)
摘要:论文指出基于特征图水平切块(part-based)的行人重识别很大程度上依赖于目标检测算法的优劣。差的目标检测算法由于无法精确的框出行人,导致在进行局部特征相似度计算和分类时不准确。 论文提出特征图金字塔由粗到细的整合全局和局部特征,并逐渐集成二者之间的线索,从而缓解了精确Box和不对齐的情况。论文同时指出,多任务训练可以提升模型的泛化能力,但是在具体的训练过程中,损失函数的训练目标往往不一致。在行人重识别中,经常使用交叉熵损失和困难三元组损失同时优化模型参数,根据先验知识理解,交叉熵损失函数通过优化模型参数,寻找优异的高维分类平面;triplet loss适合在自由的欧式空间里约束。而且对于这两个损失函数,在训练刚开始的时候,主要依靠交叉熵损失,等到后期难以识别的样本出现,现在三元组损失才真正发挥作用。如果简单地对两个损失函数赋予固定的权重,就不合适了,因此论文提出动态权重损失函数。
知识点解析:
1):coarse-to-fine的金字塔模型:特征金字塔--第一层:(1、2、3、4、5、6);第二层:(1、2、3、4、5)和(2、3、4、5、6);第三层:(1、2、3、4)、(2、3、4、5)和(3、4、5、6);第四层:(1、2、3)、(2、3、4)、(3、4、5)和(4、5、6);第五层:(1、2)、(2、3)、(3、4)、(4、5)和(5、6);第六层:(1)、(2)、(3)、(4)、(5)和(6)。得到各个层次的feature map后,将其(注意是所有的部件特征)分别输入后续的 Basic Operations,这一步具体操作如上所示,对fenature map分别做GAP和GMP两种全局池化,将池化后特征相加(channel不变)并接上conv+bn+relu降维得到最后的feature,这个feature一分为二,其中一路直接接上FC全连接层+softmax进行ID loss以提高该feature的辨识性,另一路和其他的部件特征结果相连(concat)进行Triplet Loss。
2):Multi Loss Dynamic Training:
在模型参数优化过程中,真正困难样本逐渐出现,此时困难三元组损失应该获得更大的权重,因此论文提出动态损失函数,在训练阶段使用不同的损失函数。在每一个epoch中,根据公式计算决定采样的方式。采样方式:a):随机采样,但是此时三元组可能由于无法找到三元组使得损失函数不起作用;b):K*P采样:每次选K个身份,每个身份选P个图像,但是此时由于ID较少,交叉熵损失作用不大。论文没有进行详细的论证,效果也需要考究。