本文是对公开论文的核心提炼,而非直接翻译,旨在进行学术交流。如有任何侵权问题,请及时联系号主以便删除。

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

论文: Can OOD Object Detectors Learn from Foundation Models?

创新点


  • 研究并发掘在大规模开放集数据上训练的文本到图像生成模型在目标检测任务中合成OOD对象的潜力。
  • 引入一种自动化的数据整理过程以获取可控的、带注释的场景级合成OOD图像,用于OOD目标检测。该过程利用大型语言模型(LLMs)进行新对象发现,并使用视觉基础模型进行数据注释和过滤。
  • 发现在保持ID/OOD图像上下文的一致性以及获得更准确的OOD注释边界框,对合成数据在OOD目标检测中的有效性至关重要。
  • 在多个基准上的全面实验证明了该方法的有效性,在使用最少合成数据的情况下显著超越了现有的最先进方法。

内容概述


分布外(OOD)目标检测是一项具有挑战性的任务,因为缺乏开放集的OOD数据。受到近期在文本到图像生成模型方面的进展的启发,例如Stable Diffusion,论文研究了基于大规模开放集数据训练的生成模型合成OOD样本的潜力,从而增强OOD目标检测。

论文提出了SyncOOD,这是一种简单的数据策划方法。该方法利用大型基础模型的能力,从文本到图像的生成模型中自动提取有意义的OOD数据,使得模型能够访问包含在现成基础模型中的开放世界知识。合成的OOD样本随后被用于增强一个轻量级、即插即用的OOD检测器的训练,从而有效地优化了在分布内(ID)/OOD的决策边界。

在多个基准上进行的广泛实验表明,SyncOOD在性能上显著优于现有方法,凭借最少的合成数据使用,建立了新的最先进性能。

SyncOOD


异常合成管道包括两个部分:

  1. 合成一组有效的照片真实感场景级OOD图像 \(\textbf{x}^{\text{edit}}\) ,记为 \(\mathcal{D}_{\text{edit}} = \left\{(\textbf{x}^{\text{edit}}, \textbf{b}^{\text{edit}})\right\}\) ,该图像包含新颖对象及其相应的标注框 \(\textbf{b}^{\text{edit}}\) ,这一过程基于从 \(\mathcal{D}_{\text{id}}\) 进行全自动化的区域级编辑。
  2. 选择和使用高效的合成数据,为训练OOD对象检测器提供伪OOD监督,与训练集中ID样本一起使用。

合成新语义对象

  • 从分布内对象想象新概念对象

如图 (a) 所示,基于训练集 \(\mathcal{D}_{\text{id}}\) 中的ID标签 \(\mathcal{Y}_{\text{id}}\) ,利用大型语言模型LLM(如GPT-4)广泛的知识和推理能力来检查视觉相似度和上下文兼容性,为每个ID对象标签设想了一组新颖对象,记为 \(\mathcal{Y}_{\text{novel}}\) ,同时保持了想象对象与ID对象之间的语义可分性。这能够关联ID对象,并通过使用包含上下文示例的提示来促进可能的新对象的概念化,以替换现有的ID对象。

  • 在指定区域内编辑对象

为了生成包含新概念 \(y_j \in \textbf{y}^{\text{novel}}_i\) 的新图像,选择替换现有图像中标签为 \(y_i^{\text{id}}\) 的现有ID对象,而不是寻找新的位置或从头生成图像。通过这样做,可以确保上下文兼容性,并消除场景上下文中的干扰,因为上下文得以保留。

如图 (b) 所示,使用稳定扩散修复(Stable-Diffusion-Inpainting)对ID图像进行区域级编辑,得到包含新对象的编辑图像 \(\textbf{x}^{\text{edit}}\) 为:

\[\begin{equation}
\textbf{x}^{\text{edit}}=\text{SDI}(\textbf{x}^{\text{id}},\textbf{b}^{\text{id}},\textbf{y}^{\text{novel}}).
\label{eq:sdi}
\end{equation}
\]
  • 细化新对象的注释框

由于扩散模型中的随机性,编辑对象的属性,如质量、体积和定位,可能与原始对象框不匹配。为了解决这个问题,如图 (c) 所示,设计一个基于SAM的高效、有效的细化器,以获取新对象的精确边界框。

使用从 \(\textbf{b}^{\text{id}}\) 扩展出的填充区域作为提示,并使用SAM输出该区域中新对象的最高置信度实例掩码 \(\textbf{m}^{\text{SAM}}\) :

\[\begin{equation}
\textbf{m}^{\text{SAM}}=\text{SAM}(\textbf{x}^{\text{edit}};\text{padding}(\textbf{b}^{\text{id}}, e)),
\label{eq:sam}
\end{equation}
\]

将获得的掩码 \(\textbf{m}^{\text{SAM}}\) 转换为边界框 \(\textbf{b}^{\text{SAM}}\) ,并计算 \(\textbf{b}^{\text{SAM}}\) 与相应的 \(\textbf{b}^{\text{id}}\) 之间的交并比(IoU),以过滤出在尺度上变化较大的新对象:

\[\begin{equation}
\left\{\textbf{b}^{\text{edit}}\right\}=\left\{\left.\textbf{b}^{\text{SAM}}\middle|\right.\text{IoU}(\textbf{b}^{\text{SAM}},\textbf{b}^{\text{id}})>\gamma\right\},
\label{eq:iou}
\end{equation}
\]

发掘难OOD样本以及模型训练

  • Mining Hard OOD Objects with High Visual Similarities for Training

最可能被目标检测器混淆为原始ID对象的新对象视为最有效。因此,基于预训练目标检测器的潜在空间中的成对相似性,寻找最容易被混淆为ID的合成OOD样本。

对于一个现成的目标检测器 \(\mathcal{F}_\text{det}\) ,为每一对提取潜在特征 \(\textbf{z}^{\text{edit}}\) 和 \(\textbf{z}^{\text{id}}\) ,根据相似性进行过滤,以提供伪OOD监督:

\[\begin{equation}
\textbf{z}^{\text{edit}},\textbf{z}^{\text{id}}=\mathcal{F}_\text{det}(\textbf{b}^{\text{edit}};\textbf{x}^{\text{edit}}),\mathcal{F}_\text{det}(\textbf{b}^{\text{id}};\textbf{x}^{\text{id}}).
\label{eq:extract}
\end{equation}
\]
\[\begin{equation}
\left\{\textbf{z}^{\text{ood}}\right\}=\left\{\left.\textbf{z}^{\text{edit}}\middle|\right.\epsilon_{\textit{low}}<\text{sim}(\textbf{z}^{\text{edit}},\textbf{z}^{\text{id}})<\epsilon_{\textit{up}}\right\},
\label{eq:sim}
\end{equation}
\]
  • 通过合成样本优化ID/OOD决策边界

一旦获得了ID和合成OOD对象,使用一个轻量级的多层感知器(MLP) \(\mathcal{F}_\text{ood}\) ,作为经过二分类损失优化的OOD检测器参与训练:

\[\begin{equation}
\mathcal{L}_\text{ood}=\mathbb{E} _{\textbf{z}\sim\textbf{z}^{\text{id}}}\left[-\log\frac{1}{1 + \exp^{-\mathcal{F}_\text{ood}(\textbf{z})}}\right]+\mathbb{E} _{\textbf{z}\sim\textbf{z}^{\text{ood}}}\left[-\log\frac{\exp^{-\mathcal{F}_\text{ood}(\textbf{z})}}{1+\exp^{-\mathcal{F}_\text{ood}(\textbf{z})}} \right].
\label{eq:optim}
\end{equation}
\]

主要实验






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

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

SyncOOD:增加OOD目标检测鲁棒性,自动化数据助您一臂之力 | ECCV'24的更多相关文章

  1. 目标检测 的标注数据 .xml 转为 tfrecord 的格式用于 TensorFlow 训练

    将目标检测 的标注数据 .xml 转为 tfrecord 的格式用于 TensorFlow 训练. import xml.etree.ElementTree as ET import numpy as ...

  2. (转)如何用TensorLayer做目标检测的数据增强

    数据增强在机器学习中的作用不言而喻.和图片分类的数据增强不同,训练目标检测模型的数据增强在对图像做处理时,还需要对图片中每个目标的坐标做相应的处理.此外,位移.裁剪等操作还有可能使得一些目标在处理后只 ...

  3. 目标检测-yolo2

    转载自:http://blog.csdn.net/qq_34784753/article/details/78825493 对于现在的最好的检测系统来说,yolo_v1 的问题主要出现在两方面,也就是 ...

  4. 【目标检测】SSD:

    slides 讲得是相当清楚了: http://www.cs.unc.edu/~wliu/papers/ssd_eccv2016_slide.pdf 配合中文翻译来看: https://www.cnb ...

  5. 【目标检测实战】目标检测实战之一--手把手教你LMDB格式数据集制作!

    文章目录 1 目标检测简介 2 lmdb数据制作 2.1 VOC数据制作 2.2 lmdb文件生成 lmdb格式的数据是在使用caffe进行目标检测或分类时,使用的一种数据格式.这里我主要以目标检测为 ...

  6. 目标检测网络之 YOLOv2

    YOLOv1基本思想 YOLO将输入图像分成SxS个格子,若某个物体 Ground truth 的中心位置的坐标落入到某个格子,那么这个格子就负责检测出这个物体. 每个格子预测B个bounding b ...

  7. 目标检测网络之 YOLOv3

    本文逐步介绍YOLO v1~v3的设计历程. YOLOv1基本思想 YOLO将输入图像分成SxS个格子,若某个物体 Ground truth 的中心位置的坐标落入到某个格子,那么这个格子就负责检测出这 ...

  8. YOLT:将YOLO用于卫星图像目标检测

    之前作者用滑动窗口和HOG来进行船体监测,在开放水域和港湾取得了不错的成绩,但是对于不一致的复杂背景,这个方法的性能会下降.为了解决这个缺点,作者使用YOLO作为物体检测的流水线,这个方法相比于HOG ...

  9. 目标检测(六)YOLOv2__YOLO9000: Better, Faster, Stronger

    项目链接 Abstract 在该论文中,作者首先介绍了对YOLOv1检测系统的各种改进措施.改进后得到的模型被称为YOLOv2,它使用了一种新颖的多尺度训练方法,使得模型可以在不同尺寸的输入上运行,并 ...

  10. 从YOLOv1到YOLOv3,目标检测的进化之路

    https://blog.csdn.net/guleileo/article/details/80581858 本文来自 CSDN 网站,作者 EasonApp. 作者专栏: http://dwz.c ...

随机推荐

  1. CC2530系列课程 | IAR新建一个工程

    之前录制了无线传感网综合项目实战课程,这个课程非常适合应届毕业生和想转行Linux的朋友,用来增加项目经验. 其中一部分内容是关于CC2530+zigbee的知识,后面会更新几篇关于cc2530的文章 ...

  2. 热力学平衡、Liftshitz 理论和朗道理论

    科学家们经过广泛的实验发现:熔化往往始于固体表面.熔化时,体系由 "固体-气体接触" 变为 "固体-熔化层接触 + 熔化层-气体接触".如果后者的能量更稳定,则 ...

  3. 关于arcmap使用json文件转要素类

    手工编辑了一个json文件,或者在arcgis server下拉取到的json格式文件,通过arcmap进行转换时,出现异常,错误代码001558,此时就是json文件格式不是ansi导致的,用文本编 ...

  4. 2024 NepCTF

    NepCTF NepMagic -- CheckIn 直接玩游戏就能出 注意有一关要把隐藏的方块全找到 NepCamera 先使用tshark读取数据 结果文件中发现大量jpeg头ffd8ffe0. ...

  5. docker高级篇-docker-compose容器编排介绍及实战

    Docker-compose是什么?能干嘛?解决了哪些痛点? 是什么? Docker-compose是Docker官方推出 的一个工具软件,可以管理多个Docker容器组成的一个应用.你需要编写一个一 ...

  6. Java多线程并发之同步容器和并发容器-第一篇

    Java多线程并发之同步容器和并发容器-第一篇 概述 本文主要讲解在Java多线程并发开发中,集合中有哪些支持并发的的.什么是同步容器(集合),什么是并发容器(集合)?并发容器分类有哪些?每个分类都有 ...

  7. Word在不同电脑排版异常

    Word在不同电脑排版异常 问题描述 今天又有同学向我抱怨用 word 写的论文明明在自己的电脑格式调的好好的,怎么在导师那格式又乱了,害的挨批. 笔者也遇到过该问题,正好趁这次机会简单整理一下. 注 ...

  8. Angular 学习笔记 (Typescript 高级篇)

    由于 typescript 越来越复杂. 所以特意开多一个篇幅来记入一些比较难的, 和一些到了一定程度需要知道的基础. 主要参考 https://basarat.gitbook.io/typescri ...

  9. Windbg常用命令及分析套路

    自己也在使用windbg分析问题,但是属于刚入门所以转发下大神的总结:https://www.cnblogs.com/fj365/p/13295453.html 常用 !threadpool 查看线程 ...

  10. QT6 QML编程

    QT6 QML编程 使用AI技术辅助生成 QT界面美化视频课程 QT性能优化视频课程 QT原理与源码分析视频课程 QT QML C++扩展开发视频课程 免费QT视频课程 您可以看免费1000+个QT技 ...