跨镜追踪(行人重识别Person Re-identification)读书笔记(四)

版权声明:本文为博主原创文章,转载请注明出处 https://blog.csdn.net/weixin_33860450/article/details/86601709

《A Coarse-to-fine Pyramidal Model for Person Re-identification via Multi-Loss Dynamic Training》

论文地址:https://arxiv.org/pdf/1810.12193.pdf

腾讯的一篇文章,提出一种多尺寸金字塔模型。如下所示,输入图片经过backbone后得到C × H × W的feature map,首先采用类似PCB的做法,对feature map在H方向上横向等分成N分部(拿下图的6部分来说),则金字塔最底层(第一层)取整个6份为整体feature,第二层取其中的5份分别是1,2,3,4,5和2,3,4,5,6作为本层的两个feature map,第三层则取其中4份分别是1,2,3,4和2,3,4,5及3,4,5,6作为本层的三个feature map,以此类推,第四层则取其中3份分别是1,2,3和2,3,4及3,4,5和4,5,6作为本层的四个feature map,第五层则取其中2份分别是1,2和2,3及3,4和4,5和5,6作为本层的五个feature map,最后一层则只取其中的一份作为本层的六个feature map,分别是1,2,3,4,5和6。这就是疯狂多尺寸部件特征。

得到各个层次的feature map后,将其(注意是所有的部件特征)分别输入后续的 Basic Operations,这一步具体操作如下所示,对fenature map分别做GAP和GVP两种全局池化,将池化后特征相加(channel不变)并接上conv+bn+relu降维得到最后的feature,这个feature一分为二,其中一路直接接上FC全连接层+softmax进行ID loss以提高该feature的辨识性,另一路和其他的部件特征结果相连进行Triplet Loss。

在采样方面,本文涉及到两种采样方法,一为普通的随机采样,二由于mini-batch的使用,导致每个ID的样本数太少以至于Triplet loss对于网络作用不是很大,因此本文采用一种ID- balanced的做法,即每个batch使用8个随机ID,每个ID采用8张随机图(那些ID少于8张图的样本便无法参与训练),如此便可使用难例三元组进行Triplet loss。其实就是每个ID的样本多一点,这样子难例样本在计算类内和类间距离时比较有意义。

如上所示,文章采用了Identification loss+Triplet loss两种loss相结合,但是并非简单的在两个loss前加上去权重系数相加作为总的loss,文章提出自己的一种动态loss训练,思想是前期先学习简单的样本,后期再学习难例样本。公式不好编辑这里就不贴出来了,大概说一下意思,首先算一下每个loss持续到当前的平均值,然后根据这个值来计算每个loss当前学习率的速度,并计算其在两种loss学习率中所占的比重,如果ID loss起的作用比较大便采用普通随机采样,若Triplet loss起的作用比较大则采用ID- balanced的采样方法。经实验表明前期ID loss起主导作用,因为前期模型比较粗糙,简单样本学习更快,后期则Triplet loss起的作用较大,难例对模型的影响较大。具体感兴趣的可以查看原文的公式。

最后,文章贴出该方法在数据集上的结果,market如下:

猜你喜欢

转载自blog.csdn.net/weixin_33860450/article/details/86601709
今日推荐