想象一下这个场景:你在高速上开着辅助驾驶,前方车辆突然"变出"一道 invisible 的光墙——不是激光雷达的波束,而是人眼完全看不见的红外光。你的车载摄像头毫无察觉,但背后的光流估计网络已经彻底晕了方向。这不是科幻, recently 发表在 arXiv 上的论文 Physically Real-time Infrared Attack against Optical Flow Estimation Networks 就展示了这样一套攻击方法。论文展示了两种 attack scenario:一种是在车尾粘贴红外灯阵列,在高速上逃避交通监控;另一种是小偷在珠宝展柜旁布置红外光源,欺骗安防摄像头。两种场景的共同点是——红外光对人眼完全不可见,但摄像头却能清晰捕捉。

上图展示了最典型的攻击场景:后车在车尾粘贴红外灯阵列,前车的 Capture Camera 正在拍摄。人眼看到的是正常的道路场景,但摄像头接收到的画面已经被红外扰动污染。光流估计网络会因此输出错误的运动矢量,导致 downstream 的障碍物检测和路径规划产生偏差。
为什么是光流估计?
自动驾驶的感知 pipeline 里,光流估计(Optical Flow Estimation)是个"幕后英雄"。它不直接识别障碍物,而是计算画面里每个像素怎么动,给 downstream 的障碍物检测、路径规划、SLAM 提供运动信息。RAFT、PWC-Net 这些模型是当前主流方案,在 KITTI、MPI Sintel 等 benchmark 上已经达到了接近人类的水平。
光流估计有个致命弱点:它依赖亮度恒定假设——相邻两帧里,同一个位置的像素亮度应该差不多。如果这个假设被打破,光流网络就会产生巨大的预测误差。研究人员发现,用红外灯照射摄像头,就能在物理世界里制造这种"亮度恒定"的破坏。
我在调试自动驾驶数据闭环时经常遇到类似问题:摄像头曝光突变、逆光、隧道出入口的光照跳变,都会让光流估计产生短暂失效。这篇论文 essentially 把这个现象武器化了——不是等光照自然跳变,而是主动用红外光制造跳变。以前我们把这些当 anomaly 来修,现在有人把它当 feature 来用了。
传统攻击为什么不行?
之前对自动驾驶传感器的攻击,大多停留在两个层面:
• 数字世界攻击:在图片上加扰动生成对抗样本(AE),然后打印出来贴在车上。问题在于打印分辨率、拍摄噪声、光照变化会让 AE 失效, digital-to-physical 的迁移率很低。你在屏幕上看起来效果很好的对抗噪声,打印出来贴到车身上,摄像头一拍,可能已经面目全非。学术界把这个问题叫做"打印-拍摄 gap"。
• 可见光攻击:用 LED 灯条或贴纸制造可见扰动。虽然能干扰模型,但司机、路人一眼就能看到,完全不符合攻击的隐蔽性要求。这种攻击更像是"把漏洞写在脸上",只能用于实验室演示,没有实际威胁。
这篇论文想解决的问题是:能不能在物理世界里,实时、无感地攻击光流估计网络?
核心思路:用红外光做"隐形拳套"
作者的 insight 很直接——既然摄像头在暗光下要靠红外补光工作,那大多数车载摄像头本来就没有红外滤光片。这意味着红外灯照射时,摄像头能接收到,但人眼看不见。
攻击流程分为两个阶段:
离线训练阶段:用遗传算法(Genetic Algorithm)预先计算大量对抗样本。遗传算法不断进化红外灯的亮灭模式,目标是让光流网络输出最大的预测误差。这个阶段不追求实时,只追求找到有效的扰动模式。作者设计了三种 loss 来引导优化:一是让光流估计的输出尽可能偏离真实值;二是让扰动在人眼看来足够 subtle;三是让扰动在不同光照条件下保持 robust。最终生成数百种灯光模式,每种对应不同的红外灯亮灭组合和亮度。
在线攻击阶段:把训练好的模式部署到硬件控制器上。当摄像头移动时,控制器实时调整红外灯的亮灭组合,动态生成对抗扰动。因为模式已经提前算好,所以实际部署时不需要重新计算,能做到实时攻击——这是和之前方法最大的区别。不需要 GPU 推理,不需要跑遗传算法,只需要一个能快速切换红外灯状态的硬件控制器。
这套系统的核心闭环是:遗传算法优化灯光模式 → 硬件控制器动态显示 → 摄像头拍摄两帧图像 → 光流网络预测运动 → 预测误差反馈给遗传算法作为适应度 → 下一轮优化。这是一个典型的 closed-loop optimization,但闭环的终点不是软件里的 loss,而是真实物理世界里的摄像头像素。这种"用物理反馈优化物理攻击"的思路,比纯数字仿真更贴近真实威胁。
上图展示了整个攻击系统的物理架构:遗传算法(GA)不断优化红外灯光扰动模式,通过硬件控制器实时驱动 LED 阵列;相机沿轨道运动时拍摄两帧图像,输入光流估计网络(OFEN),网络输出的预测 optical flow 又反过来作为遗传算法的适应度信号,形成完整的物理-算法闭环。
实验结果: invisible 但有效
作者搭建了物理实验平台:相机安装在轨道上移动,前方是可编程红外灯光阵列。测试了三种主流光流模型:RAFT、PWC-Net、RAFT-Ori。
关键发现:
1. 攻击确实 invisible 到人眼
实验测量的"平均不可感知性"(Average Imperceptibility)指标显示,红外扰动在人眼看来几乎不可察觉。在环境光从 0.1 到 1.0 的范围内,PWC-Net 和 RAFT 的不可感知性都保持在 0.95 以上,说明红外光的亮度调制很 subtle,不会引起警觉。即使你把红外灯放在车头,夜间司机也不会觉得"这灯怎么这么亮"。作者在论文里专门放了一张实验 setup 的照片,红外灯阵列亮着的时候,人眼看到的是一片漆黑——这正是攻击最可怕的地方。

上图展示了三种光流模型在不同环境光照下的"平均不可感知性"得分。可以看到,PWC-Net(蓝色虚线)在绝大多数光照条件下都保持了最高的不可感知性,说明其对抗扰动在人眼看来最为隐蔽。RAFT-Ori(紫色点线)得分最低,意味着同样的红外模式对它更有效——但也更容易被肉眼察觉。
2. 光流估计被严重干扰
尽管人眼看不见,光流网络的输出却受到了显著影响。在不同环境光照、不同运动速度、不同相机距离下,攻击都能让光流估计的误差大幅上升。尤其是对 RAFT-Ori(原始 RAFT),攻击效果最为明显,说明这种对抗模式对模型结构有 generalizability,不是只对某一特定版本有效。RAFT 的变体虽然鲁棒性稍好,但在红外扰动下依然出现了明显的性能 degradation。
3. 环境光越暗,攻击越有效
实验显示,在环境光强度较低时,红外扰动相对摄像头感光单元的占比更高,攻击效果更好。这反而符合实际场景——夜间驾驶、地下车库、隧道入口等弱光环境,正是光流估计和辅助驾驶最依赖传感器的时候。越需要光流的时候,光流越容易被干扰。作者测试了环境光从全黑到正常室内照明的范围,发现全黑条件下攻击效果最好,这完全符合直觉:红外光在可见光越弱的环境中越"显眼"。
4. 运动速度越快,攻击越稳定
当目标物体移动速度变化时,攻击的成功率保持 stable。这说明遗传算法学到的不是某个特定帧的 trick,而是一种通用的对抗模式,能适应不同的运动状态。无论是低速挪车还是高速巡航,红外扰动都能持续破坏光流估计。作者在论文里特意提到,他们测试了不同的运动速度,发现攻击效果没有明显下降——这意味着攻击者不需要精确预知被攻击车辆的速度。
调试工程师视角:这跟自动驾驶有什么关系?
我平时做的是自动驾驶系统的现场调试,看到这篇论文的第一反应是:光流估计在量产车上到底用在哪?
目前量产车上,光流估计主要用在两个地方:
视觉里程计(Visual Odometry):用摄像头推算车辆自身运动,辅助 GPS 失效时的定位。在隧道、城市峡谷、地下车库,GPS 信号差,车辆靠的就是视觉里程计"数走了多少步"。如果光流被干扰,里程计就会产生累积误差,导致车辆"以为自己走了 100 米,实际走了 80 米"。这种漂移在多传感器融合里会被 IMU 和轮速计部分纠正,但视觉 branch 的 corrupted 数据已经进入了系统。
动态障碍物检测:通过光流区分"自己在动"还是"周围物体在动",避免把移动的阴影当成障碍物,或者漏掉真正移动的车辆行人。如果光流估计失效,系统可能把正常行驶的车辆"看丢",或者在高速上误触发紧急制动。我在现场调试时遇到过类似但更 benign 的问题:隧道出入口的光照跳变会让光流估计短暂失效,导致视觉里程计跳变。当时以为是软件去饱和没做好,现在想来,如果有人在隧道口故意布置红外光源,理论上可以达到论文里描述的攻击效果。那次问题的根因是摄像头自动曝光来不及适应明暗交替,而红外攻击本质上是在做同一件事——只不过是用定向红外光制造局部跳变,而不是等待自然光照变化。
更值得警惕的是,论文里的攻击不需要接触车辆,只需要在道路旁放置红外灯阵列,或者更简单地——在路灯杆上安装红外补光模块。对于 already 部署的车型,不可能 overnight 给所有摄像头加红外滤光片。这意味着现有车辆的感知安全架构存在一个"看不见"的漏洞。我们现在的安全测试主要测的是"摄像头被蒙住""被贴贴纸"这种 visible 攻击,对于红外域的攻击几乎没有覆盖。这就像家里的门锁能防撬棍,但防不了无线电信号干扰——威胁不在于你看见什么,而在于你根本没在监测的波段。
如果从攻击者视角推演,最可行的场景其实是停车场。停车场环境封闭、车速低、摄像头密集、光照可控,而且攻击者可以提前部署红外阵列,不需要担心被交警发现。一旦光流估计被干扰,车辆的自动泊车系统就可能把障碍物位置算错,轻则蹭到邻车,重则撞到行人。这种攻击不需要远程黑客,不需要接入 CAN 总线,只需要一个预先放置的硬件装置。
为什么这个方法比数字攻击更危险?
数字对抗样本的核心问题是"域 gap"——你在电脑上生成的噪声,打印出来、拍进摄像头、经过 ISP 处理后,早就变形了。这篇论文绕过了这个 gap:
• 不生成数字 AE:直接在物理世界用红外灯光做扰动,省掉了 digital-to-physical 的转换环节。数字 AE 的打印分辨率损失、镜头畸变、色彩空间转换在这里全部不存在。
• 不依赖打印/投影:用动态 LED 阵列实时显示,避免了介质转换损失。LED 的每个灯珠都是可控的,精度远高于打印分辨率,而且可以实时调整,不需要预先生成静态图案。
• 实时反馈:遗传算法的适应度直接来自真实摄像头的输出,而不是模拟器里的指标。物理世界的噪声、畸变、ISP 处理全部包含在优化过程里,生成出来的扰动本身就是 robust 的。
这种"物理训练 + 物理部署"的范式,让攻击效果从 simulation 走向了 reality。作者也提到,这种思路可以扩展到其他传感器模态,比如毫米波雷达、激光雷达,只要找到对应的"不可见扰动载体"。红外光只是第一个被验证的载体,微波、超声波理论上都有类似潜力。
局限性与现实门槛
这篇论文虽然概念上很完整,但物理实现门槛不低:
• 需要 programmable 红外灯光阵列:不是随便拿个红外遥控器就能做的,需要能精确控制每个 LED 的亮灭时序和亮度,本质上是一个低分辨率的红外投影仪。作者用的阵列包含多个独立控制的红外灯组,成本不算低。
• 需要知道摄像头位置和焦距:攻击者需要预先知道被攻击摄像头的位置和参数,才能优化灯光阵列的摆放。对于隐蔽安装的车载摄像头,获取这些信息本身就有难度。但在停车场、收费站等已知场景,摄像头位置是固定的,这个前提不难满足。
• 有效距离有限:从论文的 setup 看,相机距离灯光阵列几米内效果最好,超过十米红外光强度衰减明显。这意味着近距离攻击可行,远距离 attack 不现实。但在隧道、地下车库等封闭场景,距离不是问题。
• 需要运动:攻击依赖于两帧之间的光流计算,如果车辆完全静止,攻击效果会打折扣。但辅助驾驶场景下车辆大多在运动,这个限制并不致命。
换句话说,这不是一个"拿个红外笔对着车晃一下就能 hack"的 demo,而是一个需要预先部署、精确校准的实验室攻击。但在特定场景下——比如停车场、收费站、隧道入口——这种攻击的可行性会显著提高。安全评估不能只考虑"远程黑客攻击",也要考虑"本地物理干扰"这种更 low-tech 的威胁。
从论文到安全的距离
这篇论文的价值不在于"红外笔 hack 自动驾驶"这种标题党,而在于它把对抗样本的攻击面从数字世界推进到了物理世界,并且找到了一个之前被忽略的入口:人眼看不见的光。
对于自动驾驶行业来说,这意味着安全测试不能再只依赖数字仿真和封闭场地的可见光攻击测试。需要把红外波段、不同光照条件、传感器之间的 cross-modal 干扰纳入 robustness 评估。目前大多数公司的在环测试(HIL)只覆盖了可见光域的扰动,红外域的测试几乎是空白。我们需要问自己一个问题:如果明天就有人在隧道口装了一套红外灯阵列,我们的系统能检测到吗?
对于监管机构来说,UNECE 的 R155 网络安全法规和 ISO/SAE 21434 已经要求车企进行威胁分析和风险评估,但大多数厂商的风险清单里 still 缺少"红外物理干扰"这一项。这篇论文提供了一个很好的 threat model 参考。建议在 HIL 测试台里增加红外光源扰动模块,把"不可见光攻击"纳入常态化测试。
从传感器设计角度,一个直接的防御思路是在摄像头前加装红外滤光片(IR cut filter),过滤掉近红外波段。但这样做的问题是,夜间辅助驾驶通常需要依赖主动红外补光,加了滤光片反而会让夜视能力下降。这是一个典型的 trade-off:安全性 vs. 夜间可用性。也许未来的解决方案是双光路设计——一路做可见光成像,一路专门做红外感知,光流估计只在可见光 branch 上运行。但这对成本和硬件架构都是不小的改动。
对于普通读者来说,下次你坐在辅助驾驶的车里,看到前方路灯杆上安装的某个看起来"多余"的模块——也许那不是普通的监控摄像头,而是 already 在测试红外补光攻击的 experiment。当然,更可能的是你什么都不会看到,因为红外光本来就不该被看到。
公众号后台回复 0731 获取原文链接