当前位置: 首页 > java >正文

论文精读Lami-Detr:Open-Vocabulary Detection with Language Model Instruction

文章目录

  • 前言
  • 1、出发点
  • 2、方法
    • 2.1.训练阶段
      • 2.1.1.文本特征提取器
      • 2.1.2.图像特征提取器
    • 2.2.推理阶段
  • 3、实验
  • 总结


前言

 本文介绍篇来自北航的ECCV2024的开放词汇论文:Lami-detr,开源地址。

1、出发点

 现有的开放词汇方法大多都借助了VLM比如Clip的零样本泛化能力,但这会存在两个问题:1)Clip的提取的文本特征缺少具有深度的语言描述和视觉知识;2)容易过度拟合到训练集类别上,泛化到新检测类别时效果不好。
 为了说明上述两个问题,作者用一副图进行说明:
在这里插入图片描述
 1)图a中,直接将类别名称喂入CLip得到特征向量,并进行聚类:发现将"fireboat"和“fireweed”聚类到一起,说明clip追求了单词字母上相似性,忽视了语义信息,显然对泛化不好;
 2)图b中,将类别名称喂给T5语言模型得到嵌入向量,并进行聚类:发现将外表相似的“海豚”和“海狮”分到了两个不同的簇,这显然对OVD任务也不太好:因为OVD假如在海豚上训练,我们希望模型学到外观特征:白色肚皮等,这有助于在测试阶段泛化找到海狮。而不是过拟合到海豚这个类别上,所以直接用T5提取语言向量也不太好。
 3)图c中,首先用GPT得到类别名称的外观描述:比如海豚白色肚皮a啥的,然后在经过T5模型聚类,则得到的分类簇就合理的多。
 下面看作者如何具体实现的。

2、方法

 这里简单介绍下OVD任务:模型在 C B C_B CB上训练,然后在 C N C_N CN上评测,且 C B 和 C N C_B和C_N CBCN没有交集。

2.1.训练阶段

在这里插入图片描述
 在训练阶段,如上图所示其实是个双流网络:1)基于Detr架构的视觉提取器;2)文本特征提取器。这里作者以cat进行释义,在测试阶段会与cat相似的"tiger"进行测试。

2.1.1.文本特征提取器

 这里先介绍下文本提取器,也就是如何模拟图c中实现的:
在这里插入图片描述
 先用GPT生成每个类别描述,然后经过T5得到特征向量,之后执行Kmeas,就能够将cat和tiger这类视觉上相似的类别聚集在一起,然后采样了负样本采样:采样除cat和tiger的其余四个物体作为负样本
注意:这里我只是表达意思,没有具体黏贴原论文的公式,因为这篇论文给人读起来有点儿跳脱,一会儿train,一会儿test。

2.1.2.图像特征提取器

 这里采用了两阶段的Detr结构,在经过Encoder后,执行了TopN操作:
在这里插入图片描述
其中 τ c l s \tau_{cls} τcls就是clip提取的文本特征向量,跟 f i f_i fi计算cos相似度,取TopN。
 之后作者将 q j q_j qj进行了语义融合:
在这里插入图片描述
在这里插入图片描述
 即累加了clip的语义信息,也累加了T5的Visual Concept信息。

2.2.推理阶段

在这里插入图片描述
 在推理阶段,也是双流结构:图像特征阶段基本没变化,主要介绍下文本提取部分:

在这里插入图片描述
 如上图所示:在推理阶段,引入了混淆类别Prompt:如何区分出来cat假如老虎也在图中。然后经过GPT和T5得到视觉嵌入向量,以此来增强网络的判别区分能力。

 之后,跟F-VLM类似,借助 V L M _ s c o r e VLM\_score VLM_score来校正 S _ d e t s c o r e S\_detscore S_detscore。这部分感兴趣,读者可参考:F-VLM论文精读。

在这里插入图片描述

3、实验

在这里插入图片描述
 这个看起来效果确实惊艳,尤其在 A P r AP_r APr提升上。

总结

 本篇工作出发点是好的,发现clip的text embed不是太好的一个嵌入,之后借助GPT来生成概念丰富表达,并通过采样负类别来增强判别能力,同时保留了视觉相似特征,以便于保留模型发现新的类别能力。但感觉读起来还是晕晕乎乎的,行文有点儿迷。

http://www.xdnf.cn/news/14174.html

相关文章:

  • 芯片的起点——从硅到晶圆制造
  • 用Python写一个可视化大屏
  • 简说ping、telnet、netcat
  • 论文阅读-单目视觉惯性系统时间标定
  • MySQL 锁学习笔记
  • 计算机网络-自顶向下—第二章应用层-重点复习笔记
  • 在C++中的封装(Encapsulation)
  • Linux学习笔记:PCIe内核篇(1):初始化与枚举流程
  • 第1章 C# 和 .NET 框架 笔记
  • MCP简介和应用
  • 第十七章 Linux之大数据定制篇——Shell编程
  • ES知识合集(四):高级篇
  • 20250614让NanoPi NEO core开发板在Ubuntu core16.04系统下使用耳机播音测试
  • 「Linux文件及目录管理」目录结构及显示类命令
  • Python虚拟环境的使用
  • SpringBoot源码解析(十一):条件注解@ConditionalOnClass的匹配逻辑
  • 如何调优Kafka
  • LeetCode 第71题 简化路径(繁琐)
  • thinkphp8提升之查询
  • Nature Machine Intelligence 北京通研院朱松纯团队开发视触觉传感仿人灵巧手,实现类人自适应抓取
  • 开心灿烂go开发面试题
  • 如何自动化测试 DependencyMatcher 规则效果(CI/CD 集成最佳实践)
  • 免费OCPP协议测试工具
  • FreeRTOS定时器
  • C++/OpenCV地砖识别系统结合 Libevent 实现网络化 AI 接入
  • 如何写出优秀的单元测试?
  • 17.vue.js响应式和dom更新
  • java33
  • Java重构实战:小步快跑的高效策略分析
  • 【嵌入式硬件实例】-555定时器实现烟雾和易燃气体泄露检测