大家好,我是极智视界,欢迎关注我的公众号,获取我的更多前沿科技分享
邀您加入我的知识星球「极智视界」,星球内有超多好玩的项目实战源码和资源下载,链接: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