来源:晓飞的算法工程笔记 公众号,转载请注明出处

论文: Online Learning via Memory: Retrieval-Augmented Detector Adaptation

创新点


提出一种通过检索增强分类过程的创新在线学习框架RAC,与传统的基于离线训练/微调的方法相比,具有以下优点:

  1. 在线和持续学习能力。
  2. 最少的标注需求。
  3. 对视觉领域适应的计算无需求。

内容概述


目标检测器已经从闭集模型演变为开放世界模型,但将这些模型应用于新领域往往会导致较差的检测性能。为此,论文提出了一种新颖的方法,可以在线调整任何现成的目标检测模型,以适应新的领域,而无需重新训练检测器模型。

受到人类快速学习新主题(例如,记忆)方式的启发,论文允许检测器在测试时从记忆中查找相似的物体概念。这是通过一种检索增强分类(RAC)模块与一个可以灵活更新新领域知识的记忆库来实现的。

对各种现成的开放集检测器和闭集检测器进行了实验。仅使用一个小型记忆库(例如,每类10张图像)并且无需训练,RAC显著优于基线,在将检测器适应新的领域方面表现突出。

检索增强的检测器适应


在线学习框架由以下主要模块组成:

  1. 一个可在线更新的记忆库,其中包含用于提供在线适应新概念的目标领域图像
  2. 一个来自现成模型的物体(前景)提议模型,可以是开放世界检测器、在具有不同本体的相似领域数据上训练的任何检测器,或者简单的区域提议网络(RPN)。
  3. 一个上下文检索模块,用于将记忆库中的图像上下文与推理图像关联。
  4. 一个实例检索模块,用于将提议的物体实例与检索到的相似上下文中的实例关联。

对于查询图像,上下文级RAC首先从记忆库中选择相似的上下文图像。然后基于查询图像中的物体提议,对每个提议,实例级RAC在选定的相似上下文图像中执行实例匹配。最后,每个提议根据来自检索实例的投票分配一个类别。

物体(前景)提议模型

采用预训练的检测器作为物体提议网络,用于定位子任务,并专注于解决新概念分类子任务。

提议网络可以有多种形式,例如现成的开放集检测器、在不同数据集上训练的检测器(例如,具有不同本体的检测器),或者简单的区域提议网络(RPN),只要它能够提供有意义的前景提议。即使是没有任何语义能力的二元RPN网络,也可以使其具备分类能力。

记忆库

RAC仅需最少量的数据来构建记忆库,例如每个类别10张图像,这些图像可在在线学习环境中由最终用户轻松标注。为了构建一个高效的记忆库,论文提出了一种无监督的图像选择方法,利用图像级特征聚类来最大化覆盖率以及最小化标注工作。

  • 无监督种子图像聚类

使用强大的图像特征提取主干(例如CLIP)从未标注的目标域图像中提取嵌入,这些嵌入随后根据用户标注的图像数量进行聚类(例如,使用k-means),形成目标数量的聚类。每个聚类中的中心图像是由用户标注的,代表了多样化和具有代表性的场景。该方法能够通过每个类别仅标注10张图像就实现良好的检测性能。

检索增强(RAC)模块

通过在记忆库中存储标注的种子对象和图像,检索增强模块可以使物体检测器通过将目标检测到的提议与种子对象匹配来获得新的语义分类能力。

物体匹配的一个重大挑战是目标域中存在外观相似的不同类别的物体。为了解决这些混淆问题,论文构建了一个多阶段的上下文匹配过程。第一阶段,上下文检索,通过过滤掉无关场景(例如,过滤掉船只的海事场景)来缩小搜索范围。第二阶段,实例检索,则是在上下文匹配的图像中进行。通过同时考虑实例外观和上下文,该方法最大限度地减少了分类混淆并提高了检索准确性。

对于检索增强模型,强大的特征提取器是必要的。然而,它并不需要在目标域上进行训练即可实现良好的语义分类准确性。因此,任何强大的预训练特征提取器,例如DINOV2CLIP,都可以以无训练的方式使用,或者在提供的记忆库上进行微调以获得最佳性能。

具体来说,在第一阶段进行图像级语义匹配,使用现成的CLIP模型来提取图像级特征,然后计算查询图像与记忆库图像之间的相似性。在第二阶段进行实例级匹配,从图像级匹配结果中选择前 k 张图像(k=20, 50, 100),使用现成或微调的CLIP模型提取边界框级特征,然后计算实例之间的相似性选择的前 k 张图像。因此,最终的实例分类结果是边界框级匹配和全局上下文匹配的结合,有效地减少了外观引起的混淆。

主要实验






如果本文对你有帮助,麻烦点个赞或在看呗~

更多内容请关注 微信公众号【晓飞的算法工程笔记】

RAC:无训练持续扩展,基于检索的目标检测器 | ECCV'24的更多相关文章

  1. 消息点击率翻倍的背后——闲鱼无侵入可扩展IFTTT系统

    一.面临问题 在闲鱼生态里,用户之间会有很多种关系.其中大部分关系是由买家触发,联系到卖家,比如买家通过搜索.收藏.聊天等动作与卖家产生联系:另外一部分是平台与用户之间的关系.对这些关系分析之后我们发 ...

  2. 【翻译】理念:无冲突的扩展本地DOM原型

    菜鸟翻译,望大家多多指正哈 原文:http://lea.verou.me/2015/04/idea-extending-native-dom-prototypes-without-collisions ...

  3. WebApplicationInitializer究 Spring 3.1之无web.xml式 基于代码配置的servlet3.0应用

    本文转自http://hitmit1314.iteye.com/blog/1315816 大家应该都已经知道Spring 3.1对无web.xml式基于代码配置的servlet3.0应用.通过spri ...

  4. 基于MeanShift的目标跟踪算法及实现

    这次将介绍基于MeanShift的目标跟踪算法,首先谈谈简介,然后给出算法实现流程,最后实现了一个单目标跟踪的MeanShift算法[matlab/c两个版本] csdn贴公式比较烦,原谅我直接截图了 ...

  5. 谷歌大脑提出:基于NAS的目标检测模型NAS-FPN,超越Mask R-CNN

    谷歌大脑提出:基于NAS的目标检测模型NAS-FPN,超越Mask R-CNN 朱晓霞发表于目标检测和深度学习订阅 235 广告关闭 11.11 智慧上云 云服务器企业新用户优先购,享双11同等价格 ...

  6. 10分钟内基于gpu的目标检测

    10分钟内基于gpu的目标检测 Object Detection on GPUs in 10 Minutes 目标检测仍然是自动驾驶和智能视频分析等应用的主要驱动力.目标检测应用程序需要使用大量数据集 ...

  7. 基于mysqld_multi实现MySQL 5.7.24多实例多进程配置

    学习环境: 操作系统 IP地址 主机名 软件包 备注 CentOS7.5 192.168.200.111 localhost       实验初始配置:所有主机关闭防火墙与selinux [root@ ...

  8. [炼丹术]基于SwinTransformer的目标检测训练模型学习总结

    基于SwinTransformer的目标检测训练模型学习总结 一.简要介绍 Swin Transformer是2021年提出的,是一种基于Transformer的一种深度学习网络结构,在目标检测.实例 ...

  9. prometheus 基于DNS的目标发现

    prometheus 基于DNS的目标发现 DNS服务发现依赖于查询A.AAAA或SRV DNS记录. 1.基于 SRV 记录发现 scrape_configs: - job_name: 'webap ...

  10. prometheus 基于文件的目标发现

    prometheus 基于文件的目标发现 1.创建目录 cd /usr/local/prometheus/conf mkdir -pv targets/{nodes,docker} 2.修改prome ...

随机推荐

  1. typeof、offsetof、container_of

      typeof 用于获取一个对象的类型,比如: unsigned int a = 1; // typeof (a) is unsigned int short b = 2; // typeof (b ...

  2. Linux驱动| Linux内核 RTC时间架构

    上一篇文章我们给大家讲解了基于瑞芯微rk3568平台芯片hym8563驱动的移植,本文给大家详细讲解Linux内核的时间子系统. <Linux驱动|rtc-hym8563移植笔记> 一.L ...

  3. Word格式刷快捷键失效恢复方法

    突然某天写材料的时候发现word格式刷快捷键变成了Ctrl+Alt+C和Ctrl+Alt+V,用着这个别扭,于是探索如何改回Ctrl+Shift+C和Ctrl+Shift+V,下边是步骤记录. 打开w ...

  4. JavaScript设计模式样例十八 —— 命令模式

    命令模式(Command Pattern) 定义:请求以命令的形式包裹在对象中,并传给调用对象.调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令.目的:将一个请求封装成 ...

  5. Django集成腾讯COS对象存储

    前言 最近遇到一个场景需要把大量的资源文件存储到 OSS 里,这里选的是腾讯的 COS 对象存储 (话说我接下来想搞的 SnapMix 项目也是需要大量存储的,我打算搭个 MinIO 把 24T 的服 ...

  6. C++11新特性(一):语言特性

    C++11新特性 总结C++11特性时发现整个内容角度,建议查看前先查看目录. 语言特性 右值引用 右值的分类为将亡值和字面量.将亡值就是将要销毁的对象以及临时的变量,字面量就是常量.左值就是变量. ...

  7. 学习设计微服务:api认证

    前言最近再学习微服务,所以把自己的个人站点https://www.ttblog.site/拆分成微服务.目前正在思考微服务里面的认证与授权,网上百度到都是根据用户名和密码来实现的,考虑到实际的原因,我 ...

  8. Python 字符串格式化输出

    数字 n: int = 1000000000 print(f'{n:_}') # 1_000_000_000 print(f'{n:,}') # 1,000,000,000 对齐 var: str = ...

  9. Kubernetes-7:Pod健康检查原理-探针(就绪检测、存活检测)

    探针-就绪探测.存活探测 探针是由kubelet对容器执行的定期诊断,要执行诊断,kubelet调用由容器实现的Handler,有三种类型的处理程序: ExecActive:在容器内执行指定命令,若命 ...

  10. AutoFitTextureView Error inflating class

    报错: Binary XML file line #0: Binary XML file line #0: Error inflating class xxx.AutoFitTextureView 解 ...