《SSG》笔记ICCV oral

《Self-similarity Grouping : A Simple Unsupervised Cross Domain Adaptation》

摘要

要解决的问题:行人重识别的领域适应问题
提出的方法为:提出了一个self-similarity grouping的方法,这个方法探索无标签样本的潜在相似性(整体和部分身体),以此来根据不同的视角建立多域聚类。 同时还提出了一个one-shot的方法。
代码地址:https://github.com/OasisYang/SSG

动机和贡献

通常在计算机视觉任务中往往会存在一个普遍的问题,那就是我们在一个数据集上面训练好了一个模型,在这个数据集上可以获得不错的效果,但是当我们把这个模型应用在另外一个数据集上面的时候往往效果会变差。特别的,在行人重识别领域中,这个问题尤其的突出,比如我们在market1501上面训练了一个模型,测试的时候rank-1可以达到92%,但是当我们把这个模型应用在dukemtmc这个数据上面进行测试的时候,rank-1可能只有30%。最主要的原因还是因为这两个数据集之间的偏差太大。
目前的解决行人充实别领域适应的方法:

  • 通过UDA(unsupervised domain adaptation),一个通过聚类的方法,对特征进行聚类,打上弱标签的再进行监督训练的方法
  • 通过GAN(生成对抗模型),一个通过风格转换的方式,将两个数据像素表征进行改变,让两个域尽量的相似,体现再亮度,对比度,色彩鲜艳程度等

这篇文章是基于UDA来做的,作者指出之前的UDA总是假设源数据集和目标数据集有相同的类别,但是实际上在行人充实别领域中,这种假设是不存在的。这里作者关注的是the similar natural characteristics(相似的自然特性)。

上面这张图说明该方法的流程,将目标数据集的每张图片分为三个部分:全身/上半身/下半身,这每一个部分的图片都会通过聚类产生弱标签。所以每一个样本都会有三个弱标签。这三个部分聚类的目的应该是挖掘样本之间的相似性,也许在全身不划分在一起,但是在上半身or下半身会划分在一起。这样有利于监督模型对特征的学习(但是这样不会有更多的模糊信息存在嘛?)

所提出的方法

图片说明
如上图所示,这篇文章所提出的方法步骤如下:

  1. CNN的模型是ResNet50,同时已经在源数据集上训练好了
  2. 特征提取后,在每一次迭代中:
    (1). 将特征图分为上半身下半身,并在最后采用全局池化GAP
    (2). 对每一部分的特征进行聚类,并打上弱标签
    (3). 根据弱标签,更新CNN模型的参数,损失函数为triplet loss
    (4). 测试的时候将三部分的特征拼接在一起作为query的特征

全卷据预训练

baseline模型就是采用resnet50进行监督训练,训练的时候采用了交叉熵损失函数和triplet 损失函数。

无监督自相似聚类

作者认为,图像的特征提取已经很优越了,性能的下降只是因为相似性刻画的问题。所以作者在聚类的时候同时考虑全局,上半身,下半身三个部分的聚类,从而获得更多的相似性刻画,在多个维度上面对行人的相似性进行度量,有利于finetune。
产生的新的数据集如下:
图片说明
对于每一个样本都对应有三个标签。
除此之外,根据baseline的2048个维度的特征,在finetune的过程中也要考虑一个2048维度的从FC层变换得到的特征,他的弱标签共享于全身部分聚类得到的特征。所以SSG的损失函数如下:
图片说明
注意:测试的时候是不会拼接这个2048维度的特征的

基于聚类的半监督训练

传统的半监督训练大多基于one-shot learning,根据每一个类别的一个样本来进行模型的学习,但是在行人重识别中,样本的类别个数是不清楚的,所以one-shot在实际应用的过程是不适的。但是作者在这里采用了一个取巧的办法,根据聚类来获得哪一个one-shot的样本,然后训练的方法也如one-shot那样采用step-wise 的方式(《Exploit the unknown gradually: One-shot video-based person re-identification by stepwise learning》)。
一元样本的获得过程

  1. 在全局特征上采用无监督聚类,获得个分组
  2. 从每个分组中随机选择一个图片样本,构成一个非常小的子数据集
  3. 对这个小数据进行标签标注并进行标签对齐

这一部分呢具体的实现,可能需要我看了代码才能做进一步的补充,这已经是一个很不错的baseline了,有迁移学习的一系列东西。

实验结果

maret1501领域适应结果如下:
图片说明
可以看到这个方法比UDAP高了4.6个点的mAP,就是引入了上下两个部分的聚类。通过one-hot的标注,更可以有15个点的替身。

全部评论

相关推荐

我穷极一生追求大厂,最后发现,真正的伯乐在一个我一开始都看不上的地方。发来的offer是老板亲手写的2000多字的邮箱从大二就开始积攒的两段我自认为还不错的实习履历,一段小厂一段高知名度公司,但找暑期实习三个多月以来,体重一路暴跌,身体被搞坏了,面试了那么多家公司,只有他,让我得到了心灵上最大的慰藉。找实习过程中对不起自己的身体,更对不起妈妈深圳,一家很小的初创团队,但心高气傲想去大厂的我还是抱着聊聊天的心态还是去面试了面试官是个海归硕士,大厂出身创业,做跨境电商的。他一上来就说:“你的简历我仔细看过了,我知道你的闪光点在哪里。所以我不问你八股文,也不问你过没过六级,这些你的简历里都告诉我了。”我愣住了。这是我面试那么多次,第一次听到面试官说“我知道你很厉害”。在大厂面试的时候,我经历最多的是什么?是面试官看着我的简历,一脸茫然。因为我走的方向,小众孤独,大厂招聘几乎不面向实习生。我娓娓道来地阐述项目的核心亮点,却直接摆摆手让我写题。我的“屠龙刀”,在他们那里,找不到龙。但是他懂的多,懂我这个方向在国内有多小众、多孤独。他说,他也是这么过来的。我从小到大都被灌输“优绩主义”。考高分、上好大学、进大厂做自己喜欢的东西,这才是成功。我以为,只要我够强,大厂就会要我。可现实是,面对心仪的岗位,大厂的面试官看不懂我。字节、腾讯、百度、懂车帝、Momenta……能叫上名字的大厂,只面过10%,几乎全倒在终面,剩下的全简历挂。我一度怀疑自己:是不是我真的很差?我后来没有去那家小公司,去了北京某独角兽。但那次面试,我记了很久。因为那是第一次,有一个面试官对我说:“我知道你很厉害。”不是因为大厂实习,不是因为985,不是因为会背八股文。只是因为,他看懂了我的简历。我穷极一生追求大厂,最后发现:我追求的从来不是“大厂”这两个字。我追求的是被看见、被认可、被理解。而这些东西,大厂给不了我的,一个小公司的面试官,用一句话就给了。如果你现在也在低谷里,投了几千份简历都没有回音,比如我,几个小号轮流切换投,快四千份,亦或是心仪的岗位面试被挂了又挂……在就业环境极其恶劣的时代,我想说:不是你不够好,而是懂你的人还没来别着急会来的
牛牛爱吃草草:看了半天很感动,到最后给我说:我后来没有去那家小公司。
我的求职进度条
点赞 评论 收藏
分享
牛马43373018...:这人真懂什么叫熵吗
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务