识别|避免自动驾驶事故,CV领域如何检测物理攻击?(11)


2.2 对图像物理对抗攻击的防御
2.2.1 图像场景中的防御过程
主要激活模式定位 。 对于图像物理对抗性攻击的防御 , 主要依赖于输入模式层面的输语义不一致 。 因此 , 作者采用 CNN 激活可视化方法—类别激活映射(Class Activation Mapping , CAM)来定位输入图像的主要激活源 [8] 。 令 A_k(x, y) 表示在空间位置 (x, y) 的最后一个卷积层的第 k 个激活值 。 我们可以计算出最后一个卷积层中空间位置 (x, y) 的所有激活的总和 , 即:
识别|避免自动驾驶事故,CV领域如何检测物理攻击?
文章图片

其中 , K 是最后一个卷积层中激活的总数 。 A_T(x, y)的值越大 , 表明输入图像中相应空间位置 (x, y) 的激活源对分类结果越重要 。
不一致推导 。 根据初步分析 , 输入的对抗性补丁比自然输入的语义模式包含更多的高频信息 。 因此 , 作者用一系列的变换来转换这些 patterns , 如图 6 所示 。 经过二维快速傅里叶变换(2D-FFT)和二进制转换 , 我们可以观察到对抗性输入和语义合成输入之间的显著差异 。
识别|避免自动驾驶事故,CV领域如何检测物理攻击?
文章图片

图 6. 二维快速傅里叶变换后的结果
作者将 S(I_pra, I_ori)替换为 Jaccard 相似性系数(Jaccard Similarity Coefficient , JSC) , 并提出如下图像不一致性指标:
识别|避免自动驾驶事故,CV领域如何检测物理攻击?
文章图片

其中 , I_exp 是具有预测类别的合成语义模式 , P_pra ∩ P_exp 为 P_pra 和 P_exp 的像素值都等于 1 的像素数 。 基于上述不一致性指标 , 作者提出了具体的防御方法 , 包括自我验证和图像恢复两个阶段 。 整个过程在图 7 中描述 。
识别|避免自动驾驶事故,CV领域如何检测物理攻击?
文章图片

图 7. 对抗性补丁攻击防御
检测的自我验证 。 在自我验证阶段 , 应用 CAM 来定位每个输入图像中最大模型激活的源头位置 。 然后对图像进行裁剪 , 以获得具有最大激活度的 pattern 。 在语义测试期间 , 计算 I_pra 和 I_exp 之间的不一致性 。 如果该不一致性指标高于预定义的阈值 , 我们认为检测到了一个对抗性输入 。
图像的数据恢复 。 检测到对抗性补丁后 , 通过直接从原始输入数据中删除补丁的方式来进行图像数据恢复 。 在该案例中 , 为了确保轻量级的计算工作量 , 作者利用最近邻插值 --- 一种简单而有效的图像插值技术来修复图像并消除攻击效果 。 具体来说 , 对于对抗性补丁中的每个像素 , 利用该像素周围八个像素的平均值取代该像素 。 插值处理后 , 将恢复的图像反馈给 CNN , 再次进行预测 。 通过以上步骤 , 我们可以在 CNN 推理过程中保护图像的物理对抗性攻击 。

推荐阅读