Open-Vocabulary Object Detection Using Captions(2021 CVPR)----论文解读

paper

code

https://github.com/alirezazareian/ovr-cnn

1. Abstract

  • 目标检测现存的问题?

学习更多的对象类别通常需要更多的边框注释。
比如:目标检测从600类扩展到60,000类需要100倍的资源

  • 解决方法

Weakly supervised and zero-shot learning
缺陷: 将目标检测器扩展到更少监督的类别,但它们还没有像监督模型那样成功和广泛采用。

Open-Vocabulary Object Detection Using Captions

在这里插入图片描述

新的训练方法:
1.bounding box 注释有限的目标种类集(基类),
2.image-caption pairs (图像-标题对) 集(基类+可能包含部分新类)。

优点:
1.该方法能够在训练过程中检测和定位没有边界框标注的目标,且精度明显高于 zero-shot learning 方法。
2.带有边界框标注的对象可以像监督方法一样准确地检测出来,明显优于Weakly supervised 基线。
总结:能够检测没有 bounding box 的目标 , 优于zero-shot ; 也能够检测常规的有bounding box 的目标, 优于弱监督 。

2. Introduction

设想与构思

设想 : imitate this human ability , 模拟人类如何通过自然监督 学习的
构思 : designing a two-stage framework named Open-Vocabulary object Detection (OVD)
模拟了人类的这种能力,通过设计一个两阶段的框架,名为开放词汇表对象检测(OVD)
在这里插入图片描述
在这里插入图片描述

我们建议首先使用 image-caption pairs (图像-标题对)的语料库来获取 unbounded vocabulary (无界词汇表) 的概念构成 visula-semantic space,然后使用这些知识来学习目标检测(或任何其他下游任务)。

比如说检测类任务,只需要一部分带注释的基类。
后续就可以目标检测到新类。

详细:
在这里插入图片描述

  1. 在 image-caption pairs 数据集上学习到一个 visual-semantic space(基类+可能包含部分新类)
  2. 在有注释得基类学习如何让目标检测
  3. 可以利用 visual-semantic space ,检测到新类

思路与做法

在这里插入图片描述
目的:是可以输入目标单词 target vocabulary , 得到一张图,且能检测物体。
VT :目标类词汇表 , 这也是我们需要训练得到的。
VC :image-caption dataset 数据集包含的大量词汇
VB :目标检测数据集(基类)
VΩ :整个语言词汇集 ,
这里值得一提的是VT不可知。 unbounded vocabulary
在这里插入图片描述
先在 image-caption上预训练,再在目标检测数据集上微调,要保持在新类得泛化能力,需要在与训练阶段进行大量得image-caption的预训练。

OVD、ZSD、 WSD的区别?

在这里插入图片描述
在这里插入图片描述

3. Related Work

ZSD

在这里插入图片描述
ZSD aims to generalize from annotated (seen) object classes to other (unseen) categories.(目的是将带注释的(可见的)对象类推广到其他(不可见的)类别)
存在对未知类类别少,检测效果差的问题。
问题存在原因:
在这里插入图片描述
在这里插入图片描述
解决: open vocaluary

WSD

WSD is the most widely used approach to train object detectors without
bounding box annotations(是不需要边框标注训练对象检测器的方法),定位效果不好,且词汇表具有局限性。
问题:
在这里插入图片描述
解决:
在这里插入图片描述

Object detection using mixed supervision

问题:
在这里插入图片描述

大多数方法对所有类都需要边界框标注,并且只将弱监督用作辅助数据。
具体来说:在基类上进行训练,然后使用弱监督学习转移到目标类,这些方法通常会在基类上降低性能相反。
OVD:使用标题学习包含目标类的开放词汇表语义空间,然后通过监督学习将其转移到目标检测任务中。
所有弱监督和混合监督方法的另一个限制是,它们需要预定义分类法中的图像级注释,而且它们只能学习那些预定义的类no unbounded vocabulary

运用的两种技术

Visual grounding
Vision-language transformers

Visual grounding of referring expressions

can be seen as an open-vocabulary object localization problem:
Given an image and a noun phrase that refers to an object, usually within the context of a full caption, the goal is to localize the referred object in the image using a bounding box.
给定一幅图像和一个名词短语,它指向一个物体,通常在一个完整的标题的上下文中,目标是使用一个边界框来定位图像中所指的物体。

我们受到弱监督视觉 Visual grounding 的丰富文献的启发来设计我们的图像捕捉预训练技术。更具体地说,通过学习visual-semantic common space,我们学会了map caption words to image regions。但是,在没有提供caption的情况下,不能单独使用这种映射来检测推理过程中的对象。因此,我们建议通过另一阶段的训练,将Visual grounding 转移到目标检测任务中。

Vision-language transformers

在这里插入图片描述

transformer,以图像-标题对作为输入,并提取可用于各种下游 视觉+语言 任务的通用特征

总结

ZSD的检测效果差(map不高),主要原因,我认为就是对于没有任何未知类的例子经过训练,OVD 应该是会有部分未知类通过image-caption dataset 训练课得知,因此从现有基类的特征其实很难推出新类
WSD 定位效果不好, 我个人分析认为,他从没有注释的图片很难学习到特征,就很难像OVD那样通过image-caption那样,至少有图像和文本方向的特征给与,再通过基类的相关有注释框的图片学习,就能很好的定位。
mixed supervision,其实同样存在上面的缺陷,在基类上进行训练,然后使用弱监督学习转移到目标类,这些方法通常会在基类上降低性能相反
Visual groundingVision-language transformers 就是来帮助解决作者的设想,通过 Vision-language transformers 可以提取 文本和图像的特征,Visual grounding 则就是根据这些特征进行定位。

3. Method

在这里插入图片描述

在这里插入图片描述

Zero-shot 的做法:
在一组基类V~B~上接受训练,在另一组目标类V~T~上进行测试。 Base Test Vocabulary
由于基类的样本很小,会导致严重的过拟合,以至于SOTA的mAP比基类低9倍。

在这里插入图片描述
作者则是反其道而行,他是先训练丰富的语义空间 visual-semantic space VC , 而不是训练基类VB ,可以防止防止过拟合 ,再运用到下游任务。 (语义库 Wikipedia)

3.1. Learning a visual-semantic space

问题: zero-shot 过拟合

在这里插入图片描述
在这里插入图片描述
基于ImageNet数据集的CNN backbone。
backbone预训练的结果,可以为对象识别 提取优化特征,然后用于训练一个新的分类头 来分类 固定的带注释类集,也就是基类。
这在ZSD设置中是有问题的,因为在基类上训练的分类器无法识别目标类。因此,ZSD方法通过将固定的嵌入矩阵[13]替换分类器权值,为来学习从视觉特征到预先训练的基类空间的线性投影。通过这种方法,假设嵌入空间的连续性,期望网络能泛化到目标类。然而,这种方法容易出现过拟合,因为投影到少量的嵌入空间(基类嵌入)是一个欠定问题[3]。
在这里插入图片描述

解决

在这里插入图片描述
为了防止过拟合,我们建议在预训练时,随着CNN主干学习前述的Vision To Language (V2L)投影层,其中数据不局限于一小组基类。为此,我们使用一个图像-标题数据集,因为标题包含丰富的词汇和语义结构,可以用来学习单词的含义,包括对象名称。为了有效地从字幕提供的丰富的监督中学习,我们利用了 visual grounding and visionlanguage transformers 的最新进展。我们使用一个主(visual grounding )任务和一组辅助的自我监督任务来学习一个鲁棒的CNN主干和V2L层。

在这里插入图片描述

image-caption 预训练

在这里插入图片描述
在这里插入图片描述
visual backbone: image 输入 ,分隔图像成网格,riI 代表网格图像块 i 特征d维向量
language backbone : ejC word embeeding + position embedding = fjC (通过模块BERT)

BERT
简单来说他是可融合上下左右文的信息,能生成更高语义的深层次的双向语言特征
V2L ,是为了加强词和图像区域的对应关系。

ejC和eiI 可以用来visual grounding 用来定位。

在这里插入图片描述

riI 通过V2L (视觉到语言的映射层)得到 每个区域块的 语言嵌入空间 eiI
他和 fjC 合并传到 multimodal transformer 得到 miI ,mjC
能在每个模态内而且在两个模态之间进行关注。

loss

在这里插入图片描述
在这里插入图片描述

3.2. Learning open-vocabulary detection

在这里插入图片描述

experiment

只能说碾压吧!
在这里插入图片描述
在这里插入图片描述

参考blog

open-Vocabulary object detection using captions
近期跨模态检测&分割论文整理与解析(持续更新中)
Visual grounding系列–领域初探
什么是BERT?
谷歌提出ViLD:超越Supervised的Zero-Shot检测器

版权声明:本文为CSDN博主「落了一地秋」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_46239293/article/details/122222633

落了一地秋

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

Deep Learning 目标检测

对检测到的结果进行解析  #----------------------------目标检测*解析字典result------------------------------------------- from numpy import arr

YOLOV3预选框验证

对于一个输入图像,比如416*416*3,相应的会输出 13*13*3 26*26*3 52*52*3 10647 个预测框。我们希望这些预测框的信息能够尽量准确的反应出哪些位置存在对象,是哪种对