VL4AD:让语义分割认识未知类别,无需额外数据和训练的OOD语义分割 | ECCV24

news/2024/11/19 10:41:31/文章来源:https://www.cnblogs.com/VincentLee/p/18554384

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

论文: VL4AD: Vision-Language Models Improve Pixel-wise Anomaly Detection

  • 论文地址:https://arxiv.org/abs/2409.17330

创新性


  1. 提出VL4AD模型用于解决语义分割网络难以检测来自未知语义类别的异常的问题,避免额外的数据收集和模型训练。
  2. VL4AD将视觉-语言(VL)编码器纳入现有的异常检测器,利用语义广泛的VL预训练来增强对离群样本的感知,还加入max-logit提示集成和类别合并策略用于丰富类别描述。
  3. 提出了一种新的评分函数,可通过文本提示实现无数据和无训练的离群样本监督。

VL4AD


视觉文本编码器

视觉编码器 \(\mathcal{E}_\text{vision, vis-lang}\) 是与文本编码器 \(\mathcal{E}_\text{text}\) 共同预训练,解码器 \(\mathcal{D}_\text{vis-lang}\) 处理多尺度的视觉和文本嵌入,生成两种类型的输出:掩码预测分数 \(\mathbf{s} \in [0, 1]^{N\times H\times W}\) 和掩码分类分数 \(\mathbf{c} \in [0, 1]^{N\times K}\) ,其中 \(N\) 表示对象查询的数量。

对象查询是可学习的嵌入,类似于目标检测网络中的先验框。掩码预测分数以类别无关的方式识别物体,而掩码分类分数计算掩码属于特定语义类别的概率。

基于编码后的视觉嵌入 \(\mathbf{v}_i\)\(i=1, \dots, N\) )和ID类别文本嵌入 \(\mathbf{t}_j\)\(j=1, \dots, K\) )之间的余弦相似性计算掩码分类分数:

\[\begin{equation} \mathbf{c}_{i} = \text{softmax}\Big(1/T \begin{bmatrix} \text{cos}(\mathbf{v}_i, \mathbf{t}_1), & \text{cos}(\mathbf{v}_i, \mathbf{t}_2), & \ldots, & \text{cos}(\mathbf{v}_i, \mathbf{t}_{K}) \end{bmatrix} \Big) \end{equation} \]

在架构上, \(\mathcal{E}_\text{vision, vis-only}\)\(\mathcal{E}_\text{vision, vis-lang}\) ,以及 \(\mathcal{D}_\text{vis-only}\)\(\mathcal{D}_\text{vis-lang}\) 是相当相似的,区别在于 \(\mathcal{E}_\text{vision, vis-lang}\) 在预训练后保持不变,仅对视觉-语言解码器 \(\mathcal{D}_\text{vis-lang}\) 进行微调。通过这种方式,将零样本CLIP在图像级别的竞争性OOD检测性能转移到像素级任务中。

Max-Logit提示集成于类合并

优化ID类文本嵌入可以使其更好地与相应的ID视觉嵌入对齐,提高IDOOD类别之间的可分离性,但盲目地微调文本编码器可能导致灾难性遗忘。

为此,论文通过max-logit提示集成在文本提示中引入概念词汇多样性和具体化,显著提高模型对OOD输入的敏感性。词汇多样性包括同义词和复数形式,而具体化涉及更好地与CLIP预训练对齐的分解概念。例如,使用概念{vegetation, tree, trees, palm tree, bushes}来表示类vegetation

max-logit集成考虑给定类 \(k\) 的所有替代概念,替换内容为视觉嵌入 \(\mathbf{v}_i\) 与所有 \(l\) 个替代文本嵌入 \([\mathbf{t}_{k}^{1}, \ldots, \mathbf{t}_{k}^{l}]\) 的最大余弦相似度:

\[\begin{equation} \max\Big( \begin{bmatrix} \text{cos}(\mathbf{v}_i, \mathbf{t}_{k}^{1}), & \text{cos}(\mathbf{v}_i, \mathbf{t}_{k}^{2}), & \ldots, & \text{cos}(\mathbf{v}_i, \mathbf{t}_{k}^{l}) \end{bmatrix}\Big). \end{equation} \]

此外,单靠在 \(K\) 类维度上的最大像素级得分可能导致次优性能,因为在两个ID类之间的边缘像素的不确定性较高,尤其是当类别数量增加时。

为了解决这个问题,将相关的ID类合并为超类。通过在测试期间将各个语义类的文本提示作为不同的替代概念连接到超类中来实现,而无需重新训练。然后,可以使用max-logit方法获得超类的不确定性。

通过OOD提示实现无数据、无训练异常监督

通过视觉-语言预训练,通常能够很好地检测到与ID类不同的语义OOD类(远OOD类)。但当OOD类与ID类非常相似的情况(近OOD类),则更具挑战性。例如,在CityScapes类别中,OOD类大篷车在城市驾驶场景中可能在视觉上与ID类卡车相似。

利用视觉-语言模型的开放词汇能力,论文引入了一种新的评分函数,旨在更好地检测这些近OOD类,而不需要额外的训练或数据准备。

为了在测试时整合 \(Q\) 个新的OOD概念,需要通过 \(Q\) 个额外的项 \(\text{cos}(\mathbf{v}_i, \mathbf{t}_{K+1}), \ldots, \text{cos}(\mathbf{v}_i, \mathbf{t}_{K+Q})\) 扩展公式1中的掩码分类得分 \(\mathbf{c}_i\) 。遵循公式2,即通过将 \(\mathbf{c} \in \left[0, 1\right]^{N\times (K+Q)}\) 的前 \(K\) 个通道与掩码预测得分 \(\mathbf{s} \in \left[0, 1\right]^{N\times H\times W}\) 进行组合,获得最终的不确定性得分 \(\mathbf{u} \in \mathbb{R}^{H\times W}\)

\[\begin{equation} \mathbf{u}_{h,w} = -\max_{k}\sum_{i=1}^{N} \mathbf{s}_{i, h, w} \cdot \mathbf{c}_{i, k}\ \ . \end{equation} \]

通过这一整合, \(Q\) 类中的OOD对象将(在大多数情况下)正确分配到其相应的类别。如果没有这一整合,它们可能会被错误地分配到与其实际OOD类别相似的ID类。相反,如果输入中不存在OOD对象,额外的 \(Q\) 类的影响将保持微不足道。

主要实验




如果本文对你有帮助,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】

work-life balance.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/836687.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

20222327 2024-2025-1 《网络与系统攻防技术》实验五实验报告

一、实验内容 网络攻击需要搜集的信息包括: 攻击对象的名称和域名;目标网络位置,如IP地址、DNS服务器、外部网络拓扑结构;现实世界中的对应物,如注册信息、电话号段、网络或安全管理员及联系方式、地理位置等;网络地图,包括活跃主机IP、操作系统类型、开放的端口与运行的…

小鸟科技携手纷享销客,共谱CRM国产化替代新篇章

小鸟科技(DigiBird)成立于2009年,是一家专注于全球专业视听领域,为客户提供数字化解决方案的国家高新技术企业。小鸟科技先后在北京、上海、广州、成都、西安、沈阳、济南、南京等多地设立分公司或服务网点,并拥有北京、郑州、南京三大研发团队,成功以自主品牌进入国际市…

LeetCode 2769[找出最大的可达成数字]

LeetCode 2769[找出最大的可达成数字]题目 链接 LeetCode 2769[找出最大的可达成数字] 详情实例提示题解 思路 每一步操作可同时操作 num 和 x ,可同时增加或者减少,若使 num 为最小值,每一步增加 1 个,同时 x 减少一个,则此时的 x 即为最大值 num 减少同时 x 增加,则操作…

王爽汇编笔记(第三版)

1. 测试环境 1.1 DosBox 简介:模拟dos环境的一个软件 下载地址:https://www.dosbox.com/download.php?main=1安装步骤:下一步...... 问题1: debug 不是内部或外部命令,也不是可运行的程序或批处理文件。 debug : 无法将“debug”项识别为 cmdlet、函数、脚本文件或可运行程…

VLC多媒体播放器 合并字幕srt文件和mp4文件 方法

转载自: 链接:https://blog.csdn.net/sdkdlwk/article/details/143867825 作者:sdkdlwk步骤: 1. 将视频和字幕放到同一个文件夹,并保证二者名字相同。 选择菜单"媒体"->"流"或者ctrl+s点"添加"选择视频文件,注意这里不要选择下面的使用…

聊聊springboot项目中使用jackson的一些小技巧

前言 在我们前后端联调时,很经常以json作为数据的交互格式,今天我们就来聊聊在开发springboot项目中,使用jackson进行数据渲染一些小技巧 场景一:枚举-JSON互转 在日常开发中我们为了避免过多的魔法值,使用枚举类来封装一些静态的状态代码。 但是在将这些枚举的意思正确而…

存储快照原理

快照有COW(Copy On Write,写时复制)和ROW(Redirect On Write,写重定向)两种实现方式。 1 .COW COW(Copy-On-Write),写时拷贝,也称为写前拷贝。 创建快照,如果源卷的数据发生了变化,快照系统会将原始数据拷贝到快照卷上的数据块中,然后再对源卷进行改写; OW快照在初…

树分治全家桶

树分治全家桶 树,(是一种益于保护环境植物)是图论当中的一种特殊图,由于(绿化环境的作用非常优秀)特殊性质丰富,经常出现在我们身边。 本文将主要介绍(如何植树)一种树上优美的暴力——树分治。 树分治 树分治可以将部分暴力降至 \(O(\log n)\) 至 \(O(\log^2 n)\) 级…

模拟计算hash前面N个0需要的时间

写了一个python代码用来模拟计算当hash前面有N个0时需要多长时间。 代码如下: import hashlib import time from datetime import timedelta from plyer import notificationdef find_hash_with_prefix_zeros(prefix_length=6):# 初始字符串base_text = "Hello, World!&q…

StopWatch使用

调试查看耗时的一个便捷类,一般只使用三个方法StopWatch stopWatch = new StopWatch();stopWatch.start("获取对象");//逻辑代码xxxxxxxxxxxstopWatch.stop();log.info(stopWatch.prettyPrint()); //打印详细信息

IDEA svn项目 更换SVN地址

原svn项目地址URL1,后来把项目移到了URL2,但自己的SVN地址是URL1且已改了好多东西,不想down URL2源码再改。 解决方法: 原文链接:https://blog.csdn.net/weixin_35721320/article/details/79290369