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

计算机视觉——利用AI幻觉检测图像是否是生成式算生成的图像

概述

俄罗斯的新研究提出了一种非常规方法,用于检测不真实的AI生成图像——不是通过提高大型视觉-语言模型(LVLMs)的准确性,而是故意利用它们的幻觉倾向。

这种新方法使用LVLMs提取图像的多个“原子事实”,然后应用自然语言推理(NLI),系统地衡量这些陈述之间的矛盾——有效地将模型的缺陷转化为检测违背常识的图像的诊断工具。

WHOOPS!数据集中两张图片与LVLM模型自动生成的陈述。左侧图片是真实的,导致描述一致,而右侧不寻常的图片导致模型产生幻觉,产生矛盾或错误的陈述。

当被要求评估第二张图片的真实性时,LVLM可以看出__有些不对劲__,因为图中的骆驼有三个驼峰,这在自然中是不存在的。

然而,LVLM最初将__超过2个驼峰__与__超过2个动物__混淆,因为这是在一张“骆驼图片”中看到三个驼峰的唯一方式。然后,它继续幻觉出比三个驼峰更不可能的事情(即“两个头”),并且从未详细说明似乎触发了它的怀疑的事情——那个不太可能的额外驼峰。

新研究的研究人员发现,LVLM模型可以本地执行这种评估,并且与经过微调用于此类任务的模型相比,表现相当甚至更好。由于微调复杂、昂贵且在下游应用方面相当脆弱,因此发现当前AI革命中最大的障碍之一的本地用途,是对文献中一般趋势的令人耳目一新的转变。

一、开放评估

作者强调,这种方法的重要性在于它可以使用_开源_框架部署。尽管像ChatGPT这样的先进且高投资模型可能会(论文承认)在该任务中提供更好的结果,但对于大多数人(尤其是业余爱好者和视觉特效社区)来说,文献的真正价值在于能够在本地实现中整合和开发新的突破;相反,所有注定用于专有商业API系统的项目都容易被撤回、随意涨价,并且审查政策更有可能反映公司的企业利益,而不是用户的需求和责任。

新论文的标题为__不要对抗幻觉,利用它们:使用NLI对原子事实进行图像真实性估计__,来自斯科尔科沃科学技术研究所(Skoltech)、莫斯科物理技术学院以及俄罗斯公司MTS AI和AIRI的五位研究人员。该工作有一个配套的GitHub页面。

二、方法

作者使用以色列/美国的WHOOPS!数据集进行该项目:

_WHOOPS!数据集中不可能图像的示例。值得注意的是,这些图像组合了合理的元素,它们的不可能性必须根据这些不兼容方面的组合来计算。
该数据集包含500张合成图像和超过10,874个注释,专门设计用于测试AI模型的常识推理和组合理解能力。它是由设计师与Midjourney和DALL-E系列等文本到图像系统合作创建的,这些设计师的任务是生成具有挑战性的图像——产生自然难以捕捉的场景:

WHOOPS!数据集中的进一步示例。

新方法分为三个阶段:首先,LVLM(具体为LLaVA-v1.6-mistral-7b)被提示生成多个简单陈述——称为“原子事实”——描述图像。这些陈述使用多样化束搜索生成,确保输出的多样性。

_多样化束搜索通过优化多样性增强目标,产生更多样化的标题选项。

接下来,使用自然语言推理模型系统地比较每个生成的陈述与其他所有陈述,该模型为陈述对分配分数,反映它们是否相互蕴含、矛盾或中立。

矛盾表明图像中存在幻觉或不真实元素:

检测流程图。

最后,该方法将这些成对的NLI分数聚合为一个“现实分数”,量化生成陈述的整体一致性。

研究人员探索了不同的聚合方法,基于聚类的方法表现最佳。作者应用k-means聚类算法将各个NLI分数分为两个聚类,较低值聚类的质心被选为最终指标。

使用两个聚类直接与分类任务的二元性质一致,即区分真实图像和不真实图像。其逻辑类似于简单地选择最低分数;然而,聚类允许指标代表多个事实之间的平均矛盾,而不是依赖于单个离群值。

三、数据和测试

研究人员在WHOOPS!基准测试中测试了他们的系统,使用旋转的测试分割(即交叉验证)。测试的模型为BLIP2 FlanT5-XL和BLIP2 FlanT5-XXL,在分割中进行测试,以及BLIP2 FlanT5-XXL的零样本格式(即,无需额外训练)。

对于指令遵循基线,作者使用短语__“这不寻常吗?请用简短的句子简要说明”__提示LVLMs,先前研究发现这在识别不真实图像方面很有效。

测试的模型为LLaVA 1.6 Mistral 7B、LLaVA 1.6 Vicuna 13B以及两种大小(70亿/130亿参数)的InstructBLIP。

测试过程围绕102对真实和不真实(“奇怪”)图像进行。每对包含一张正常图像及其违背常识的对应图像。

三名人类标注者对图像进行了标注,达成92%的共识,表明人类对“奇怪”的定义有很强的共识。通过评估方法正确区分真实和不真实图像的能力来衡量其准确性。

该系统使用三折交叉验证进行评估,使用固定种子随机打乱数据。作者在训练期间调整了蕴含分数(逻辑上一致的陈述)和矛盾分数(逻辑上冲突的陈述)的权重,而“中立”分数则固定为零。最终准确性是通过所有测试分割的平均值计算得出的。

在五个生成事实的子集上,不同NLI模型和聚合方法的准确性比较。

关于上图中显示的初步结果,论文指出:

“[‘clust’]方法表现最佳。这意味着聚合所有矛盾分数至关重要,而不是只关注极端值。此外,最大的NLI模型(nli-deberta-v3-large)在所有聚合方法中均优于其他模型,表明它更有效地捕捉了问题的本质。”

作者发现,最佳权重始终倾向于矛盾而非蕴含,表明矛盾对于区分不真实图像更具信息量。他们的方法超越了所有其他测试的零样本方法,接近经过微调的BLIP2模型的性能:

WHOOPS!基准测试中各种方法的性能。微调(ft)方法位于顶部,而零样本(zs)方法列在下方。模型大小表示参数数量,准确性用作评估指标。

他们还注意到,出乎意料的是,InstructBLIP在给定相同提示的情况下比类似的LLaVA模型表现更好。尽管承认GPT-4o的准确性更高,但论文强调作者倾向于展示实用的开源解决方案,并且似乎可以合理地声称明确利用幻觉作为诊断工具的新颖性。

结论

然而,作者承认他们的项目得益于2024年的FaithScore,这是德克萨斯大学达拉斯分校和约翰霍普金斯大学的合作项目。

FaithScore评估的说明。首先,识别LVLM生成答案中的描述性陈述。接下来,这些陈述被分解为单独的原子事实。最后,将原子事实与输入图像进行比较以验证其准确性。下划线文本突出显示客观描述性内容,而蓝色文本表示幻觉陈述,使FaithScore能够提供可解释的事实正确性度量。 来源:https://arxiv.org/pdf/2311.01477

FaithScore通过验证与图像内容的一致性来衡量LVLM生成描述的忠实度,而新论文的方法明确利用LVLM幻觉,通过自然语言推理检测不真实图像,即通过生成事实中的矛盾。

新工作自然依赖于当前语言模型的怪癖,以及它们产生幻觉的倾向。如果模型开发最终产生了一个完全不产生幻觉的模型,那么即使新工作的一般原则也将不再适用。然而,这仍然是一个具有挑战性的前景。

相关文章:

计算机视觉——利用AI幻觉检测图像是否是生成式算生成的图像

概述 俄罗斯的新研究提出了一种非常规方法,用于检测不真实的AI生成图像——不是通过提高大型视觉-语言模型(LVLMs)的准确性,而是故意利用它们的幻觉倾向。 这种新方法使用LVLMs提取图像的多个“原子事实”,然后应用自…...

性能测试工具和JMeter功能概要

主流性能测试工具 LoadRunner JMeter [本阶段学习] 1.1 LoadRunner HP LoadRunner是一种工业级标准性能测试负载工具,可以模拟上万用户实施测试,并在测试时可实时检测应用服务器及服务器硬件各种数据,来确认和查找存在的瓶颈支持多协议&am…...

《理解 Java 泛型中的通配符:extends 与 super 的使用场景》

大家好呀!👋 今天我们要聊一个让很多Java初学者头疼的话题——泛型通配符。别担心,我会用最通俗易懂的方式,带你彻底搞懂这个看似复杂的概念。准备好了吗?Let’s go! 🚀 一、为什么我们需要泛型通配符&…...

C#学习第17天:序列化和反序列化

什么是序列化? 定义:序列化是指把对象转换为一种可以轻松存储或传输的格式,如JSON、XML或二进制格式。这个过程需要捕获对象的类型信息和数据内容。用途:使得对象可以持久化到文件、发送至网络、或存储在数据库中。 什么是反序列…...

FlaskRestfulAPI接口的初步认识

FlaskRestfulAPI 介绍 记录学习 Flask Restful API 开发的过程 项目来源:【Flask Restful API教程-01.Restful API介绍】 我的代码仓库:https://gitee.com/giteechaozhi/flask-restful-api.git 后端API接口实现功能:数据库访问控制&#xf…...

CSS预处理工具有哪些?分享主流产品

目前主流的CSS预处理工具包括:Sass、Less、Stylus、PostCSS等。其中,Sass是全球使用最广泛的CSS预处理工具之一,以强大的功能、灵活的扩展性以及完善的社区生态闻名。Sass通过增加变量、嵌套、混合宏(mixin)等功能&…...

微信小程序中,将搜索组件获取的值传递给父页面(如 index 页面)可以通过 自定义事件 或 页面引用 实现

将搜索组件获取的值传递给父页面(如 index 页面)可以通过 自定义事件 或 页面引用 实现 方法 1:自定义事件(推荐) 步骤 1:搜索组件内触发事件 在搜索组件的 JS 中,当获取到搜索值时&#xff0c…...

深度学习预训练和微调

目录 1. 预训练(Pre-training)是什么? 2. 微调(Fine-tuning)是什么? 3. 预训练和微调的对象 4. 特征提取如何实现? 预训练阶段: 微调阶段: 5. 这样做的作用和意义 …...

AI 速读 SpecReason:让思考又快又准!

在大模型推理的世界里,速度与精度往往难以兼得。但今天要介绍的这篇论文带来了名为SpecReason的创新系统,它打破常规,能让大模型推理既快速又准确,大幅提升性能。想知道它是如何做到的吗?快来一探究竟! 论…...

Qt通过ODBC和QPSQL两种方式连接PostgreSQL或PolarDB PostgreSQL版

一、概述 以下主要在Windows下验证连接PolarDB PostgreSQL版(阿里云兼容 PostgreSQL的PolarDB版本)。Linux下类似,ODBC方式则需要配置odbcinst.ini和odbc.ini。 二、代码 以下为完整代码,包含两种方式连接数据库,并…...

MobaXterm连接Ubuntu(SSH)

1.查看Ubuntu ip 打开终端,使用指令 ifconfig 由图可知ip地址 2.MobaXterm进行SSH连接 点击session,然后点击ssh,最后输入ubuntu IP地址以及用户名...

Lambda 函数与 peek 操作的使用案例

Lambda 函数和 peek 操作是 Java 8 Stream API 中非常有用的特性&#xff0c;下面我将介绍它们的使用案例。 Lambda 函数使用案例 Lambda 表达式是 Java 8 引入的一种简洁的匿名函数表示方式。 集合操作 List<String> names Arrays.asList("Alice", "B…...

C# 的 字符串插值($) 和 逐字字符串(@) 功能

这段代码使用了 C# 的 字符串插值&#xff08;$&#xff09; 和 逐字字符串&#xff08;&#xff09; 功能&#xff0c;并在 SQL 语句中动态拼接变量。下面详细解释它们的用法&#xff1a; 1. $&#xff08;字符串插值&#xff09; $ 是 C# 的 字符串插值 符号&#xff0c;允许…...

软考 中级软件设计师 考点知识点笔记总结 day13 数据库系统基础知识 数据库模式映像 数据模型

文章目录 数据库系统基础知识6.1 基本概念6.1.1 DBMS的特征与分类 6.2 数据库三级模式两级映像6.3 数据库的分析与设计过程6.4 数据模型6.4.1 ER模型6.4.2 关系模型 数据库系统基础知识 基本概念 数据库三级模式两级映像 数据库的分析与设计过程 数据模型 关系代数 数据库完整…...

蓝桥杯2024省A.成绩统计

蓝桥杯2024省A.成绩统计 题目 题目解析与思路 题目要求返回至少要检查多少个人的成绩&#xff0c;才有可能选出k名同学&#xff0c;他们的方差小于一个给定的值 T 二分枚举答案位置&#xff0c;将答案位置以前的数组单独取出并排序&#xff0c;然后用k长滑窗O(1)计算方差 问…...

Mac mini 安装mysql数据库以及出现的一些问题的解决方案

首先先去官网安装一下mysql数据库&#xff0c;基本上都是傻瓜式安装的流程&#xff0c;我也就不详细说了。 接下来就是最新版的mysql安装的时候&#xff0c;他就会直接让你设置一个新的密码。 打开设置&#xff0c;拉到最下面就会看到一个mysql的图标&#xff1a; 我设置的就是…...

俄罗斯方块-简单开发版

一、需求分析 实现了一个经典的俄罗斯方块小游戏&#xff0c;主要满足以下需求&#xff1a; 1.图形界面 使用 pygame 库创建一个可视化的游戏窗口&#xff0c;展示游戏的各种元素&#xff0c;如游戏区域、方块、分数等信息。 2.游戏逻辑 实现方块的生成、移动、旋转、下落和锁…...

STM32的启动方式

目录 一、从主闪存存储器启动&#xff08;Main Flash Memory&#xff09; 二、从系统存储器启动&#xff08;System Memory&#xff09; 三、从内置SRAM启动&#xff08;Embedded SRAM&#xff09; 四、从外挂存储介质启动的实现方式 1. 存储介质选型 2. 硬件连接 3. 引…...

你学会了些什么200601?--Flask搭建造测试数据平台

搭建造数平台的环境&#xff1a; ***python3.7 ***html5 ***css ***JavaScript ***Ajax ***MySQL 前台页面的显示 1.为了页面美化&#xff0c;使用了JavaScript&#xff0c;通过逐级展开/隐藏的的方式显示下一级菜单 2.为了在提交表单数据时页面不发生跳转&#xff0c;需要引用…...

【音视频】FLV格式分析

FLV概述 FLV(Flash Video)是Adobe公司推出的⼀种流媒体格式&#xff0c;由于其封装后的⾳视频⽂件体积⼩、封装简单等特点&#xff0c;⾮常适合于互联⽹上使⽤。⽬前主流的视频⽹站基本都⽀持FLV。采⽤FLV格式封装的⽂件后缀为.flv。 FLV封装格式是由⼀个⽂件头(file header)和…...

Keil5没有stm32的芯片库

下载完重启就行了&#xff0c;我这里就不演示了&#xff0c;stm已经下载&#xff0c;随便选的一个芯片库演示一下...

【DVWA 靶场通关】 File Inclusion(文件包含漏洞)

1. 前言 文件包含漏洞 是 Web 应用中较为常见的漏洞之一&#xff0c;攻击者通过操控文件路径&#xff0c;访问或包含系统上的敏感文件&#xff0c;甚至执行恶意代码。DVWA&#xff08;Damn Vulnerable Web Application&#xff09;提供了一个理想的实验环境&#xff0c;让安全…...

游戏引擎学习第229天

仓库:https://gitee.com/mrxiao_com/2d_game_5 回顾上次内容并介绍今天的主题 上次留下的是一个非常简单的任务&#xff0c;至少第一步是非常简单的。我们需要在渲染器中加入排序功能&#xff0c;这样我们的精灵&#xff08;sprites&#xff09;才能以正确的顺序显示。为此我…...

【C++编程入门】:从零开始掌握基础语法

C语言是通过对C语言不足的地方进行优化创建的&#xff0c;C在C语言之上&#xff0c;C当然也兼容C语言&#xff0c; 在大部分地方使用C比C更方便&#xff0c;可能使用C需要一两百行代码&#xff0c;而C只需要五六十行。 目录 C关键字 命名空间 缺省参数 缺省参数分类 函数…...

Python3网络爬虫开发--爬虫基础

网络爬虫基础 1.1 HTTP基本原理 1.1.1 URI和URL URI即统一资源标志符,URL即统一资源定位符。 有这样一个链接,http://test.com/test.txt,在这个链接中,包含了访问协议https,访问目录(即根目录),资源名称(test.txt)。通过这样的链接,可以在互联网上找到这个资源,这…...

网络开发基础(游戏方向)之 概念名词

前言 1、一款网络游戏分为客户端和服务端两个部分&#xff0c;客户端程序运行在用户的电脑或手机上&#xff0c;服务端程序运行在游戏运营商的服务器上。 2、客户端和服务端之间&#xff0c;服务端和服务端之间一般都是使用TCP网络通信。客户端和客户端之间通过服务端的消息转…...

MyBatisPlus-QueryWrapper的exists方法拼接SQL中的EXISTS子句

在 MyBatis-Plus 中,QueryWrapper 的 exists 方法用于拼接 SQL 中的 EXISTS 子句,通常用于构 建子查询条件。以下是具体用法和示例: ​​1. 基本语法​​ // 判断是否存在符合条件的记录 queryWrapper.exists(String existsSql); queryWrapper.notExists(String existsSq…...

【源码】【Java并发】【AQS】从ReentrantLock、Semaphore、CutDownLunch、CyclicBarrier看AQS源码

&#x1f44b;hi&#xff0c;我不是一名外包公司的员工&#xff0c;也不会偷吃茶水间的零食&#xff0c;我的梦想是能写高端CRUD &#x1f525; 2025本人正在沉淀中… 博客更新速度 &#x1f44d; 欢迎点赞、收藏、关注&#xff0c;跟上我的更新节奏 &#x1f4da;欢迎订阅专栏…...

k8s介绍与实践

第一节 理论 基础介绍&#xff0c;部署实践&#xff0c;操作实践&#xff0c;点击这里学习 第二节 dashboard操作 查看安装的dashboard服务信息 kubectl get pod,svc -n kubernetes-dashboard 网页登录地址&#xff1a;https://server_ip:30976/#/login 创建token kube…...

SpringBoot 3 与 SpringDoc 打造完美接口文档

文章目录 1. SpringDoc 简介1.1 SpringDoc 优势2. 环境准备2.1 Maven 依赖2.2 基础配置3. 创建基本文档配置类4. 控制器 API 文档注解4.1 基本控制器示例4.2 模型类示例5. 高级功能5.1 API分组5.2 安全配置5.3 隐藏特定端点6. 参数描述6.1 路径参数6.2 查询参数6.3 请求体7. 响…...