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

开放词汇目标检测系列论文(1)--ViLD

1、论文简介

该论文题目是“Open-vocabulary object detection via vision and language knowledge distillation”,发表于ICLR 2022,发表单位是谷歌和英伟达。论文主要是基于知识蒸馏的方式,将CLIP大模型的视觉和文本特征,蒸馏至Mask R-CNN方法中。

这篇博客,我们将用大白话的方式,去讲明白作者的核心思想,对于一些实验细节和方法细节,还请大家去看原文。

2、论文动机
2.1 之前的深度学习目标检测

目标检测是视觉里面的一个非常重要的task,出现了RCNN,Fast RCNN,DETR等为代表的一系列方法。这些方法有个共同点,就是只能检测训练数据集中出现的类别。如果想检测的类别,没有出现在训练数据集中,则会失败。

随着视觉-文本大模型的出现,学者们就在想,能不能用这些大模型的通用知识,使得目标检测也能够具备很强的通用性,可以检测一些没有被训练的类别。这个就是我们这边论文想做的开放词汇目标检测。

2.2 常规Open-vocabulary object detection方法

最为简单的方法,则是我先用一个检测器获得很多的proposal。然后,对于每个proposal,采用CLIP视觉网络去编码特征。然后,在对于输入的text,也采用CLIP去编码特征。将视觉特征和文本特征进行匹配,如果匹配上了,则认为这个proposal是这个分类。

这种思路非常的简单,也很好理解。但是存在几大问题:

第一:计算量大,对于每个proposal,我都要用一个很大的CLIP去提取视觉特征,速度必然很慢;

第二:整个过程不是端到端的,CLIP和前面的proposal提取网络在梯度上是断开的;

第三:proposal由于是在闭集数据集上训练的,在检测的时候,容易漏掉没有见过的目标。

作者为了解决速度问题,提出将CLIP的通用特征编码能力蒸馏到目标检测网络中。这也是这篇论文的核心motivation。

3、论文做法

为了做蒸馏,论文提出了蒸馏方式,分别是ViLD-text和ViLD-image。

论文首先修改了Mask R-CNN,让该网络不在去预测类别,而是专注于提取proposal(不管类别)。作者的目的是为了提高proposal的覆盖率,能够检测出所有的目标。但个人觉得,仅仅这样做,很难完全实现目标。也就是说,解决不了论文动机中介绍的第三个问题,只能从一定程度上缓解。

3.1 ViLD-text

在得到所有的proposal之后,并得到proposal的embeddings。ViLD-text的蒸馏目的,让proposal embeddings 尽可能地接近该proposal类别的CLIP text 特征。大家可以想象,如果每个proposal的embedding 都和CLIP提取的对应类别的文本特征接近,相当于网络已经具备了一定的通用性,网络学习的是proposal embedding和text embedding之间的相似性,而不是一个具体的分类。

具体做法:

1)对于每个proposal,提取 proposal embedding;

2)对于闭集内所有的类别,提取CLIP 的text文本特征;计算proposal embedding和所有文本特征间的相似性。这里,值得注意的是,作者加了一个background的文本特征,其实就是指向不存在于闭集中的文本特征。

3)对于上述特征,求一个softmax,对应的最大的文本特征的概率,然后和真值做交叉熵损失。

上述步骤直接对应论文中的公式(2)

大家想想,为什么这样做之后,CLIP 的text编码能力就蒸馏到了proposal网络中呢?

原因是:为了让loss最小,那么proposal embedding必然要和真值的CLIP 的text embedding一致;一旦一致了,这个CLIP的能力不就蒸馏过去了嘛。

3.2 ViLD-image

在ViLD-text中,是希望proposal embedding 和 CLIP text embedding保持一致。在ViLD-image中,就更加直接,是希望 proposal embedding和CLIP image embedding保持一致。具体步骤如下:

1)提取proposal embeddings;

2)同样的区域,用CLIP 提取 CLIP image embeddings;

3)直接用L1 loss约束两个embeddings一致。

3.3 两者结合

从3.1 和3.2中,可以得知,ViLD-text和ViLD-image都是为了约束proposal embeddings,如果直接一起训练,可能会互相干扰。因此,作者直接分了两个head,分别提取两个proposal embeddings,然后对每个embedding分别采用ViLD text和ViLD imag进行训练蒸馏。

在推理的时候,分别用两个head的proposal embeddings去做分类,得到分数。然后用一个类似于加权的方式去得到最终的分数。

4、实验部分

请读者自行看论文,这里不做过多讲解。

5、总结(个人理解)

这篇论文的思想非常好,解决了传统思路速度慢的问题,但依旧解决不了proposal网络漏检测而引起的错误。个人觉得是可以改进提升的地方。

此外,该论文的方法只对最后的proposal embedding做约束,没有将大模型充分利用到proposal的生成过程中,也是一个可以改进提升的地方。

http://www.rkmt.cn/news/1423906.html

相关文章:

  • 2026年青岛留学中介横评:服务体系、院校资源与申请成功率全对比 - 科技焦点
  • Tunnelto 源码解析 #2:Rust Workspace 架构拆解:CLI、协议库与服务端如何分工
  • Proxmark3GUI:让RFID技术变得简单直观的图形界面工具
  • GIS数据进游戏引擎?手把手教你用FME把大批量OSGB模型转成FBX,保留目录结构
  • 分布式系统弹性模式:构建高可用的分布式系统
  • 百考通AI:让毕业论文写作告别焦虑,对于不同学历层次的学生,多元分析
  • 从“建起来“到“用起来“:高校大数据实验室建设的系统性解法
  • 什么是 Vibe Coding?为什么企业不能只停留在快速原型 | 星云PLUS
  • 2026甄选:成都/自贡/攀枝花/泸州二手冷库冻库回收服务公司评估与选择 - 品牌企业推荐师(官方)
  • 中电金信:不说概念,看投入:银行数智化到底在卷什么
  • 新手避坑指南:在Ubuntu 20.04上从零配置ROS Melodic激光雷达仿真环境(含RViz可视化)
  • AI资讯简报高效管理指南:从信息过载到精准获取
  • AI自动化在医疗领域的应用有哪些?
  • 2026夏护腰带选购指南:谁更靠谱?
  • ADC抗体药物偶联物:肿瘤精准治疗生物导弹
  • 大型工业部件的AR检测:从可行性到实施效果
  • 别再乱卸载补丁了!Win10/11打印机共享报错0x0000011b,试试这个注册表一键修复法
  • Windows下FinalShell 3.9.8安装指南:从下载WinPcap到配置SSH密钥连接的全流程避坑
  • 改进PSO算法下带导叶离心泵性能优化与非定常流动分析【附数据】
  • 从数据隔离到全链路分发:短视频矩阵系统的防关联底层逻辑与提效实践
  • 告别Vitis笨重编辑器:手把手教你用VSCode高效开发ZYNQ应用程序(附配置详解)
  • 数字化转型下,企业新媒体矩阵系统的底层架构与选型实践
  • 终极免费文档下载指南:如何使用Kill-Doc脚本轻松获取30+平台资源
  • 为什么你的SWOT输给Claude的五力推演?:揭秘LLM实时竞对扫描、替代品预警与买方议价力量化引擎
  • 别再只盯着协同过滤了!用Python和NumPy手撸一个超市购物篮分析(附完整代码)
  • 基于可见/近红外光谱的梨树叶片氮含量无损诊断解析方案【附代码】
  • Visual C++运行库AIO安装包:终极解决方案,一劳永逸解决Windows软件启动问题
  • AI通识教育:从技术认知到人机协作的全民素养构建
  • 2026指南:室内/室外/折叠/移动式国标双人乒乓球桌专业厂家与品牌解析 - 品牌企业推荐师(官方)
  • 2026全国轻工工艺品研发设计赋能平台优选服务商:从“同质化泥潭”到“趋势引领”,谁在改写行业规则? - 资讯纵览