解读 | 从谷歌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

​​​​​

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【2023.11.28】关于Servlet路径的学习

创建Servlet 这是Tomcat配置的初始路径&#xff0c;在web项目内&#xff0c;该路径代表了webapp下index.html所在的页面。 WebServlet(name "login", value "/login",loadOnStartup 1) public class LoginServlet extends HttpServlet { 使用注解的方…

leetcode:2133. 检查是否每一行每一列都包含全部整数(python3解法)

难度&#xff1a;简单 对一个大小为 n x n 的矩阵而言&#xff0c;如果其每一行和每一列都包含从 1 到 n 的 全部 整数&#xff08;含 1 和 n&#xff09;&#xff0c;则认为该矩阵是一个 有效 矩阵。 给你一个大小为 n x n 的整数矩阵 matrix &#xff0c;请你判断矩阵是否为一…

算法效率的度量

算法效率的度量通常是通过时间复杂度和空间复杂度来描述的。 一、时间复杂度 算法中所有语句的执行次数之和为T(n)&#xff0c;它是算法问题规模n的函数&#xff0c;时间复杂度主要分析T(n)的数量级。 分类 1. 最好时间复杂度&#xff1a;最好情况下&#xff0c;算法的时间…

国自然项目基金撰写及技巧

随着社会经济发展和科技进步&#xff0c;基金项目对创新性的要求越来越高。申请人需要提出独特且有前瞻性的研究问题&#xff0c;具备突破性的科学思路和方法。因此&#xff0c;基金项目申请往往需要进行跨学科的技术融合。申请人需要与不同领域结合&#xff0c;形成多学科交叉…

智能优化算法应用:基于飞蛾扑火算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于飞蛾扑火算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于飞蛾扑火算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.飞蛾扑火算法4.实验参数设定5.算法结果6.参考…

算法之插入排序及希尔排序(C语言版)

我们来实现上述排序 一.插入排序. 当插入第i(i>1)个元素时&#xff0c;前面的array[0],array[1],.,array[i-1]已经排好序&#xff0c;此时用array[i的排序码与array[i-1]array[i-2].的排序码顺序进行比较&#xff0c;找到插入位置即将arrayU插入&#xff0c;原来位置上的元…

【RTP】4: 实例解析:一个SRTP的wireshark抓包:带padding、带扩展

抓取的是视频包。固定的pt是127从头部找到序号,快速找到这个包包大小因为是包括了SRTP的,所以318 个字节,实际RTP包是286个字节。SRTP 包 UDP总共 294个字节,payload部分286 RTP协议 RTP部分: B0 代表有padding、有扩展 从B0开始

【Linux】gcc和g++

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前正在学习c和Linux还有算法 ✈️专栏&#xff1a;Linux &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章有啥瑕疵&#xff0c;希望大佬指点一二 …

linux shell操作 - 05 进程 与 IO 模型

文章目录 计算机内存分配进程与子进程流IO模型非阻塞IOIO多路复用网络IO模型简单的socket并发的socket 计算机内存分配 一个32位&#xff0c;4G内存的计算机&#xff0c;内存使用分为两部分&#xff1a; 操作系统内核空间&#xff1b;应用程序的用户空间使用的操作系统不同&a…

如何使用低代码平台加速应用开发?

目录 一、背景 二、低代码开发和传统开发的区别 1.低代码开发方式能够实现业务应用的快速交付 2.低代码开发平台还能够降低业务应用的开发成本 三、低代码开发对你有什么帮助&#xff1f; 四、低代码工具的使用者是谁&#xff1f; 五、典型的低代码开发平台有哪些&#xff1f…

02-鸿蒙学习之4.0todoList练习

02-鸿蒙学习之4.0todoList练习 代码 /*** 1:组件必须使用Component装饰* 2.Entry 装饰哪个组件&#xff0c;哪个组件就呈现在页面上* 3.被Entry 装饰的入口组件。build&#xff08;&#xff09;必须有且仅有一个根 ** 容器 ** 组件* 其他的自定义组件&#xff0c;build() 中…

一篇总结 Linux 系统启动的几个汇编指令

学习 Linux 系统启动流程&#xff0c;必须熟悉几个汇编指令&#xff0c;总结给大家。 这里不是最全的&#xff0c;只列出一些最常用的汇编指令。 一&#xff0e;数据处理指令 1.数据传送指令 【MOV指令】 把一个寄存器的值(立即数)赋给另一个寄存器&#xff0c;或者将一个…

spring boot 整合 spring security

项目结构 添加依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.9.RELEASE</version><relativePath/></parent><dependency><grou…

leetcode刷题详解十

188. 买卖股票的最佳时机 IV&#xff08;最多买卖k次&#xff09; 注意事项 这道题和最多买卖两次是一模一样的思路就是把2换成k了但是还是有几个地方需要注意的 给的整数数组可能为0k其实没有很大&#xff0c;可以想一下&#xff0c;最多为n/2(n是数组的长度) int maxProfit…

大型网站系统架构演化(Web)

大型网站系统架构演化 大型网站系统架构演化需要关注的维度涉及的技术演进过程单体架构垂直架构使用缓存改善网站性能缓存与数据库的数据一致性问题缓存技术对比Redis分布式存储方案Redis集群切片的常见方式Redis数据类型Redis 淘汰算法 大型网站系统架构演化 需要关注的维度 …

2024年最受欢迎的项目管理工具盘点

十大项目管理系统包括&#xff1a;1.产品研发项目管理工具&#xff1a;PingCode&#xff1b;2.通用项目协作工具&#xff1a;Worktile&#xff1b;3.开源项目管理系统&#xff1a;Redmine&#xff1b;4.IT/敏捷项目管理系统&#xff1a;Jira&#xff1b;5.免费个人项目管理&…

NX二次开发UF_CURVE_create_arc_point_point_radius 函数介绍

文章作者&#xff1a;里海 来源网站&#xff1a;https://blog.csdn.net/WangPaiFeiXingYuan UF_CURVE_create_arc_point_point_radius Defined in: uf_curve.h int UF_CURVE_create_arc_point_point_radius(tag_t point1, tag_t point2, double radius, UF_CURVE_limit_p_t l…

问答社区运营的核心是什么?

问答社区是用户在平台上获得信息的一种方式&#xff0c;一般问答社区适用于医疗行业&#xff0c;法律行业等专业领域的行业&#xff0c;可以划分为知识型分享社区的一种&#xff0c;用户提供提问&#xff0c;邀请回答&#xff0c;选择最佳回复&#xff0c;设置问题围观&#xf…

字符串逆序问题

写一个函数&#xff0c;可以将任意输入的字符串逆序&#xff08;要可以满足多组输入&#xff09; 这个题有三个点 1.要读入键盘输入的字符串&#xff0c;所以要用到字符串输入函数 2.可以进行多组输入 3.把输入的n组字符串都逆序 #define _CRT_SECURE_NO_WARNINGS 1 #incl…

Portraiture2024最新Photoshop磨皮插件更新啦

Portraiture是一款由Imagenomic公司研发的Photoshop磨皮插件。该插件以其优秀的磨皮效果&#xff0c;成为了众多摄影师和化妆师使用的首选插件。Portraiture主要用于影楼、婚纱、时尚摄影等各个领域。其主要特点是能够轻松地模拟人眼的视觉感受&#xff0c;自然地修饰人像照片。…