【计算机视觉 | 目标检测】OVD:Open-Vocabulary Object Detection 论文工作总结(共八篇)

news2024/11/15 6:57:35

文章目录

  • 一、2D open-vocabulary object detection的发展和研究现状
  • 二、基于大规模外部图像数据集
    • 2.1 OVR-CNN:Open-Vocabulary Object Detection Using Captions,CVPR 2021
    • 2.2 Open Vocabulary Object Detection with Pseudo Bounding-Box Labels,ECCV 2022
      • 2.2.1 伪标签的生成
      • 2.2.2 检测模型训练
    • 2.3 Detic: Detecting Twenty-thousand Classes using Image-level Supervision,ECCV 2022
    • 2.4 Grounded Language-Image Pre-training (CVPR 2022 oral)
  • 三、总结
  • 四、基于多模态大模型
    • 4.1 ViLD:Open-vocabulary Object Detection via Vision and Language Knowledge Distillation,ICLR 2022
    • 4.2 RegionCLIP: Region-based Language-Image Pretraining,CVPR 2022
    • 4.3 Aligning Bag of Regions for Open-Vocabulary Object Detection
    • 4.4 CORA: Adapting CLIP for Open-Vocabulary Detection with Region Prompting and Anchor Pre-Matching

一、2D open-vocabulary object detection的发展和研究现状

Open-Vocabulary Object Detection (OVD)可以翻译为**“面向开放词汇下的目标检测”,**该任务和 zero-shot object detection 非常类似,核心思想都是在可见类(base class)的数据上进行训练,然后完成对不可见类(unseen/ target)数据的识别和检测,除了核心思想类似外,很多论文其实对二者也没有进行很好的区分。

2D OVD 任务是由Shih-Fu Chang在CVPR2021上发表的论文 “Open-Vocabulary Object Detection Using Captions”(OVR-CNN)中提出,其出发点是制定一种更加通用的目标检测问题,目的是借助于大量的 image-caption 数据来覆盖更多的Object Concept,使得Object Detection不再受限于带标注数据的少数类别,从而实现更加泛化的Object Detection,识别出更多novel的物体类别。

随着OVR-CNN的提出,越来越多的OVD工作涌现出来。例如:ViLD、RegionCLIP、GLIP、VL-PLM、Detic、VL-Det等。本节将按照如下两个方面对上述文章进行整理和汇总。

二、基于大规模外部图像数据集

2.1 OVR-CNN:Open-Vocabulary Object Detection Using Captions,CVPR 2021

Open-Vocabulary Object Detection的初衷就是利用大规模的 image-caption 数据来改善对未知类的检测能力。基于此,OVR-CNN是该领域的第一篇工作。
在这里插入图片描述
该工作的核心主要是利用image-caption数据来对视觉编码器进行pre-training。由于caption中存在着丰富的对于图像区域等细粒度特征的描述单词和短语,能够覆盖更多的物体类别,因此经过大规模image-caption的预训练,Vision encoder便能够学习到更加泛化的视觉-语义对应空间。因此训练好的vision encoder便可以用于替换faster-rcnn中encoder,提告检测模型的zero-shot检测能力。

展开讨论预训练流程,整体的预训练流程有些类似于PixelBert,可参考如下:

  • 分别输入image和对应的caption,视觉编码器和文本编码器将分别提取特征。
  • 在vision embedding和text embedding的基础上,利用V2L层对视觉embedding映射到文本embedding空间,构建grounding任务,计算对应图文对的grounding分数,然后利用对比学习拉近匹配对图文,推远非匹配对图文。这样利用word-region级别的grounding任务,实现丰富语义信息的学习。
  • 后续利用Transformer模型进行多模态融合,同时构建下游MLM、ITM代理任务进行预训练。

一旦预训练结束后,trained vision encoder和trained V2L层,便可以替换至Faster RCNN框架中,通过在base数据集上进行finetune vision encoder,使其适配ROI区域特征,固定V2L层,保持其学习到的泛化的视觉-语义空间,即可进行target类别数据的检测。

总结来看,OVR-CNN通过在Image-Caption数据集上的预训练,学习到了丰富的文本词汇和图像区域表征,这样泛化的表征空间覆盖的物体类别,是远超过现阶段的带标注的目标检测数据集中物体的类别数。

2.2 Open Vocabulary Object Detection with Pseudo Bounding-Box Labels,ECCV 2022

该工作的动机和出发点是现阶段的OVD和zero-shot检测都是受限于base class数据,即使OVD引入了外部数据知识来进行泛化,但是还是无法摆脱base class数据有限的问题,从而无法泛化到非常不同的novel class数据。

因此,该工作提出:

  • 能否通过自动生成的方式得到更多的物体bounding box标注,以此来scale现存的数据?
  • 生成的未标注能否改善open-vocabulary object detection?

由此本工作可分为两部分来阐述:(1)伪标签的生成(2)检测模型的训练

2.2.1 伪标签的生成

该工作提出使用VLP模型来帮助生成伪标签。首先输入image-caption数据,利用VLP模型的双编码器对image和text进行编码,以此得到各自模态的feature embedding,然后利用cross-attention计算图像区域和文本单词之间的注意力权重,利用GradCAM对上述注意力权重进行可视化,得到感兴趣名词(racket)的Activation Map区域;同时利用RPN网络生成ROI区域,得到和Activation Map区域重叠程度最大的ROI,此ROI和感兴趣名词(racket)一起构成了伪标签区域。

2.2.2 检测模型训练

基于得到的伪标签数据,便可以训练open-vocabulary object detection模型了,OVD检测的过程和传统的目标检测相比,使用Text Embedding替换掉了之前的Classification Head。因此,图像数据根据伪标签获取ROI,经过编码器得到vision embedding,base class文本经过文本编码器得到text embedding,之后计算跨模态embedding的相似度,并根据伪标签计算交叉熵损失函数。

在这里插入图片描述
在这里插入图片描述
总结来看,这篇文章最主要的验证了利用VLP大模型生成的伪标签,即使带有噪声,但也是可以改善OVD任务的性能的。在后续的内容中,我们还会看到其他使用伪标签的工作。

2.3 Detic: Detecting Twenty-thousand Classes using Image-level Supervision,ECCV 2022

Detic与OVR-CNN和GradOVD相比,想法更加直接,做法更加粗暴。

实际上对比目标检测模型来说,真正限制其OVD能力的不是Regression Head,而是Classification Head。或者说OVD的最终目标是检测模型能够识别出更多novel的类别。基于此,Detic提出直接使用ImageNet21K的分类图像数据集和目标检测数据集一起,对检测模型进行联合训练。具体步骤如下:

在这里插入图片描述

  • minibatch中包含目标检测数据和ImageNet21K的分类图像数据;
  • 如果是检测数据,则直接进行正常的两阶段目标检测流程,由RPN获取ROI,Reg Head回归bbox,Classification Head分类;
  • 如果是ImageNet21K图像数据,则使用检测器检测Max-size的图像区域并截取,然后送入Classification Head进行分类;
  • 通过共享Classification Head实现更多的ImageNet21K中的object concept知识的迁移。

2.4 Grounded Language-Image Pre-training (CVPR 2022 oral)

在这里插入图片描述
大名鼎鼎的GLIP,这篇工作不愧是Oral,立意和出发点很不一样,同时这篇工作的野心和目标也很宏大,他们不再局限于提高OVD的性能,而是将OVD和Visual Grounding进行了统一,完成了region-word级别的大规模预训练,实际上是相当于CLIP,只不过CLIP是在image-language 层面的。

如何统一object detection和Visual Grounding?

本文的观点是:object detection实际上是context-free的visual grounding任务,而visual grounding是contextualized的object detection任务。从这点出发,本文将检测任务转换为Visual grounding任务,然后采用统一的框架结构进行训练。这样做的好处是,统一的架构使得可以同时在Visual grounding数据集上进行训练,而不局限于检测数据集。要强调的是,Visual Grounding数据集包含了十分rich的视觉物体名词和概念,这可以极大的促进OVD和Zero-shot目标检测性能的提升,有趣的是,在论文中,作者也不断强调grounding数据的重要,称其为gold data

具体的流程:

  • 将检测转为visual grounding,输入检测图像,文本端为所有检测类别的逗号字符串连接。
  • 将GLIP预训练在检测数据集和grounding数据集上,通过双编码器提取feature embedding,经过中间的Deep Fusion模块,直接进行类似于CLIP的cross-modal embedding alignment。

总体流程就是这么简单,但是GLIP是首个建立在groudning任务上,同时实现了细粒度跨模态对齐的工作,与CLIP一样,它同样具备着强大的zero-shot能力。在后文的讨论环节中,本文还会涉及到GLIP的拓展前景。

三、总结

利用大规模外部数据特别是caption数据来提升OVD的性能,也是OVD任务的初衷。不过无论是使用什么类型的外部数据,例如ImageNet、Image-caption、Grounding data,其本质目的都是希望挖掘更多的物体名词语义信息,使其不再受限于少量的base class数据。这才是OVD相较于Zero-shot更加成功、更加泛化的关键。

四、基于多模态大模型

除了将大规模外部数据引入之外,OVD的另外一个分支是引入多模态模型的预训练知识来改善性能。

4.1 ViLD:Open-vocabulary Object Detection via Vision and Language Knowledge Distillation,ICLR 2022

引入多模态模型例如CLIP来促进OVD性能,ViLD应该是开山之作了。

在这里插入图片描述
在这里插入图片描述
整体的流程如下:

  • 输入base class的待检测图像,同时基于base class构建CLIP形式的text prompt输入至CLIP text encoder端得到Embedding,然后图像输入至Mask RCNN中得到ROI区域的图像特征,然后进行跨模态特征匹配。
  • 输入base class的待检测图像,同时基于base class构建CLIP形式的text prompt输入至CLIP text encoder端得到Embedding,然后图像输入至Mask RCNN中得到ROI区域的图像特征,然后进行跨模态特征匹配。
  • 推理的时候,利用CLIP文本编码器替换检测模型的分类头,进行分类。

总结来看,ViLD主要是依靠蒸馏学习将CLIP视觉端的能力迁移至检测模型中,再利用文本编码器完成和检测模型的识别工作。

4.2 RegionCLIP: Region-based Language-Image Pretraining,CVPR 2022

在这里插入图片描述
可以将RegionCLIP理解为CLIP在Region-word级别的拓展。

本文的出发点是观察到CLIP在Region区域上的识别很差,这是由于CLIP是在Image-Language level上进行的预训练导致的。因此,RegionCLIP从这一点出发,将CLIP在region图像和单词层面进行了预训练,提高了区域级别的检测能力。

主要流程如下:

  • 首先利用文本数据,构建object名词语料库;
  • 利用RPN网络提取图像上的object区域,输入至CLIP视觉编码器,同时输入语料库至CLIP文本编码器得到文本特征,然后做匹配对提取的图像区域进行伪标签标注;
  • 在得到伪标签标注区域图像的基础上,构建视觉文本双编码器,在Region层面上进行CLIP式的预训练;
  • 训练损失主要就是区域级别的对比损失+原始CLIP的对比损失+RegionCLIP-CLIP的视觉端蒸馏损失。

这篇文章提出的问题,也就是CLIP无法对区域级别的图像进行很好的识别,这一点其实在很多其他的文章中也有涉及,比如在ViLD中用RPN的分数来辅助CLIP在区域级别的预测。

总之,区域级别的CLIP也被拓展出来了。但是GLIP的性能更强,而且RegionCLIP和GLIP还是同一组的工作,就是pengchuan zhang,也是做了很多VLP工作。

4.3 Aligning Bag of Regions for Open-Vocabulary Object Detection

开放词汇目标检测旨在检测到模型训练中未标注的类别的物体,该任务的常见方法是对预训练过的视觉语言模型进行蒸馏,是检测器模型学到视觉语言模型的表征,从而可以识别训练中未标注的类别的物体。现有的方法主要是让检测器在单个区域上,学习视觉语言模型对单个物体概念的表征。然而在预训练中,视觉语言模型从图像文本对上学到的是对一组语义概念进行表征。

在这里插入图片描述
最新论文Aligning Bag of Regions for Open-Vocabulary Object Detection,介绍一种学习视觉语言模型表征的新思路,即在一组区域上进行蒸馏。为了充分利用视觉语言模型对一组语义概念的表征,论文提出在候选区域的邻域进行采样,得到有空间和语义相关性的区域组合(a bag of regions)。为了得到组合起来的区域的表征,论文将区域的表征对齐到词向量空间,将区域组合中的个体视为句子中的词,使得视觉语言模型中的文本编码器可以对一组区域进行表征。论文采用对比学习的方式,通过对齐文本编码器和图像编码器的表征,间接学习到区域表征。

4.4 CORA: Adapting CLIP for Open-Vocabulary Detection with Region Prompting and Anchor Pre-Matching

OVD是一种目标检测任务,旨在检测超出检测器训练基础类别的新类别的对象。最近的OVD方法依赖于大规模的视觉语言预训练模型,例如CLIP,用于识别新对象。

方法:为了克服将这些模型纳入检测器训练时遇到的两个核心障碍,作者提出了CORA,一种DETR风格的框架,通过区域提示和锚点预匹配来适应CLIP进行开放词汇检测。区域提示通过提示基于CLIP的区域分类器的区域特征来减轻整体到区域分布差异。锚点预匹配通过一种类别感知的匹配机制来帮助学习可推广的对象定位。

结果:作者在COCO OVD基准测试中评估了CORA,其中在新类别上实现了41.7 AP50,即使不使用额外的训练数据也比以前的SOTA高出2.4 AP50。当有额外的训练数据时,作者在基于真实标注的基础类别标注和由CORA计算的额外伪边界框标签上训练了CORA+。CORA+在COCO OVD基准测试中实现了43.1 AP50,在LVIS OVD基准测试中实现了28.1 box APr。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/453426.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Springboot创建项目bug

问题 今天创建maven项目,由于和教程不太一样,结果报错了 核心报错如下 Cannot instantiate interface org.springframework.context.ApplicationListener : org.springframework.boot.context.logging.LoggingApplicationListener 梳理 我的idea创建…

系统集成项目管理工程师 笔记(第六章:项目整体管理)

文章目录 项目整体管理6个过程制定项目章程过程 6.3 制订项目管理计划 2476.4 指导与管理项目工作 2516.5 监控项目工作 255监控项目工作的输入监控项目工作的工具与技术监控项目工作的输出 6.6 实施整体变更控制6.7结束项目或阶段 6.1 项目整体管理概述 242 6.1.1 项目整体管理…

【过程8】——能量守恒视角总结感受

一、背景 另一个角度的看到,观望着过程中自己曾经类似的经历(小舅子的工作)。 时间久了,经历多了,感悟会更加的充实;最近自己对于人在维持能量的过程中也有很多的感悟,一并做一下总结 二、过程 1.人为什么天性不愿意…

npm和yarn的相同点和不同点

官网 npmhttps://www.npmjs.com Home | Yarn - Package ManagerFast, reliable, and secure dependency management.https://yarnpkg.com Fast, disk space efficient package manager | pnpmFast, disk space efficient package managerhttps://pnpm.io 使用场景 npm&#x…

数据库系统概论--第五章课后习题

1.什么是数据库的完整性? 答:数据库的完整性是指数据的正确性和相容性。 2. 数据库的完整性概念与数据库的安全性概念有什么区别和联系? 答: 数据的完整性和安全性是两个不同的概念,但是有一定的联系。前者是为了防止数据库中存…

将本地Python项目打包成docker镜像,上传到服务器,在docker中运行

文章目录 Docker环境创建虚拟环境pycharm使用虚拟环境准备打包保存为镜像文件加载镜像文件 参考文献 Docker环境 windows11Docker下载地址:https://docs.docker.com/desktop/install/windows-install/ 创建虚拟环境 虚拟环境可以搭建独立的Python运行环境&#x…

ORACLE_OCM.MGMT_CONFIG_JOB_2_2

今天巡检一套AIX上11g rac,发现有个报错 Errors in file /opt/app/oracle/diag/rdbms/orcl/orcl2/trace/orcl2_j000_16777270.trc: ORA-12012: error on auto execute of job "ORACLE_OCM"."MGMT_CONFIG_JOB_2_2" ORA-29280: invalid director…

〖Python网络爬虫实战⑱〗- 数据存储之TXT纯文本

订阅:新手可以订阅我的其他专栏。免费阶段订阅量1000 python项目实战 Python编程基础教程系列(零基础小白搬砖逆袭) 说明:本专栏持续更新中,目前专栏免费订阅,在转为付费专栏前订阅本专栏的,可以免费订阅付…

WebSocket+Vue+SpringBoot实现语音通话

参考文章 整体思路 前端点击开始对话按钮后,将监听麦克风,获取到当前的音频,将其装化为二进制数据,通过websocket发送到webscoket服务端,服务端在接收后,将消息写入给指定客户端,客户端拿到发送…

Automa自动化爬取文本(一)

目录 介绍 下载地址 安装教程 爬取百度热搜 介绍 Automa 是一个免费、开源的 Chrome 扩展,它通过目前流行的 No Code 无代码方式,只需要拖拽模块就实现了浏览器自动化,比如自动填写表格、执行重复性任务。 在工作中,如果我们…

Docker安装Nginx(图文详解版)

目录 1.下载Nginx镜像 2.创建Nginx配置文件 3.创建Nginx容器并运行 4.查看效果 1.下载Nginx镜像 命令描述docker pull nginx下载最新版Nginx镜像 (此命令等同于 : docker pull nginx:latest )docker pull nginx:xxx下载指定版本的Nginx镜像 (xxx指具体版本号&a…

有趣的 Kotlin 0x14:Base64编码

前言 Concise. Cross‑platform. Fun. Kotlin 来到 1.8.20 版本, 又给开发者带来了很多更新, 今天关注下标准库中新增的 Base64 相关内容. 原理 Base64编码是一种将二进制数据转换为可打印ASCII字符的编码方式。它使用64个不同的字符(通常是A-Z、a-z、0-9和两个额…

学会SpringBoot的第一天(超详细)

🙈作者简介:练习时长两年半的Java up主 🙉个人主页:老茶icon 🙊 ps:点赞👍是免费的,却可以让写博客的作者开兴好久好久😎 📚系列专栏:Java全栈,计…

d2l Transformer

终于到变形金刚了,他的主要特征在于多头自注意力的使用,以及摒弃了rnn的操作。 目录 1.原理 2.多头注意力 3.逐位前馈网络FFN 4.层归一化 5.残差连接 6.Encoder 7.Decoder 8.训练 9.预测 1.原理 主要贡献:1.纯使用attention的Enco…

JavaFX与Liberica JDK,搭建,运行,打包,放弃Eclipse

1、官网 JavaFX中文官方网站、Oracle官方文档 2、教程 JavaFX中文基础教程视频合集 JavaFX实战教程 3、VSCode/Eclipse VSCode(写HelloWorld用)、VSCode的Java扩展 Eclipse,跳至第9段 4、Liberica JDK安装 Liberica JDK官网下载 依次选择,All ve…

压力测试防踩坑指南,压测中要注意的那些事儿

对于一些高频访问接口,压力测试必不可少,本文主要叙述了自己在压测过程中遇到的问题,在此分享,希望能帮助大家避免踩坑,提高效率。 1.pod数量 现象:服务器资源充足,tps上不去,检查发…

OneData 共享同一套数据技术和资产

一、什么是 OneData 体系? 官方:阿里云OneData数据中台解决方案基于大数据存储和计算平台为载体,以OneModel统一数据构建及管理方法论为主干,OneID核心商业要素资产化为核心,实现全域链接、标签萃取、立体画像,以数据…

ASEMI代理ADI亚德诺ADAU1701JSTZ-RL车规级芯片

编辑-Z ADAU1701JSTZ-RL芯片参数: 型号:ADAU1701JSTZ-RL 模拟电源电压:3.3 V 数字电源电压:1.8 V 输入/输出电压:3.3 V 环境温度:25 C 主时钟输入:12.288 MHz 满刻度模拟输入&#xff1…

彻底掌握FreeRTOS中的务通知(Task Notifications)

​在之前的文章中已经讲解了很多种用于任务件通信的机制,包括队列、事件组和各种不同类型的信号量。使用这些机制都需要创建一个通信对象。 事件和数据不会直接发送到接收任务或接收ISR,而是发送到通信对象(也就是发送到队列、事件组、信号量…

2023软考中级《软件设计师》(备考冲刺版) | 操作系统

目录 1.操作体统相关概念 1.1 操作系统的功能 1.2 特殊的操作系统 2.进程管理 2.1进程的概念 2.1.1 线程的概念 2.1.2 进程的状态 2.2 进程调度 2.2.1 PV操作的概念 2.2.2 信号量和PV操作 2.2.3 前趋图与PV操作 3.存储管理 3.1 页式存储 3.2 段式存储 3.3 段页式…