找回密码
 立即注册

247

主题

0

好友

747

积分

高级会员

跳转到指定楼层
楼主
发表于 2020-11-8 22:18:09 |只看该作者 |倒序浏览
你能看出下面两张图有什么区别吗?


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


这种骗过 AI 的方法其实并不新鲜,也不复杂。AI 技术还未流行的时候,已经有网友在泡论坛的时候发现了这种技巧:


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


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


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


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


可以看到,输出缩略图图中的第一个像素是 s 第三、第四个像素的平均结果,而第二个像素仅考虑了 s 第七个像素。导致 9 个像素中只有 3 个被用于计算缩略图。
只有那些靠近内核中心(三角形部分)的像素会获得较高的权重,而其他像素对缩略图的作用有限。
如果算法的步长超过窗口宽度,甚至有些像素还会被忽略。因此,攻击的成功取决于高权重像素的稀疏性。
如果要进行图像缩放攻击,需要做到两点。首先,修改少数影响压缩算法的像素;其次,攻击图像在视觉上与源图像匹配。
如何预防
图像缩放攻击原理简单,能同时骗过人眼和 AI,因此布伦瑞克大学团队认为这种攻击具有一定的迷惑性。
经过处理的图像中,在后端,可以逃过 AI 对图片的审查;在前端,可以骗过收集数据集的人,污染 AI 训练数据集。
如果有人把这些图像掺进自动驾驶训练数据集,那么我们用训练出来的自动驾驶系统可靠吗?在这种情况下,汽车会不会发生意外?


当然,这种方法并非不可预防。
既然问题出在图像压缩的滤波器上,那么我们只要选择合适的滤波器就能抵御攻击。
实验表明,中值滤波和随机滤波对非自适应攻击提供了有效的防御。


具体到代码上,如果你在使用 OpenCV,可以通过在调用 resize API 时使用 interpolation 参数来解决,而不要使用默认值。
TensorFlow 2.0 依然容易受到攻击,双线性和双三次缩放对图像缩放攻击具有鲁棒性,可将参数 antialias 设置为 true,但是此举会影响网络性能。
源代码:
http://github.com/EQuiw/2019-scalingattack
论文地址:
http://www.sec.cs.tu-bs.de/pubs/2020-sec.pdf
http://embracethered.com/blog/posts/2020/husky-ai-image-rescaling-attacks/
http://scaling-attacks.net/

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

这是一种鼓励!你懂的~

×

打赏支付方式:

打赏

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册




返回顶部
友情链接