CVPR 2021 华南理工和微信的Transformer:UP-DETR无监督预训练检测器

点击上方“机器学习与生成对抗网络”,关注星标

获取有趣、好玩的前沿干货!

者:飞奔的啦啦啦   知乎

https://www.zhihu.com/question/432321109/answer/1606004872


论文标题:

UP-DETR: Unsupervised Pre-training for Object Detection with Transformers

论文:https://arxiv.org/abs/2011.09094

中cvpr oral啦!代码和预训练模型已经开源:

https://github.com/dddzg/up-detr

相信大家都有目共睹,无监督预训练模型无论是在nlp(BERT,GPT,XLNet)还是在cv(MoCo,SimCLR,BYOL)上都取得了突破性的进展。而对于无监督(自监督)预训练而言,最重要的就是设计一个合理的pretext,典型的像BERT的masked language model,MoCo的instance discrimination。他们都通过一定的方式,从样本中无监督的构造了一个"label",从而对模型进行预训练,提高下游任务的表现。

回到我们的UP-DETR,对于DETR而言,既然CNN可以是无监督预训练的,那么transformer能不能也无监督预训练一下呢。这就是我们的motivation。

当然啦,骚想法可以很丰满,可现实总是很骨感(T.T)。对于现有的pretext任务,似乎都不太适合于DETR里transformer的预训练。比如,你想搞个mask,可cv都是连续像素构成语义,没法像nlp天然有个离散的token的概念,最后还可能训成一个mask检测器(狗头。直接把MoCo那一套搬过也不太可行。我们认为主要的原因是DETR中的transformer主要是用来做空间信息上的定位而MoCo那一套主要是用来提高CNN的instance discrimination

更重要的是,无监督预训练检测器,这听起来就很违背自觉,因为是不是object某种意义上明明就是人为定义的。所以,我们换了一个思路,提出了一个叫random query patch detection的pretext,具体而言就是从原图中,我们随机的框若干个patch下来,把这些patch输入到decoder,原图输入到encoder,然后整个任务就变成了给定patch找他们在原图中的位置。最后,对于一个无监督训好的DETR,只要输入patch,它天然就能做到如下图的无监督定位patch的功能(不需要额外的nms后处理),当然这个patch还能支持数据增强和尺度变换。从这个预训练任务的角度来说,一个patch是不是object本身没有任何先验。

idea其实就这么简单,但具体实现上,我们其实遇到了两个主要的问题,在paper里,我们把它们总结为:multi-task learning和multi-query localization。更多详细的内容大家可以参阅我们的论文,这里我们简单介绍一下:

  • 对于multi-task learning,主要是由于目标检测其实本身就带有定位和分类两个任务,这两个任务对特征其实有着不同的偏好。这其实在之前许许多多工作中都有大佬提到了,因此许多目标检测的工作通常会设计了两条不同的分支(带有额外卷积结构)分别对应于分类和回归。而detr其实完全共享了同一组特征,在实验中,我们发现如果只做patch的定位,不管分类的话,UP-DETR迁移到voc上效果会不好。这意味着定位和分类,特征偏好上确实是有冲突的。所以,为了在预训练中权衡这两个任务的偏好,我们固定了预训练好的CNN权重,新增了一个叫patch feature reconstruction的分支。motivation就是希望经过transformer的特征能保持和经过CNN后的特征一致的分类判别性。

  • 对于multi-query localization,主要是说对于DETR,decoder其实有100个object query,这100个object query其实是100个网络隐式学到的空间位置偏好的embedding。我们实际上是随机搞了M个query patch,因为patch可能会在任意位置,直觉上得一个patch加到多个object query上,所以我们讨论了一下如何在预训练过程中,把这M个query patch分配到100个embedding上去。我们从最简单的single-query开始介绍,把它拓展到了支持multi-query的预训练。对于multi-query,我们认为有两个要满足的条件,第一个是 query之间框的预测是独立的,所以我们提出了一个放在decoder上的attention mask,保证query之间彼此不可见。第二个是100个embedding和M个query patch应当是没有任何位置先验限制的,我们提出了object query shuffle的方法去达到这种随机性。

解决了这俩问题,UP-DETR的预训练过程如下图所示,除此之外,下游目标检测的微调是和训DETR一模一样的:

在实验中,通过在ImageNet上无监督预训练,UP-DETR在VOC和COCO上都取得了更快的收敛和更高的精度。即便在充足长的训练epoch下,VOC上仍然有3 AP以上的提升,而对于COCO,UP-DETR仍然可以获得0.7 AP的提升(42.8 AP)。要知道的是,对于在充足训练时间下的COCO,预训练CNN对于Faster R-CNN已经不重要了,但是对于DETR而言,预训练CNN和transformer仍然能提升其性能。

最后的话,怕大家误解,我先提前辩解一下,我们和DETR用的是一模一样的模型结构,都是没有FPN,以ResNet50最后一层作为encoder特征输入(当然,由于attention高昂的复杂度也做不了FPN),这导致了小物体依旧挺拉跨,所以AP的提升比起deformable DETR和sparse R-CNN自然会低一些(噗通)。我觉得吧,站在通用视觉表征的立场上,这锅怎么也得分给ResNet一半吧。希望知乎大佬们轻喷(害怕.jpg)。

论文:https://arxiv.org/abs/2011.09094

中cvpr oral啦!代码和预训练模型已经开源:

https://github.com/dddzg/up-detr

猜您喜欢:

超100篇!CVPR 2020最全GAN论文梳理汇总!

拆解组新的GAN:解耦表征MixNMatch

StarGAN第2版:多域多样性图像生成

附下载 | 《可解释的机器学习》中文版

附下载 |《TensorFlow 2.0 深度学习算法实战》

附下载 |《计算机视觉中的数学方法》分享

《基于深度学习的表面缺陷检测方法综述》

《零样本图像分类综述: 十年进展》

《基于深度神经网络的少样本学习综述》

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值