MDETR-link

MDETR论文阅读

(MDETR - Modulated Detection for End-to-End Multi-Modal Understanding, NYU & Facebook)

(译自Ryan1216)

导语

在过去的很长一段时间中,图像目标检测一直在One-Stage/Two-Stage,Anchor-based/Anchor-free的CNN范畴内演进;2020年横空出世的DETR首次向大家展示出Transformer-Based Detection的强大威力,证明了CNN在目标检测领域也能够被Transformer所替代。今年4月FB把DETR和最近很火的多模态预训练结合在一起,推出了它多模态版本:MDETR,目标检测领域从此也用上了大规模数据预训练+下游任务finetune的真香范式,从事自动/辅助驾驶的兄弟们再也不用纠结于"bicycle’和’'motorcycle"要不要整成一类来训练检测器了。

论文摘要

现有多模态工作往往使用预训练好的目标检测来提取感兴趣的视觉区域,目标检测器这一关键组件在下游任务finetune时会被当成黑盒,并且只能够输出固定的目标类型和属性。这一限制使现有多模态方案很难适应开放世界中自由话术带来的长尾挑战。

MDETR基于Transformer架构,对Text和Image两种模态进行了特征级的、End2End的融合推理。它使用了1.3M对齐后的图文数据(在已有的多模态数据集挖掘得到)进行预训练,并在phrase grounding、referring expression comprehension、segmentation等下游任务上finetune后取得了STOA的结果。同时这篇论文也给出了MDETR在few-shot learning后作为目标检测器的结果,结果表明MDETR有更好能力应对一些长尾挑战,比如样本不均衡时一些目标类只具有少量的标签。同时MDETR也能够被轻松的扩展到VQA任务中,输出具有竞争力的结果。目前MDETR的代码已经开源https://github.com/ashkamath/mdetr。

Introduction

原文中作者先分析了前序多模态工作中基于FasterRCNN的Region/Grid特征提取器,认为他们限制了多模态预训练的精度以及部署应用(不能端到端训练、固化了视觉的检测器的目标类型)。然后Highlight出了MDETR的特点:目标检测中bbox的回归和类型放到了融合后来实施,且不对分类类型做预定义而是去找bbox和输入text之间的关联,这样检测到的bbox类型或属性不会再受到预训练视觉检测器的数据集限制,举例如下图所示,在预训练数据中没有’粉红色大象’这一个图文对,但MDETR在训练后能够泛化的找出粉红色大象的bbox,这里的"A pink elephant"是来自于用户任意输入的查询话术。

在这里插入图片描述

这篇Paper所归纳的Contributions有以下几个方面:

  • 在DETR检测器基础上,设计了一个端到端的text-modulated检测器(MDETR)

  • 证明了text-modulated检测器能够处理类似phrase grounding或referring expression comprehension这样的任务,并且在真实数据集和合成数据集上均达到SOTA,展示了text-modulated检测器在finetune到下游任务时(比如VQA,或referring expression segmentation),具有良好的few-shot能力

Background-DETR

回顾一下基于Transformer的DETR目标检测器架构,RGB图像在Backbone(e.g. Resnet-50)阶段会抽取得到1/32分辨率featuremap,featuremap里每个像素位置将来会对应一个Transformer的输入token,比如原图为 (1,3,800,1066),经过Resnet-50后拿到的featuremap会 是(1,2048,25,34),这个featuremap再过一个FC压缩到embedding的长度256,即变成(1,256,25,34),reshape后变成(850,256);这里的850就是transformer的encoder输入的token数。注意image的embedding在送入 encoder之前需要先做position embedding做加权和。

在DETR的decoder阶段,除了接收encoder的K和V,还需要会送入一系列的object queries(是一个可学习的query embeding),object queries的数量和decoder后能够输出的bbox最大数量一致(e.g. 100)。如果实际图片目标数不足以填满object queries时会输出no object的类型,如下图所示。

在这里插入图片描述

在Loss设计方面,DETR将decoder输出的bbox(e.g 100个)和gt-bbox(e.g. 2个)表达为一个二分匹配的问题(bipartite matching),使用Hungarian matching来算loss,先将gt-bbox和最接近的pred-bbox关联,对关联上的pred-bbox而言会算分类loss和回归loss,对于其他未关联上的pred-bbox归类到no-object的类型来算loss。

模型架构

MDERT扩展了前序DETR的能力到多模态领域,让DETR的Transoformer能够同时接受NLU的信息和视觉特征。示意如图,CNN-Backbone(e.g. Efficientnet-B3)和RoBERTa分别被用来提取视觉特征和文本特征,两个模态的特征Linear投影后concat后送入DETR-Style的编解码器,解码之后文字描述中的提到的实体和与之关联的bbox被对齐输出。有几个关键点:

  • 类似OSCAR中强调的共享embedding space,image features通过一系列的Linear和Transformer后和text features会投影到同一个特征空间

  • 类似DETR,MDERT中image features会按照Patch的位置做2D positional embedding,以加强视觉特征的像素位置信息

  • 每个image patch对应一个Transformer的input-token ,拍平后和每个word对应的embedding做concat(by sequence dimension)

在这里插入图片描述

MDETR的text-encoder使用了12层的RoBERTa-base(来自HuggingFace),hidden dimension为768,heads为12。对于visual backbone,MDETR尝试了两类不同的选择:

  • Resnet-101 (pretrian on imagenet & frozen batchnorm)
  • EffificientNet-B3 (无监督训练,12M weights,84.1% top 1 accuracy on ImageNet),以及EffificientNetB5
训练

在预训练阶段,MDETR设计了两个Loss用于text和image,这两个Loss均由相同来源的标注信息得到,标注信息中每一个bbox和对应的描述文本会对齐(类似于Visual Genome中的Region discription)。比较亮点的是这两个Loss比较针对目标检测任务,对前序的一些多模态相关预训练任务有一些差异化。

  • Loss 1: soft token prediction (non parametric alignment loss)
  • Loss 2: text-query contrastive alignment (parametric loss)
关于soft token prediction
  • 'soft’指不会直接预测每一个检测到的bbox的对应类别,而是预测image patch token对应的word token (来自原始输入的text)
  • 每一个text(或sentence)的长度(最大word token数)会被限制在256
  • MDERT会计算bbox与每一个word token的相关度(bi-partite),以下图为例,猫的bbox和前两个work token "a cat"产生了最强关联(uniform distribution)
  • 每个bbox和text关系的uniform distribution如下图所示

在这里插入图片描述
特别注意:1) text中一些无对应bbox的word,会分配给一个“no object”。2) 一个word可能会对应多个bbox,例如"夫妻"可能对应到图像的两个bbox,这里对Loss设计会提出一些特殊需求。

关于contrastive alignment
  • 这一项损失用来确保image在投影后能够和text共享embedding space,即添加一个Loss,让image feature在通过Transformer后的embedding和uniform distribution中关联最强的text的embedding进行对比计算。这里的对比损失来自于InfoNCE的启发,如公式1和2所示,其中o是object(bbox)对应的embedding,t是word对应的embedding

  • 公式1是对于某一个bbox的embedding(oiT),GT中对应的word token集合是Ti+,全部的word token最大长度为L;Loss会让oiT和Ti+的embedding尽量趋近,而和其他的word token尽量不相似

在这里插入图片描述

  • 公式2是对于某一个word的embedding(tiT),GT中ti对应的bbox token集合是Oi+,全部的bbox token最大长度为N;Loss会让tiT和Oi+的embedding尽量趋近,而和其他的bbox token尽量不相似

在这里插入图片描述

  • 最后lo和lt会进行求和平均作为contrastive alignment的loss项
实验

这里从Paper中摘出了真实数据集中的pretrain方法和一部分downstream的实验结果

Pre-training : Modulated Detection

MDETR联合了三个数据集中的Image进行Pretrain,包括:Flickr30k、MS COCO、Visual Genome(VG),region discription标注分别来自Flickr entities和GQA、VG regions。Combination的关键点如下。

  • 数据集的整合是指,把同一张图像所有region discription整合到一句话中,一个组合句子的最大长度限制在250个字符,在整合之后可以获得1.3M个图文对。graph coloring algorithm
  • 整合的目的主要有两个
    • 提升数据效率,尽量将有效信息打包到同一个训练样本中
    • 做soft token prediction时能够更有效的学习到同目类型不同属性的物体特征
  • 以下图为例,整合成一句话的描述标注会是“the person in the grey shirt with a watch on their wrist. the other person wearing a blue sweater. the third person in a gray coat and scarf.” 图中展示了MDETR的预测结果,能够通过一些细节的视觉差异来准确的定位到3个具有不同描述的人。
    在这里插入图片描述
Downstream Tasks : Phrase grounding

给定一个或多个短语,以及一组候选的bbox,检测出每一个短语所指代的bboxes;比如Flickr30k。带有星号的是在VG+Flickr30k上pretrain的结果,而带有加号是在COCO上pretrain的结果;总体来说联合三个数据集之后能够得到更好的结果。
在这里插入图片描述

Downstream Tasks : Referring expression comprehension

在之前的多模态预训练工作中,REC任务的目标是从图片和给定的bboxes中挑出符合描述的bbox,而MDETR使用了更加粗暴的方法来解决REC问题:直接检测出描述所对应的bbox。在RefCOCO任务上取得了SOTA的结果。

在这里插入图片描述

Downstream Tasks : Visual Question Answering

finetuning到VQA任务时,MDETR的Transfomer decoder结构会有一些调整:在object query的基础上补充了一些question queries以及相关的heads(untrained),这个question queries实际上是VQA任务类型的一个embedding(global、object、category、attribute、releation)

在这里插入图片描述

GQA任务中本身不包含bbox和text中的实体对齐,因此MDETR额外的引入了场景图解析工具来对齐question words和bbox以支持finetune。在这个任务下,MDETR没有得到SOTA的结果;
在这里插入图片描述

Downstream Tasks : Few-shot transfer for long-tailed detection

Few-shot learning后能够达到良好的检测效果是Paper前面Highlight的能力之一。类似于前面多模态预训练的CLIP在图像分类上的zero-shot能力,MDETR也给出了在Detection Dataset上进行Few-shot的能力(这里会固定检测目标的分类)。
LVIS是一个具有1.2k个目标类别的检测数据集,一部分目标只具有非常少的样本(长尾挑战),MDETR分别给出了这个数据集下取1%、10%、100%的目标检测评估结果。Paper中强调道,当使用100%数据集时,AP从10%的24.2掉到了22.5,这可能是由于数据集中样本的极度不平衡所导致。

在这里插入图片描述

给出一张和FasterRCNN系的目标检测结果可视化对比,左侧的检测结果来自于前序的SOTA工作VinVL(Grid-feature),右侧是MDETR的输出(只会输出描述相关的bbox)

在这里插入图片描述

Summary

总结MDETR的一些工作亮点

  • 结合多模态工作和DETR,得到一个具有良好泛化性的目标检测器,方案中检测目标的查询不再受到单模态数据集的标注限制
  • 和业界多模态预训练工作有一些区别,MDETR并没有使用一些语视预训练工作的自监督策略(e.g. mask region classification),而是设计了一套有监督的、将text-discription和object region对齐的预训练方案
  • 利用更少数据的前提下,在一些任务上取得了SOTA的结果
  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值