【多模态】23、RO-ViT | 基于 Transformer 的开发词汇目标检测(CVPR2023)

在这里插入图片描述

文章目录

    • 一、背景
    • 二、方法
      • 2.1 基础内容
      • 2.2 Region-aware Image-text Pretraining
      • 2.3 Open-vocabulary Detector Finetuning
    • 三、效果
      • 3.1 细节
      • 3.2 开放词汇目标检测效果
      • 3.3 Image-text retrieval
      • 3.4 Transfer object detection
      • 3.5 消融实验

论文:Region-Aware Pretraining for Open-Vocabulary Object Detection with Vision Transformers

代码:暂无

出处:CVPR2023

贡献:

  • 本文提出的 RO-ViT 解决了 image-text pretraining 到 open-vocabulary object finetuning 之间的 positional embedding 问题
  • 证明了 image-text pretraining 使用 focal loss 比 CE loss 更好
  • 使用 novel object proposals 提高了开放词汇目标检测 fine-tuning 效果
  • 在 LVIS 上得到 SOTA 32.4 APr,超越了当前最好的方法 6.1 APr

一、背景

近期,open-vocabulary detection task (OVD) 得到了很多关注,其被提出是为了解决传统目标检测的限制性,开放词汇目标检测最大的特点是将类别看做 text embedding,而不是离散的 id,所以,开放词汇目标检测能够更灵活的预测在训练过程中没见过的类别。

现有的很多方法是使用大量的 image-text pairs 来进行预训练,为模型引入丰富的语义信息,很多方法用的是 CNN,但随着对图像理解的更强的需求和多模态任务的出现,使用 vision transformer 来实现也很重要

我们已知现有的方法很多都是使用预训练好的 vision-language model,然后再微调一下来解决 image-level 预训练和 object-level fine-tuning 之间的 gap

本文提出了 RO-ViT,将预训练好的 vision transformer 迁移到 region-aware 上来实现开放词汇的目标检测

本文和前面的方法最大的不同在于,本文作者探索了如何更好的使用 vision transformer 来预训练 VLMs,更好的适用于开放词汇检测

然后使用预训练的权重来初始化检测器的 backbone,将 backbone 冻住后训练检测器的 neck 和 head 等特殊部件

二、方法

在这里插入图片描述

2.1 基础内容

1、contrastive image-text pretraining

一般的对比学习都是 two-tower 的结构,由 image encoder 和 text encoder 构成

  • image encoder:可以是 CNN 或者 ViT 的
  • text encoer:一般是 transformer 的

对比学习的目标是在 embedding space 中,将一对儿的 image-text 距离拉近,非一对儿的 image-text 距离拉远

一般使用的 loss 是 softmax CE loss

2、开放词汇目标检测

使用基础类别训练,但是测试的时候需要同时能够检测基础类别和新类别

一般的方法就是将原本的固定尺寸的全连接分类器使用 text embedding 来替换,因为 text embedding 来自于预训练的 text encoder 中,所以预训练中的开放语义知识能很好的保留

作者对于 background 类别使用 “background” 词汇来作为类别词汇

训练过程中,作者会给每个 region r r r 计算对应的 detection score p i p_i pi,计算方法是计算 RoI-Align feature(region embedding)和基础类别的 text embedding 的 cosine similarity,然后使用 softmax 规范化

在测试过程中,text embedding 扩展到了基础类别和新类别的 embedding,并且加上了 background,在 ViT backbone的输出 feature map 上使用 RoI-Align 来获得region i i i 的 VLM embedding,并且计算这个区域 embedding 和 text embedding 的 cosine similarity,得到 region score z i z_i zi,detection score 计算如下, α , β ∈ [ 0 , 1 ] \alpha, \beta \in [0,1] α,β[0,1] 用了控制基础类别和新类别的 weights

作者使用预训练好的 ViT 模型来初始化 detector 的 backbone

2.2 Region-aware Image-text Pretraining

现有的 vision-language model 基本上都是使用整张图和 text 来进行匹配

然而,这种预训练没有考虑到 region-level 特征和 text token 之间的关系,而这种关系又对开发词汇目标检测很重要

所以,作者提出了一种新的 Cropped Positional Embedding(CPE)的方法来解决 image 和 region 之间的 gap,并且发现使用 focal loss 从难样本中挖掘很有益处

CPE:

  • transformer 中,positional embedding 是很重要的,能够保留每个元素的相对位置,这种信息对下游的识别和定位任务都很重要
  • 但现有的 contrastive pretraining 和 open-vocabulary detection fine-tuning 的 positional embedding 之间有一定的不对齐,pretraining 方法一般都在训练时对全图位置进行编码,在下游的任务也是使用全图的位置编码。但是 detection fine-tuning 中,需要将全图的位置编码泛化到 region 的编码

为了解决这个 gap,作者提出了 CPE,如图 2 所示:

  • 首先,对于 pretraining,将 positional embedding 从图像大小(224)上采样到检测任务大小(如 1024)
  • 然后,从上采样的 positional embedding 中随机 crop 一个 region 并 resize,来作为预训练时候的 image-level 的 positional embedding
  • 这样一来,就能让模型将图像看做从更大的未知图像中随机 crop 出的 region,而非一个整图,能更好的适应于下游检测任务

在这里插入图片描述

CPE 可视化:

  • 每个小格子是一个 patch 和其他 patches 的余弦相似度
  • 相近的 patches 有着更相似的位置编码

在这里插入图片描述

Focal loss:

作者认为更细致的控制 hard 样本的权重比使用 CE loss 更好

假设:

  • v i v_i vi l i l_i li 是归一化后的 image embedding 和 text embedding

  • Image-to-text(I2T)对比学习 loss 分别设置为 CE loss 和 Focal loss 来对比,公式如下

  • Text-to-image(T2I)对比学习 loss 和 I2T 的是对称的

    在这里插入图片描述

  • 总 loss 是两个 loss 之和

2.3 Open-vocabulary Detector Finetuning

虽然 backbone 可以使用预训练权重来初始化,但检测器的 neck 和 head 还是全新的

现有的方法一般不会对新类或未标注的类进行 proposal generation

但本文提出了一个新的生成 proposal 的方法,使用 localization quality-based objectness(如 centerness 等)来衡量 proposal 的得分,而不是使用 object-or-not 的二分类得分来衡量

OVD score: S i O V D = o i δ . s i O V D S_i^{OVD}=o_i^{\delta} .s_i^{OVD} SiOVD=oiδ.siOVD o i δ o_i^{\delta} oiδ 是预测的 objectness score

三、效果

3.1 细节

预训练:

  • 本文的 pretraining 是作者从头训练的,使用 ViT-B/16 和 ViT-L/16 来作为 image encoder
  • 输入图像大小为 224x224,patch size 为 16x16,共 14x14 个 positional embedding
  • 为了生成 CPE,作者首先将 positional embedding 插值到 64x64,然后随机 crop 一个 region(scale ratio 为 [0.1,1.0],aspect ration 为 [0.5, 2.0]),然后将 region crop resize 为 14x14,驾到 patch embedding 上
  • 在 ViT 最后一层使用 global average pooling 来得到 image embedding
  • text encoder 是 12 层的 transformer,最长的 text encoder 是 64
  • 数据集:LAION-2B [44]

下游检测的细节:

  • LVIS: iters = 46.1k,img size =1024,batch = 256,SGD weight decay 1e-4,lr 0.36,momentum=0.9
  • COCO:iters = 11.3k,img size =1024,batch = 128,SGD weight decay 1e-2,lr 0.02,momentum=0.9
  • 使用 CLIP prompt 模版,对每个类别的 text embedding 求平均
  • 在 RPN 阶段使用 OLN-RPN,使用 centerness 作为 objectness,每个位置上有一个 anchor,使用 IoU loss,RPN NMS 在训练时 threshold=0.7,测试时为 1.0

3.2 开放词汇目标检测效果

LVIS:

  • 使用基础类别训练,rare 类别作为新类来测试,测试了 3 次取了平均
  • APr 取得 32.4

在这里插入图片描述

COCO:

  • 使用 48 个基础类别训练,17 个新类测试

在这里插入图片描述

3.3 Image-text retrieval

zero-shot image-text retrieval on coco and Flickr30k

在这里插入图片描述

3.4 Transfer object detection

在这里插入图片描述

3.5 消融实验

在这里插入图片描述

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

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

相关文章

《网络是怎样连接的》(二.2)

(6条消息) 《网络是怎样连接的》(二.1)_qq_38480311的博客-CSDN博客 本文主要取材于 《网络是怎样连接的》 第二章 2.5 2.6章节。 目录 简述: 本文的主要内容是 以太网的收发操作 和 UDP协议的收发操作。 IP与以太网的包收发操作 包是什…

蓝海卓越计费管理系统任意文件读取下载

看了大佬的文章,太牛逼啦,下面是大佬文章原文。 蓝海卓越计费管理系统任意文件读取下载 鹰图语法:web.title"蓝海卓越计费管理系统" 访问url 直接更改url就行了 /download.php?file../../../../../etc/passwd

我能“C“——扫雷游戏

一.前言: 扫雷游戏,一款经典的游戏,没玩过的话也可以试着玩一玩,这样对写扫雷游戏这个小游戏的化是会有一个很好的思路的。那么本片博客就来介绍如何实现扫雷游戏的具体步骤。扫雷游戏链接👉 扫雷游戏网页版 - Minesw…

【MMCV】mmpretrain/mmclassification概览、环境安装与验证

概览 MMPretrain 是一个全新升级的预训练开源算法框架,旨在提供各种强大的预训练主干网络, 并支持了不同的预训练策略。MMPretrain 源自著名的开源项目 MMClassification 和 MMSelfSup,并开发了许多令人兴奋的新功能。 目前,预训练阶段对于视觉识别至关重要,凭借丰富而强…

GPT Prompt编写的艺术:如何提高AI模型的表现力

随着AI技术的迅速发展,人工智能模型变得越来越强大,能够协助我们完成各种任务。然而,如何更好地利用AI的能力仍然存在很大的探索空间。在与AI进行交互的过程中,我们主要依赖于Prompt,不管是直接与大模型交互&#xff0…

Simulink仿真模块 - Relay

目录 说明 模块特性 Relay是在两个常量输出之间进行切换。 在仿真库中的位置为:Simulink / Discontinuitie模型为: 说明 Relay 模块的输出在两个指定值之间切换。打开中继时,它会一直保持打开,直到输入低于 Switch off point 参数的值为止。关闭中继时,它会一直保持关闭…

[C++项目] Boost文档 站内搜索引擎(1): 项目背景介绍、相关技术栈、相关概念介绍...

项目背景 Boost库是C中一个非常重要的开源库. 它实现了许多C标准库中没有涉及的特性和功能, 一度成为了C标准库的拓展库. C新标准的内容, 很大一部分脱胎于Boost库中. Boost库的高质量代码 以及 提供了更多实用方便的C组件, 使得Boost库在C开发中会被高频使用 为方便开发者学…

Excel功能总结

1)每一张表格上都打印表头 “页面布局”-->“打印标题”-->页面设置“工作表”页-->打印标题“顶端标题行” 如:固定第1~2行,设置成“$1:$2” 2)将页面内容打印在一页【缩印】 1.选好需要打印的区域,“页面布…

算法通关村——如何使用中序和后序来恢复一棵二叉树

通过序列构造二叉树 给出以下三个二叉树遍历的序列: (1) 前序: 1 2 3 4 5 6 8 7 9 10 11 12 13 15 14 (2) 中序: 3 4 8 6 7 5 2 1 10 9 11 15 13 14 12 (3) 后序: 8 7 6 5 4 3 2 10 15 14 13 12 11 9 1 前中序复原二叉树 所需序列 (1) 前序: 1 2 3 4 5 6 8 7 9 10 …

瑞芯微RK3568开发板保姆级护航入门学习嵌入式

资料优势 专为3568编写|迅为原创|拒绝网络拼凑 20个手册2800页手册进行结构分层适用于学习与开发 为了方便大家清晰快速的学习,迅为iTOP-3568开发板手册资料全面升级,对手册内容进行了结构分层,共计20个文档,超2800页的资料专为…

这个视频翻译英文的技巧带你畅享无障碍沟通

在一个充满魔法和奇迹的童话世界里,住着一个聪明勇敢的小女孩,她叫芳芳。芳芳一直梦想着探索更广阔的世界,直到有一天,她意外发现了一本神奇的书,名叫《翻译之光》。这本魔法书的每一页都流动着绚丽的彩虹光芒&#xf…

blender凹凸感和置换形变

一、怎么做出凹凸感 需要三个部分的内容: 1、一个基础的纹理:告诉计算机需要用一个什么样的纹理做凹凸,纹理一般采用黑白,在计算机里面,从 0 - 1之间的值可以用从黑到白之间不同的灰度来表示因此,有一张黑白…

kernel32.dll如何修复,快速解决kernel32.dll缺失的方法

Kernel32.dll是Windows操作系统中一个重要的系统文件,对于系统的正常运行至关重要。然而,由于各种原因,用户可能会遇到kernel32.dll文件的缺失问题。今天小编就来给大家详细的介绍一下kernel32.dll这个文件,并且详细的介绍一下ker…

《金融数据保护治理白皮书》发布(137页)

温馨提示:文末附完整PDF下载链接 导读 目前业界已出台数据保护方面的治理模型,但围绕金融数据保护治理的实践指导等尚不成熟,本课题围绕数据保护治理的金融实践、发展现状,探索和标准化相关能力要求,归纳总结相关建…

ApplicationArguments 接口的作用和使用介绍

在Spring Boot中,ApplicationArguments接口是用于获取应用程序的命令行参数的一个接口。它是Spring Boot提供的一种方便的方式,用于获取在应用程序启动时从命令行传递的参数。 ApplicationArguments接口提供了以下方法来获取命令行参数: ge…

TDesign中后台管理系统-访问后端服务

目录 1 修改后端服务地址2 解决跨域问题3 动态获取菜单4 测试后端接口5 前后端联调总结 目前我们已经搭建了TDesign的前端和express的后端,目前是两个独立的应用。通常我们需要把前后端集成在一起,TDesign已经配置了相关的信息,只需要修改后端…

【Linux】网络编程套接字

1 预备知识 1.1 IP地址 IP协议有两个版本,分别是IPv4和IPv6。没有特殊说明,默认都是IPv4对于IPv4,IP地址是一个四个字节32为的整数;对于IPv6来说,IP地址是128位的整数 我们通常也使用 “点分十进制” 的字符串表示IP…

flask------消息闪现 flash

1介绍 flask提供了一个非常有用的flash()函数,它可以用来“闪现”需要提示给用户的消息,比如当用户登录成功后显示“欢迎回来!”。在视图函数调用flash()函数,传入消息内容,flash()函数把消息存…

【C++】带三维重建和还原的RIS/PACS源码

【PACS】集成三维影像后处理功能,包括三维多平面重建、三维容积重建、三维表面重建、三维虚拟内窥镜、最大/小密度投影、心脏动脉钙化分析等功能。系统功能强大,代码完整。 一、RIS/PACS系统简介 RIS/PACS系统在预约登记、分诊叫号、技师检查、诊断报告…

提交App Store应用图标不能包含alpha通道

近日提交APP至App Store时遇到一个问题,在交付ipa时出现一个图标不符合规定的提示 翻译过来就是 资产验证失败(90717)应用商店图标无效。“HBuilder.App”中资产目录中的应用商店图标不能是透明的,也不能包含alpha通道。 因为我…