Deep Group-shuffling Random Walk for Person Re-identification

原文链接

今天解读港中文商汤联合实验室沈岩涛老师在CVPR2018和ECCV2018上发表的两篇关于Graph+Person reid的文章:

CVPR2018:Deep Group-shuffling Random Walk for Person Re-identification
ECCV2018:Person Re-identification with Deep Similarity-Guided Graph Neural Network

Motivation and Related Work

person reid这个任务是为probe图像在gallery图片集中寻找属于同一个人的图片,所以通常的做法都是考虑probe和gallery之间的关系,但有时候probe和gallery的差别太大,比如一个正面的人和一个背面的人,假如我有一个侧面的人的图片,跟两者都很像,就有可能用这个中间图片将两者关联起来。在这之前其实也有人提出过一些方法,比如CVPR2017:Re-ranking person re-identification with k-reciprocal encoding. 先计算出gallery图片之间的相似度,将较相似的图片的rank拉近。

但这些方法大多是**将这种关系抽取和利用作为一个后处理的过程,对图像模型的训练起不到帮助。并且对gallery之间的相似度提取大多是基于已经训练好的图像模型,加上无监督的聚类方法,提取gallery图片之间的相似度关系,**这种无监督方法较弱,不能充分利用数据集中的监督信息。

因此这两篇文章开始将gallery之间的关系(下面简称G2G)融入到图像模型的训练里。Graph由许多节点和边构成,在Reid问题里,节点就是一个个的人的图像,边就是图像之间的相似度。利用一个batch中的所有图像在关系图上的关联,提供更多的监督信号,将模型训练的更好。之所以说更多的监督信号,是因为以往我们一个batch的label只有batch_size对样本之间的相似关系,但将batch中的所有图片看成batch size个图之后,每个图之间有batch gallery size x batch gallery size个相似度关系可以学习,就引入了更多的监督信号。

Overview

在这里插入图片描述
(图源于第二篇文章)这两篇文章是同一班人马写的,所以其实整体结构上都很像,我们结合起来分析:

(1)DGRW是用Random Walk的方式将G2G的相似度信息用来更新P2G的相似度关系,在反向传播时通过G2G这个很多相似度关联的图对原来的图像模型提供更多的训练。
(2)SGGNN是用G2G的相似度关系对P2G的相似度特征进行修正,从而得到更好的相似度特征,并且也通过G2G之间的大量关联提供了更多的监督信号。

Deep Group-shuffling Random Walk

3.2 Random walk in deep neural networks

在本节中,我们将random walk操作集成到deep Convolution Neural Networks (CNN)中,学习更多的判别特征,并利用G2G affinities来估计准确的P2G affinities。
给定一个探针图像和一组n张图库图像,图像之间的配对亲和度评分可以由最先进的person re-ID孪生- cnn估计,该算法以一对图像作为输入,并估计这两幅图像属于同一个人的概率。我们将CNN探测到的图像与gallery图像之间的亲和力得分称为初始P2G亲和力 y(0)∈R n,引入深度神经网络的random walk层,该层以初始P2G亲和力和G2G亲和力为输入,输出优化后的P2G亲和力。设S∈R n×n表示存储n个图库图像之间原始G2G亲和度得分的矩阵。为满足G2G矩阵的归一化约束,我们用softmax对原始亲和矩阵S的每一行进行归一化。
在这里插入图片描述
对角元素都设为零,即, W(i, i) = 0,表示在随机游走迭代过程中避免自增强。因此,式(1)中的softmax归一化不涉及对角线项。初始P2G亲和度的一次迭代的random walk细分可表示为
在这里插入图片描述
其中y(1)为基于初始P2G affinities y(0)和归一化G2G affinities w的改进的P2G affinities。直观上,如果gallery图像i和j相似,那么它们与探针图像的P2G affinities也应该相似。对于第i个图像的精细亲和力得分y (1)(i),计算为
在这里插入图片描述
由式可知,如果图库图像i与j更相似(W(i, j)较大),则图像j, y (0)(j)的P2G亲和度W(i, j)的权值更高,可以传播到P2G亲和度得分y (1)(i)。
在实践中,我们希望改进后的P2G亲和度不要与最初的P2G亲和度估计相差太远。因此,我们将随机游走细化y(1)与初始P2G亲和力y(0)加权组合为
在这里插入图片描述
与其他Reid方法一样,首先训练一个图像模型提取图像特征,对特征计算相似度可以得到probe中所有图片与gallery中所有图片之间的相似度,与其他Reid方法不同,但与reranking相同的是,我们也可以计算出所有gallery图片之间的相似度。给定一张probe图片,它和所有gallery之间的相似度向量为 y ,所有gallery之间的相似度矩阵为 W ,我们将一张probe图片和所有gallery图片合起来看成一个图,根据random walk的思想,probe图片这个节点walk到第 j 张gallery图片的概率是 y_j ,接着,从probe节点出发,经过其他节点 k ,再到达gallery图片j的概率是 yj=y_k * W_{kj} ,那么,从probe节点出发**,走两步(包含了所有中间节点的可能)到达图片 j** 的概率就是:(即为W的第j列的所有值与yk的乘积 的和 )
在这里插入图片描述
从probe到达所有的图片的概率拼成一个新的向量,我们就可以得到:
在这里插入图片描述在gallery中图像i,j越相似,W(i,j)就越大.
如果引入一个权重因子 \lambda 对walk前后的概率进行平衡就是:
在这里插入图片描述 random walk随机游走操作一般进行多次直到收敛,经过t次迭代则有, 在这里插入图片描述
在这里插入图片描述
详细推理论文可见,

论文里将 t 拓展到了无穷大,最终化简为了这样的形式:
在这里插入图片描述
####****************************************************
根本的道理就是上面所述的Random walk思想。
相似度 由W转向y,即由G2G到P2G转变。
这样我们就得到了一组更好的P2G相似度,并且我们反向传播的时候,这组相似度的梯度会传到 W 矩阵上,W矩阵是由前边图像模型得出的,也就会传到前面的模型上,从而对模型提供更多的监督信号。
在这里插入图片描述

论文里还有一个创新点是,将视觉特征分成了 K 个group, 每个group的特征都可以单独拿出来用,这样我们就可以做 K 个上边提到的random walk,于是监督信号更多了,同时因为视觉特征被拆成了 K 份,每一份都只是原特征的一小部分,相当于dropout了一部分信息,也能很大程度上防止过拟合。但其实这个方法并不见得比dropout优雅,实验效果也差不多。
在这里插入图片描述实现上还有一个小的细节,把数据集中所有图片构成一个graph的话,开销太大了,所以训练时graph其实只是所有图片的一个子图,只对batch中的图片建立graph

(1)首先每个batch有64个人,每个人有4张图,这样batch size就是256(流下了贫穷的泪水),
(2)训练时,首先有256个softmax loss,
(3)然后对于64个人,每个人的4张图中取1张做probe,3张做gallery,galley是所有人一起用的(这样就有正样本也有负样本)
(4)这样 W 矩阵就是643643,对角线为0,于是就有192192个g2g相似度,同时有64*192个p2g的相似度。这些相似度可以用真实标签约束,也可以直接用feature求出来, 论文里是用feature求的;
(5)经过分组随机游走,为每个人得到更新后的p2g向量,对这64个长度为192的p2g向量加二分类loss就完成训练模型的搭建了
训练是为了经过网络计算 ,得到的P2G的相似度越准确越好,这样top k就会选到正确的图片
(6)测试时先算所有p2g相似度,然后对每个probe,选择top75个gallery组成G2G图,用这个G2G更新P2G相似度 ,从而获得更准的ranking结果
网络结构如下:
在这里插入图片描述
在这里插入图片描述
整个深度神经网络如图2所示。它由一对affinity 的CNN和提出的分组变换随机游走层组成。

成对affinity CNN将一对图像作为输入,输出K个特征组在两幅图像之间的K个亲和力得分。
成对affinity CNN的网络结构如图3所示。孪生部分采用ResNet-50[11]结构全局池层之前的部分。
然后对两幅图像的2048维特征向量进行“相减”求距离,之后按元素进行平方和归一化操作[13]。最后的特征向量被划分为K个子特征向量,每个子特征向量通过一个全连通(FC)层和一个sigmoid函数映射到一个亲和度得分
注意,划分最后一层中的特性,相当于将输出特征与平均池化层分开。(特征向量——子特征向量——score分值,相当于每个子特征进行了平均池化?)
给定一个Probe图像和n个图库图像,成对的affinity CNN估计初始P2G亲和力yk(0)∈Rn和G2G 相似性,W k∈Rn×n, k = 1,···,k。
group- shuffling random walk层以初始P2G和G2G亲和度为输入,输出K^2组改进的P2G亲和度 y(∞)jk 其中:j,k = 1,···,k。
该监督适用于 用交叉熵 细化的P2G亲和关系。

Deep Similarity-Guided Graph Neural Network

这篇文章跟上一篇很多地方是一样的,我们来讲讲不同的地方。

Graph and node

这篇文章声称每个节点是一个P2G的图像对,但在讨论中,图里的P都是相同的,所以我觉得可以认为这其实也是一个G2G的图,只不过每个节点的value变成了SiameseCNN算出来的P2G的相似度向量 di ,我们用通常的Siamese二分类loss和softmax多分类loss约束 di ,同时我们希望能用G2G的相似度矩阵W来进一步修正di

feature update

考虑一下用类似random walk的模式来更新相似度向量::

d_i{t+1}=(1-α)d_i{t+1}+αWd_i^t

但 d_i^t 毕竟不是相似度的结果向量,而是相似度特征向量,所以上面这个式子其实是不成立的,于是进入玄学模式,文中定义了一个消息向量:

t_i=F(d_i)

这个 F 就是 d 到 t 的映射,

如图,通过两层FC+BN+ReLU,将相似度特征 d 映射为一个能够根据相似度矩阵 W 修正特征向量的消息向量 t ,由于 F 的权重是可训练的,所以下面这个式子就成立了:

d_i{t+1}=(1-α)d_i{t+1}+αWt_i^t

文中说 W*t 得到的结果是fusion feature,其实我觉得这种G2G相似度和特征的fusion没有Random Walk来得优雅,然后用fusion feature和原来的feature做加权和,其实这种加权和的方式来修正原来的feature也值得商榷。不过这种update形式也是借鉴自其他的Graph Neural Network方法:

d_i{t+1}=(1-α)d_i{t+1}+α\sum_{j=1}^N h(d_i,d_j)t_i^t

这里边的 h 往往是无监督的,而SGGNN的 W 是可以有监督训练得到的,就比其他GNN的方法要好一点。

实现细节上,与DGRW类似

选择48个人,每个人有4个图,共192张图
每个人的4张图里,一张做probe,其他做gallery,gallery是所有人共用的,于是有 M*(K-1)=483=144 个gallery图片(论文里的 M 和 K 顺序应该是写反了)
用siamese CNN算出48
144个P2G相似度,144*144个G2G相似度
为每个probe取top100个gallery图片构成G2G图,于是 W 矩阵大小为100x100
用W矩阵更新p2g相似度特征,对相似度特征加dense层再做二分类loss约束即可
测试与DGRW基本相同,区别只在于更新的是相似度feature而非相似度结果。
Experiment
跟别的方法对比就不用看了,我们来看Ablation Study

DGRW

baseline rank1就91%了我还能说什么,流下了不会调参的泪水,不过看baseline+triplet居然还掉了,说明他们的hack泛化能力其实不强,另外针对两个主要的创新点,group shuffle也没有比dropout效果要好多少,random walk也没有比reranking好多少。不过有一个现象,mAP比top1提高的多,说明这种基于g2g关系的方法,通常是用得分较高的gallery图像把gallery中得分比较低的对象拉上来了。

SGGNN

结果也跟random walk类似。

总结
将graph之间的关联融合到神经网络训练中提供了更丰富的监督信号,基于Graph的方法虽然结果上提升不明显(可能是baseline太强了吧),但创新性是有的。评论区有朋友提到文中rerank方法提升不明显,确实也是一个疑点,有机会找一个91的baseline来试一下reranking。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值