Open-Vocabulary Object Detection Using Captions[2021CVPR]----论文解读
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,然后使用这些知识来学习目标检测(或任何其他下游任务)。
比如说检测类任务,只需要一部分带注释的基类。
后续就可以目标检测到新类。
详细:
- 在 image-caption pairs 数据集上学习到一个 visual-semantic space(基类+可能包含部分新类)
- 在有注释得基类学习如何让目标检测
- 可以利用 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 grounding和Vision-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检测器