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

news/2024/7/10 1:07:47 标签: 目标检测, 计算机视觉, 人工智能

Open-Vocabulary Object Detection Using Captions[2021CVPR]----论文解读

  • paper
  • code
  • 1. Abstract
    • Open-Vocabulary Object Detection Using Captions
  • 2. Introduction
    • 设想与构思
    • 思路与做法
    • OVD、ZSD、 WSD的区别?
  • 3. Related Work
    • ZSD
    • WSD
    • Object detection using mixed supervision
    • 运用的两种技术
    • Visual grounding of referring expressions
    • Vision-language transformers
    • 总结
  • 3. Method
    • 3.1. Learning a visual-semantic space
      • 问题: zero-shot 过拟合
      • 解决
      • image-caption 预训练
      • loss
    • 3.2. Learning open-vocabulary detection
  • experiment
  • 参考blog

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检测器


http://www.niftyadmin.cn/n/1492327.html

相关文章

什么是RPN,ROIAlign?

RPN RPN RPN RPN(Region Proposal Network)用来产生Regin Proposal(前景框,候选区域,检测框(Faster RCNN 直接拿来做检测框) Regin Proposal RoIPooling、RoIAlign 和 RoIWarp RoIPooling、…

什么是word embedding?

Word embedding 的任务是把词转换成可以计算的向量 https://easyai.tech/ai-definition/word-embedding/#representation

Towards Open Vocabulary Object Detection without Human-provided Bounding Boxes(2021CVPR)----论文阅读笔记

Towards Open Vocabulary Object Detection without Human-provided Bounding Boxes----论文阅读笔记Abstract1. Introduction如何实现? pseudo bounding box label如何生成的?2. Related Work3. Related Work3.1. Generating Pseudo Box Labels3.2. Open vocabulary Object …

YOLOv1算法小记

YOLOv1算法小记 目录 YOLO算法小记 一、检测算法的发展 1.没有CNN之前:two-stage 2.有了CNN之后:RCNN结构(end-to-end) 二、One-Stage检测算法的设计思想 三、Yolo v1:一次伟大的尝试 1.YOLOv1步骤 2.损失函数…

【论文总结】Towards Open World Object Detection(附翻译)

Towards Open World Object Detection 开放世界的目标检测 论文地址:https://arxiv.org/abs/2103.02603 代码地址:GitHub - JosephKJ/OWOD: (CVPR 2021 Oral) Open World Object Detection 新思路:在隐空间中去聚类,把不属于当前…

YOLOv2算法小记

YOLOv2算法小记 目录 YOLOv2算法小记 一、v2算法的改进 (一)引入BN层 (二)更高精度的classifier [Focusing on backbone]​ (三)引入Anchor (四)细粒度 (fine-grained) 特征 …

创建环境变量出错导致终端所有命令无法使用

修改环境变量后所有命令都不能用了怎么办?那可能是你的环境变量修改错误,怎么才能再修改回来呢,下面是详细的过程。 1、使用 echo $PATH 查看path是否含有:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 如果没有&#…

Python运算符总结

运算符总结 目录 运算符总结 基本运算符 增强型赋值运算符 比较运算符 逻辑运算符 同一运算符 其他运算符 复合赋值运算符 运算符优先级问题 基本运算符 Python 支持整数(如:50,520)和浮点数(如:3.14,10.0, 1.23e2),我们可以对数字…