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

【多模态大模型】系列4:目标检测(ViLD、GLIP)

目录

  • 1 ViLD
  • 2 GLIP

1 ViLD

OPEN-VOCABULARY OBJECT DETECTION VIA VISION AND LANGUAGE KNOWLEDGE DISTILLATION

从标题就能看出来,作者是把CLIP模型当成一个Teacher,去蒸馏他自己的网络,从而能Zero Shot去做目标检测。

现在的目标检测数据集标注的类别都很有限,这些有限的类别叫做base categories,如下图中的蓝框标注的东西都是玩具,在这种数据集上去训练一个目标检测器就只能检测出玩具,得不到更细致的检测结果。我们能不能在现有数据集的基础之上,不去额外标注这些黄鸭子或者绿鳄鱼,但模型能直接做到检测这些物体的能力,换句话说,就是模型应该有用能检测这种novel categories新类别的能力。

研究动机

主体的方法如下图所示,

  • a是Base方法,实际上是一个Mask RCNN,是一个两阶段的分类器,第一阶段会出一些region proposal,也就是图中的输入 N proposals;第二阶段就是把N个proposals经过Detection Head,得到N个region embeddings,然后再经过一些分类头,最后输出这些Bounding Box到底是什么类,这样就完成了目标检测。目标函数一般包括两个:定位和分类。
  • b是ViLD的text部分,N个proposals经过检测头,经过投射和正则等操作之后,得到N个region embeddings。接下来我们要去算文本的embedding,就是把物体的类别拿过来给一些prompt,生成一个句子,经过文本编码器即可。ViLD-text和Base方法一样,也是在这些数据集上做有监督的训练,而且是在基础类上训练。在这个阶段,ViLD-text只是把图像的特征和文本的特征联系到一起,Zero Shot能力还有待加强。需要注意的是,不在基础类里的其他类别,都归到Background背景类。背景类的学习非常关键,专门有一个背景的embedding,需要在模型训练的时候去把它学好。
  • c是ViLD的image部分,对于得到的M个bounding box,可以把它们抠出来并resize成特定大小例如224*224,这样就可以输入到CLIP预训练好的图像编码器,得到图像的特征,当做Teacher。Student网络就是常用的目标检测的框架,M个proposals经过一些层得到的图像特征,我们希望它们和CLIP的特征尽可能地接近,所以直接用一个简单的L1-Loss去做蒸馏就可以了。这里的监督信号不再是人工标注,而是CLIP的图像编码,所以不在受到基础类的限制了。ViLD-image通过利用CLIP模型,大大地加强了Open Vocabulary的能力。这里取M个而不是N个proposals,主要是CLIP抽取特征太慢了,因此需要减少proposal的数量来加速训练。
  • d是ViLD-text和ViLD-image合体,右边蒸馏部分只有在训练的时候用到,测试的时候没有用到。

方法

模型总览图如下图所示:

模型总览图

2 GLIP

GLIP = Detection + Phrase Grounding:给定一张图片和一个文本,根据这个文本把物体找出来。

【待更新】


http://www.kler.cn/a/540647.html

相关文章:

  • 自动驾驶数据集三剑客:nuScenes、nuImages 与 nuPlan 的技术矩阵与生态协同
  • 激活函数 05 ——Swish
  • 数据结构——【二叉树模版】
  • fps动作系统9:动画音频
  • 2025/2/10 心得
  • leetcode 做题思路快查
  • 因果推断与机器学习—特定领域的机器学习
  • 如何在 CSS Modules 中使用 Sass 或 Less?
  • stm32 deinit 函数作用
  • 华硕笔记本怎么一键恢复出厂系统_华硕笔记本一键恢复出厂系统教程
  • 探索 Amazon Aurora DSQL:基本操作全解析(系列①)
  • 萌新学 Python 之 If 语句
  • Vue 响应式渲染 - 过滤应用
  • layui怎么请求数据
  • NFTScan | 02.03~02.09 NFT 市场热点汇总
  • 操作系统—文件管理
  • 【含文档+PPT+源码】基于微信小程序的社交摄影约拍平台的设计与实现
  • Vue的Diff算法与React的Diff算法有何不同?
  • 19.1.1 DDL
  • C++性能优化—AI润色版
  • H5 图片系列—new Image()加载图片是否会有缓存,从而img标签获取同一数据源显示时使用该缓存数据?
  • ZoneMinder index.php SQL注入漏洞复现(附脚本)(CVE-2024-43360)
  • jvm 线程监控调试
  • redis项目
  • 突破YOLOv11训练:用幽默的方式玩转自定义数据集与物体检测
  • 【读书笔记·VLSI电路设计方法解密】问题46:什么是bug覆盖率