【论文笔记】目标识别的物理对抗示例 Physical Adversarial Examples for Object Detectors

Sunday, December 3, 2023
本文共3012字
7分钟阅读时长

⚠️本文是作者P3troL1er原创,首发于https://peterliuzhi.top/posts/%E8%AE%BA%E6%96%87%E7%AC%94%E8%AE%B0/%E5%90%8E%E9%97%A8%E6%94%BB%E5%87%BB/%E8%AE%BA%E6%96%87%E7%AC%94%E8%AE%B0%E7%9B%AE%E6%A0%87%E8%AF%86%E5%88%AB%E7%9A%84%E7%89%A9%E7%90%86%E5%AF%B9%E6%8A%97%E7%A4%BA%E4%BE%8B-physical-adversarial-examples-for-object-detectors/。商业转载请联系作者获得授权,非商业转载请注明出处!

Do not wait; the time will never be ‘just right.’ Start where you stand, and work with whatever tools you may have at your command, and better tools will be found as you go along. — George Herbert

【论文笔记】目标识别的物理对抗示例 Physical Adversarial Examples for Object Detectors

深度神经网络(DNN)容易受到对抗性示例的攻击,这些攻击可以推广到物理领域,对物理对象产生扰动,从而在各种现实条件下欺骗图像分类器。

比如在自动驾驶领域,攻击者可以向停止标志添加对人类来说可忽略的扰动,并且使得嵌入在自主车辆中的 DNN 错误分类或忽略该标志。

目标识别模型难于攻击

  1. 检测器处理整个场景而不是单个局部对象
  2. 检测器不限于产生单个预测。相反,它们通常通过结合场景中对象的位置预测和这些对象的标记来标记场景中的每个识别对象。
  3. 对对象检测器的攻击需要考虑两种类型的预测(对象的存在/不存在和对象的性质),而对分类器的攻击仅关注于修改单个(假定存在的)对象的标签。

物理扰动的特殊性

传统的微小、不可见的扰动在直接以数字向量作为神经网络输入时,这种微小的扰动不会被破坏,但是,如果将其呈现在物理世界中,比如打印在纸上、打印成相片,这种微小的信息就会被破坏,无法实际地用于物理世界的对抗攻击。

现有的工作考虑构成图像的大部分并且其在图像中的相对位置变化很小的目标对象,而当在诸如行驶中的汽车的动态环境中执行对象检测时,场景中的多个对象的相对大小和位置可能急剧变化。

同时,很多对象检测器会将图像划分为多个网格区域,当图像的位置变化时,对象所处的网格也会急剧变化,因此,鲁棒的扰动必须同时适用于多个网格

两种提出的攻击方法

  • 消失攻击,使目标检测器检测不到一个对象
  • 创造攻击,使目标检测器检测到一个不存在的对象

物理扰动未来的问题

  • 推广到其他物理设备
  • 除了消失攻击与创造攻击之外的其他攻击
  • 推广到 segmentation 的网络(语义分割)

两大阵营的目标检测

  • R-CNN 等双阶段的目标检测模型
  • YOLO 等端到端单阶段目标检测模型

Robust Physical Perturbations(RP2)算法

参考:

攻击流程

  1. 得到没有对抗扰动的干净目标路标图
  2. 预处理路标图(维度等)将之作为分类器的输入
  3. 用攻击算法处理分类器和提取的路标图片
  4. 用映射函数在路标上输出相应的对抗扰动的物理位置
  5. 构建数字对抗扰动,并基于上面函数的输出将这个改动应用到物理目标中。

算法

RP2 算法是为了优化下面的目标函数:

文内图片

目标函数的第一项是由 Mx 掩蔽的扰动 δ 的 p 范数(具有缩放因子 λ)。掩模负责在空间上将扰动 δ 约束到目标物体的表面。

目标函数的第二项测量对抗扰动的可打印性(printability)。可打印性受两个因素影响:

  1. 扰动必须在现代打印机的有限色域上
  2. 数字的颜色(digital color)与真实打印的颜色有差别 文内图片

目标函数的最后一项是损失函数的值,J(·,·)在从 Xv 采样(受害者数据集)的所有图像上平均。受害者数据集由在各种物理条件下拍摄的对象的多个图像组成,所述物理条件例如视角、观看距离和照明的变化。Ti 是应用模拟受害对象 xi 的物理条件的数字变换的“对准函数”(为了保证物理对象在不同视角等的一致性)。例如,如果受害对象 xi 是“规范”目标对象的旋转版本,则扰动 Mx · δ 也应当被适当地旋转。fθ(·)是分类器网络的输出,y * 是对抗目标类。

作者提出的 RP2 扩展算法

与 RP2 的三个关键性差异

  1. 由于分类器和对象检测器的输出行为的差异,对对抗损失函数进行了修改
  2. 增加“对抗性扰动必须是鲁棒的”这个约束,并综合建模
  3. 引入一个平滑约束的目标,而不是使用 p 范数

损失函数的更改

相较于分类网络输出单一向量(表示图像是该类别的可能性),目标检测器输出一组边界框和给定某个置信度阈值的包含在该框内的最可能对象的可能性

对图像分类器的攻击通常利用该输出向量与对抗目标的 one-hot 表示之间的交叉熵损失(the cross-entropy loss between this output vector, and a one-hot representation of the adversarial target),但是这不适用于目标检测的复杂情况

消失攻击的损失函数

为了让对象被目标检测器忽视,对抗性扰动必须确保任何边界框中目标对象的可能性小于检测阈值,因此损失函数如下(与 RP2 中的损失函数对应):

文内图片

其中 fθ(x)表示对象检测器的输出(对于 YOLO v2,这是一个 19×19×425 张量)。P(·)是从该张量中提取对象类的概率的函数,在网格单元 s 和边界框 b 中具有标签 y(在我们的情况下,这是停止符号)。x 是包含我们扰动的目标对象的输入场景。

因此,如果停止符号出现在场景中,损失函数输出停止符号的最大概率。使用该损失函数,对手的目标是直接最小化该概率,直到其降到这个网络的检测阈值之下。

创造攻击的损失函数

掩模 Mx 被随机采样,使得对抗补丁被应用于场景中的任意位置。

文内图片

τ 是框置信度的阈值。

Pbox(s,b,fθ(x))仅表示框的概率,即,模型对框中包含任何物体的置信度。

P(s,b,y,fθ(x))表示分配给网格单元 s 的框 b 中的类别 y 的概率,也就是上面说的从 YOLO 输出张量中提取对象类的概率的函数

因此,如果框中越有可能有对象,那么 loss 就越大;如果分配给网格单元 s 的框 b 中的类别 y 的概率越大,loss 越大。因此,该 loss 函数表示,如果在一个地方,越不可能被检测出对象,且越不可能被提取出对象类,loss 就越小

新物理约束的综合表示

想要愚弄对象检测器,我们需要考虑的物理条件比分类器要多得多。对象检测器考虑到的上下文比分类器的更多,由于对象的位置和大小可以根据观看者的位置而变化很大,因此扰动必须考虑这些附加约束。

为了生成位置不变的物理对抗扰动,作者选择对两个环境条件进行综合建模:对象旋转(在 Z 平面)和位置(在 X-Y 平面)(基本上就是物理的三个维度),在优化的每个时期随机放置和旋转对象。

作者避免了像 RP2 那样使用不同的数据集来模拟物体的物理旋转,而是采用了一种合成的方法

全变分(total variation norm)的噪声平滑

参考:全变分图像去噪算法(TV)_Nirvana;的博客-CSDN 博客

由于 RP2 使用的 p 范数扰动平滑会导致像素化的扰动,而像素化会降低物理世界中扰动的成功率(尤其是当观看者和对象之间的距离增加时)。

使用全变分范数代替 p 范数,可以得到更平滑的扰动,从而增加攻击的有效范围

给定掩码 Mx 和噪声 δ,对抗扰动的总变差范数 Mx · δ 为:

文内图片

因此总的新目标函数是:

文内图片

实验结果

一共有两种掩码方式,一种是 poster 的,也就是对 STOP 标志全覆盖的;另一种是 sticker 的,也就是只对 STOP 标志做一些装饰的:

文内图片

对 YOLOv2 的白盒攻击

文内图片

对 Faster R-CNN 的黑盒攻击

文内图片

可以看到,Poster 的方式一般来说比 sticker 的成功率高,可能是因为更改率更高;同时不论是白盒攻击还是黑盒攻击,不论是 Poster 的还是 Sticker 的,在 Outdoors 的情况下成功率都大幅下降,这可能是因为在户外情况下的精度损失

未来方向

  1. 环境因素导致的精度损失从而造成成功率下降
  2. 对目标检测器的其他攻击方式
    1. 不更改其框而更改其类
    2. 生成对人类看起来无意义但由对象检测器检测和标记的另外的 2D 或甚至 3D 对象
    3. 以上两种都有数字化的攻击
  3. 语义分割的扩展(如何扩展当前的分类器和检测器的攻击技术,以创建分割网络的物理攻击)
  4. 对现实系统的影响(是否对基于现实的复杂情况下的目标检测系统有效)

关键是创建可以攻击最先进的对象检测器的算法