开放词汇目标检测(Open-Vocabulary Object Detection, OVOD)综述

定义

开放词汇目标检测(Open-Vocabulary Object Detection, OVOD)是一种目标检测任务,旨在检测和识别那些未在训练集中明确标注的物体类别。传统的目标检测模型通常只能识别有限数量的预定义类别,而OVOD模型则具有识别“开放词汇”类别的能力,即在测试时可以识别和定位那些未曾在训练集中见过的类别。与开放词汇目标检测相对应的另一个重要概念是开集目标检测(Open-Set Object Detection, OSOD)。OSOD的目标是检测那些未在训练集中出现的未知类别,并将其标记为“未知”。与OVOD的不同之处在于,OSOD并不试图去识别这些未知类别是什么,而是关注于准确地检测它们的存在。本质上,开放词汇目标检测任务(Open-Vocabulary Object Detection)与零样本目标检测(Zero Shot Object Detection)、弱监督目标检测(Weakly supervised Object Detection)非常类似,核心思想都是在可见类(base class)的数据上进行训练,然后完成对不可见类(unseen/ target)数据的识别和检测。

参考链接:
https://blog.csdn.net/mieshizhishou/article/details/141216656
https://zhuanlan.zhihu.com/p/610639148

相关工作

OVR-CNN

2021年发表在CVPR的"open-vocabulary object detection using captions"是开放词汇对象检测领域第一篇重要工作,利用大规模image-caption数据改善对未知类的检测能力。本文提出了新的目标检测范式,用 image-caption 数据预训练视觉编码器。
论文:https://arxiv.org/pdf/2011.10678
源码:https://github.com/alirezazareian/ovr-cnn
解读:https://blog.csdn.net/jiaoyangwm/article/details/132000797
在这里插入图片描述

CLIP

于2021年由OpenAI发布。CLIP是一种图文多模态预训练神经网络。
基于视觉模型图像编码&基于nlp模型文本编码&相似度对比学习
论文:https://arxiv.org/pdf/2103.00020
源码:https://github.com/openai/CLIP
解读:https://blog.csdn.net/weixin_38252409/article/details/133828294
应用:图像分类、文本到图像检索、图像生成(结合GAN)、视觉问答(结合nlp)
在这里插入图片描述

ViLD

于2021 年由 Google Research 的Xiuye Gu等人提出。
以类似于Mask R-CNN 的两阶段检测器作为基础框架,第一阶段通过骨干网络(backbone)和区域提议网络(RPN)生成候选区域提议(proposals),第二阶段对这些提议进行分类和边界框回归,以确定目标的类别和位置。使用预训练的 CLIP 模型中的图像编码器和文本编码器,图像特征&文本特征&匹配关系等多模态信息融合共同优化损失函数。
论文:https://arxiv.org/pdf/2104.13921
源码:https://github.com/tensorflow/tpu/tree/master/models/official/detection/projects/vild
解读:https://hub.baai.ac.cn/view/12691
在这里插入图片描述

GLIP

于2021 年 12 月 7 日由微软团队首次发布提出。CLIP适用于分类任务,而GLIP尝试将这一技术应用于目标检测等复杂任务。视觉编码器&文本编码器&词-区域对齐&边界框回归
论文:https://arxiv.org/pdf/2112.03857.pdf
源码:https://github.com/microsoft/GLIP
解读:https://zhuanlan.zhihu.com/p/690342065
应用:开放词汇物体检测、视觉问答(VQA)、图像描述生成与检索
在这里插入图片描述

RegionCLIP

于2021年12月由微软团队提出。
基于预训练好的 CLIP 模型构建了一个 R-CNN 形式的目标检测器。
论文:https://arxiv.org/pdf/2112.09106.pdf
源码:https://github.com/microsoft/RegionCLIP
解读:https://blog.csdn.net/jiaoyangwm/article/details/131960703
在这里插入图片描述

Detic

于2022年1月由 Meta AI 和德克萨斯大学奥斯汀分校提出。
本质:使用图像分类的数据集来对目标检测器的分类头进行训练。
为了使得分类的分支具备检测出novel class的能力,基于image-supervised loss 的Detic,其将分类与定位解耦成两个问题,在分类时不再那么依赖标注数据。同样是两阶段范式。
论文:https://arxiv.org/pdf/2201.02605v3
源码:https://github.com/facebookresearch/Detic
解读:https://developer.aliyun.com/article/1277234

OWLViT

于2022 年由 Google Research 的 Matthias Minderer 等人提出。
OWL-ViT同样是以CLIP为多模态主干,创新之处在于其用于目标检测的微调阶段。在微调阶段,采用每个输出 token 的线性投影来获取每个对象的图像嵌入,而不是 CLIP 中使用的 token 池化和最终投影层。这些嵌入随后用于分类,而边界框坐标则是通过一个小型的 MLP 从 token 表示中推导出来的。支持基于图像嵌入做查询,允许检测难以通过文本描述的图像。
现在已经更新OWLViTv2。
论文:https://arxiv.org/pdf/2205.06230
源码:https://github.com/google-research/scenic/tree/main/scenic/projects/owl_vit
解读:https://zhuanlan.zhihu.com/p/613249723
在这里插入图片描述

VLDet

VLDet网络包括三个部分:视觉目标检测器,文本编码器和区域-词语之间的对齐。本文选择了Faster R-CNN作为目标检测模型。 目标检测的第一阶段与Faster R-CNN相同,通过RPN预测前景目标。为了适应开放词汇的设置,VLDet在两个方面修改了检测器的第二阶段:(1)使用所有类共享的定位分支,定位分支预测边界框而不考虑它们的类别。 (2) 使用文本特征替换可训练分类器权重,将检测器转换为开放词汇式检测器。 本文使用固定的预训练语言模型CLIP作为文本编码器。
论文:https://arxiv.org/pdf/2211.14843
源码:https://github.com/clin1223/VLDet
解读:https://blog.csdn.net/hanseywho/article/details/129143747
在这里插入图片描述

BARON

于2023年由Wu Size等人提出。首次提出了对齐 bag of regions 的 embedding,之前的方法都是对齐单个 region 的 embedding。基于 Faster R-CNN,为了让 Faster RNN 能够检测出任意词汇概念的目标,作者使用了一个线性映射层代替原本的分类器,将区域特征映射为伪词。
论文:https://arxiv.org/pdf/2302.13996
源码:https://github.com/wusize/ovdet
解读:https://blog.csdn.net/wzk4869/article/details/129713529
在这里插入图片描述

视觉-DINO

于2021年由 Facebook AI Research提出。
DINO学生网络和教师网络,两者具有相同的架构但参数不同,输入不同的图像视图,学生网络的输出通过与教师网络输出计算交叉熵损失来进行学习,教师网络使用学生网络的指数移动平均(EMA)进行更新。使用对比学习方法及全局自注意力机制,放弃负采样对的做法。
自监督的ViT可以呈现图像的语义分割信息,且在图像类间有良好的区分度。通过一个KNN就可以达到很高的分类准确率,所以用于算图像相似度、以图搜图的话应该是个好的选择。
论文:https://arxiv.org/pdf/2104.14294
代码:https://github.com/facebookresearch/dino
解读:https://zhuanlan.zhihu.com/p/635104575

视觉-DINOv2

于2023年由Meta AI Research提出。增强版DINO、大规模数据集LVD-142M
DINOv2包含两个完全相同的 ResNet 网络,其中一个作为学生网络,另一个作为教师网络,输入不同的图像,输出通过动量更新机制交互学习,这种结构有助于更好地学习图像的局部特征与全局特征。采用FlashAttention 机制,在同一前向传递中全局裁剪和局部裁剪,跳过了丢弃残差的计算。训练时采用全分片数据并行(FSDP)。
论文:https://arxiv.org/pdf/2304.07193
代码:https://github.com/facebookresearch/dinov2
解读:https://blog.csdn.net/CVHub/article/details/130304078

GroundingDINO

于2023年由清华大学、IDEA 研究院联合提出。GLIP是基于传统的one-stage detector结构,而Grounding DINO是一个双encoder单decoder结构,它包含了1个image backbone(Swin Transformer)用于提取多尺度图像特征,1个text backbone用于提取文本特征,1个feature enhancer用于融合图像和文本特征,1个language-guide query selection模块用于query初始化,1个cross-modality decoder用于bbox预测。
论文:https://arxiv.org/pdf/2303.05499
源码:https://github.com/IDEA-Research/GroundingDINO
解读:https://zhuanlan.zhihu.com/p/627646794
在这里插入图片描述

OV-DINO

于2024年由中山大学和美团联合提出。使用Swin Transformer作为图像编码器和BERT-base作为文本编码器的模型架构。统一的数据整合(UniDI)管道实现端到端训练,语言感知选择性融合(LASF)模块来优化跨模态的语义对齐。
论文:https://arxiv.org/pdf/2407.07844
源码:https://github.com/wanghao9610/OV-DINO
解读:https://blog.csdn.net/amusi1994/article/details/140836256
在这里插入图片描述

YOLO-World

于2024年由腾讯 AI 实验室提出。基于yolov8开发,采用CLIP预训练的Transformer文本编码器提取相应的文本嵌入,通过视觉语言建模和大规模数据集的预训练,提出一种新的可重新参数化的视觉-语言路径聚合网络(RepVL-PAN)和区域-文本对比损失,以促进视觉和语言信息之间的交互,增强了 YOLO 的开放词汇检测功能。
论文:https://arxiv.org/pdf/2401.17270v3
源码:https://github.com/AILAB-CVC/YOLO-World
解读:https://blog.csdn.net/weixin_47151388/article/details/137424184
在这里插入图片描述

其他最新工作2024-CVPR-Open-Vocabulary:

https://blog.csdn.net/m0_74163093/article/details/143247918

总结

综上,大多数工作均基于CLIP预训练的图像编码器和文本编码器。GlIP为解决目标检测任务提供了先例,后续很多工作常与目前较为广泛使用的目标检测网络结构相结合,从而构建新的开放词汇目标检测器。如ViLD基于Mask R-CNN、RegionCLIP基于R-CNN、VLDet和BARON基于Faster R-CNN。更具有创新性的工作是Detic,提出了使用图像分类的数据集来对目标检测器的分类头进行训练。OWL-ViT在目标检测微调阶段做创新,最有意思的是其支持基于图像嵌入做查询,允许检测难以通过文本描述的图像。这部分优势可能会使这个项目更能应用到实际任务中。另外的基于DINO的工作中,GroundingDINO更偏向于开集目标检测(OSOD)任务。与GLIP和G-DINO等其他方法相比,OV-DINO的预测更加精确,并且能够检测到标签中未标记的额外对象。而YOLO-World则主要是对yolov8的改进,目的在于为yolo架构赋予开放词汇检测能力。从开放词汇检测方案的发展历程上来看,YOLO-World的目标检测部分依然是单阶段范式的目标检测器,虽然效率更高速度更快,但一般不如两阶段范式的目标检测模型精度高。
开放词汇目标检测的核心思想是利用视觉-语言联合建模方法,将视觉特征和语言特征进行关联,从而实现对未见物体类别的检测。一般地,这类方法的关键组成有:
1.视觉特征提取(包括大规模图-文数据预训练、知识蒸馏、生成伪标签等)
2.文本嵌入(基于transformer)
3.视觉-语言匹配(基于referring 或grounding)
4.多模态融合

至于为何能做到开放词汇检测,关键在于利用了大规模预训练语言模型和视觉-语言联合表示学习。语言模型能够理解未见词语的语义,通过将目标类别名称编码为文本向量,然后与图像中的物体特征向量进行相似度计算。比如,对于一个新的类别 “独角兽”,语言模型能够理解这个词的语义,并且帮助检测器在图像中寻找具有相似语义特征的物体。

开放词汇对象检测/分割方案的常见架构

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

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

相关文章

Vue与React:前端框架的巅峰对决

文章目录 一、引言(一)前端框架发展现状简述 二、Vue 与 React 框架概述(一)Vue.js 简介(二)React.js 简介 三、开发效率对比(一)Vue 开发效率分析(二)React …

3分钟读懂数据分析的流程是什么

数据分析是基于商业目的,有目的地进行收集、整理、加工和分析数据,提炼出有价值的 信息的一个过程。整个过程大致可分为五个阶段,具体如下图所示。 1.明确目的和思路 在开展数据分析之前,我们必须要搞清楚几个问题,比…

词嵌入(Word Embedding):自然语言处理的基石

目录 ​编辑 词嵌入(Word Embedding):自然语言处理的基石 引言 词嵌入的基本概念 词嵌入的主要方法 1. Word2Vec 2. GloVe 3. FastText 4. ELMo 5. BERT 词嵌入的应用场景 词嵌入的研究进展 结论 词嵌入(Word Embedd…

AutoSarOS中调度表的概念与源代码解析

--------AutoSarOS调度表的概念 一、AutoSarOS 是什么以及调度表的重要性 AutoSar(Automotive Open System Architecture)是汽车行业的一个开放式软件架构标准哦。它就像是一种大家都遵循的规则,能让不同的软件供应商一起合作开发汽车软件,这样软件就能被重复使用,开发效…

半连接转内连接 | OceanBase SQL 查询改写

查询优化器是关系型数据库系统的核心模块,是数据库内核开发的重点和难点,也是衡量整个数据库系统成熟度的“试金石”。为了帮助大家更好地理解 OceanBase 查询优化器,我们撰写了查询改写系列文章,带大家更好地掌握查询改写的精髓&…

android opencv导入进行编译

1、直接新建module进行导入,选择opencv的sdk 导入module模式,选择下载好的sdk,修改module name为OpenCV490。 有报错直接解决报错,没报错直接运行成功。 2、解决错误,同步成功 一般报错是gradle版本问题较多。我的报…

通过阿里云 Milvus 与 PAI 搭建高效的检索增强对话系统

背景介绍 阿里云向量检索服务Milvus版(简称阿里云Milvus)是一款云上全托管服务,确保了了与开源Milvus的100%兼容性,并支持无缝迁移。在开源版本的基础上增强了可扩展性,能提供大规模 AI 向量数据的相似性检索服务。相…

【批量生成WORD和PDF文件】根据表格内容和模板文件批量创建word文件,一次性生成多个word文档和批量创建PDF文件

如何按照Word模板和表格的数据快速制作5000个word文档 ? 在与客户的合作的中需要创建大量的合同,这些合同的模板大概都是一致的,是不是每次我们都需要填充不一样的数据来完成? 今天用表格数据完成合同模板的填充,批量…

Windows11 安装 Ubuntu-20.04,同时安装配置 zsh shell,配置 git 别名(alias),大大提高开发效率

背景:家里配置了一台 Windows 电脑,有时候需要用到 vscode 开发测试一些代码,在使用过程中发现原生 windows 敲代码不是很友好,于是想到配置 wsl,安装 Ubuntu,并安装配置 zsh shell,同时配置 gi…

鸿蒙心路旅程:HarmonyOS NEXT 心路旅程:技术、成长与未来

HarmonyOS NEXT 心路旅程:技术、成长与未来 技术的浪潮中,总有一些瞬间让人感到心潮澎湃。作为一名HarmonyOS NEXT开发者,我有幸成为这个时代科技创新的一部分。从最初的接触到深入学习、开发,以及如今规划未来的职业方向&#x…

勤研低代码平台:重塑软件开发协作新生态

在当今数字化浪潮汹涌澎湃的时代,软件开发的效率与质量成为企业竞争的关键因素之一。勤研低代码开发平台以创新性的实际页面 - 功能设计 - 页面设计 - 原型页面切换功能,脱颖而出,为软件开发过程中的团队协作、客户沟通以及项目推进带来了前所…

node安装,npm安装,vue-cli安装以及element-ui配置项目

node.js Node.js主要用于开发高性能、高并发的网络服务器,特别适合构建HTTP服务器、实时交互应用(如聊天室)和RESTful API服务器等。‌它使用JavaScript语言,基于Chrome V8引擎,提供模块化开发和丰富的npm生态系统&…

easyplayer-pro播放器学习

背调 查询官方文档,EasyPlayer-pro支持ws-flv, http-flv, hls, webrtc(webrtc://xxx)格式,电子放大、水印(动态水印、幽灵水印)、显示上一个视频最后一帧、播放器快照截图、视频录制(WebM格式(音频视频)、MP4格式(视频),FLV格式(…

WPF+MVVM案例实战与特效(四十三)- 打造动态炫酷彩虹字控件,让你的界面动起来

文章目录 1、引言1、案例效果2、案例实现1、XAML 布局2、逻辑代码3、动画效果4、控件使用5、运行效果3、案例源代码4、总结1、引言 上一节,我们实现了炫酷的彩虹字控件,现在我们想让彩虹字更加生动吸引人,让每个字体跳动起来,让字体活过来。这里我们通过动画实现,我们把这…

线程知识总结(一)

1、概述 1.1 进程与线程 进程是程序运行时,操作系统进行资源分配的最小单位,包括 CPU、内存空间、磁盘 IO 等。从另一个角度讲,进程是程序在设备(计算机、手机等)上的一次执行活动,或者说是正在运行中的程…

【Python】使用Selenium 操作浏览器 自动化测试 记录

【自动化】Python SeleniumUtil 工具 开启开发者模式 自动安装油猴用户脚本等-CSDN博客文章浏览阅读389次。【自动化】Python SeleniumUtil 工具。https://blog.csdn.net/G971005287W/article/details/144565691?spm1001.2014.3001.5501【学习记录】浏览器指纹相关学习记录&am…

【Rust自学】4.4. 引用与借用

4.4.0 写在正文之前 这一节的内容其实就相当于C的智能指针移动语义在编译器层面做了一些约束。Rust中引用的写法通过编译器的约束写成了C中最理想、最规范的指针写法。所以学过C的人对这一章肯定会非常熟悉。 喜欢的话别忘了点赞、收藏加关注哦(加关注即可阅读全文…

深入解析 StarRocks 物化视图:全方位的查询改写机制

小编导读: 本文将重点介绍如何利用物化视图进行查询改写。文章将全面介绍物化视图的基本原理、关键特性、应用案例、使用场景、代码细节以及主流大数据产品的物化视图改写能力对比。 物化视图在 StarRocks 中扮演着至关重要的角色,它是进行数据建模和加速…

2. petalinux-build失败

NOTE 解决因为网络原因产生的编译错误分享详细的解决步骤 报错的情况 因为网络原因产生编译错误 现象 找不到适合的包文件(No suitable stageing package found) 不能发现文件(Fetcher failure for URL) 解决方法 采用本地加载本地文件的方式,步骤如下 进入…

web实验二

web实验二 2024.12.19 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>青岛理工大学</title>&l…