赞
踩
visual grounding涉及计算机视觉和自然语言处理两个模态。简要来说,输入是图片(image)和对应的物体描述(sentence\caption\description),输出是描述物体的box。听上去和目标检测非常类似,区别在于输入多了语言信息,在对物体进行定位时,要先对语言模态的输入进行理解,并且和视觉模态的信息进行融合,最后利用得到的特征表示进行定位预测。
visual grounding按照是否要对语言描述中所有提及的物体进行定位,可以进一步划分为两个任务:
Phrase Localization:又称为Phrase Grounding,对于给定的sentence,要定位其中提到的全部物体(phrase),在数据集中对于所有的phrase都有box标注。
Referring Expression Comprehension(REC):也称为Referring expression grounding。每个语言描述(这里是expression)只指示一个物体,每句话即使有上下文物体,也只对应一个指示物体的box标注。
分别利用Deformable Self-Attention和Self-Attention来增强image features和text features,然后利用GLIP中的image-to-text 和 text-to-image cross-attention实现跨模态特征融合。
为了让文字信息更好地指导目标检测,作者设计了一个language-guide query selection模块,用以筛选与输入文字特征相似更高的图像特征用作decoder的qureies。该模块的PyTroch伪代码如下图所示,其中num_query是用作decoder的query数量,设置为900;num_img_tokens和num_text_tokens是image和text的token数量。
language-guide query selection输出了num_query个indices。沿用DINO的设计,作者采用mixed query selection的方式来初始化decoder query,每一个query包含两部分:content part和positional part。其中,positional part用动态anchor boxes来实现,content part在训练中被设置成可学习的。
跨模态query经过self-attention层,image cross-attention层与图像特征结合,text cross-attention层与文本特征结合,以及FFN层。与DINO相比,每个解码器都有一个额外的文本cross-attention层,引入文本信息,便于对齐模态。
以往的工作中主要采用两种text prompt,分别为sentence level和word level的表达,如下图所示:
sentence level的方式将整句话编码为一个特征,但是它只保留与GT相关的短语。例如上图(a)所示,“A cat is sleeping on a table"只保留"A cat"和"a table”,这种方式忽视了句子中某些更细粒度的信息。
word level的方式能够同时编码多个类别的名字,但是却引入了类别之间很多不必要的依赖。如图(b)所示,很多没有关系的类别也产生了交互。
为了避免上述问题,作者引入了attention mask来屏蔽不相关类别名之间的联系,称作sub-sentence level的方式,如上图(c)所示。
Grounding DINO采用L1 loss和GIOU loss用作box regression,计算预测目标和文字token之间的contrastive loss用于分类。
在稀有类别上,GLIP性能更佳,可能由于900个query的设计,限制了对长尾目标的能力;使用更多数据,Grounding DINO带来更大增益。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。