解读 | 从谷歌AI判定阿波罗登月“造假“来谈谈合成图片检测技术



大家好,我是极智视界,欢迎关注我的公众号,获取我的更多前沿科技分享

邀您加入我的知识星球「极智视界」,星球内有超多好玩的项目实战源码和资源下载,链接:https://t.zsxq.com/0aiNxERDq

整个事情可以爬楼看我的这篇 <有趣!谷歌AI认定阿波罗登月"造假">,这里从这个让大家热议的事件出发来谈谈其中涉及的合成图片检测技术。

看下面的图,格拉西门科所说的 "红色部分是他们的神经网络标出的判定为假的地方,也就是说这张照片上几乎所有物体都被判定是假的"。可以看出来使用的谷歌 AI 并不是 "简单的" "想当然的" 分类任务,而是有类似分割任务的表达 (深度学习中的分类任务指的是对一张图片判断后做出分类判断,比如用于判断一张图片是否合成,可以输出 的分类)。这种从技术上来说会更加精细,想象一下若是直接的二分类任务,会非常的笼统,不能很好表达具体哪里是合成的。而这里使用的技术在表达上会更加细腻:红色部分是合成的,蓝色部分是真的。这样可以很直观观察到图片的哪里伪造了,这个意思可以参考咱们平时的 P 图,我们在 P 图的时候可能会修修脸、抠抠图、推推肚子、拉伸拉伸腿,而往往不是整张图片一股脑的都去修。这个时候如果是用分类任务去做判断,这些具体修图的地方是体现不出来的,它只会告诉你,你是 P 过了还是没有 P 过,而反观用下面的方法,则能够很好地体现出来。具体到图片,可以看到美国登月的人体、影子都是合成的,这种指向性就非常明显了。

图像合成 (Image Composition) 是将一张图的前景剪切并嵌入到另一张背景图中,以生成一张新的合成图。在更泛的层面上,图像合成包括将来自不同图像的多个视觉元素融合到同一张图中。这个技术有着广泛的应用,例如人物换背景、虚拟社交、电影特效、广告图片等的制作生成。为了达到理想的效果,通常会将图像合成与图像生成 (Image Generation) 结合使用。图像生成负责从无到有地创造图像,而图像合成则负责将已有元素巧妙精准地组合在一起。尽管图像生成能够快速、有创造性地生成各种图像,但其可控性有限,生成具有随机性,无法保证生成完全符合预期的图像。因此,从这个角度来看图像合成更擅长于精细控制,通过拼接已有的视觉元素来合成真实而合理的图像。

图像合成和图像生成的代表就是 PS 和 AIGC,现在的 AIGC 十分之火热,下面展示了一些 AIGC 的 "生成创造性",

总有人觉得现在 AIGC 这么火热,对于 PS 这种艺术创造类型的工作就可能直接被取代了。我倒是有不同的观点,还是跟上面的分析一样,AIGC 具有随机性,它适合干的事情是一下让它生成一大堆图像,然后咱们从中挑选,这种模式往往不能够 "指哪打哪"。而 PS 则完全不同,它就能够 "指哪打哪",精确完成期望图像的生成。其实从这个角度来说,若阿波罗登月是假图,他一定是属于图像合成,而非图像生成。原因很简单,它的场景要求 "精准",而非追求 "艺术创造性"。这就跟 PS 很像了,比如下面的人物精修,就很需要这种 "精准性",而非 "创造性",

对于图像合成其实是有多种手段来实现的,从流程上来说主要分为拍摄阶段后期修图阶段。对于拍摄阶段来说,可以使用布景摆拍、光照控制、道具添加、遮挡重叠等来模拟真实环境 或者 先摄影一些待合成的子图用于后期合成制作;对于后期修图阶段,这个就很好理解了,用过 PS 的同学可能会更加清楚一些,比如可以用蒙版、透明度、景深还有其他一些图像处理工具的组合来达到图像合成的目的。

下面来看一些效果展示,做的好的图像合成是非常逼真的,

如果你不知道鲸鱼是在海里的,你能看出下面的图是合成的吗,

你看这修的,

比如更加先进的,比如加勒比海盗电影中的各种特效的合成,

回过头来再看阿波罗登月,阿波罗登月是在 1969 年,若登月的图片真的是伪造的,考虑到那个时候的 P 图软件 或者说 P 图算法没有现在这么先进,那么通过摄影技术来进行图像合成的概率会更大。什么意思呢,比如去模拟月球的环境来进行拍摄,这就像拍摄好莱坞电影那样。但事实真的是这样吗,还是回到下面这张图,注意 "标红为假、标蓝为真",可以很清楚的看到,像人、影子、仪器之类的被标红了,说明这些前景是合成的。这个意思很有可能是宇航员、影子、实验仪器等这些前景是在一个其他干净背景下拍摄,然后做蒙版抠图嵌入到 "月球表面" 背景之中。这样就能解释的通,哈哈 当然前提是这几张图为假。

那么谷歌 AI 是怎么做到来识别图像是否是合成的呢,由于其没有开源,所以也只能猜个大概,但总的来说,目前一些主流的图像合成检测算法也大差不差。使用 AI 识别图像是否是合成主要是利用一些特征提取和匹配的方法来判断图像中的像素是否与其他临近像素或者对等图像有明显的差异,因为在做图像合成的时候,即使你的技术再高超,也势必会引入一些噪声,而这些噪声往往是人眼感受不出来,因为它体现在像素级别。目前有一些常用的方法可以用来检测是否是合成图,如下,

  • 统计分析法:通过对比不同来源或者不同时间段的图像,来计算它们之间在颜色、纹理、形形状等方面的相似度或者差异度 ==> 如果一个图像与其他图像有较高的相似度或者较低的差异度,那么它就很可能是合成或者修改过的;
  • 特征提取法:通过对每个像素进行特征提取和匹配,来判断它们是否与其他像素或者其他图像有明显不匹配。特征提取可以基于颜色、纹理、形形状等方面,也可以基于语义、语义相似性等方面 ==> 如果一个图像中有很多不匹配或者异常的区域,那么它就很可能是合成或者修改过的;
  • 深度学习法:通过使用深度神经网络来学习不同来源或者不同时间段的图像之间在特征上的关系和差异,并且根据这些关系和差异来判断一个新生成或者修改过后的图像是否与其他源之间有明显不符合 ==> 深度学习法可以利用大量数据和强大算力来提高检测效果和准确率;

这里例举了三种方法,而对于谷歌 AI 的识别,你可不要觉得一定就只是深度学习算法。打个比方,比如我之前做过工业视觉检测,其实里面主要使用传统的数字图像处理算法,但是对外都宣称 "智能 AI 检测算法",这种 "宣传","智能 AI",是不是会给你一种深度学习算法的错觉。所以,我觉得谷歌 AI 识别图像是否合成的算法也很可能是数字图像处理算法和深度学习的结合应用。当然,当然,也不排除是用大模型来做的,毕竟大模型是 "万能的"。

当然,这一切前提都是 "阿波罗登月是造假的",时过境迁,现在顺着正向推理已经很难,而通过更加先进的技术来逆向判断是个非常有趣的方式。


【极智视界】

《解读 | 从谷歌AI判定阿波罗登月"造假"来谈谈合成图片检测技术》

畅享人工智能的科技魅力,让好玩的AI项目不难玩。邀请您加入我的知识星球,星球内我精心整备了大量好玩的AI项目,皆以工程源码形式开放使用,涵盖人脸、检测、分割、多模态、AIGC、自动驾驶、工业等。一定会对你学习有所帮助,也一定非常好玩,并持续更新更加有趣的项目。https://t.zsxq.com/0aiNxERDq

​​​​​

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

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

相关文章

Vue3的transition标签以及animate.css使用详解

一&#xff1a;前言 在项目开发中&#xff0c;有一种特殊情况是使用动画过渡去完成某个效果。比如淡入淡出&#xff0c;或者在动画完成后执行某些操作等。在以前开发中我们通常会选择使用 CSS3 进行研发。但是这样会有很多不好的地方&#xff0c;比如最原始化的封装&#xff0c…

Spring Security 6.x 系列(5)—— Servlet 认证体系结构介绍

一、前言 本章主要学习Spring Security中基于Servlet 的认证体系结构&#xff0c;为后续认证执行流程源码分析打好基础。 二、身份认证机制 Spring Security提供个多种认证方式登录系统&#xff0c;包括&#xff1a; Username and Password&#xff1a;使用用户名/密码 方式…

别做无用功!了解伦敦银交易指标的分类

在伦敦银投资中&#xff0c;我们都喜欢使用技术指标来帮助我们判断市场行情、预测银价点位。其实&#xff0c;伦敦银的技术指标是有不同分类的&#xff0c;我们了解主要的几类&#xff0c;这样在交易中才不至于将相同类型的叠加在一起&#xff0c;这样容易降低决策效率。 分类一…

最强学习辅助工具重磅上市:虚拟与现实互动结合助力学习更快一步

太让人震撼了&#xff01;&#xff01;当当狸这款AR智能学习图集打破了传统历史学习材料壁垒 将AR增强现实技术与诗词互动、历史人文、古典建筑巧妙融合 内容真实有趣&#xff0c;全面激发孩子们的学习探索兴趣 妈妈们都想入手的【教学辅助工具】 有了它&#xff0c;孩子学…

2.3基于springboot养老院管理系统

2.3基于springboot养老院管理系统 成品项目已经更新&#xff01;同学们可以打开链接查看&#xff01;需要定做的及时联系我&#xff01;专业团队定做&#xff01;全程包售后&#xff01; 2000套项目视频链接&#xff1a;https://pan.baidu.com/s/1N4L3zMQ9nNm8nvEVfIR2pg?pwd…

docker-compose Install OrangeHRM

OrangeHRM 前言 OrangeHRM 是一个全面的人力资源管理(HRM) 系统,它包含任何企业所需的所有基本功能。OrangeHRM旨在支持任何规模的团队,包括初创企业、中小企业以及大型跨国组织。 OrangeHRM 提前条件 OrangeHRMdocker & docker-composer 安装or

el-table,列表合并,根据名称列名称相同的品名讲其它列值相同的进行合并

el-table,列表合并,根据名称列名称相同的品名讲其它列值相同的进行合并,并且不能垮品名合并 如图 用到el-table合并行的方法合并 tableSpanMethod({ row, column, rowIndex, columnIndex }) {if (column.property "materielName") {//合并商品名const _row this…

Linux后台运行jar包

Linux后台运行jar包 方式一 命令如下&#xff1a; java -jar /data/tools/jar/demo.jar注&#xff1a;/data/tools/jar&#xff1a;指定jar包所在位置&#xff0c;否则要在jar包所在位置运行改命令&#xff1b;当前ssh窗口被锁定&#xff0c;可按CTRL C打断程序运行&#xf…

小功能实现(十八)生成kml文件

引入依赖 <!--解析、生成kml文件类--><dependency><groupId>de.micromata.jak</groupId><artifactId>JavaAPIforKml</artifactId><version>2.2.0</version></dependency>使用方法 注意&#xff1a;需要什么内容可自行添…

CCC联盟数字钥匙(一)——UWB MAC概述

本文在前面已经介绍了相关UWB的PHY之后&#xff0c;重点介绍数字钥匙&#xff08;Digital Key&#xff09;中关于MAC层的相关实现规范。由于MAC层相应涉及内容比较多&#xff0c;本文首先从介绍UWB MAC的整体框架&#xff0c;后续陆续介绍相关的网络、协议等内容。 1、UWB MAC架…

深入redis过程-命令

目录 通用命令 get set keys exists del expire key seconds ttl type 常用数据结构 String类型 SET GET MSET MGET INCR INCRBY INCRBYFLOAT SETNX SETEX Hash类型 HSET key field value HGET key field HMSET HMGET HGETALL HKEYS HVALS HINCRB…

定制开发办公软件在企业发展中的优势|app小程序网站搭建

定制开发办公软件在企业发展中的优势|app小程序网站搭建 如今&#xff0c;办公软件已经成为企业日常工作的必需品。很多企业为了提高工作效率和满足自身业务需要&#xff0c;选择定制开发办公软件。下面将介绍定制开发办公软件在企业发展中的优势。 首先&#xff0c;定制开发办…

Moonbeam生态项目分析 — — 聚合流动性管理协议GAMMA

流动性激励计划Moonbeam Ignite是帮助用户轻松愉快体验Moonbeam生态的趣味活动。在Moonbeam跨链连接的推动下&#xff0c;DeFi的各种可能性在这里爆发。DeFi或许不热门&#xff0c;但总有机会捡漏&#xff0c;了解Monbeam生态项目&#xff0c;我们邀请Moonbeam大使分享他们的研…

智能AIGC写作系统ChatGPT系统源码+Midjourney绘画+支持GPT-4-Turbo模型+支持GPT-4图片对话

一、AI创作系统 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI…

便利高效双赢:无人机油气管道巡检全面升级

我国庞大的油气管道网络&#xff0c;包括原油、成品和天然气管道&#xff0c;因为地理区域广泛、建设年代久远、安全事故频发等现实因素&#xff0c;对管道的安全巡护与管理提出了更高的需求。在这一背景下&#xff0c;传统的人工巡护方式显然已经难以满足对高、精、准的要求。…

shell编程系列- bash和sh的区别

文章目录 引言bash和sh的区别CentOS下的区别Ubuntu下的区别 最佳实践 引言 我们在编写shell脚本时&#xff0c;通常第一行都要声明当前脚本的执行程序&#xff0c;也就是常见的 #!/bin/sh 或者是 #!/bin/bash &#xff0c;我们无论用哪一个脚本似乎都可以正常的执行&#xff0…

【数据结构/C++】栈和队列_循环队列

牺牲一个存储单元来判断队满。 #include<iostream> using namespace std; // 循环队列 #define MaxSize 10 typedef int ElemType; typedef struct {ElemType data[MaxSize];int front, rear; } SqQueue; // 初始化队列 void InitQueue(SqQueue &Q) {// 判断队空 Q.…

MySQL数据库入门到大牛_基础_16_变量、流程控制与游标

文章目录 1. 变量1.1 系统变量1.1.1 系统变量分类1.1.2 查看系统变量 1.2 用户变量1.2.1 用户变量分类1.2.2 会话用户变量1.2.3 局部变量1.2.4 对比会话用户变量与局部变量 2. 定义条件与处理程序2.1 案例分析2.2 定义条件2.3 定义处理程序2.4 案例解决 3. 流程控制3.1 分支结构…

四川劳动保障杂志社四川劳动保障编辑部四川劳动保障杂志2023年第10期目录

主题报道 四川抢抓“金九银十”招聘季多措并举稳就业促就业 举措频“上新” 金秋送岗忙 张玉芳; 2-5 法眼《四川劳动保障》投稿&#xff1a;cnqikantg126.com 筑牢长期护理保险基金安全防线 李科仲;赖晓薇; 6-7 调研 提升职业技能培训工作的举措 寇爵; 8-9 城乡…

实战中使用的策略模式,使用@ConditionalOnProperty实现根据环境注册不同的bean

场景复现 举个例子&#xff0c;针对不同的设备的内存的不同加载一些资源的时候需要采取不同的策略&#xff0c;比如&#xff0c;在内存比较大的设备&#xff0c;可以一次性加载&#xff0c;繁殖需要使用懒加载&#xff0c;这个时候我们就可以采用配置文件配置中心去控制了 Cond…