行人再识别:Beyond triplet loss: a deep quadruplet network for person re-identification

摘要

1.设计了一个四元损失函数,相比于三元损失该损失函数可以有效增加类间间距、减小类内间距

2.提出了一种自适应选取hard examples的方法

3.对比分析了不同损失函数之间的关系

损失函数

常用的三元损失:

其中[z]+=max(z,0),f(xi), f(xj), f(xk)表示三张输入图像的特征。

文中采用了类似于[CVPR2016_Joint learning of single-image and cross-image representations for person re-identification]中的方法,将损失函数的欧氏距离更改为学习得到的距离g(xi,xj),上述文献中,损失函数的定义如下:

在上述论文中,作者采用了只有一维输出的全连接层学取g(xi,xj) 的值,这就将导致g(xi,xj)无法保证在[0,1]范围内,从而会使得损失函数中的阈值α失效。因此,在本文中对该损失函数进行了修改,并基于此提出了四元损失函数。

扫描二维码关注公众号,回复: 3069080 查看本文章

如上图所示,(a)和(b)分别是基于欧拉距离和学习所获得距离的三元损失,为了解决(b)中未归一化的问题,本文采用了上图(c)所采用的方式——利用了具有两个结点的全连接输出,并通过一个softmax得到一个范围在[0,1]内的g(xi,xj) 。

为了能够进一步增加图像间的类间距离和缩小类内距离,在三元损失的基础上增加了新的限制项,得到四元损失函数:

为了能够让上式的第一项起的主导作用,在计算中要确保α1>α2 。相应的四元结构如下图所示:

Hard negative images 的选择

通常所采用的单一阈值进行的难例获取方法,即给定一个阈值,当正例和反例之间的距离小于该阈值时人为该范围可作为hard negative image,并将其返回进行训练。但是该方法中如果阈值选择不合适往往会带来一些不良的后果,如果阈值过小,可能会导致参与训练的反例过少,相反,如果阈值过大又可能引起反例过多导致过拟合等问题。为了解决该问题,本文提出了一种自适应的方式来计算该阈值:

在具体实施过程中,计算的是每一个batch中正例图像组和反例图像组各自的平均距离。

实施细节

框架:caffe

图像大小:resize to 227×227

学习率:0.001

batch size:128

对于数据集中的所有图像全部进行了水平翻转以增加训练图像数量;

关于hard negative mining中的阈值,由于在开始训练的时候距离的计算是比较混乱的,因此利用pre-trained模型进行初始化。

猜你喜欢

转载自blog.csdn.net/wangxinsheng0901/article/details/82222812