第五章 · 不同视觉任务在对抗攻击下的脆弱性分析

(分类 / 检测 / 分割 / OCR / 人脸识别)

深度学习模型在不同任务下的结构差异极大,因此它们在面对对抗攻击时会表现出完全不同的脆弱性。本章从工程和数学角度分析五大主流视觉任务:

  • 图像分类(Image Classification)
  • 目标检测(Object Detection)
  • 语义分割(Semantic Segmentation)
  • OCR(Scene Text Recognition)
  • 人脸识别(Face Recognition)

并解释为什么同样的对抗扰动,在不同任务上会产生截然不同的攻击效果。


1. 图像分类:最简单也最脆弱的任务

图像分类模型通常输出一个 logits 向量:

[ f(x) \in \mathbb{R}^K ]

攻击目标很直接:

[ \arg\max f(x+\delta) \ne y ]

由于分类模型结构简单、端到端可微,因此:

  • 梯度容易获取
  • 决策边界密度高
  • 小扰动即可穿透边界

因此分类是:

所有任务中最容易攻击成功的任务。

典型现象:

  • FGSM 就能让模型 50%+ 错误
  • PGD/CW 几乎必定成功
  • 扰动通常肉眼难以察觉

分类任务的攻击可以认为是基础样例,但难度也最低。


2. 目标检测:多任务联合导致复杂脆弱性

目标检测模型的输出包括:

  • 分类 logits
  • 边界框回归(bbox regression)
  • NMS(非最大抑制)
  • 多目标候选框的后处理

其前向传播结构:

[ f(x) = { (b_i, c_i) }_{i=1}^N ]

攻击目标可能是:

  1. 干扰分类
  2. 干扰位置回归
  3. 干扰 NMS 机制
  4. 让关键目标消失
  5. 让不存在的目标出现

这使得目标检测具有多种脆弱性。

常见攻击效果:

  • “让行人消失”:人仍在图像中,检测框却突然消失
  • “目标偏移”:bbox 显著偏离真实物体
  • “误检”:出现大量错误框
  • “大类错分”:例如把动物都识别成交通工具

为什么如此容易受到攻击?

因为:

检测模型的误差是多层叠加的,攻击者只需破坏链条中任何一环即可。

尤其是 bbox regression 对扰动极敏感。


3. 语义分割:高维像素级预测导致整体崩溃风险

语义分割模型为每个像素输出一个 K 类的 logits:

[ f(x) \in \mathbb{R}^{H \times W \times K} ]

攻击目标:

[ \arg\max f(x+\delta) \ne \arg\max f(x) ]

这是一个 数十万维的预测问题
因此攻击空间巨大、脆弱性高。

典型现象:

  • 对抗扰动会使整张图的分割结果错乱
  • 边缘区域完全崩溃
  • 大块区域被错误分类

例如在自动驾驶中:

  • 路面 → 天空
  • 行人 → 背景
  • 路边界完全错乱

这是自动驾驶鲁棒性研究最关键的部分,因为分割的错误可能导致真实车辆决策错误。

为什么分割特别脆弱?

因为:

  1. 局部错误会显著传播(spatial propagation)
  2. 上采样/下采样结构对噪声敏感
  3. skip-connection 让扰动进入多个分辨率层

因此分割模型的安全风险被认为比分类更高。


4. OCR:CTC 结构的特殊脆弱性

OCR(场景文字识别)通常使用:

  • CNN + RNN/Transformer
  • CTC(Connectionist Temporal Classification)损失

CTC loss 的结构复杂:

[ P(label|x) = \sum_{alignments} P(alignment|x) ]

但它有一个天然弱点:

小扰动可能导致序列对齐方式突然改变。

因此 OCR 在攻击下会表现为:

  • 字符变化(1 个字符变错)
  • 整个单词解读错误
  • CTC 输出对齐错位
  • 整段预测坍塌

例如原图是:

TOTAL 120

对抗扰动后:

T0TAL 720

或者更危险的:

TOTAL 120 → TOTAL 0

在金融票据、发票、合同场景中,这几乎是致命的。

此外,OCR 的输入往往是高梯度区域(边缘、纹理),更容易受扰动影响。


5. 人脸识别:embedding 空间攻击的高度隐蔽性

人脸识别模型通常不做分类,而是输出 embedding:

[ e = f(x) \in \mathbb{R}^{d} ]

判断是否同一人的方式:

[ \text{cos}(e_1, e_2) > \tau \Rightarrow \text{same} ]

因此攻击者目标是:

  • 让 embedding 接近某个特定人的 embedding
  • 或让同一个人的 embedding 彼此远离

数学上:

[ f(x+\delta) \approx f(x_{target}) ]

这使得人脸识别攻击相比分类:

  • 成功更隐蔽
  • 扰动更自然
  • 更容易绕过门禁系统

典型攻击效果:

  • “冒名成功”:不是本人却被误认为本人
  • “本人验证失败”:本人无法通过验证
  • “对抗补丁攻击”:通过贴纸、帽子、眼镜欺骗模型
  • “数字伪装攻击”:轻微噪声即可改变 embedding

人脸识别攻击是所有任务中真正的高风险领域。


6. 跨任务对抗攻击强度比较

任务 攻击难度 成功率 隐蔽性 风险
图像分类 最低 极高 中等
检测 中等
分割 极高
OCR 中等偏高 极高(金融/安全领域)
人脸识别 最高隐蔽性 极高 极高

总体规律:

端到端、连续输出的任务更容易被攻击(OCR、Face、Seg)。
结构复杂、后处理链条多的任务攻击效果更“灾难性”(检测、分割)。


7. 为什么不同任务表现不同?(根本原因总结)

以下是导致不同任务鲁棒性差异的核心原因:

1. 输出结构不同

  • 分类:1 个向量
  • 分割:数十万 logits
  • 检测:bbox + 分类 + NMS 后处理
  • OCR:序列预测
  • 人脸:embedding 空间匹配

2. 损失函数复杂性不同

  • CTC(OCR)最脆弱
  • margin-based(ArcFace)对微扰动敏感
  • IoU-based 回归难度高

3. 模型架构不同

  • encoder-decoder(分割)更脆弱
  • sequence model(OCR)对对齐敏感
  • metric embedding(Face)容易被对齐偏移误导

4. 决策边界形状不同

  • 分类边界密集
  • 分割多维边界复杂
  • Face embedding 的 margin 区域狭窄
  • OCR 序列空间离散跳变

不同任务在对抗空间中的几何结构完全不同,导致脆弱性差异显著。


8. 总结

本章从五大视觉任务的角度分析了对抗攻击的特性:

  • 分类:最容易攻击
  • 检测:多任务结构导致链式脆弱性
  • 分割:像素级预测导致全局坍塌
  • OCR:CTC 对齐结构极易被破坏
  • 人脸识别:embedding 空间攻击高度隐蔽且危险

理解这些差异,有助于后续设计:

  • 更可靠的攻击方法
  • 更合理的鲁棒性指标
  • 更有针对性的防御策略