这篇文章是由悉尼科技大学Yutian Lin等人完成,在CVPR2016上被收录。论文地址:https://arxiv.org/pdf/1703.07220.pdf
文章主要利用了属性学习(attribute learning)和行人重识别(Re-ID)之间的关系,将在局部特征上表现很好的属性学习和全局学习中的行人重识别方法进行结合,从而构造出一个全新的损失函数,进而提高Re-ID的性能。
一、摘要:
行人重识别和属性学习是两个联系非常紧密的领域,他们都是一种对行人的描述,但是两者在粒度方面存在一定差异,行人重识别考虑的是行人的全局描述,而属性学习是一种在局部描述上的考量。本文从这个角度出发,用多任务方法把ID分类损失和特征分类损失结合在一起,用这个损失函数求出相应的权重。
二、介绍
本文用从属性标签中学习到的互补信息来提高大规模数据下的Re-ID性能。只从全局考虑,我们可能无法区分两个看上去很相似的人,但如果进一步从细节上进行考量,我们可以对此作出正确区分。
与之前的研究相比,这篇文章主要有以下两点差异:
1、之前的方法几乎都是利用属性来增强两张或三张图片之间的联系,原因是因为在使用的数据集中一般是每个身份有两到三张图片,但是在行人重识别数据集中,每一个身份有多个图片,因此我们在这里使用CNN模型而不是孪生模型(siamese model)。
2、我们在这里尝试引入属性来检验是否可以提高Re-ID的性能,值得一提的是,在本文中我们考虑的是属性都是ID级别属性而非实例属性。两者的差异如下:
ID级别属性:行人本身所具有的属性,而且在长时间内保持不变,如年龄、性别等与之相关的属性
实例属性:在短时间内出现,或者输入外部环境的属性,如自行车、手机等。
本文主要有如下两大贡献;
1、将ID损失和属性分类损失进行合并,并提出一种基于属性的行人识别神经网络(ASR)。
2、 在Market1501和DukeMTMC-reID数据集中人工标注了一些行人属性。
三、相关研究
这一部分主要从“基于CNN的reid”、“行人reid属性”、“脸部应用的属性”三个部分进行展开,在此不再赘述。
四、属性标注
本文采用的是Market-1501和DukeMTMC-reID数据集。
虽然Market-1501和DukeMTMC-reID数据集是在大学实验室中收集的,大部分id都是学生。但是他们在季节上有显著区别(一个是夏天一个是冬天)。
Market-1501中的许多人穿裙子或裤子,而DukeMTMC-reID中的大部分人穿裤子。因此对两个不同的数据集,我们用了两个不同的属性集合。我们在考虑了数据集中人物特点之后,相应的选择了合适的属性。
在Market-1501,我们标注了27个属性:性别(男,女),头发长度(长,短),袖子长度(长,短),下装长度(长,短),下装类型(裤子,裙子),是否带帽(是,否),是否提袋(是,否),是否背包(是,否),是否提手提包(是,否),上装的八种颜色(黑,白,红,紫,黄,灰,蓝,绿),下装的九种颜色(黑,白,粉,紫,黄,灰,蓝,绿,棕)以及年龄(儿童,青年,成年,老人)
在DukeMTMC-reID中,我们标注了23种属性:性别(男,女),鞋子类型(靴子,其他),是否带帽(是,否),是否提袋(是,否),是否背包(是,否),是否提手提包(是,否),鞋子颜色(暗,亮),下装长度(长、短),上装的八种颜色(黑,白,红,紫,灰,蓝,绿,棕),下装的七种颜色(黑,白,红,灰,蓝,绿,棕)。颜色属性也是二进制表示。在图四中我们展示了一些有代表性的属性的关联。在图五中展示了两个数据集的属性分布。
五、提出方法
5.1基础方法
这篇paper分别从re-ID和属性识别两个方面构建了baseline。以ResNet-50作为基准网络,并在ImageNet上进行预训练,用新的标注属性和目前可获取的身份标签分别对两个baseline进行微调。
Baseline 1 (person re-ID). 对于给定的基础模型,我们设置最后的全连接(FC)层中的神经元数量为K,其中K表示训练身份的数量。为避免过拟合,我们在全连接层之前插入一个dropout图层,并将失活率设置为0.9。在测试期间,对于每个查询图像和图库图像,我们从pool5中提取2,048维的特征向量。 对于每一个查询图像,我们计算它与图库之间的欧几里德距离,并进行排序。
Baseline 2 ((pedestrian attribute recognition & re-ID)
在这里我们使用M 个FC层,然后使用softmax层进行属性识别,其中M表示属性的数量。对于CaffeNet,我们用M个FC层取代FC8。 对于ResNet-50,它们取代了FC层。 对于m类的属性,其全连接层为m维。和Baseline 1一样,为了避免过拟合我们也加入了dropout层。
5.2 Attribute Person Recognition(APR)网络
结构:
在本节中,我们将对Attribute Person Recognition(APR)网络进行详细描述。APR网络是由基本模型组成,在损失计算前有
M
+
1
M +1
M+1个 FC层,其中一个是身份分类损失,M个是属性分类损失,其中M是属性的数量。新的FC层表示为FC0,FC1,…,FCM,其中FC0用于ID分类,FC1,…,FCM用于属性识别。 预先训练的模型可以是ResNet-50 或CaffeNet。对于ResNet-50,FC层是连接的到Pool5。 对于CaffeNet,FC层已连接改为FC7。 尺寸为
224
∗
224
224*224
224∗224和
227
∗
227
227*227
227∗227的图像分别用于ResNet-50和CaffeNet。
损失计算
如果我们有 K K K个身份的 n n n张图片,每个身份含有 M M M个属性。令 D i = { x i , d i , l i } D_{i}=\left \{ x_{i},d_{i},l_{i} \right \} Di={xi,di,li}作为训练集, x i x_{i} xi表示第 i i i张图片, d i d_{i} di 表示图片 x i x_{i} xi 的身份, l i = { l 1 i , . . . . l M i } l_{i}=\left \{ l_{1}^{i},....l_{M}^{i} \right \} li={l1i,....lMi} 表示图片 x i x_{i} xi 的 M M M个属性标签.
对于给定的训练样本
x
x
x,我们的模型先计算它的pool5描述f(我们以ResNet-50为例)。输出向量的尺寸为
1
×
1
×
2048
1×1×2048
1×1×2048。
F
C
0
FC_{0}
FC0 的输出是
z
=
[
z
1
,
z
x
,
.
.
.
.
z
K
]
ϵ
R
K
z=\left [ z_{1},z_{x},....z_{K} \right ]\epsilon R^{K}
z=[z1,zx,....zK]ϵRK 。所以每个身份的可能性计算如下:
我们如果忽略k和x的联系,则ID分类的交叉熵损失计算如下:
L
I
D
(
f
,
d
)
=
−
∑
K
=
1
k
l
o
g
(
p
(
k
)
q
(
k
)
)
L_{ID}\left ( f,d \right )=-\sum_{K=1}^{k}log\left ( p\left ( k \right )q\left ( k \right ) \right )
LID(f,d)=−K=1∑klog(p(k)q(k))
y为正确的ID标签,因此对所有
k
≠
y
k\neq y
k̸=y ,使得
q
(
y
)
=
1
q(y)=1
q(y)=1 且
q
(
k
)
=
0
q(k)=0
q(k)=0。在这里,最小化交叉熵损失等同于最大化分到正确类的可能性。
对于属性预测,我们也用M个softmax losses来进行计算。假定对一个特定属性分
m
m
m类,对样本
x
x
x,分到第
j
j
j类的概率可以写成。
相似的,分类样本x的损失可以计算如下:
L
a
t
t
(
f
,
l
)
=
−
∑
j
=
1
m
l
o
g
(
p
(
j
)
)
q
(
j
)
L_{att}(f,l)=-\sum _{j=1}^mlog(p(j))q(j)
Latt(f,l)=−j=1∑mlog(p(j))q(j)
令
y
m
y_{m}
ym为正确属性标签,因此对于所有
j
≠
y
m
j\neq y_{m}
j̸=ym,有
q
(
y
m
)
=
1
q(y_{m})=1
q(ym)=1且
q
(
j
)
=
0
q(j)=0
q(j)=0.
通过用一个多属性分类损失函数和一个id分类损失函数,训练APR网络来预测属性和id标签。最后的loss函数定义如下:
L
=
λ
L
I
D
+
1
M
∑
i
=
1
M
L
a
t
t
L=\lambda L_{ID}+{1\over M}\sum _{i=1}^ML_{att}
L=λLID+M1i=1∑MLatt
L
I
D
L_{ID}
LID和
L
a
t
t
L_{att}
Latt分别表示ID分类和属性分类的交叉熵损失,参数
λ
\lambda
λ 用于衡量这两个损失在losses的权重。
六、实验部分
这一部分主要介绍了实验所用的数据集和实现细节,以及Re-ID评价和属性评价两个部分。
七、结论
本文主要探讨了如何通过整合属性学习来提高Re-ID的性能,虽然思路比较简单,但在实验过程中体现出非常好的性能