Person Re-Identification by Deep Joint Learning of Multi-Loss Classification (JLML)

15 篇文章 0 订阅

1、介绍

这是一篇IJCAI2017的文章,和CVPR2018的Harmonious Attention Network for Person Re-Identification这篇的作者相同,是他们去年的工作。两篇对比来看,能看到作者方法的继承性:即CVPR2018那篇是IJCAI2017这篇加上软硬注意力以及软硬注意力交互学习的升级版。下面一起来看下IJCAI2017这篇论文。
现有(2017年以前)的行人重识别算法要么关注全局特征,要么关注局部特征。在这篇文章中,作者提出了一个联合学习局部和全局特征的CNN结构,能够在不同的上下文中挖掘局部和全局特征间的关联。作者的创新点如下:

  • 联合学习局部和全局特征
  • 提出了一个Joint Learning Multi-Loss(JLML) CNN model,不仅能够通过优化多分类损失函数学习局部、全局特征,还能够利用二者之间相互补充的优点当处理局部不对齐和优化整体匹配标准时。这是通过一个two-branch的CNN结构,在两支网络间实施相互作用,两支网络各自拥有不同的损失函数来实现的。
  • 提出了一个structured sparsity based feature selection mechanism(一个对512fc层权重的正则化方法),能够提升multi-loss joint feature learning对局部和全局特征之间噪声和数据分布covariance的鲁棒性(这句话说的不明不白)。

2、作者的方法

在这里插入图片描述
网络结构如上图,这是一个two-branch的网络。首先将行人的图片经过一个卷积层提取低级语义特征。将得到的特征图直接送入global branch学习全局特征。把特征图竖直方向上分成m(m=4)份分别送入local branch中学习每份的局部特征。共用一个卷积层能够促进两支网络学到一些共有的信息,并且减小了参数量,可以防止过拟合,对行人重识别这种训练数据有限的任务很有效。然后两支网络有各自的损失函数,保证了两者网络最大化地学习不同尺度的判别能力,并且能够相互补充。
在这里插入图片描述
具体到每支网络内部,作者基于ResNet50设计了一个专门针对reid任务的39层的网络(如上,每层卷积后面都有ReLU)。对于224x224的输入,首先经过3x3,kernls=32,stride=2的卷积层得到112x112x32的特征图。然后分别整体送入global branch,或者4分成4个28x112x32送入local branch。
global branch部分,首先经过一个3x3 max pool,stride=2变成56x56x32,然后经过一个RB变为56x56x64,再经过一个RB变为28x28x128,再经过一个RB变为14x14x256,再经过一个RB变为7x7x512,然后经过7x7 avg pool变成1x1x512,然后再经过1x1 kernls=512的卷积层(相当于512个神经元的fc)得到512维的全局向量。训练时再加一个分类层。
local branch部分,以其中的一支为例,28x112x32经过2x2 stride=1 max pool变成28x56x32(存疑,文章没有讲清楚),然后经过一个RB变成28x56x32,再经过一个RB变成14x28x64,再经过一个RB变成7x14x128,再经过一个RB变成4x7x256,然后经过一个4x7 avg pool变成256维,4个局部支路得到的结果连接在一起得到1024维,然后经过1x1 kernls=512的卷积层(相当于512个神经元的fc)得到512维的局部向量。训练时再加一个分类层。
损失函数:
作者在损失函数中加入了稀疏正则化项:采用了competing-to-survive的机制(对结果很重要的权重才能不为0,其他不重要的权重会被拉成0)来阻止学习不相关的特征,鼓励学习有判别能力的特征。
global branch的正则项:
在这里插入图片描述
WG时cg x dg大小的矩阵(最后一层fc的参数),wg对应着d维输入第i个元素在输出中的重要性。这样正则,能够对d维输入中真正有判别能力的特征进行选择。
local branch的正则项:
在这里插入图片描述
WL是cl x dl大小的矩阵(最后一层fc的参数),W = [w(i=1);w(i=2);w(i=3)],w^i_lj是dl×1大小,二范数对j求和反应了输出1xcl维中每个维度的重要性。
总的损失函数:
在这里插入图片描述
总的损失函数如上图,其中l是一般的分类损失(Softmax loss)。

3、实现细节

  • 全局特征和局部特征连接在一起得到1024维向量特征。测试时使用最一般的L2距离匹配。
  • 使用Caffe框架。
  • CUHK03是1260/100 training/test splits
  • 对于CUHK03或者Market1501:ImageNet->CUHK03/Market;对于VIPeR和GRID:ImageNet->CUHK03+Market1501->VIPeR/GRID
  • lr预训练时每100k iters减小1/10,训练时每20k减小1/10

4、实验结果

CUHK03:
在这里插入图片描述
Market1501:
在这里插入图片描述
VIPeR:
在这里插入图片描述
GRID:
在这里插入图片描述
component analysis:
在这里插入图片描述
单独使用全局特征或者单独使用局部特征效果都不错,一起使用效果更好。
在这里插入图片描述
实验证明多loss比统一的loss效果更好(统一的loss来自另一篇论文,没有说清楚,我推测是将两个特征连接在一起后用一个softmax loss训练)。
在这里插入图片描述
共享第一个卷积层效果更好。
在这里插入图片描述
有稀疏正则化特征选择学习效果更好(其实从实验结果上来看提升并不大)。
在这里插入图片描述
网络复杂度分析,较少的参数下,保持了最多的网络流和最深的层数。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值