【多模态】17、CORA | 将 CLIP 使用到开集目标检测

在这里插入图片描述

文章目录

    • 一、背景
    • 二、方法
      • 2.1 总体结构
      • 2.2 region prompting
      • 2.3 anchor pre-matching
    • 三、效果

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

代码:https://github.com/tgxs002/CORA

出处:CVPR2023

一、背景

开集目标检测(Open-vocabulary detection,OVD)最近得到了很大的关注,CLIP 的出现让开集目标检测有了新的解决方式

CLIP 是学习图像和文本之间的关系来进行匹配的,那么能否将 CLIP 用于解决开集目标检测呢

这里会有两个问题:

  • 如何将 CLIP 使用到 region-level 的任务上:

    一个简单的做法是将 region 扣出来当做一个图像,但这并非好的解决方式,因为 region 和 image 之间本来就有 gap

  • 如何学习可泛化的目标 proposal:

    ViLD、OV-DETR、Region-CLIP 等都需要使用 RPN 或 class-agnostic 目标检测器来挖掘出没被提及的类别,但这些 RPN 也都是基于训练数据来训练的,不可能将所有目标都检出,所以其实能检出的需要的类别也很少

本文中提出了一个基于 DETR 且引入了 CLIP 的方法,且没有使用额外的 image-text 数据,来实现开集目标检测

二、方法

OVD 是一个希望能检出所有类别的检测任务,本文提出了 CORA 来解决该任务

2.1 总体结构

在这里插入图片描述

如图 1 所示,给定一个图像作为输入:

  • 首先,使用训练好的 CLIP 中的 ResNet backbone 来提出图像的特征,分类和定位共享这个特征

  • 接着,region classification:给定一个待分类的 region(anchor box 或 box prediction),作者使用 RoIAlign 来得到 region 特征,然后使用 CLIP 的 attention pooling 来得到区域编码,可以使用从 CLIP text encoder 得到的 class embedding 来进行分类

  • 然后,object localization:对于上面通过 CLIP 得到的图像特征,会使用 DETR-like encoder 进行进一步特征提取,然后输入 DETR-like decoder,anchor box 的 queries 会先使用 CLIP-based region classifier 进行分类,然后会根据预测的标签进行调整,然后使用 DETR-like decoder 来实现更好的定位。decoder 也会根据预测的 label 来估计 query 的匹配。在训练中,预测的框会和 gt 进行一对一匹配,然后使用 DETR 的方式进行训练。推理时,box 的类别直接使用 CLIP-based region classifier 来确定

针对这两个问题,CORA 也提出了解决方案:

  • 目标检测是识别和定位图像中的目标,CLIP 模型是在整个图像上训练的,有一定的 gap:作者提出了 region prompt,来调整 region features 以获得更好的定位
  • 检测器需要对新类别学习目标的位置,但标注的类别都是基础类别:作者将 anchor pre-matching 提前了,让 class-aware 的目标定位能够在 infer 的时候泛化到新的类别

2.2 region prompting

在这里插入图片描述

如图 2 所示,给定一个图像和一系列 RoI,首先对全图使用 CLIP encoder 的前 3 个 blocks 进行编码,然后使用 RoIAlign pooling

由于 CLIP 对全图编码和区域编码是有 gap 的,所以作者提出 region prompting 来通过可学习的 prompt p ∈ R S × S × C p\in R^{S \times S \times C} pRS×S×C 来扩展 region feature,对两组特征进行对齐

  • S:region feature 的空间尺寸
  • C:region features 的维度

给定一个 input region feature f r e g i o n f_{region} fregion,region prompt 计算如下:

在这里插入图片描述

  • ➕ 表示逐点相加
  • P 是 CLIP 中的 attention pooling

如何优化 region prompt:

  • 作者使用 base-class 标注的检测数据来训练 region prompt
  • loss 为交叉熵
  • 保持其他参数冻结,只训练 region prompt

2.3 anchor pre-matching

region prompt 能够帮助解决 image 和 region 的 gap

为了解决 RPN 在新类别上检出能力不足的问题,作者提出了 class-aware query-based 目标定位器,能够提升模型在没见过的类别上的定位能力

如图 1 所示,给定一个从 CLIP image encoder 得到的视觉特征, object query 会和 class name embedding 进行 pre-matched

Anchor Pre-matching:

目标定位是使用 DETR-style 的 encoder-decoder 结构实现的,encoder 用于细化特征图,decoder 用于将 object query 解码到 box

作者使用 DAB-DETR,object query 的类别 c i c_i ci 是根据相关的 anchor box b i b_i bi 来分配的

在这里插入图片描述

pre-matching 之后,每个 object query 会根据预测的类别来进行 class-aware box regression,object query 是有下面得到的:

在这里插入图片描述

得到模型预测后,gt 和模型预测框的匹配是对每个类别分别使用双边匹配

对类别 c,假设 gt y c y^c yc 匹配到了 N c N_c Nc 个预测框,会通过最小化下面的分布来优化 N c N_c Nc 的排列:

在这里插入图片描述

  • L m a t c h L_{match} Lmatch:二值分类 loss,这里使用 focal loss
  • L b o x L_{box} Lbox:是定位误差,这里使用 L1 和 GIoU 的加权和

模型的最终优化 loss 如下:

在这里插入图片描述

在这里插入图片描述

三、效果

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

Qt/C++音视频开发48-推流到rtsp服务器

一、前言 之前已经打通了rtmp的推流,理论上按照同样的代码,只要将rtmp推流地址换成rtsp推流地址,然后格式将flv换成rtsp就行,无奈直接遇到协议不支持的错误提示,网上说要换成rtp,换了也没用,而…

Linux 学习记录54(ARM篇)

Linux 学习记录54(ARM篇) 本文目录 Linux 学习记录54(ARM篇)一、框图分析1. 芯片手册内部框图2. 操作GPIO过程 二、通过汇编完成GPIO操作1. 常用的汇编指令2. GPIO初始化流程3. 查找相关寄存器(1. RCC寄存器(2. GPIO寄存器>1. 模式配置寄存器>2. 输出模式配置寄存器>3…

Jenkins常用管理功能配置 - 插件管理

Jenkins插件介绍 Jenkins是一个流行的开源持续集成/持续交付(CI/CD)工具,它有大量的插件来扩展其功能。这些插件可以用于构建、测试、部署和监控软件项目。下面是一些常用的Jenkins插件及其简单介绍和使用方法: 1. Git插件:允许Jenkins从Gi…

vue2如何将页面生成 pdf 导出 html2Canvas + jspdf

1.引入两个依赖 npm i html2canvas npm i jspdf 2.在utils文件夹下新建html2pdf.js文件 import html2canvas from html2canvas; import jsPDF from jspdf export const htmlToPDF async (htmlId, title "报表", bgColor "#fff") > { let pdfDom do…

【LeetCode每日一题合集】2023.7.17-2023.7.23(离线算法 环形子数组的最大和 接雨水)

文章目录 415. 字符串相加(高精度计算、大数运算)1851. 包含每个查询的最小区间⭐⭐⭐⭐⭐解法1——按区间长度排序 离线询问 并查集解法2——离线算法 优先队列 874. 模拟行走机器人(哈希表 方向数组)918. 环形子数组的最大和…

sentinel深入讲解流量控制/熔断降级

文章目录 sentinelsentinel介绍重要的核心概念引入依赖限流的规则熔断规则yaml 项目配置使用注解 SentinelResource讲解类的静态方法 sentinel sentinel介绍 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式、多语言异构化服务架构…

【深度学习之YOLO8】环境部署

目录 一、确定版本CUDA toolkit、cuDNN版本Python、PyTorch版本 二、安装Python下载环境变量验证安装 三、安装Anaconda安装环境变量验证安装创建conda虚拟环境常用命令 四、安装CUDA toolkit下载环境变量验证安装 五、配置cuDNN下载 六、安装PyTorch(torchtorchversiontorchau…

华为、阿里巴巴、字节跳动 100+ Python 面试问题总结(五)

系列文章目录 个人简介:机电专业在读研究生,CSDN内容合伙人,博主个人首页 Python面试专栏:《Python面试》此专栏面向准备面试的2024届毕业生。欢迎阅读,一起进步!🌟🌟🌟 …

RUST腐蚀基因种植

RUST腐蚀基因种植 试验地址:www.xiaocao.cloud RUST基因: RUST基因计算器,腐蚀基因计算器,前后端分离架构,前端目录/resouce/ui/rust,欢迎大佬评价,

算法笔记(java)——回溯篇

回溯算法解决问题最有规律性,借用一下卡哥的图: 只要遇到上述问题就可以考虑使用回溯,回溯法的效率并不高,是一种暴力解法,其代码是嵌套在for循环中的递归,用来解决暴力算法解决不了的问题,即…

Tensorflow无人车使用移动端的SSD(单发多框检测)来识别物体及Graph的认识

环境是树莓派3B,当然这里安装tensorflow并不是一定要在树莓派环境,只需要是ARM架构就行,也就是目前市场上绝大部分的嵌入式系统都是用这套精简指令集。 在电脑端的检测,有兴趣的可以查阅SSD(Single Shot MultiBox Detector)系列&a…

19 QListWidget控件

Tips: 对于列表式数据可以使用QStringList进行左移一块输入。 代码: //listWidget使用 // QListWidgetItem * item new QListWidgetItem("锄禾日当午"); // QListWidgetItem * item2 new QListWidgetItem("汗滴禾下土"); // ui->…

十、正则表达式详解:掌握强大的文本处理工具(二)

文章目录 🍀多字符匹配🍀匹配规则的代替🍀特殊的匹配🍀特殊的匹配plus🍀总结 🍀多字符匹配 星号(*):匹配0个或者多个字符 import retext 111-222-333 result re.matc…

苹果的Apple GPT要来了?

据外媒消息,苹果正在内部开发类 ChatGPT 的产品,与微软、OpenAI、谷歌、Meta 等科技巨头在生成式 AI 赛道展开竞争。该消息使得苹果股价上涨了 2%。据苹果工程师透露,苹果在内部构建了代号为“Ajax”的大语言模型开发框架,并构建了…

Unity自定义后处理——Bloom效果

大家好,我是阿赵。   继续介绍屏幕后处理效果,这一期讲一下Bloom效果。 一、Bloom效果介绍 还是拿这个模型作为背景。 Bloom效果,就是一种全屏泛光的效果,让模型和特效有一种真的在发光的感觉。 根据参数不一样,可…

Packet Tracer – 实施静态 NAT 和动态 NAT

Packet Tracer – 实施静态 NAT 和动态 NAT 拓扑图 目标 第 1 部分:利用 PAT 配置动态 NAT 第 2 部分:配置静态 NAT 第 3 部分:验证 NAT 实施 第 1 部分: 利用 PAT 配置动态 NAT 步骤 1: 配置允许用于 NAT …

【基于CentOS 7 的iscsi服务】

目录 一、概述 1.简述 2.作用 3. iscsi 4.相关名称 二、使用步骤 - 构建iscsi服务 1.使用targetcli工具进入到iscsi服务器端管理界面 2.实现步骤 2.1 服务器端 2.2 客户端 2.2.1 安装软件 2.2.2 在认证文件中生成iqn编号 2.2.3 开启客户端服务 2.2.4 查找可用的i…

AJAX-day03-AJAX进阶

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 同步代码和异步代码 回调函数地狱 Promise - 链式调用 Promise 链式应用 async函数和await async函…

Stable Diffusion入门笔记(自用)

学习视频:20分钟搞懂Prompt与参数设置,你的AI绘画“咒语”学明白了吗? | 零基础入门Stable Diffusion保姆级新手教程 | Prompt关键词教学_哔哩哔哩_bilibili 1.图片提示词模板 2.权重(提示词) 无数字 (flower)//花的…

MQTT网关 5G物联网网关 PLC控制工业网关

MQTT网关,两个以上的节点之间通信的新型网关,网络节点之间通过互连来实现双向通信。支持PLC协议转MQTT,实现plc数据采集上云,物联网云平台对接,广泛应用于工业自动化plc远程监测控制。 计讯物联5G MQTT物联网网关TG463…