造假|打开正经图片,却看到一张黄图,这种造假方法能同时骗过AI和人眼

你能看出下面两张图有什么区别吗?



造假|打开正经图片,却看到一张黄图,这种造假方法能同时骗过AI和人眼
文章插图

它们看起来一样,都是广场风景照。只是右边的仔细一看,会发现有些“奇怪的点阵”。
但在AI的眼里,右边的照片却是一只哈士奇。为什么?
问题就出在那些“奇怪的点阵”里,原来把点阵重新组合,就能看到哈士奇的缩略图。



造假|打开正经图片,却看到一张黄图,这种造假方法能同时骗过AI和人眼
文章插图




造假|打开正经图片,却看到一张黄图,这种造假方法能同时骗过AI和人眼
文章插图

把一张正常图片缩小后在色情图片里,没点进帖子,缩略图上看到的是一张无害照片。但是如果你当众点开了这个帖子,一张黄图显示在眼前,立刻让你“社会性死亡”。
比如把著名的花花公子封面女郎Lena稍微伪装一下,缩略图就变成了一个长发男子。



造假|打开正经图片,却看到一张黄图,这种造假方法能同时骗过AI和人眼
文章插图

在今年的USENIX安全研讨会上,来自德国布伦瑞克大学的团队提出了这种攻击AI的方法:图片缩放攻击(image scaling attack)。
骗过AI和人眼
图片缩放功击的操作原理很简单,把需要隐藏的图像按比例插在新图像的像素中,一般大图是小图的5到10倍。
当图像交给AI模型处理时,出于计算成本考虑,系统一般会进行预处理,也就是图片压缩到比较小的尺寸。而且卷积神经网络本身处理图像时,还会进行池化(pooling)。
不仅AI,人眼也会过滤掉图像像素中的“少数派”,被这种攻击方法骗过。
下面,我们来看看把文章开头的右侧图片用OpenCV的图像压缩预处理一下的结果:
【 造假|打开正经图片,却看到一张黄图,这种造假方法能同时骗过AI和人眼】


造假|打开正经图片,却看到一张黄图,这种造假方法能同时骗过AI和人眼
文章插图

广场照真的变成了哈士奇。缩小的图片和原来的图片完全不一样!
除了OpenCV外,该团队还测试了PyTorch的Pillow和TensorFlow的tf.image,几种常见的图像滤波器全部都中招了。



造假|打开正经图片,却看到一张黄图,这种造假方法能同时骗过AI和人眼
文章插图

原理
缩放攻击的根本原因是,下采样和卷积相互作用的结果。通俗来说,就是算法没有同等地考虑源图像中的所有像素。
因此,攻击者只需修改一小部分权重较高的像素,就能改变缩略图,图片其余大部分像素保持不变。
下面以一维情况来简单说明一下攻击的基本原理。
压缩图的像素是这样算出来的:滤波器窗口在图片源信号s上移动,将窗口中的每个像素值(图中圆圈)乘以该位置窗口上的权重,得到缩略后的点值。



造假|打开正经图片,却看到一张黄图,这种造假方法能同时骗过AI和人眼
文章插图

可以看到,输出缩略图图中的第一个像素是s第三、第四个像素的平均结果,而第二个像素仅考虑了s第七个像素。导致9个像素中只有3个被用于计算缩略图。
只有那些靠近内核中心(三角形部分)的像素会获得较高的权重,而其他像素对缩略图的作用有限。
如果算法的步长超过窗口宽度,甚至有些像素还会被忽略。因此,攻击的成功取决于高权重像素的稀疏性。
如果要进行图像缩放攻击,需要做到两点。首先,修改少数影响压缩算法的像素;其次,攻击图像在视觉上与源图像匹配。
如何预防
图像缩放攻击原理简单,能同时骗过人眼和AI,因此布伦瑞克大学团队认为这种攻击具有一定的迷惑性。