迈向通用异常检测和理解:大规模视觉语言模型(GPT-4V)率先推出

本文主要是介绍迈向通用异常检测和理解:大规模视觉语言模型(GPT-4V)率先推出,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

PAPERCODE
https://arxiv.org/pdf/2311.02782.pdfhttps://github.com/caoyunkang/GPT4V-for-Generic-Anomaly-Detection

在这里插入图片描述

        图1 GPT-4V在多模态多任务异常检测中的综合评估 在这项研究中,我们在多模态异常检测的背景下对GPT-4V进行了全面评估。我们考虑了四种模式:图像、视频、点云和时间序列,并探索了九个具体任务,包括工业图像异常检测/定位、点云异常检测、医学图像异常检测/定位、逻辑异常检测、行人异常检测、交通异常检测和时间序列异常检测。我们的评估包括 15 个数据集。

摘要

        异常检测是跨不同域和数据类型的关键任务。但是,现有的异常检测模型通常是针对特定域和模式设计的。本研究探讨了如何使用强大的视觉语言模型 GPT-4V(ision) 以通用方式处理异常检测任务。我们研究了 GPT-4V 在多模态、多域异常检测任务中的应用,包括图像、视频、点云和时间序列数据,涉及多个应用领域,例如工业、医疗、逻辑、视频、3D 异常检测和定位任务。为了提高 GPT-4V 的性能,我们结合了不同类型的附加提示,例如类信息、人类专业知识和参考图像作为提示。根据我们的实验,GPT-4V 被证明在零/单次异常检测中检测和解释全局和细粒度语义模式方面非常有效。这样可以准确区分正常和异常实例。尽管我们在这项研究中进行了广泛的评估,但仍有未来的评估空间,可以从不同方面进一步挖掘 GPT-4V 的通用异常检测能力。其中包括探索定量指标、扩展评估基准、纳入多轮互动以及纳入人类反馈循环。尽管如此,GPT-4V 在通用异常检测和理解方面表现出可喜的性能,从而为异常检测开辟了一条新途径。所有评估示例(包括图像和文本提示)都将在 GPT4V-for-Generic-Anomaly-Detection https://github.com/caoyunkang/ 提供。

动机和概述

        异常检测技术已广泛应用于不同的领域,如工业检测[29,98]、医疗对角线[107]、视频监控[84]、欺诈检测[30]以及许多其他识别异常情况至关重要的领域。尽管存在许多用于异常检测的技术[14,3,69,41,38,79,110,16,103],但许多现有方法主要依赖于描述正态数据分布的方法。他们经常忽视高层次的感知,主要将其视为低层次的任务。但是,异常检测的实际应用通常需要对数据有更全面、更高级的理解。要实现这种理解,至少需要三个关键步骤:

  1. 了解数据类型和类别: 第一步涉及对数据集中存在的数据类型和类别的透彻理解。数据可以采取多种形式,包括图像、视频、点云、时间序列数据等。每种数据类型都可能需要特定的异常检测方法和注意事项。此外,不同的类别可能对正常状态有不同的定义。
  2. 确定正态的标准:在获得数据类型和类别后,可以进一步推理正态态的标准,这需要对数据有较高的了解。
  3. 评估数据一致性:最后一步是评估提供的数据是否符合既定的正态性标准。任何偏离这些标准的行为都可以归类为异常。

我们的方法

提示 GPT-4V 进行异常检测

  1. 任务信息提示:为了有效提示 GPT-4V 进行异常检测,必须提供清晰的任务信息。本研究将提示表述如下:“请确定图像是否包含异常点或异常点。
  2. 类信息提示:对数据类型和类别的理解至关重要。如果 GPT-4V 可能难以识别数据类,可能会提供显式类信息。例如,“请确定与 {CLS} 相关的图像是否包含异常或缺陷。
  3. 正常标准提示:GPT-4V在回答与确定正常标准相关的问题时可能会遇到困难,有时如果没有人类专业知识,甚至无法检查标准。因此,本研究也明确提供了正常标准。例如,MVTec-LOCO [7] 中早餐盒的正常标准可以表示如下:“1.它应该包含两个橙子、一个桃子和一些谷物、坚果和香蕉片;2.水果应该在饭盒的左边,麦片在右上方,坚果和香蕉片在饭盒的右下方。
  4. 参考图像提示:为确保正常标准和图像之间更好地对齐,在语言提示旁边提供了普通参考图像。例如,“第一张图片是正常的。请确定第二张图像是否包含异常或缺陷。

基于GPT-4V的异常检测评估的局限性

  1. 定性结果的优势:分析主要依赖于定性评估,缺乏定量指标,无法更客观地评估模型在异常检测方面的性能。纳入量化措施将为评估提供更有力的基础。
  2. 评估案例的范围:评估仅限于有限的案例或场景范围。这种狭隘的焦点可能无法完全捕捉到实际异常检测任务中遇到的各种挑战。扩大评估案例的范围将更全面地了解模型的功能。
  3. 单次互动评估:该研究主要集中在单轮对话上。相比之下,正如GPT-4V的上下文学习能力所观察到的那样[101],多轮对话可以激发更深层次的互动。单轮对话方法限制了交互的深度,并可能限制模型的理解力及其在响应异常检测任务方面的有效性。探索多轮交互可以揭示模型性能的更细致入微的观点。

实验

        本研究进行了广泛的评估,以评估 GPT-4V 在异常检测方面的能力,如图 1 所示。从模态的角度来看,我们评估了图像(第 3、4、6、7、8 节)、点云(第 5 节)、视频(第 9、10 节)和时间序列(第 11 节)。从领域的角度,对工业检查(第3、4、6、5节)、医疗诊断(第7、8节)和视频监控(第9、10节)进行评估。据我们所知,这是第一项调查如此广泛的异常检测模式和领域的研究。

工业图像异常检测

  • 不同的提示 [ 101, 56 ] 可能会导致 GPT-4V 的不同响应。我们旨在研究不同信息对提示 GPT-4V 进行工业异常检测的影响。在前面讨论的问题之后,本研究进一步发展了三个提示,a)类别信息:所需检测产品的名称,如“瓶子”和“蜡烛”,b)人类专业知识:正常外观和潜在的异常状态,并用语言表达它们,例如,“通常,给出的图像应该显示干净且结构良好的印刷电路板(PCB),并带有清晰的痕迹, 焊接组件和不同的标签。它可能存在引脚弯曲、冷焊点、元件缺失或标签污迹等缺陷“, c) 参考图像:正常参考图像,以使 GPT-4V 更好地了解正态性。我们建议在零样本设置(仅带有语言提示)或单样本设置(与语言提示一起提供一张参考图像)中评估 GPT-4V。对于每个设置,我们测试了三种不同的变体:a) 幼稚的提示,例如“请确定图像是否包含异常或缺陷”,b) 带有类信息,以及 c) 具有人类专业知识。

  • 突出显示给定的类信息以及正常和异常状态描述。绿色、红色和蓝色突出显示 GPT-4V 输出的正确、不正确和附加信息。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

工业图像异常定位

在这里插入图片描述

点云异常检测

在这里插入图片描述

逻辑异常检测

在这里插入图片描述

医学图像异常检测

在这里插入图片描述

行人异常检测

在这里插入图片描述

流量异常检测

在这里插入图片描述

时间序列异常检测

在这里插入图片描述

这篇关于迈向通用异常检测和理解:大规模视觉语言模型(GPT-4V)率先推出的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/557924

相关文章

C语言中%zu的用法解读

《C语言中%zu的用法解读》size_t是无符号整数类型,用于表示对象大小或内存操作结果,%zu是C99标准中专为size_t设计的printf占位符,避免因类型不匹配导致错误,使用%u或%d可能引发... 目录size_t 类型与 %zu 占位符%zu 的用途替代占位符的风险兼容性说明其他相关占位符验证示

Java.lang.InterruptedException被中止异常的原因及解决方案

《Java.lang.InterruptedException被中止异常的原因及解决方案》Java.lang.InterruptedException是线程被中断时抛出的异常,用于协作停止执行,常见于... 目录报错问题报错原因解决方法Java.lang.InterruptedException 是 Jav

C语言进阶(预处理命令详解)

《C语言进阶(预处理命令详解)》文章讲解了宏定义规范、头文件包含方式及条件编译应用,强调带参宏需加括号避免计算错误,头文件应声明函数原型以便主函数调用,条件编译通过宏定义控制代码编译,适用于测试与模块... 目录1.宏定义1.1不带参宏1.2带参宏2.头文件的包含2.1头文件中的内容2.2工程结构3.条件编

Go语言并发之通知退出机制的实现

《Go语言并发之通知退出机制的实现》本文主要介绍了Go语言并发之通知退出机制的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1、通知退出机制1.1 进程/main函数退出1.2 通过channel退出1.3 通过cont

Spring Boot 中的默认异常处理机制及执行流程

《SpringBoot中的默认异常处理机制及执行流程》SpringBoot内置BasicErrorController,自动处理异常并生成HTML/JSON响应,支持自定义错误路径、配置及扩展,如... 目录Spring Boot 异常处理机制详解默认错误页面功能自动异常转换机制错误属性配置选项默认错误处理

Java Spring的依赖注入理解及@Autowired用法示例详解

《JavaSpring的依赖注入理解及@Autowired用法示例详解》文章介绍了Spring依赖注入(DI)的概念、三种实现方式(构造器、Setter、字段注入),区分了@Autowired(注入... 目录一、什么是依赖注入(DI)?1. 定义2. 举个例子二、依赖注入的几种方式1. 构造器注入(Con

SpringBoot 异常处理/自定义格式校验的问题实例详解

《SpringBoot异常处理/自定义格式校验的问题实例详解》文章探讨SpringBoot中自定义注解校验问题,区分参数级与类级约束触发的异常类型,建议通过@RestControllerAdvice... 目录1. 问题简要描述2. 异常触发1) 参数级别约束2) 类级别约束3. 异常处理1) 字段级别约束

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

MyBatis-Plus通用中等、大量数据分批查询和处理方法

《MyBatis-Plus通用中等、大量数据分批查询和处理方法》文章介绍MyBatis-Plus分页查询处理,通过函数式接口与Lambda表达式实现通用逻辑,方法抽象但功能强大,建议扩展分批处理及流式... 目录函数式接口获取分页数据接口数据处理接口通用逻辑工具类使用方法简单查询自定义查询方法总结函数式接口

深入理解Go语言中二维切片的使用

《深入理解Go语言中二维切片的使用》本文深入讲解了Go语言中二维切片的概念与应用,用于表示矩阵、表格等二维数据结构,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录引言二维切片的基本概念定义创建二维切片二维切片的操作访问元素修改元素遍历二维切片二维切片的动态调整追加行动态