本文来自微信公众号:,原文标题:《又又又有新方法想要鉴别 ai 图,实测后我更担心了》,题图来自:ai生成
以眼下的互联网情况来说,检测图片是否来自生成软件,眼看就要变成一种「刚需」了。
加州ai监管法案很快要迎来投票,现在网络上各家公司、学者,吵成了一锅粥。无人在意的角落,openai、adobe和微软,已经表示支持法案其中的一项:ab 3211。
这项法案要求由ai生成的图片、视频和音频中,必须在元数据中包含可以解读出原始出处的数据,否则,最高可以处以十万美元的罚款。
老实说,对于加州硅谷里那些个大公司来说,十万美元真不算什么……
法案内容中,没有提到具体的执行标准,但又处处都是暗示。所谓的「行业标准兼容」,「使用数字签名」和「嵌入水印」,说的不就是c2pa嘛。
c2pa标准,脱胎于由adobe牵头、专门致力于真实内容检测的项目,content authenticity initiative(cai)。它的想法是,利用exif等元数据参数,作为图片出处的判定方式。
上周openai更新了自己的隐私与政策页面,更新了一部分dall·e的c2pa条款,所有在gpt网络上生成的图像(包括通过api执行生成的),都会被嵌入元数据,表明它的生成工具是什么。
头部公司里,meta也用了c2pa来作为标记ai生成图的依据之一,并且在ins的界面有所标记。
很显然,现在的生成出来的图像,靠肉眼基本是没法辨别的了,总是得要上点儿手段。
前阵子flux和deeplive cam的生成图片因为过于逼真,倒逼了一波检测工具的流行——虽然都不是很靠谱。
基于图片色彩饱和度的检测方式,图片来自:x用户@deedydas
c2pa是不是一个好的方法?并不是,起码现在不是。
先不说c2pa很容易被改动,更加是因为支持c2pa协议的设备、软件,都太少了。
这些软硬件厂商,到底打不打水印和标签,是挺看良心的一件事,毕竟十万美金的罚款,对这些公司来说不值一提。
另外,exif数据还不够「源头」——光是一个微信,就足够删干净图片的数据了,毫无压力。
比元数据更深入的检测方法,其实早就有了,比如错误级别分析(error level analysis),简称ela算法。
最早,ela算法就是用来检测图像有没有被ps处理过,它主要利用了jpeg格式的特点:jpeg图像在压缩时,会将图片分割成8x8像素的小块,并对每个小块进行色彩空间转换。
这种情况下,如果对jpg图像进行编辑,比如ps,修改的部分会经历第二次的色彩空间转换,这将导致原始图像与修改后的图像之间存在差异。
上方:未经修改的照片 下方:经过一次转换格式保存后的照片 图片来自:fotoforensics
ela算法通过比较这些差异来识别图像的修改部分。如果图像的某个部分显示出与周围区域明显不同的错误级别,这可能表明该部分被修改过。
白色的斑点,意味着被编辑过。大量的黑色,通常说明错误级别很低,几种情况:1没有改动,2原画面的色彩原因,3已经被重新保存过很多次。
深深浅浅的彩色,才最接近拍摄过的原图,比如上面的书架照片中,第一排就是原图。
为了测试ela和c2pa哪种更有效,我用了一张两周前、用于文章封面的图片。其中,第一张是在网上找到的原图,第二张也是在网上找到的、来自平面设计师的改图。最终用来作为封面的版本,则是我在改图的基础上,用生成软件调整出的最终版。
从上至下:原版-改图-最终版
当时调整的原因是这样的:前两张的确都很好,但是它们在微信排版时,会被裁切,挡住标题文字。因此我送进了ai软件里跑了一下,原本只是想让它拉伸一下背景,没想到它在左下角加了半截电脑屏幕——不得不说,加得还挺好。
为什么用这套图作为测试案例呢?
首先原图是我在google上翻到的,说明它存在于互联网中。另外,改图也是在网上找到,靠搜图就能搜出来,那么就可以很明确反映出,有ai参与的最终版,才是那个「凭空冒出来」的版本。
首先我用了cai旗下的在线检测,基于(并不存在的)c2pa元数据检索,当然是一无所获。
其实并不意外,因为c2pa没有被推广到每一个出图设备、软件——而现已存在于互联网上的图片,多得跟太平洋里的水一样,想都被c2pa覆盖,是不可能的。
接下来我把图片,拎去做ela算法检测,根据ela算法的特点,我还专门去跑了一张ai图,用来做对比。
可以看到,这张ai参与合成的图片里,中间部分是改图——那自然是有了很多修改和编辑,所以整体偏亮。
同时,两侧偏黑的部分是ai加上去的,没有明显的压缩痕迹,也就无法被很好地检测到,所以反映成黑色。
一张拍摄出来、且没有被修改过的图片,应该是均匀分布,有深有浅,在边缘处才更为明显有变化的。
为了进一步对比,我直接做了一张新图:一张完完全全由文字prompt生成的图片:
整体画面都很黑,虽然没有过多的修改痕迹,但也不像是拍摄得来的,这些红蓝色的斑块反而让它更可疑。
但是,马上就被科技扇了一巴掌:当我在x上,随机找了一张由flux.1生成的图片(来自用户@doctorbaytas),送进去做ela检测之后,一整个瞠目结舌。
好家伙,这个轮廓的白光,这个黑色的暗影,谁家好人分得清……
flux这张图即便ela算法来检测,也只能得到一个模棱两可的结论:应该是编辑了,但可能就是磨磨皮,也可能只是锐化了一下边缘、加了个滤镜?
不仅是肉眼无法分辨,而是由里到外都无法分辨。
当然会有人要问,这到底有什么好担心的?跑个图玩玩而已,能有多大事儿。
移除一点背景里的路人、生成一个好看的头像,确实没什么。但是用来做别的呢?
以下面这张由google的magic editor合成的图片为例,光看是真的看不出什么——这是在手机拍摄的基础上,添加了ai生成物之后的合成图片。
而送去做ela检测,也并不能反映出拍摄部分与生成部分的区别,后者丝滑地就融入了。
修改和生成本身不可怕,可怕的是无从辨认。这意味着眼见不再为实,一切都可以相信,一切也都不再能够被相信。
这会给日常生活带去非常多的认知处理麻烦:一般人,既不可能每张图都仔仔细细查验,又不可能完全不在意里头传递的信息。
假设今天你在社交媒体上,刷到了一张家附近的街景,里头是车被撞得支离破碎、满地是血,怎么会不担心呢?
就算你确认过不是自己的亲人朋友,你总会想,是不是得绕个道?
走点远路只是小小的代价,但无从相信,是更大的麻烦。
本文来自微信公众号: