Pyramidal Person Re-IDentification via Multi-Loss Dynamic Training

行人重识别之动态分块训练

Pyramidal Person Re-IDentification via Multi-Loss Dynamic Training
原文链接
这篇文章提出了两个思想:

  • 图像局部和整体的信息都很重要,要联合使用。
  • 在训练的过程中,损失函数的权重应该是动态变化的。

这两个思想的关联性不大,我们分开来看。

图像的分块和信息的利用:
对于行人重识别中图像的分块重要性我们已经熟知,但是通常是块与块之间的匹配,这样的做法不够严谨,于是作者使用了如下的分块方法。
在这里插入图片描述
我们只需要看绿色的部分,将三维的feature map分块(图中为了简便,将三维画成了二维),将其分成了6块。分为6层,21个独立的feature map。
第一层:123456
第二层:12345、23456
第三层:1234、2345、3456
第四层:123、234、345、456
第五层:12、23、34、45、56
第六层:1、2、3、4、5、6
对21个feature map分别进一步提取特征向量,并使用交叉熵损失(图中的ID loss),再将21个特征向量连接,使用三元组损失。

很简单的分块方式,不需要额外进行语义分割,但是实验效果却非常好。

损失函数权重的动态变化:
通常的做法是根据实验结果选择固定的损失函数权重。但是,在实际的训练过程中,损失函数的地位是动态变化的。比如,最开始的时候,模型还是懵懂阶段,对于它来说,所有的样本都很难识别。那么这个时候三元组损失就没什么意义。在最后的阶段,一些难以识别的样本渐渐浮出水面,那么三元组损失就变得重要起来。
注意:并不是说,交叉熵损失越来越不重要,三元组损失越来越重要,这是一个复杂的动态变化过程。

进一步,作者认为不同的损失函数应该对应不同的采样方法。
比如,使用随机采样(下文的random sampling),行人身份众多,同一个label的图像很难采到两个及以上。举个例子,batchsize是8,用数字代表图像的label,那么一个batch的样本很可能是这样的:341,700,123,561,336,59,291,665。这样的话,三元组损失就没什么意义了,因为要存在正样本对。所以作者使用了ID-balanced hard triplet sampling,batchsize为64,每次取8个label,一个label取8张图。但是这种采样方式使得不足8张图的label不会被取到,所以需要两种采样结合使用。

作者的做法如下,具体数学推导可以在使用的时候参考原文,这里主要介绍思想。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
FL(tp)和FL(id)可以分别理解为三元组损失和交叉熵损失在当前迭代中的重要程度。当交叉熵更重要时,使用random sampling+交叉熵损失。当三元组更重要时,使用ID-balanced hard triplet sampling+两个损失函数的加权组合。这就是一个权重动态变化的过程。

总结:虽然两个思想都不是很复杂,但是效果却十分好,可以应用于模型的baseline中。


欢迎讨论 欢迎吐槽

发布了38 篇原创文章 · 获赞 142 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_39417323/article/details/100051720