Graph+Reid

今天解读港中文商汤联合实验室沈岩涛老师在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

Graph+Reid

这两篇文章是同一班人马写的,所以其实整体结构上都很像,我们结合起来分析:

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

Deep Group-shuffling Random Walk

与其他Reid方法一样,首先训练一个图像模型提取图像特征,对特征计算相似度可以得到probe中所有图片与gallery中所有图片之间的相似度,与其他Reid方法不同,但与reranking相同的是,我们也可以计算出所有gallery图片之间的相似度。给定一张probe图片,它和所有gallery之间的相似度向量为y,所有gallery之间的相似度矩阵为W,我们将一张probe图片和所有gallery图片合起来看成一个图,根据random walk的思想,probe图片这个节点walk到第j张gallery图片的概率是yj,接着,从probe节点出发,经过其他节点k,再到达gallery图片j的概率是yk * Wkj,那么,从probe节点出发,走两步(包含了所有中间节点的可能)到达图片j的概率就是:

k=1n Wkj*yk

到达所有图片j的概率拼成一个新的向量,我们就可以得到:

y(t+1) = Wy(t)

论文里讲t拓展到了无穷大,并加入了权重因子λ对walk前后的概率进行了平衡,最终化简为了这样的形式:

rw

但根本的道理就是上面所述的Random walk思想。

这样我们就得到了一组更好的P2G相似度,并且我们反向传播的时候,这组相似度的梯度会传到W矩阵上,W矩阵是由前边图像模型得出的,也就会传到前面的模型上,从而对模型提供更多的监督信号。

论文里还有一个创新点是,将视觉特征分成了K个group,每个group的特征都可以单独拿出来用,这样我们就可以做K个上边提到的random walk,于是监督信号更多了,同时因为视觉特征被拆成了K份,每一份都只是原特征的一小部分,相当于dropout了一部分信息,也能很大程度上防止过拟合。但其实这个方法并不见得比dropout优雅,实验效果也差不多。

Group shuffle

实现上还有一个小的细节,把所有图片构成一个graph的话,开销太大了,所以训练时graph其实只是所有图片的一个子图,

  • 首先每个batch有64个人,每个人有4张图,这样batch size就是256(流下了贫穷的泪水),
  • 训练时,首先有256个softmax loss,
  • 然后对于64个人,每个人的4张图中取1张做probe,3张做gallery,galley是所有人一起用的(这样就有正样本也有负样本)
  • 这样W矩阵就是643x643,对角线为0,于是就有192*192个g2g相似度,同时有64个p2g的相似度。这些相似度可以用真实标签约束,也可以直接用feature求出来,论文里是用feature求的;
  • 为每个人得到更新后的p2g向量,对这64个长度为192的p2g向量加二分类loss就完成训练模型的搭建了
  • 测试时先算所有p2g相似度,然后对每个probe,选择top75个gallery组成G2G图,用这个G2G更新P2G相似度,从而获得更准的ranking结果

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的模式来更新相似度向量::

dit+1=(1-α)dit+1+αWdit

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

ti=F(di)

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

F

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


update

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

GNN

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

实现细节上,与DGRW类似

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

Experiment

跟别的方法对比就不用看了,我们来看Ablation Study

DGRW


DGRW result

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

SGGNN

SGGNN result

结果也跟random walk类似。

总结

将graph之间的关联融合到神经网络训练中提供了更丰富的监督信号,基于Graph的方法虽然结果上提升不明显(可能是baseline太强了吧),但创新性是有的。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,560评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,104评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,297评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,869评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,275评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,563评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,833评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,543评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,245评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,512评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,011评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,359评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,006评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,062评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,825评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,590评论 2 273
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,501评论 2 268

推荐阅读更多精彩内容