[OVD]Open-Vocabulary Object Detection Using Captions(CVPR. 2021 oral)

该研究提出了一种新颖的开放词汇目标检测方法,通过预训练和微调,使得模型能检测到词汇表中的任何对象,同时在有边界框注释的对象检测上表现几乎与监督方法相当,建立了可扩展目标检测的新标准。该方法结合了图像标题数据集和少量基础类别数据,通过学习视觉语义空间提高准确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

image-20210721221126495

1. Motivation

  • Despite the remarkable accuracy of deep neural networks in object detection, they are costly to train and scale due to supervision requirements.

  • Weakly supervised and zero-shot learning techniques have been explored to scale object detectors to more categories with less supervision, but they have not been as successful and widely adopted as supervised models.

  • To address the task of OVD, we propose a novel method based on Faster R-CNN [32], which is first pretrained on an image-caption dataset, and then fine-tuned on a bounding box dataset.

  • More specifically, we train a model that takes an image and detects any object within a given target vocabulary VT.

  • To train such a model, we use an image-caption dataset covering a large variety of words denoted as $V_C $as well as a much smaller dataset with localized object annotations from a set of base classes VBV_BVB.

image-20210721221220070

2. Contribution

  • In this paper, we put forth a novel formulation of the object detection problem, namely open- vocabulary object detection, which is more general, more practical, and more effective than weakly supervised and zero-shot approaches.

  • Meanwhile, objects with bounding box annotation can be detected almost as accurately as supervised methods, which is significantly better than weakly supervised baselines.

  • Accordingly, we establish a new state ofthe art for scalable object detection.

  • We name this framework Open Vocabulary Object Detection(OVD).

3. Method

image-20210721165549729

图3为OVR-CNN的framework,基于Faster R-CNN,但是是在zero-shot的形式上训练得到的目标检测器。

确切来说,用base classes VBV_BVB训练,用target classesVTV_TVT测试。

为了提升精度,本文的核心思想是通过一个更大的词汇库VCV_CVC来预训练一个visual backbone,从而学习丰富的语义空间信息。

在第二个阶段中,使用训练好的ResNet以及V2L 2个模型来初始化Faster R-CNN,从而实现开放词汇的目标检测。

3.1. Learning a visual-semantic space Object

为了解决使用固定的embedding matrix替代classifier weights来训练pretrain base classes embedding而产生overfitting的问题,本文提出了V2L layer。使用的数据不只是base classes。

  • To prevent overfitting, we propose to learn the aforementioned Vision to Language (V2L) projection layer along with the CNN backbone during pretraining, where the data is not limited to a small set of base classes.

  • We use a main (grounding) task as well as a set of auxiliary self-supervision tasks to learn a robust CNN backbone and V2L layer.

作者使用PixelBERT,input为了image-caption,将image输入viusal backbone(ResNet-50),将caption输入language backbone(pretrained BERT),联合产生token embedding,然后将token embedding 输入到multi-model transformer中来提取multi-model embedding。

对于visual backbone,利用ResNet-50,提取输入I的特征,得到W/32×H/32W/32 \times H/32W/32×H/32的feature map,本文定义为W/32×H/32W/32 \times H/32

### ViLD 方法及其在开放词汇对象检测中的应用 #### 背景介绍 开放词汇对象检测(Open-Vocabulary Object Detection, OVD)旨在通过利用大量未标注的数据和跨模态的知识,扩展传统目标检测器的能力,使其能够识别超出训练集中已知类别的新类别。这种方法的核心在于结合视觉和语言的信息,以增强模型对未知概念的理解能力。 #### ViLD 的核心机制 ViLD 是一种基于视觉与语言知识蒸馏的技术,用于解决开放词汇对象检测问题。它引入了两种主要的学习方式:文本嵌入学习(ViLD-text)和图像嵌入学习(ViLD-image)。这两种方法分别从不同角度优化模型的表现: - **文本嵌入学习(ViLD-text)**:该模块通过预先训练的语言模型提取语义特征,并将其作为指导信号融入到目标检测框架中[^1]。这种方式有助于捕捉更广泛的语义信息,特别是在处理新颖或少见的类别时表现出显著优势。 - **图像嵌入学习(ViLD-image)**:此部分依赖于大规模预训练的视觉表示,专注于提升模型对于具体视觉模式的认知精度。这种策略特别适合强化那些具有明显外观特性的物体检测效果[^2]。 上述两者的有机结合不仅实现了性能上的互补,而且有效缓解了单一路径可能带来的局限性——即当单独采用任一方向进行优化时所面临的 trade-off 问题[^3]。 #### 实验验证与成果展示 通过对多种评估指标下的对比分析发现,在实际应用场景下,融合后的 ViLD 方案相较于仅依靠文字提示或者单纯依赖图片理解的传统手段均展现出更高的准确性(APr)[^4]。尤其值得注意的是,相比完全受控环境下的标准监督学习模型(Supervised-RFS),即使是在面对稀少样本的小众分类项上,依然保持住了至少高出近四个百分点的整体效能增益水平。 此外,为了进一步挖掘潜在的最佳配置选项,研究人员还在附加材料里详尽探讨了一系列有关超参数调整的可能性方案表格(见附录表7)。这些努力最终促成了当前版本能够在多个公开测试集上面取得领先位置的好成绩。 ```python def vild_model(image_embeddings, text_embeddings): """ Simulates the combination process within a simplified version of VILD model. Args: image_embeddings (Tensor): Pre-trained embeddings from images. text_embeddings (Tensor): Pre-trained embeddings from texts. Returns: Tensor: Combined embedding after fusion step. """ combined_embedding = torch.cat((image_embeddings, text_embeddings), dim=1) output = nn.Linear(combined_embedding.size(-1), num_classes)(combined_embedding) return F.softmax(output, dim=-1) ``` 以上代码片段示意了一个简化版VILD架构如何将来自两个域的不同类型的输入结合起来形成最后预测概率分布的过程。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值