【对抗样本(七)】MeshAdv Adversarial Meshes for Visual Recognition
导语:这是发表在2019年CVPR上的一篇针对分类器模型和检测器模型的对抗样本攻击的工作。
github:
摘要
如DNN一样的极具表现力的模型被应用到广泛的应用中。然而这些DNN容易受到对抗样本的攻击。目前这些大部分研究主要注意将扰动添加到图像像素上,然而这些修改物理上是不可靠的。一些工作尝试将可打印的2D补丁或喷绘模式到表面来克服这个困难,但是可能潜在地被内在地3D形状特征防御。在本文中,我们提出了meshAdv来从具有丰富形状但是很少纹理变换的物体来生成“对抗3D网格”。为了修改这些物体的形状或者纹理,我们充分利用了可微分渲染器来计算在形状着色的准确率并且回传梯度。大量的研究显示生成的3D网格在攻击分类器和目标检测器时非常有效。我们在不同视角上验证了攻击。此外,我们设计了一种在未知渲染参数的真实模拟器上实施黑盒攻击的方法。
1 简介
在本工作中,我们探索了一种攻击的新途径,我们通过修改3D物体形状生成尽可能物理尽可能地对抗样本。我们通过探索具有丰富形状特征但是纹理不变的3D形状,并展示了通过扰动这些3D目标的形状实现攻击。具体地,我们提出了meshAdv用微小扰动来生成对抗网格。我们利用基于可微分地渲染器在特定相机和光照参数下准确地渲染网格。深度学习网络对给定渲染图像输出其预测结果作为输出。因为这整个过程是可微分地,梯度能够从网络预测回传至网格的形状或者纹理。作者提出的网络结构图如下图所示:
通过多种视角优化可以提高不同视角下“对抗网格”的攻击成功率。并且通过可视化基于形状的扰动来展示了网格中可能的脆弱区域。这可以极大提高在3D网格上训练的模型。
Contributions
- 提出了端到端的meshAdv来生成3D的“对抗网格”,并且在攻击不同机器学习任务上表现出很有效果
- 证明了方法在黑盒未知参数的不可微分渲染器上的有效性
- 通过可视化基于扰动形状的流提出了网格的脆弱区域。
- 我们进行了用户研究来展示了3D扰动足够微弱,并且不会影响到用户认知
3 问题定义
不同于2D空间,3D空间中的图像是使用渲染器对3D模型渲染的结果:$I=R(S;P,L)$其中R是具有相机参数P和光照环境下的渲染器。换句话说,不允许直接修改图像I的像素值,而是需要修改3D模型S,然后使用渲染出的图片来欺骗神经网络g做出错误的预测:$I^{adv}=R(S^{adv};P,L)$。由于下述的挑战,实现这个任务并不简单:
- 修改空间:在渲染时,3D内容、形状、纹理和光照都会影响生成的2D图像中的像素,因此像素之间不再是各自独立的。这意味着由于图像的参数话导致修改空间会大量减少
- 3D的约束:3D约束是指物理可能的几何形状或者纹理不会直接反应到2D上。人类对目标的感知是3D或2.5D的,在3D物体的形状或纹理上的感知可能会直接影响它们的人类感知。这意味在3D网格上生成不可感知的扰动是一个挑战。
4 方法论
我们假设渲染器R是已知的(白盒)并且输入3D物体S的网格表示是可微分的。有了可微分的渲染器,我们就可以基于梯度优化的算法以端到端的方式来生成网格扰动。
4.1 优化目标
针对3D对抗物体$S^{adv}$的优化目标如下
在该公式中,$L_{adv}$是欺骗模型g去预测指定目标y’的对抗损失。$L_{preceptual}$是保证对抗网格感知自然的损失。
4.1.1 对抗损失
对于分类器模型,输出通常是目标类别的概率分布,因此损失函数可以设计成以下形式:
其中y’是目标标签的独热编码
对于目标检测器,攻击目标是让物理从目标检测器下消失。因此采用以下损失函数
其中Z的含义是YOLO-V3会将输入图像分割成ZXZ个不同的网格单元。对于每个网格单元,YOLO-V3都会预测边界框B的位置和标签置信度。对于每个边界框,它会生成5个值(4个用于坐标,1个是目标得分)。H函数表示在给定输入$I^{adv}$到模型g中,在网格单元z的边界框b中目标类别的y’的概率表示。
4.1.2 感知损失
为了保持对抗网格的真实性,我们利用类似于total variation损失的拉普拉斯损失作为我们的损失:
$I_i$是图像中第i个像素的RGB向量(1x3向量?),N(i)表示像素i的4连通度。
然而,对于形状扰动,对顶点的修改可能会引入不想要的网格拓扑变化。因此,我们对顶点的位置使用了平滑,使得邻域顶点有相同的平滑流。我们通过将平滑损失拓展到3维顶点流,以拉普拉斯损失的形式
其中$\Delta v_i=v^{adv}_i-v_i$是在原始网格中从原始位置i到adv的位移。N(i)表示由网格三角形定义的vi的连通区域。
5 黑盒渲染器的可转移性
作者认为由meshAdv生成的对抗网格的迁移性非常关键,因为这样可以避免在真实渲染器R‘中大量的计算,并且仍能生成$S^{adv}$
从以下两个角度分析可转移性
- 控制渲染参数
在黑盒攻击前,首先在相同渲染配置下测试生成的“对抗网格”,仅使用真实不可微分的渲染器R’替代可微分的R。换句话说,当$I^{adv}=R(S^{adv};P,L)$可以如期的欺骗目标模型g时,作者想看看$I^{‘adv}=R^{’}(S^{adv};P,L)$是否仍然可以欺骗模型g。
- 未知渲染参数
在该场景中,作者想要使用meshAdv来攻击固定的、未知渲染参数的不可微分系统。实际上,我们可以得到真实渲染器的网格S和它的maskM。由于复杂的条件,直接转换可能无法工作:因此提出了一下步骤:
6 实验
6.1 实验设置
威胁模型:
- 分类器:在ImageNet上预训练的DenseNet和Inception-v3
- 检测器:在COCO上训练的YOVO-v3
网格:在PASCAL3D中处理CAD模型,使用MeshLab的正则化网格采样来增加三角密度。
人类评估指标:AMT
6.2 实验结果
7 结论
优点:
- 使用神经渲染器来使整个3D物体到渲染成2D是可微分的。
- 提出了将2D的拉普拉斯4连通度的平滑损失扩展到3D
- 提出了对3D物体的形状进行扰动来欺骗分类器等
- 实验丰富
- 在图像中放置3D物体来隐藏图像中的其他目标(物体也是没法被检测到的 )
缺点:
- 扰动确实不明显,但是真的能欺骗分类器或目标检测器吗?