在非洲草原的纪录片里,你常会看到这样一幕:一只变色龙趴在褐色的树枝上,远处的猛禽盘旋了好几圈,却始终没有发现它。变色龙没有逃跑,也没有躲进树洞,它只是把皮肤调成了树皮的颜色。真正高明的隐身,从来不是让自己消失,而是让天敌的眼睛“看不见”。对抗T恤,就是人工智能世界里的这件“变色龙皮肤”——只不过这次要骗过的,是摄像头背后AI视觉系统的眼睛。 研究者在一件普通T恤上打印出精心计算的彩色印花,人穿上它,在AI摄像头前走过,系统就“看不见”这个人了——检测框消失,或者把他误认成别的物体。这不是魔法,而是利用了深度学习模型在物理世界中的“视觉盲区”。本文将从基本概念讲起,逐步拆解核心原理、数字仿真、物理约束、攻击流程、评估指标和防御对策,让你像一位经验丰富的“伪装大师”一样,系统掌握这一物理对抗攻击的完整技术栈。
掌握对抗T恤,你将理解AI视觉系统在物理世界的软肋,成为能“攻”能“守”的AI安全工程师——这正是大模型时代最稀缺的能力之一。
目录
可视化演示
动态演示对抗T恤物理攻击的核心机制,通过入门/进阶/实战/优化四种模式展示关键概念与交互流程。
本节配有交互动效(进入视口后自动加载,约 3KB)。
对抗T恤物理攻击:对抗T恤 对抗T恤的基本概念与攻击目标 对抗图案的优化生成原理 核心机制可视化 对抗T恤物理攻击整体架构与关键组件
1. 基本概念:AI天敌眼皮底下的隐形衣
在非洲草原的纪录片里,你常会看到这样一幕:一只变色龙趴在褐色的树枝上,远处的猛禽盘旋了好几圈,却始终没有发现它。变色龙没有逃跑,也没有躲进树洞,它只是把皮肤调成了树皮的颜色。真正高明的隐身,从来不是让自己消失,而是让天敌的眼睛“看不见”。对抗T恤,就是人工智能世界里的这件“变色龙皮肤”——只不过这次要骗过的,是摄像头背后AI视觉系统的眼睛。
当你穿着一件印满彩色条纹的普通T恤走在街头,AI摄像头依然能轻松地把你框出来,标记为“人”。但如果这件T恤上的图案,是研究者用算法逐像素“调制”出来的呢?结果会截然不同:检测器开始犹豫、出错,甚至完全不输出“人”这个类别。这种特制的T恤,就是对抗T恤(Adversarial T-shirt),属于物理对抗攻击(Physical Adversarial Attack)的一个经典代表。
所谓物理对抗攻击,是把数字世界里的对抗样本搬到真实世界中。数字对抗样本只在屏幕上修改像素,而物理攻击必须熬过摄像头传感器、光线、角度、打印工艺等层层考验。对抗T恤的攻击目标通常是实时目标检测器,例如YOLO(You Only Look Once,一种主流的目标检测算法,能在视频流里实时框出每个物体)。攻击者不需要携带任何电子设备,只要穿上这件衣服,就能让下游的报警、跟踪、检索系统在关键时刻“漏报”。
就像变色龙的伪装并非天生完美,而是经过千百万年进化打磨出来的;对抗T恤的图案也是一轮轮“进化”(迭代优化)的产物。接下来,我们一层层拆开这件“隐身衣”的制造秘密。
2. 核心原理:为什么一块印花能骗过AI的眼睛
变色龙为什么能骗过猛禽?因为它知道猛禽的视觉系统对什么敏感——轮廓、动作、颜色对比。它调色的时候,是照着天敌的视觉弱点来调的,而不是照着自己的审美。对抗T恤的图案也一样,它不是美术设计,而是照着AI检测器的弱点“算”出来的。
那AI检测器的弱点到底是什么?深度学习模型在高维空间里学到的决策边界,远没有我们想象中牢固。它像一张绷紧的渔网——在绝大多数“正常”图像上表现完美,但只要在特定方向上轻轻一推,就能让一条鱼从网眼里滑过去。对抗样本的成因,正是模型对输入的“线性叠加”过分敏感:对图像施加人眼几乎察觉不到的微小扰动,就足以让网络输出彻底改变。
攻击者把“让检测器认不出人”翻译成一个优化问题:寻找一块扰动图案 δ,叠加上去之后,让“人”类别的置信度降到最低。这就是白盒攻击的优化思想——攻击者知道模型参数,可以反向传播梯度,像拿到考卷答案一样精准作答。按目标不同,又分为无目标攻击(只要检测不到人就行)和有目标攻击(必须把人误认成某个指定类别,比如“长颈鹿”)。
每一个像素都是变色龙皮肤上的一个鳞片,它们并不各自为战,而是共同织成一张骗过天敌眼睛的网。理解了“鳞片”为什么能骗人,下一步就要看这些鳞片如何在千变万化的现实中保持有效。
- max 最大化整体目标是找一块最优的扰动图案,让损失值尽可能大——损失越大,说明检测器错得越离谱。
- 扰动图案 δ这是我们要优化出来的“T恤印花”,每个像素都是一个可调整的变量,它被加到人物图像 x 上。
- 检测器输出 f检测器看到贴了图案的行人图像后,输出的各类别置信度分数。
- 损失函数 L衡量预测与真实标签 y_person 之间的差距。差距越大,检测器越“认不出”这个人。
- 约束条件扰动不能无限大,其无穷范数要小于 ε,对应现实里“T恤图案要能在物理世界打印出来”。
3. 数字仿真:让变色龙在虚拟世界先调好色
变色龙学伪装,不会真的跑到天敌面前试错。它的大脑里有一套“排练”机制:先在各种想象的背景里模拟可能的观察视角,再决定用什么颜色。研究者的“排练室”,就是数字仿真系统——在把图案印上布料之前,先在虚拟世界里反复验证效果。
现实世界充满不确定性:人离摄像头是2米还是5米?侧身45度还是正对镜头?晴天直射还是阴天散射?如果图案只对某一个角度、某一种距离有效,一到实战就会原形毕露。试想,变色龙只在某一根树枝上隐形,换个树枝就暴露,那它早就被天敌吃掉了。
EOT(Expectation over Transformation,变换期望)正是解决这个问题的核心思想。它的做法很朴素:每次优化迭代时,从一组预设的物理变换中随机采样——随机改变旋转角度、缩放尺度、水平偏移、亮度扰动——把当前图案“渲染”成大量虚拟观测图,然后在这些观测图上计算梯度的平均值。这样一来,图案不再针对某个单一视角过拟合,而是在“平均意义”上对所有常见视角都有效。
经过千百次“排练”,这件变色龙皮肤不再是某一根树枝的专属伪装,而是能在各种“树枝”上隐身的通用皮肤。但排练终究是在虚拟世界,当真要把它印到布料上时,新的麻烦才刚刚开始。
- 期望 E对一批随机变换结果取平均值,代表“在各种情况下平均表现如何”。
- 变换采样 t从变换分布 T 中随机抽取一个具体的变换,比如“左转30度、距离3米、光照偏暗”。
- 变换后的图像把扰动图案叠加到人物图像上,再施加这次采样到的物理变换,得到检测器真正看到的画面。
- 整体优化目标寻找一个图案,让它在所有变换下的平均“人”类损失最大,即无论你怎么走位、光线怎么变,AI 都认不出你。
4. 物理约束:不是每个颜色都能印上T恤
变色龙再厉害,色素细胞种类也有限——它调不出纯正的荧光色,皮肤上的纹理也并非完美的平面。同样,对抗T恤的设计师在数字世界里可以为所欲为,但现实世界有它冷酷的规矩。
数字世界里的像素值是0到1之间的任意实数,但现实世界的印刷是另一回事:显示器上的鲜艳红色,打印机用CMYK墨水印出来往往发暗发灰;T恤是柔软的布料,穿在身上一晃就会产生褶皱;图案还会随身体曲线发生柔性形变,原本笔直的线条会弯成波浪。如果优化出来的图案是密密麻麻的噪点,一旦布料皱起来,这些噪点就会彻底错位,攻击效果大打折扣。
于是研究者为优化目标加上了两道“物理枷锁”。第一道是NPS(Non-Printability Score,不可打印分数),它衡量图案上每个颜色距离打印机可打印色域有多远,优化中不断把这个距离压小,确保印出来的颜色和设计稿尽量一致。第二道是TV(Total Variation,总变差)约束,它惩罚相邻像素之间的剧烈跳变,鼓励图案在局部保持平滑——平滑的图案在布料褶皱、拉伸时不容易失真。最终的优化目标,是攻击损失加上这两个罚项的组合:
这就像变色龙必须在“有限的色素”和“皮肤褶皱”之间找到最佳平衡——伪装不是天马行空的油画,而是戴着镣铐跳舞。当图案终于把攻击性、平滑性、可打印性都调到位,就可以进入真正的“制衣车间”了。
- 攻击损失 L_adv核心目标——让检测器认不出“人”,损失越大攻击越强。
- TV平滑罚项把相邻像素的差异惩罚掉,让图案像水彩一样过渡自然,而不是像电视雪花一样杂乱。
- NPS可打印罚项把每个像素的颜色往打印机色域里“拽”,拽得越近越好。
- 权重系数 λ控制两项约束的强弱。λ 越大,对应约束越严格,图案越“物理可行”。
5. 攻击流程:从设计图纸到穿上街头
有了调色配方,接下来就是完整的制衣流程:选布料、调色、印染、试穿、野外测试。一次标准的对抗T恤攻击,大致分五步走。
第一步,选定目标模型与场景。你要先搞清楚攻击对象是谁——是园区入口的YOLOv5行人检测器,还是自动驾驶汽车上的人体识别模块?场景是室内还是室外、摄像头安装高度是多少、人通常距离摄像头多远?这些参数直接决定后面 EOT 仿真里的变换分布设定。第二步,初始化图案。可以随机生成一块噪声图,也可以用一张底图作为“未完成的皮肤”,让优化算法从这块“素布”开始染色。
第三步,进入最耗计算资源的环节:EOT 迭代优化。在前文提到的数字仿真室里,算法反复执行“采样变换 → 渲染图像 → 反向传播 → 更新图案”循环,通常要跑几百到上千轮,直到攻击损失收敛。第四步,打印与色彩校正。把优化好的图像送到印染厂,打印到T恤上之后,还要用色卡比对实物颜色和屏幕颜色,必要时做一次颜色映射校正。第五步,实地穿戴测试。穿上T恤在真实摄像头前来回走动,记录检测器输出的变化。只要有一次失败,就要带着失败样本回到第三步,调整损失权重或增加变换种类,重新优化。
整条流程和变色龙“试色—晒皮—再试色”的求偶仪式一样,是个不断逼近完美伪装的闭环。而在工程实战里,最花时间的往往是第五步的“反复试穿”——因为你永远不知道现实世界会给你出什么新难题。
6. 评估指标:怎么衡量一件隐身衣是否合格
一件隐身衣合不合格,不能只看它在自家客厅镜子前的效果。要判断伪装是否合格,得在不同树枝、不同天气下反复测试,天敌每次都看不见,才算过关。评估对抗T恤,同样不能靠“感觉”,而要依赖一套量化的指标。
最核心的指标是攻击成功率(ASR,Attack Success Rate):在 N 次独立测试中,检测器没有把穿T恤的人识别为“人”的比例。测试时通常让测试者以不同角度、不同距离、不同姿势走过摄像头,每走过一次算一次独立测试。ASR 越高,说明这件“隐身衣”越可靠。
除了 ASR,还要看漏检率和误检率——漏检是画面里明明有人,却一个检测框都没有;误检是画面里没这个人,却把他框成了别的物体,或者框的位置完全偏离。另外,置信度衰减(攻击前后“人”类别置信度下降多少)能更细粒度地反映攻击强度,适合用来比较不同图案的“杀伤力”。就像猎人们用“多少次捕猎中成功几次”来评估一只变色龙的伪装水平,工程师用这些指标给攻防双方打分。
- 平均符号把 N 次测试的结果加在一起再除以 N,得到平均成功率。
- 指示函数 1[·]括号里的条件成立时取 1,不成立时取 0——这是一台“是/否”记录器。
- “没认出人”条件检测器输出类别 f(x_i) 不等于“人”类别 y_person,说明这次攻击成功了。
7. 防御对策:天敌也在进化
天敌不会永远上当。猛禽在进化,猎人在学习识别那些“不该出现在树上的树枝颜色”。面对对抗T恤这类物理攻击,AI系统也有自己的“进化”路线。
最有名的方法是对抗训练(Adversarial Training):在训练阶段,不断生成对抗样本并把它们喂给模型,让模型在“被攻击”的过程中把决策边界磨得更结实。这相当于让变色龙的天敌从小就见惯了各种伪装,慢慢练出火眼金睛。
除了对抗训练,还有三类常用手段。其一是输入预处理:对摄像头画面做 JPEG 压缩、模糊、去噪,先把图案中的高频扰动“洗掉”一部分——很多对抗图案依赖人眼看不到的高频细节,一压缩就失效。其二是多视角交叉验证:用不同机位的摄像头互相印证,单视角能被一件T恤骗过,多个视角同时被骗的难度会陡增。其三是人工复核兜底:在高风险场景(如金库门口、边境检查站)保留人工盯屏,把 AI 的漏检当成异常事件处理。
对抗与防御就像变色龙与猛禽的军备竞赛:这边调出新花色,那边进化出新目光。作为 AI 安全工程师,你要同时身兼“变色龙”和“猛禽”两种视角——既要会制造隐身衣,也要会识破它。
- min θ对模型参数 θ 进行优化,目标是让最终的期望损失最小。
- 内层 max站在攻击者角度,在扰动受限的范围内,找出让损失最大的那一个扰动——模拟最凶狠的一击。
- 期望 E对所有训练样本的平均效果,保证模型在全局上稳健,而不是只防住某一类攻击。
AI 应用场景
场景一:安防系统红队测试
阶段:安全评估与红队攻防
解决的问题:安防厂商在部署人员检测摄像头前,如果只做数字对抗样本测试,无法发现物理世界漏洞。传统渗透测试关注网络和软件,很少覆盖“AI 视觉被一件衣服欺骗”这类物理层风险。用对抗T恤模拟真实攻击,可以在可控环境中评估系统在“刻意规避”场景下的漏检率,提前暴露风险。
具体案例:某智慧园区在部署周界 AI 监控时,安全团队打印了 3 版对抗T恤,安排测试员在园区门口往返走动。结果主摄像头对穿上T恤的测试员漏检率高达 60% 以上。团队据此在重点区域增设双机位交叉验证,将真实攻击成功率压到 5% 以下。这次红队测试直接推动了安防项目的硬件选型调整。
场景二:模型上线前的物理鲁棒性验收
阶段:模型评测与调优
解决的问题:算法工程师想知道模型在“有人故意干扰”时表现如何,传统测试集无法覆盖这种对抗性场景。对抗T恤提供了一种标准化的“实战考试题”,帮助团队在模型上线前发现鲁棒性短板。
具体案例:某自动驾驶团队在路测前,用对抗T恤让真人站在路边测试行人识别模块。他们发现部分场景下,车辆将穿对抗T恤的行人误判为“静态障碍物”,导致决策逻辑进入减速等待分支而非紧急制动,存在安全隐患。团队据此补充了对抗训练数据和物理世界负样本,显著提升了感知模块的稳定性。
场景三:个人隐私保护(双刃剑)
阶段:AI 应用伦理与治理
解决的问题:名人、举报人、特殊岗位人员不希望被公共摄像头自动识别和跟踪。对抗T恤可以作为“可穿戴隐私屏蔽器”,帮助个人摆脱无处不在的行人检测、人脸识别系统的追踪。但这项技术同样可能被滥用,带来安全治理难题。
具体案例:某记者在报道敏感事件外出时穿着对抗T恤,避免被商户摄像头的人脸/行人识别系统自动记录行动轨迹。相关监管机构正在讨论此类“物理隐私工具”的合法边界——一方面保护公民隐私,另一方面也要防止被用于规避执法。安全研究员在其中扮演技术顾问角色,帮助政策制定者理解攻击原理与合理使用范围。
Python 演示
import numpy as np def fake_detector(img): """模拟行人检测器:图像亮度均值越接近0.6,行人置信度越高""" score = 1.0 - abs(img.mean() - 0.6) * 2.0 return float(np.clip(score, 0.0, 1.0)) def make_person(shirt_pattern): """合成一个穿T恤的行人:头部与腿部固定,T恤区域由图案填充""" img = np.zeros((32, 32)) img[4:10, 12:20] = 0.8 # 头部 img[10:32, 8:24] = shirt_pattern # 身体(T恤区域) img[24:30, 10:14] = 0.3 # 左腿 img[24:30, 18:22] = 0.3 # 右腿 return img def perturb(pattern, angle_deg, offset): """模拟不同观察角度与偏移下的图案变化(EOT的简化变换)""" rows, cols = pattern.shape shifted = np.zeros_like(pattern) dy = int(angle_deg / 45.0 * rows) % rows dx = int(offset * cols / 8.0) % cols for i in range(rows): for j in range(cols): shifted[(i + dy) % rows, (j + dx) % cols] = pattern[i, j] return shifted def eot_attack(steps=25, batch=4, lr=0.03): """EOT迭代优化:让检测器对穿T恤行人的置信度降到最低""" rng = np.random.default_rng(42) pattern = rng.random((22, 16)) for step in range(steps): grad = np.zeros_like(pattern) loss_sum = 0.0 for _ in range(batch): angle = rng.uniform(-30.0, 30.0) offset = rng.uniform(-4.0, 4.0) obs = perturb(pattern, angle, offset) score = fake_detector(make_person(obs)) loss_sum += score for i in range(pattern.shape[0]): for j in range(pattern.shape[1]): orig = pattern[i, j] pattern[i, j] = min(1.0, orig + 1e-3) obs_hi = perturb(pattern, angle, offset) score_hi = fake_detector(make_person(obs_hi)) pattern[i, j] = orig grad[i, j] += (score_hi - score) / 1e-3 pattern = pattern - lr * grad / batch pattern = np.clip(pattern, 0.0, 1.0) if step % 5 == 0: print("step %2d, avg conf = %.3f" % (step, loss_sum / batch)) return pattern if __name__ == "__main__": adversarial_pattern = eot_attack() final_conf = fake_detector(make_person(adversarial_pattern)) plain_conf = fake_detector(make_person(np.full((22, 16), 0.5))) print("plain shirt conf = %.3f" % plain_conf) print("adversarial shirt conf = %.3f" % final_conf) if final_conf < plain_conf * 0.5: print("attack success: detector can't see the person") else: print("attack failed: need more iterations")
score = 1.0 - abs(img.mean() - 0.6) * 2.0模拟检测器给“行人”的置信度打分:图像平均亮度越接近 0.6,AI 越确信这是一个人img[10:32, 8:24] = shirt_pattern把 T 恤图案贴到行人的身体区域,相当于“穿”上对抗T恤shifted[(i + dy) % rows, (j + dx) % cols] = pattern[i, j]循环位移模拟不同观察角度下看到的图案,是 EOT 变换的简化版angle = rng.uniform(-30.0, 30.0)EOT 的核心:每次迭代随机采样不同的观察角度,图案要对所有角度平均有效grad[i, j] += (score_hi - score) / 1e-3数值梯度:微调一个像素,观察置信度变化多大,从而知道该往哪个方向改pattern = pattern - lr * grad / batch沿负梯度方向更新图案,一步步把置信度压低pattern = np.clip(pattern, 0.0, 1.0)把像素值限制在 0~1 的合法范围,对应“打印机可印出的颜色范围”
常见误区
误区我觉得随便找一件花里胡哨的T恤穿上,AI摄像头就识别不出来了,跟动物园斑马用条纹迷惑狮子一个道理。
正解普通印花只能迷惑人眼,而对抗T恤的图案是针对目标检测器的决策边界逐像素优化出来的。它相当于“量身定做”的伪装——T恤上的每一块色斑都在把 AI 的置信度往错误方向推。就像变色龙的颜色是根据天敌的视觉弱点调的,而不是随便长着好玩。
为何常见:因为讨论“AI识别不出的衣服”时,外界常拿迷彩、抽象涂鸦举例,让人误以为只要够“花哨”就能骗过 AI。
误区EOT在仿真里都验证过了,打印出来穿上去一定也能骗过摄像头,不用再浪费时间实测。
正解仿真永远只是“排练”。真实世界还有打印机色差、布料褶皱、环境光照变化、摄像头传感器差异等大量不可控因素。标准流程是打印后用实物实测,再根据失败案例回到仿真里微调,往往要来回好几轮。就像变色龙在室内镜子里调好的颜色,到了户外阳光下还要再调一次。
为何常见:因为数字世界里的攻击成功率可以逼近 100%,让人误以为物理世界也一样,忽略了“最后一公里”的物理误差。
误区我不知道检测器内部参数,就造不出对抗T恤,这种攻击只能发生在实验室里,现实中没人能做。
正解白盒攻击确实最直接,但黑盒同样可行:攻击者可以训练一个替代模型(surrogate model),在替代模型上优化图案,利用对抗样本的迁移性去攻击目标模型。现实中攻击者往往不知道部署的具体模型型号,却依然能成功构造出有效的对抗T恤。
为何常见:因为主流论文为便于研究大多假设白盒场景,让读者误以为白盒是必要条件,忽略了迁移攻击这个更现实的黑盒路径。
误区穿上这件T恤,我就真的从画面里消失了,监控录像里根本看不到我,跟穿了哈利波特的隐身斗篷一样。
正解对抗T恤骗的是“AI检测器”,不是摄像头本身。监控录像里人、衣服、图案都清清楚楚,但 AI 的检测框消失了——下游的报警、跟踪、检索系统因此不会触发。就像变色龙并没有真的消失,只是躲过了天敌的眼睛;如果旁边有一个人盯着屏幕看,照样能看到你。
为何常见:因为“隐身”这个词在传播中容易被简化成“视觉消失”,大家都忽略了“检测失效”与“物理不可见”之间的本质区别。
面试题
Q1. 对抗T恤攻击属于以下哪一类攻击?
- A.数字世界投毒攻击
- B.物理世界对抗攻击← 正确答案
- C.针对训练数据的后门攻击
- D.针对模型的成员推理攻击
答案:B。对抗T恤通过打印物理图案作用于真实摄像头的感知链路,属于物理世界对抗攻击。数字攻击只修改图像像素,后门攻击是污染训练数据,成员推理攻击则是隐私攻击,三者都与“穿衣服骗过检测器”无关。
Q2. EOT(期望变换)的主要作用是?
- A.让图案在不同变换下平均有效← 正确答案
- B.让模型训练速度更快
- C.减小T恤的打印成本
- D.增加攻击者的物理隐蔽性
答案:A。EOT 在优化时对角度、距离、光照等变换随机采样并求期望梯度,使图案对视角变化鲁棒。它不改变训练速度、不涉及打印成本,也不影响攻击者的物理隐蔽性——隐蔽性来自图案本身,而不是 EOT 这个方法。
Q3. NPS(不可打印分数)衡量的是?
- A.图案在布料上的美观程度
- B.颜色与可打印色域的距离← 正确答案
- C.检测器的置信度高低
- D.T恤布料的物理耐用性
答案:B。NPS 惩罚那些显示器能显示但打印机难以还原的颜色,保证优化出的图案打印后依然有效。美观程度、置信度、布料耐用性都不是 NPS 的定义范围。
Q4. 对抗T恤攻击成功的最直接表现是?
- A.摄像头硬件出现损坏
- B.检测器在行人位置不输出“人”框← 正确答案
- C.行人身上的图案发出强光
- D.监控网络的带宽被占满
答案:B。攻击目标是欺骗检测器,使它漏检或误检,输出层面表现为“人”检测框消失或偏移。摄像头硬件正常、图案无强光、网络无异常——这些都不是攻击成功的标志。
Q5. 对抗T恤图案需要满足 TV 平滑约束,主要原因是?
- A.让图案看起来更加美观
- B.布料褶皱会造成形变← 正确答案
- C.让打印机更节省墨水
- D.满足法律法规的要求
答案:B。TV 约束惩罚相邻像素的剧烈跳变。柔性布料在运动中会褶皱、拉伸,锯齿状剧烈突变的图案容易在形变后完全错位,而平滑图案在形变下依然能保持整体结构,鲁棒性更强。省墨、美观、合规都不是技术原因。
Q6. 下列哪项做法属于对抗训练?
- A.训练时加入对抗样本并最小化损失← 正确答案
- B.训练后在测试集上做验证
- C.增大模型参数量
- D.把检测器换成更大算力型号
答案:A。对抗训练的核心是 min-max 框架:内层生成最强对抗扰动,外层让模型在该扰动下损失最小。单纯增加参数、换算力、做验证都不涉及“用对抗样本增强鲁棒性”的机制。
Q7. 以下哪些是 EOT 中常见的图像变换?
- A.随机旋转与缩放← 正确答案
- B.随机光照变化← 正确答案
- C.随机平移与遮挡← 正确答案
- D.修改模型权重
答案:ABC。EOT 采样的是物理世界的观测变换——旋转、缩放、光照、平移、遮挡都在其列。修改模型权重是训练过程的行为,不属于“图像变换”的范畴。
Q8. 对抗T恤相比纯数字对抗样本,额外面临哪些挑战?
- A.打印机色域限制← 正确答案
- B.布料褶皱形变← 正确答案
- C.光照与视角多变← 正确答案
- D.无需优化即可生效
答案:ABC。物理攻击必须处理打印色差、柔性形变和复杂的自然环境。对抗T恤仍然需要精心优化才能生效,不存在“不优化就能用”的情况,所以 D 错误。
Q9. 常用的对抗T恤防御手段包括?
- A.对抗训练增强模型鲁棒性← 正确答案
- B.输入预处理如压缩模糊← 正确答案
- C.多角度摄像头交叉验证← 正确答案
- D.强行提高检测阈值到最高
答案:ABC。对抗训练、输入预处理、多视角验证都是有效防御。但把检测阈值提到最高会让所有检测全部失效,属于“掩耳盗铃”,不是可行的防御策略。
Q10. 黑盒场景下攻击者无法获取目标模型梯度,最合理的对抗T恤制作方式是?
- A.放弃攻击只做防御
- B.训练替代模型生成图案再迁移← 正确答案
- C.随机猜测一个图案打印
- D.直接给打印机发送修改指令
答案:B。黑盒攻击的标准做法是训练一个替代模型(surrogate),在替代模型上用白盒方式生成对抗图案,再利用对抗样本的跨模型迁移性攻击目标模型。随机猜测成功率极低,放弃攻击和给打印机发指令更不构成攻击方案。