红绿灯识别对于在城市地区的全自动驾驶至关重要。本文中研究了通过对摄像机施加激光干扰来欺骗红绿灯识别机制的可行性。通过利用 CMOS 传感器的卷帘式快门(rolling shutter),设法在图像中的交通灯上注入重叠的色条,这可以使红灯被识别为绿灯,反之亦然。
为了提高成功率,设计了一种基于激光干涉经验模型的优化方法来搜索有效的激光参数。本文对 2 个最先进的识别系统和 5 个摄像头进行模拟评估,红到绿和绿到红攻击的最大成功率分别为 30% 和 86.25%,该攻击在 40 多米外对移动车辆的连续帧中是有效的,这会对自动驾驶造成端到端的影响,例如闯红灯或紧急停车。
完全自动驾驶要求车辆不仅在高速公路上而且在交通信号灯识别必不可少的城市环境中独立运行。这样的系统使车辆能够在视觉上检测和识别交通灯信号,以便它能够正确响应。交叉路口事故是车辆碰撞的第二大原因,仅次于追尾事故。可靠的红绿灯识别可以通过激发车辆的自动响应来有效地防止此类事故的发生。出于这个原因,宝马等汽车制造商和Mobileye等零部件供应商正在积极开发和测试他们自己的交通信号灯识别系统。特斯拉最近在美国的车辆上部署了交通信号灯识别。
在此之前,一个关键问题是基于视觉的交通信号灯识别系统的安全性如何。错误识别的后果是严重的:将红灯识别为绿灯可能会导致交叉路口碰撞;将绿灯识别为红灯可能会强制停车并堵塞交通。先前的研究表明,类似的基于视觉的物体检测和识别系统的不安全性。例如,强光会使摄像机过度曝光并导致防撞系统拒绝服务;投影仪可以在物体或摄像机注入对抗性重影图像,以欺骗先进的驾驶辅助系统。然而,红绿灯识别的安全性尚未得到研究。此外,以前的攻击通常使用可能会引起隐身问题的光,并且被限制在几米的攻击距离内。
本文研究了在现实世界中欺骗基于视觉的交通信号灯识别的可行性。为了达到更隐身的效果和更长的攻击距离,选择激光作为攻击信号,这是一种非常窄且能量集中的光束。设想激光射入摄像机镜头可能会修改捕获的图像并影响任何后续识别系统。然而,由于以下原因,这样的攻击并非微不足道。
1)虽然众所周知摄像机容易受到光学干扰,但激光很容易使摄像机中的 CMOS 传感器饱和,使整个图像无法识别。目前尚不清楚激光是否可以以可控的方式修改图像,尤其是仅在红绿灯区域附近。
2)红绿灯检测一般在识别前进行。攻击者需要确保激光干扰不会干扰交通信号灯检测,从而可以欺骗识别。
3)红、绿、黄灯分别位于交通灯的不同部位。目前尚不清楚攻击者是否以及如何在不物理更改灯的情况下将红灯识别为绿灯(反之亦然)。
本文克服了这些挑战并验证了攻击的可行性。在研究了激光可能对摄像机成像造成的所有潜在影响之后,利用摄像机卷帘式快门的固有漏洞,设法在图像中的红绿灯上创建了一条彩色条纹。实验表明,特定情况下的彩色条纹不会干扰交通信号灯检测,并且可以产生理想的颜色识别结果。为了获得更高的成功率,对激光攻击过程进行了经验建模,并根据受攻击的模拟图像搜索有效的激光参数。攻击可以在广泛的激光参数下成功,这表明对真实攻击场景中的不确定性具有很高的鲁棒性。使用真实交通灯、激光二极管和 5 个摄像头在 2 个最先进的开源交通信号灯识别系统上评估模拟和现实世界设置中的攻击。在实际环境中进行了实验,并在连续帧中展示了对 40 多米外移动车辆的成功攻击。建议重新设计滚动快门以减轻威胁。
红绿灯(TL)识别一般在红绿灯检测之后进行。它们的区别在于将交通信号灯作为输入时使用的目标。红绿灯检测的目标是在给定图像中框出红绿灯的位置。红绿灯识别,通常以红绿灯检测的结果为输入,进一步区分红绿灯的颜色。通常,自动驾驶车辆系统会结合检测和识别步骤向车辆提供指令。
Apollo是百度开发的开放式自动驾驶平台。它使用 YOLO来检测交通信号灯,并将识别视为典型的 CNN 分类任务。 RetinaNet接收带有边界框列表的图像,其中有交通灯作为输入,并输出一个包含四个元素的列表,代表每个框的四种可能性,即黑色、红色、绿色和黄色。在红色、黄色和绿色中,当可能性超过一定阈值时,可能性最高的类别将被视为灯的状态。否则,灯的状态将设置为黑色,表示状态不确定。
除了分离检测和识别之外,还有另一种方法可以将这些步骤结合起来,在训练 DNN 等分类模型时将不同颜色的交通信号灯视为不同的对象。因此,以这种方法开发的系统将一步直接检测和分类红/黄/绿/黑交通信号灯。
摄像机是一种可以捕捉图像的光学系统。基本上,摄像机使用镜头来收集光线,并使用放置在焦平面上的光敏表面(通常是摄影胶片或数字传感器)来捕捉图像,通过调整光圈大小或曝光时间来控制到达表面的光通量。后者对应于光敏表面暴露在光线下的时间量,该时间由快门控制。数码摄像机使用数字图像传感器作为感光表面,可以将光转换为数字信号。有两种主要类型的电子图像传感器,即电荷耦合器件(CCD)和互补金属氧化物半导体(CMOS)传感器。消费产品中的摄像机通常使用 CMOS 传感器,因为它们更便宜且功耗更低。
图像传感器捕获光强度,只能创建灰度图像。为了获取颜色信息,图像传感器通常覆盖有滤色器阵列,该阵列由微小的滤色器组成,只允许特定波长范围内的光通过。因此,图像处理算法可以通过检查每个像素的滤色片排列来恢复颜色信息。最常用的彩色滤光片阵列称为“拜耳滤光片阵列”,由交替排列的红绿和绿蓝滤光片组成,如图 1 左侧所示。
大多数数码摄像机通过控制图像传感器上光电二极管的“开关”来调整曝光时间,即电子快门。电子快门有两种类型:全局快门(global shutter)和卷帘式快门。全局快门使整个传感器能够同时打开和关闭,而带有卷帘式快门的摄像机则像“滚动”一样逐行打开和关闭光电二极管。因此,带有卷帘式快门的摄像机不会在单个时间瞬间捕捉到整个场景。由于CMOS图像传感器的读出瓶颈,它们大多使用卷帘式快门。上图展示了简化的卷帘式快门传感器的时序图。像素行依次开始曝光,并在该行超过曝光时间时被读出。同时,为下一次曝光清除像素。由于图像行是在不同的时间实例捕获的,因此拍摄快速移动的物体或闪光的照片可能会导致图像失真和歪斜。研究发现大多数车辆(例如特斯拉)上的摄像头都使用卷帘门。 Apollo Auto 推荐使用 LI-USB30-AZ023WDRB 摄像机,它也是一款卷帘式传感器。
攻击者的目标是通过欺骗红绿灯识别系统,使自动驾驶汽车在红绿灯附近做出错误决策。具体来说,可能有两种情况:
1)让车辆在应该停止的时候移动:车辆应该在红灯或黄灯处停止。未能相应停车可能会导致交叉路口事故。
2)车辆应行即停:车辆应在没有障碍物的情况下在绿灯处前行。这种情况可能会困住车辆,甚至堵塞交通。
设想针对交通信号灯检测和识别系统的拒绝服务攻击和各种类型的颜色欺骗攻击可能会导致上述情况。下表总结了潜在的攻击场景。
拒绝服务 (DoS) 攻击: DoS 攻击旨在禁用交通灯检测,即使车辆无法检测到现有的交通灯。为了安全起见,车辆应该在没有检测到红绿灯时减速或停在十字路口。但是,如果缺少红绿灯,车辆可能很容易从地图上注意到并采取安全预防措施。
颜色欺骗攻击: 此类攻击旨在改变交通灯识别的结果,即导致交通灯的颜色状态被错误识别。一个红绿灯有四种颜色状态:红色(R)、绿色(G)、黄色(Y)和黑色(B),其中黑色表示灯熄灭。最常见的交通灯状态是红色或绿色,因为黑色在现实生活中很少见,而黄色只持续很短的时间。攻击者可以通过将红灯识别为绿色来使车辆移动,并通过将绿灯识别为红色、黄色或黑色来强制车辆停止。在本文中专注于颜色欺骗攻击,因为它们更隐蔽并且构成更严重的威胁。
考虑具有以下能力的攻击者:
对车载摄像头的激光干扰: 攻击者只能通过远程向目标车辆上的摄像头发射激光干扰来改变交通灯检测和识别的结果。她不能从物理上改变现有的红绿灯或建造一个虚假的红绿灯。
无法直接访问目标车辆: 在攻击之前或攻击期间,攻击者无法直接物理或数字访问目标车辆。她不能对车载摄像头或交通灯检测和识别系统进行任何更改。目标车辆仍然封闭在攻击者面前。
收集信息和模拟: 攻击者可能会根据公开信息或逆向工程推断目标摄像机和系统的模型和结构。她可能会在与计划的攻击场景类似的设置中获得相同的摄像机或车辆来预先评估攻击。例如,她可以驾驶同型号的车辆通过目标路口,并记录目标红绿灯的图像。但是,她只能将目标摄像机视为黑盒。
1)摄像头成像: 攻击者生成激光束并将其对准摄像头。此阶段的关键问题包括:
a) 攻击者可以产生哪些类型的激光干扰,
b) 摄像机在激光干扰下将捕获哪些图像。
2)交通灯检测: 禁用交通灯检测就足以进行DoS攻击。但是,对于颜色欺骗攻击,攻击者必须确保能够以足够高的置信度检测到红绿灯。
3)红绿灯识别: 在这个阶段,攻击者打算使红绿灯被识别为显示不同的颜色。但是,目前尚不清楚这种攻击是否可行以及哪种类型的激光干扰会有效。
将在下面检验这些阶段的可行性。
选择半导体激光二极管作为激光发生器,因为它们成本低、可访问性高、功率效率高。有四个攻击参数需要考虑来确定图像上的激光干涉图案:
波长: 激光的波长与其颜色相对应,这直接影响图像上产生的干涉的颜色。激光二极管的波长通常是固定的,因为它由半导体的结构和材料决定。因此,攻击者可以使用一系列不同波长的激光二极管注入各种颜色的干扰。
功率: 激光的功率会影响干扰的强度以及攻击距离。更高的功率可以实现更长的攻击距离,但它也可能会使 CMOS 传感器饱和并使摄像机失明。在颜色欺骗攻击中,攻击者必须仔细调整激光的功率,以确保对图像的干扰既不太弱也不太强。一旦激光器的功率高于二极管特定阈值,它就会随驱动电流线性增加。
脉冲宽度和周期: 激光可以是连续的或一系列短脉冲的形式。连续激光会影响视频中的所有图像帧,而激光脉冲会影响视频中的选定帧甚至图像的一部分。攻击者可以通过对激光二极管的驱动电流应用脉冲宽度调制 (PWM) 来改变激光脉冲的宽度和周期。
入射角: 入射角是激光束与摄像机镜头光轴之间的角度。入射角主要影响干涉的亮度分布。例如,从摄像机右侧发射的激光会对图像的右侧部分造成更亮的干扰。
在本文中通过对激光参数进行试验,彻底检查并报告了激光干扰的所有潜在影响。除了过度曝光,还发现激光干涉会导致图像的色偏、色条、白不平衡和失焦,如下图所示。这些图像由 AR0132AT 评估板摄像机拍摄。
过度曝光: 足够功率的激光很容易使 CMOS 传感器的所有三个颜色通道饱和并导致图像过度曝光,如上图(b) 所示。过度曝光肯定是导致任何基于摄像机的系统拒绝服务的最有效方法。
颜色偏移: 通过将激光的功率降低到饱和点以下,可以将干扰的亮度降低到仅影响单个颜色通道的范围,从而导致图像的“色移”,如上图(c) 所示。偏移的颜色由激光的波长决定。在此示例中,650 nm 波长的激光增加了红色通道的值,远大于 CMOS 中的绿色和蓝色通道,使图像更偏红。
彩色条纹: 颜色偏移出现在整个图像上,可能会无意中妨碍其他对象的识别。通过利用调制激光脉冲的 CMOS 传感器的卷帘式快门在图像上创建“彩色条纹”,如上图(d) 所示。原理如上图(a)所示。当快门从图像的第一行“滚动”到最后一行时,只有在第 i 行 CMOS 被激活时才会出现的激光脉冲将仅干扰图像上的第 i 行,从而留下彩色条纹。攻击者可以通过调整二极管驱动信号的调制参数来改变条纹的宽度、位置、亮度和数量。她甚至可以通过将脉冲周期与滚动快门速度(视频帧速率)(例如 30 Hz)同步来稳定一系列视频帧中的色带。
白色不平衡: 白平衡是大多数数码摄像机的内置功能,可自动平衡图像的色温。激光对图像的一部分进行干涉会使白平衡算法错误地调整图像其余部分的颜色增益,如上图(e) 所示。攻击者可能会利用这种现象来导致交通灯的“白色不平衡”,即在不叠加干扰的情况下改变它的颜色。但是,由于白平衡能力有限,颜色变化可能并不强烈。
失焦: 发现移动的彩色条纹会使摄像机失焦,可能导致拒绝服务。快速移动的彩色条纹可以周期性地改变对焦算法采样区域的对比度,从而迫使摄像机重新对焦。在重新对焦过程中,背景会失焦并变得模糊,如上图(f)所示。
总之,攻击者可以通过过度曝光或失焦图像实现拒绝服务,并通过色移或彩色条纹图像实现颜色欺骗。当条纹与图像一样宽时,色移图像本质上是彩色条纹图像。在上图报告的初步实验中,发现与窄条纹相比,较宽的条纹会大大降低交通灯检测的置信度分数,并不必要地导致拒绝服务。因此,在本文中关注使用窄条的攻击。
要成功欺骗红绿灯识别的结果,攻击者首先要保证彩色条纹不影响红绿灯检测。因此,感兴趣的问题是哪种类型的彩色条纹对交通信号灯检测的阻碍较小。通过比较在各种条纹参数组合下检测交通灯的置信度得分来检查彩色条纹的影响,其中主要关注条纹的宽度和位置。使用经过训练的 YOLOv4 分类器作为交通灯检测系统,并使用红色和绿色激光将各种宽度和位置的彩色条纹注入到交通灯图像中。
上图中的两个热图显示了在红色和绿色激光干扰下检测交通灯的置信度得分。 x 轴是条纹的宽度,从交通灯高度的 0 到 4/3 不等。 y 轴表示条纹上边缘的位置与交通灯的垂直尺寸相比,也在 0 到 4/3 之间变化。下图(b) 提供了位置和宽度的可视化说明。位置“0”表示条纹的上边缘位于灯的底部边缘,而位置“1”表示条纹的上边缘与灯的上边缘重合。为了帮助理解上图中的结果,将热图划分为四个区域,对应于下图(b)中的四个典型案例。在 ¨ 情况下,条纹覆盖整个交通信号灯;在≠的情况下,条纹仅覆盖其上下边缘之间的一部分光;而在 Æ 和 Ø 的情况下,条纹覆盖光的上部或下部,包括其边缘。
前图的结果表明,无论激光的颜色如何,如果色条覆盖整个光线,则红绿灯检测的准确性几乎不受颜色条纹的影响。观察到在其他情况下置信度得分大幅下降,假设这是因为彩色条纹破坏了交通信号灯的连续性,尤其是在其原始边缘。这个实验促使研究者创建用于颜色欺骗攻击的彩色条纹。
为了检验欺骗红绿灯识别的可行性,考虑了两种攻击案例:(a)用红色条纹将绿灯变为红色,(b)用绿色条纹将红灯变为绿色。条纹分别使用 650 nm 红色和 520 nm 绿色激光二极管生成。被干扰的红绿灯图像被发送到 Apollo 进行识别。
在 Apollo 中,系统被编程为首先检测裁剪的感兴趣区域 (ROI) 内的交通信号灯,该区域以前从包含交通信号灯位置的 HD-Map 中得知。由于 HD-Map 不可用,手动将 ROI 提供给系统,以使 Apollo 正常运行。如果检测到红绿灯,Apollo 会输出四种可能性的置信度分数:红色、黄色、绿色和黑色。
结果表明,颜色欺骗攻击对于这两种情况都是可行的,能够将红灯识别为绿灯,反之亦然。然而也观察到攻击并不总是成功——置信度分数会受到激光参数的很大影响,尤其是功率。例如,上图显示了通过二极管的驱动电压调整激光功率时的识别结果得分。它表明当电压在 13 到 17 伏之间时,红色激光可以以高置信度分数欺骗绿光。然而当试图将红灯识别为绿灯时,并没有“安全区”的功率。有效电压区域是离散的并且看起来是随机的。在实验中发现攻击结果也会受到激光入射角、交通灯本身,甚至图像背景的很大影响。因此,不建议使用同一组激光参数来攻击不同的交通信号灯。在实践中,根据特定的交通信号灯和攻击场景微调激光参数至关重要。
为了逐个获得最有效的激光参数,对激光攻击过程进行建模,并根据目标交通信号灯的预先记录图像模拟攻击。攻击工作流程总结在下图中。
首先为了模拟摄像机上的激光干扰,开发了一个经验激光攻击模型,该模型将原始图像作为输入并输出具有模拟激光干扰的图像。该模型由摄像机建模、激光干涉建模和激光效果仿真三部分组成。摄像机建模描述了从 CMOS 捕获的 RAW 图像到 JPG 等常见图像文件的转换。激光建模通过对图像添加彩色条纹进行数学建模来模拟激光干涉。激光效果仿真进一步涉及激光的入射方向和模型噪声,以使模拟的彩色条纹看起来更逼真。然后基于激光攻击模型,使用网格搜索的方法来寻找攻击参数的最有效组合。最后将从模型导出的攻击参数映射到可调节的激光参数,并在现实中生成激光攻击信号。
第一步是将 CMOS 传感器的原始图像转换为 jpg 图像。CMOS以及原始文件将图像的颜色信息以R,Gr,Gb,B的形式分别存储在四个相邻的像素中,形成一个正方形。因此,需要插值将矩阵从原始文件转换为表示 RGB 值的张量。主要有两种类型的插值:直接和双线性。在模型中同时考虑了它们,而要使用的具体模型取决于目标摄像机。
直接插值: 对于 jpg 图像中的每个像素,其 RGB 值由原始文件的矩阵中存储红色、Gr 和 Gb 的混合或蓝色的最近像素确定。对于原始文件中的每个 2×2 块,将至少有一个像素代表“红色”,一个代表“蓝色”,两个分别代表“Gr”和“Gb”,即 RGB 值此块中的 jpg-image-pixels 将直接由原始文件中的那些像素值确定。
双线性插值: 对于 jpg 图像中的每个像素,其 RGB 值由原始文件中至少两个最接近的像素确定。一般来说,对于 jpg 文件中的每个内部像素,它将占用一个以像素为中心的 3×3 块。将原始文件中代表相应颜色(R、G 或 B)的所有像素值取平均值,以计算 jpg 文件中的 RGB 值。对于图像边缘上没有 3×3 块的每个像素,仍然会在原始文件中找到表示相同颜色的最接近的两个像素并计算它们的平均值。
光子过滤: 当激光射入 CMOS 时,每个光电二极管可以检测到的光子由其量子效率决定,量子效率描述了光电二极管测量的电子数量与馈入它的光子数量之比。每个 CMOS 都有其独特的量子效率。此外,每个光电二极管上的彩色滤光片(R、Gr、Gb、B)使不同波长的光的量子效率独一无二。例如,下图显示了 ON Semiconductor CMOS 数字图像传感器 MT9P006 的量子效率曲线。 Gr 和 Gb 光电二极管可以测量 550 nm 波长的绿光,量子效率为 60%,而 R 和 B 光电二极管接收到的绿光较少,因为量子效率低于 10%。然而,当光强度足够高时,它对红色和蓝色像素的影响变得明显,这解释了为什么单色激光可以使所有颜色通道饱和并使整个图像变白。
假设I代表激光的强度,l代表它的波长,R*,G*,B*分别代表激光对图像红、绿、蓝通道的影响,CMOS的滤波效果由于量子效率,传感器可以表示为 X⇤ = I fX (l),X 2 {R,G,B}。其中,fR(·)、fG(·)、fB(·)代表目标摄像机上CMOS传感器的量子效率曲线。由于曲线无法参数化表达,通过跟踪目标摄像机的量子效率曲线来插值函数。
彩色条纹添加: 假设激光干扰对 RGB 图像的影响是三个颜色通道上的相加,可以将后图像(在激光攻击下拍摄的图像)的 RGB 值 Rp,Gp,Bp 表示为 原始图像的 RGB 值 Ro,Go,Bo 和激光的效果 R*,G*,B* 为 Xp = H(Xo,X*),X 2 {R,G,B}。 函数 H(·,·) 没有特定的选择。 考虑颜色通道溢出,对 H(·,·) 使用类似 relu 的函数:H(x, y) = min(x+y, cmax)。 这里,cmax 代表特定通道的溢出值,为简单起见,选择 255。
结合光子过滤和色条添加过程,激光干涉的效果由原始图像Xo的RGB值、激光的波长l和强度I以及CMOS传感器的量子效率fX(·)决定作为:
下图显示了真实激光干扰与模拟之间的比较。请注意,模拟的激光干扰与真实的高度相似以表明模型的功效。但是,细节上存在细微差别,假设这是由激光的入射方向和噪声引起的。
为了使模拟更加逼真,将激光的入射方向和透镜缺陷纳入本文模型。前者决定了彩色条纹在图像上的亮度分布,后者产生了噪点。
激光的入射方向: 激光的入射方向对图像中色条的分布有显着影响。例如,在上图(a) 中,激光从摄像机的左侧照射。因此,左侧的激光强度高于右侧,这会导致左侧出现通道溢出(白色像素)并增加噪声水平。为简单起见,在模型中考虑了来自摄像机左侧、右侧或前面的激光。定义了由 CMOS 测量的最小和最大强度 Imin、Imax,而不是对激光使用单个强度 I,并假设色条的宽度和高度分别为 w、h。特定点 (x,y) 处的激光强度可以表示为 I = D(Imin,Imax,x,y,h)。考虑函数 D(·) 的三种潜在情况:线性、S 型和高斯。当入射方向从侧面时,使用线性或sigmoid函数;当光线从摄像机正面照射时,使用高斯函数。
镜头磨损: 根据经验,在色条中观察到雪花状噪点,这是由于镜头磨损造成的。因此,如果镜头有磨损,当激光射入摄像机时,会发生漫反射而不是直接反射,这将导致CMOS的某些区域接收到更强的激光束,可能会导致相应像素的曝光过度。由于难以测量或准确模拟镜片内部的磨损,假设噪声的水平分布服从指数分布,而噪声的垂直分布服从正态分布。对于从左侧照射的激光,将噪声的水平分布建模为:
β1是控制分布衰减率的超参数,分母是一个标准化函数,保证概率密度函数之和为1。如果入射方向正确,那么只需要用w-y替换y。噪声的垂直分布如下:
基于激光攻击建模,可以使用激光参数的各种组合来模拟在目标交通灯上添加的大量彩色条纹。为了获得最有效的参数集范围,应用了网格搜索方法。没有使用在生成对抗性示例时常见的优化方法,因为攻击可以通过一系列激光参数而不是特定集合来成功。该属性可以减轻模型不准确性和现实世界不确定性的影响,从而提高攻击的鲁棒性。在网格搜索中考虑的参数包括最小光强 Imin、最大光强 Imax、激光波长 l 和入射方向。
在红色和绿色交通灯图像上测试了参数搜索。搜索结果显示了一系列有效的激光攻击参数(可行的解决方案)。所有参数组合中分别有 9.63% 和 22.59% 对红色激光攻击和绿色激光攻击有效,这证明了攻击的可行解不是唯一的。此外,使用更细粒度的搜索网格对最小和最大光强度进行更彻底的搜索。上图显示了具有最小和最大光强度的各种组合的红色和绿色条纹的结果。图中,红色、黄色、绿色、黑色和DoS(检测不到光)的识别结果分别用红色、黄色、绿色、深灰色和紫色像素表示。结果表明,光强度的可行解存在范围很广,可以认为是近乎连续的。
在获得可行的攻击参数后,将它们映射到可调节的激光参数上,以使用真实激光重现模型生成的图像。主要考虑波长、脉冲宽度和周期、功率和入射角。波长。模型中的波长 l 和现实之间的关系是明确的。激光二极管的波长与模型中的波长相同。
脉冲宽度和周期: 脉冲宽度决定了图像中色条的宽度。假设图像有 N 行像素,交通信号灯占用 n 行。之前在现实世界的实验和仿真中的观察都表明,如果颜色条纹的宽度大于灯的宽度,则它对交通灯检测的影响最小。因此,考虑一个宽度为 1.5n 行的彩色条纹。假设卷帘式快门速度为 f ,则脉冲宽度为 1.5n/N f 。脉冲周期设置为与卷帘式快门时间 1/f 相同,以稳定条纹的位置。
功率: 功率与模型中的最小和最大光强度 Imin,Imax 有关。最小/最大光强是模型中的一个构造参数,没有直接的物理意义。虽然光强度和功率之间没有确定性的转换,但由于它们都是单调变化的,攻击者可以在类似的设置中预先测量不同激光功率的光强度并拟合曲线。
入射角: 入射角由入射方向和最小和最大光强的关系决定。入射方向提供了激光应从何处辐射的明确指南。然而,很难从最小/最大获取入射角。光强度在数学上是因为它们的关系因各种摄像机而异。类似地,攻击者可以根据经验推导出他们的关系。
在 3 个场景中评估攻击的性能:(a) 基于公共交通灯图像和模拟激光干扰的模拟攻击,(b) 使用真实激光和摄像头在静止设置中的真实攻击,以及 (c) 真实世界在实际环境中攻击移动的车辆。
从 BDD100K 数据集中选择了 240 张包含交通信号灯的图像。针对每个图像中可以被 Apollo 正确检测和识别的所有交通信号灯。总共有250个绿灯和248个红灯。模型的超参数确定如下。对于所有绿光,使用波长为 650 nm 的红色激光;对于所有红光,使用波长为 520 nm 的绿色激光。激光波长对应于实际实验中的激光二极管。根据之前的观察,采用与图像中光线位置相反的入射方向,以避免光线区域过度曝光,并使用线性函数来模拟强度分布。对于最小和最大光强度,对每个图像应用了网格搜索。对于每个变量,总共设置了 7 个级别:最小光强从 100 到 700,步长为 100,最大光强从 900 到 1500,步长为 100。
通过对每个红绿灯使用最优的攻击参数集,能够在 45 种情况下将红灯识别为绿灯 (R→G),即攻击成功率为 18.2%,并且将绿灯识别为绿灯。在 86 例中将灯光识别为红灯 (G→R),攻击成功率为 34.4%。此外发现即使使用相同的参数集,攻击也可以在不同的图像上成功。例如,下图显示 R→G 在所有图像的 14.5% 上是成功的。最大光照强度为 (100,1300)、(200,1200) 或 (300,1100),当最小时,G→R 在所有图像的 26.8% 上成功。最大光强度为 (400,1100) 或 (600,1000)。这些结果表明攻击在各种交通信号灯上都是可行的,并且不需要唯一的参数作为可行的解决方案。
数据集包含图像中不同大小和位置的 489 个交通灯,下面研究交通信号灯是否会影响攻击的成功率。
大小的影响: 为了探索红绿灯大小的影响,将所有红绿灯按图像中的高度(以像素为单位)分为 10 组,并计算每组的攻击成功率。第 1 组包含最小的( 0%–10%)灯,而第 10 组代表最大的(90%–100%)。结果如下图(a) 所示。观察到对于 G→R 案例,对于相对较小或较大的红绿灯,攻击成功率相对较高。但是,对于 R→G 案例,没有明确的关系。总体而言,红绿灯大小与攻击成功率之间的相关性并不显着。
位置的影响: 同时考虑图像中交通灯的水平和垂直位置。将图像分成3x3块:水平的左、中、右;顶部、中间和底部垂直。所有块具有相同的大小。分别在上图(b)和上图(c)中绘制了水平和垂直分区的攻击成功率。横向来看,当红绿灯位于图像中央时,G→R 和 R→G 攻击的成功率都高于左侧或右侧。从纵向上看,如果交通信号灯在图像中的较高位置,攻击的成功率似乎会更高。由于没有图像包含不可用。总之,假设红绿灯位置的这种影响主要是由于背景造成的。在大多数情况下,图像顶部和中心位置的背景会更清晰,通常是天空。相比之下,在图像的其他位置,背景通常是更复杂的建筑物或交通。
实验设置如下图所示。攻击目标是一个实验性的交通灯,可以发出绿色、红色和黄色的光。灯的直径为 10 cm。在 5 个摄像头上进行了实验:一个 AR0132AT 评估板摄像头、两个来自小米和海康威视的行车记录仪、一个 OPPO K3 智能手机和一个 OpenMV H7 Devboard 摄像头。 AR0132AT 传感器被认为是特斯拉汽车上使用的摄像头。使用由信号发生器驱动和控制的两个激光二极管(绿色激光为 505 nm,红色激光为 650 nm)攻击摄像机。激光干扰下的红绿灯图像被发送到两个红绿灯检测和识别系统:Apollo 和为 Nexar 红绿灯识别挑战开发的基于深度学习的模型是研究者可以找到的用于红绿灯识别的最流行和最先进的开源模型。为了增加交通灯实例的多样性,在交通灯的距离、位置和朝向的各种组合中进行攻击,如下图(a) 所示。交通灯在光轴上到摄像机的距离从 5 m 到 15 m 不等。在每个距离处,交通灯被放置在 5 个位置,左 (L)、中左 (ML)、中 (M)、中右 (MR) 和右 (R)。在每个位置上,将灯光设置为朝向三个方向:左 (L)、中 (M) 和右 (R)。总共有 120 个单一颜色的交通灯实例。针对不同的灯光颜色和摄像机重复 120 个实例。为安全起见,所有实验均在具有适当激光保护的封闭环境中的屋顶上进行。
在下表中报告了攻击的总体成功率。实验在两种攻击场景中进行:R→G 和 G→R,还报告了 DoS 案例的百分比。 R!G 攻击的总体成功率为 20.53%,G→R 攻击的总体成功率为 44.95%,这表明使用红色激光将绿光识别为红光相对容易。 R→G 和 G→R 攻击的 DoS 发生率分别为 34.59% 和 26.76%。请注意,上述结果涉及所有实例。距离小于10m(相当于普通红绿灯20m,是典型的四车道城市道路的宽度)时,平均成功率高于90%。
此外,发现攻击结果因目标识别系统和摄像机而异。 Apollo 的平均攻击成功率为 31.07%,而 Nexar 为 43.36%。下图中攻击 5 个摄像头的比较表明,Tesla 上使用的 AR0132AT 摄像头最容易受到攻击——R→G 和 G→R 的平均成功率分别为 30% 和 86.25%。其他摄像机的成功率较低可能是由于下表中列出的低图像质量或大视场。例如,小米和海康威视都是具有大视场 (130°) 的行车记录仪与特斯拉摄像机(70°)相比。广角使图像中的红绿灯更小,因此更难以识别。随着红绿灯变得越来越大,它会向图像边缘移动,并且比其他红绿灯遭受更多的广角失真。尽管如此,无论识别系统和摄像头如何,G→R 攻击的成功率都高于 R→G。
它们在攻击下捕获的图像如下图所示:
基于 AR0132AT 摄像头调查交通灯距离、位置和方向的影响。在本实验中,将最大红绿灯距离延长至 25 m。下图(a) 和 (d) 中可视化了交通信号灯位于不同位置时的成功攻击次数。
距离的影响: 上图(b) 和 (e) 的结果表明,攻击成功率随着交通灯距离的增加而降低,而 DoS 的百分比增加。推测红绿灯随着距离的增加而变小,与彩色条纹重叠后更难被检测到。但是,如果它位于中间位置,仍然可以攻击 25 m 外的红绿灯(相当于普通红绿灯的 50 m)。
位置的影响: 上图(c) 和 (f) 表明,当红绿灯位于图像中间时,攻击成功率较高。当红绿灯在图像的右侧部分时,DoS 占主导地位,因为激光是从正确的方向发射的。由于图像左侧的光线强度不够强,因此在左侧位置将交通灯识别为其原始颜色。上述观察结果与仿真结果一致。
方向的影响: 成功的攻击需要摄像头清楚地看到交通信号灯。在这种情况下,没有发现攻击结果与红绿灯朝向之间有明显的相关性。
研究了当激光源处于不同距离和离轴角度时攻击的有效性。从距离光轴 [15, 30, 45, 60] 度的 [1, 2, 5, 8, 10, 15, 20] 米处攻击摄像机。结果如下图(a)所示。这表明攻击受激光角度的影响比距离的影响更大。成功的攻击大多出现在 1 m 到 20 m 的 45 度离轴范围内。假设原因是随着入射角的增加,彩色条纹变得更暗。为了找到最长的攻击距离,将激光源移动到测试地点(屋顶)允许的最外面的位置,距离摄像机大约 35 m。如下图(b) 所示,在这样的距离上攻击仍然成功——使绿灯被识别为红色,置信度为 0.966。设想最长攻击距离将大于 35 m,特别是如果使用高功率激光二极管。
实际设置中的攻击需要以移动车辆为目标并实现以下目标:(1)当捕获的场景发生变化时,在连续的视频帧中有效,(2)从一个目标摄像机跟踪和瞄准激光与车辆的距离,以及 (3) 对驾驶造成端到端影响。分别在真实车辆和驾驶模拟器上从三个角度研究攻击的能力。攻击视频可以在 https://sites.google.com/view/rollingcolors 找到。
首先研究了当目标摄像机在移动的车辆上时,攻击在连续视频帧中的有效性。作为初步实验,排除了瞄准的影响,并假设一个理想的设置,即攻击者可以在车辆移动时连续向摄像头注入激光。连续激光注入的可行性将另行研究。
设置: 为了实现这一设置,将激光二极管放置在车辆内部,如下图(a)所示。总共进行了 27 次攻击试验。在每次试验中,将车辆向后或向前(速度在 5-20 km/h 之间)开向前方 30 m 的实验交通灯,并在发动攻击时用摄像头录制视频。出于安全考虑,所有实验均在封闭场地中进行。
结果: 基于 Apollo 分析了攻击结果,发现该攻击在 23 次试验中可以成功欺骗跨连续帧的红绿灯识别,攻击成功率为 85.2%。下图显示了 G→R 和 R→G 攻击的两个最佳案例,它们实现了最长的成功欺骗持续时间。识别结果用相应的颜色表示(紫色除外,紫色表示 Apollo 没有检测到任何红绿灯),“GT”表示光颜色的标准。结果表明,攻击可以连续欺骗红绿灯识别超过一秒。这个初步实验证明了当捕获的场景发生变化时,攻击在连续视频帧上的有效性。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)