Too Good to Be Safe: Tricking Lane Detection in Autonomous Driving with Crafted Perturbations
文章目录
- Too Good to Be Safe: Tricking Lane Detection in Autonomous Driving with Crafted Perturbations
-
-
- Two-stage attack
- Adding Digital Perturbations
-
-
-
- 将(X,Y,Z)现实世界的位置映射到(u,v)在二维图像上找到这种映射关系
-
-
- Finding the Best Perturbations:找最优解、
-
- Quality of Perturbations
- Optimization problem
- Evaluation
- Defense
-
- Enhancing the lane detection module
- Enhancing the control policy.
-
设计这样的路标,既能被车道检测模块感知,又不被司机检测,是一个挑战。手动操作道路标志攻击车道检测模块是一项劳动密集型、容易出错的工作。
:
- 由于车道检测系统是没有开源的嵌入式车辆,因此很难访问第二进制并理解其计算逻辑。具体来说,GPU提取和理解中深度学习算法是一项具有挑战性的工作
- 误导车辆的最佳扰动不容易确定。它应该被车道检测模块感知,但司机不注意
- 即使车道检测模块的输入受到干扰,也会误导车辆,但如何在现实世界中发动攻击并不容易,而是通过在地面上添加不引人注目的道路标志来决定
:
- 我们首次调查了真实车辆中车道检测模块的安全性,发现对手可以利用其灵敏度生成假车道,误导车辆。
- 特斯拉自动驾驶中的车道检测模块容易受到攻击,能迅速产生有效的干扰
:
-
如何定位摄像头图像和车道线的位置
-
如何在输入的相机图像中添加扰动?直观的方法是在不考虑物理部署的情况下在像素级添加扰动。然而,J几乎不可能在物理世界中实现这种扰动,因为考虑到镜头的畸变,准确地将像素投射到物理世界并不容易
-
如何找到最好的干扰?最好的干扰应该尽量不引人注目,这样司机就不会注意到它们,他们可以迫使车道检测模块输出假车道。由于目标模型在黑盒设置中,无法基于梯度进行优化,因此寻找最佳干扰具有挑战性。
- 重点对GPU定位和提取内存中的图像。
- 更准确地说,在找到负责车道检测的二值后
- Tesla Autopilot在文件系统中,有一个叫做vision二进制文件。
- 通过逆向工程,我们发现这种二元结构负责与视觉相关的任务,包括车道检测。它将相机图像数据传输到GPU在内存中,完成与视觉相关的计算),
- 通过静态分析确定图像GPU内存中的可用时间,然后检测二值,动态分析确定图像的内存地址。然后,我们使用它CUDA api提取和修改目标图像。
- 因为车道检测在那里GPU目标图像(相机图像和车道图像)与车道检测有关,目标图像将在特定时间存储GPU因此,我们只需要确定何时和何处。
- cudaMalloc开头函数用于在GPU中分配内存(cudaMallocHost在CPU除中分配内存外)。我们将这些函数表示为cudaMalloc*,每个函数都有两种类型的参数。一种是指向已分配内存的指针,另一种是表示数据的大小。cudaMalloc*将作为在GPU车道图像定位在内存中
- cudaMemcpy将数据从一个地址复制到另一个地址的开始函数。我们将这些函数表示为cudaMemcpy,它接受四种参数,包括源地址、目的地址、大小信息和复制操作方向的模式:主机到GPU、GPU到主机,主机到主机,GPU到GPU。cudaMemcpy将作为在GPU在内存中定位相机图像的关键。我们还从这些函数中使用这些函数GPU在我们得到它们的地址和大小信息后,内存中转存目标图像。
- cudaConfigurecall:该函数将在主机调用每个内核之前调用GPU启动上配置。因此,我们可以定位cudaconfigurecall内核定位在二进制文件中
- 通过Hook 来确定lane image 位置,通过cudaConfigureCall列举所有内核,然后可视化图像,根据起始地址和数据大小确定车道检测的核函数。
Two-stage attack
Adding Digital Perturbations
将(X,Y,Z)现实世界的位置映射到(u,v)在二维图像上找到这种映射关系
列出的8个参数表示数字扰动。Len和wid它决定了干扰的形状。D1、D2和D三是决定扰动位置。G增加摄像素灰度值。n如图5所示n = 2)。?G扰动n的数量越大,扰动的附加作用就越明显。θ这八个参数包含一个向量x:
Finding the Best Perturbations:找最优解、
两个度量来量化数字世界中扰动的有效性,并在此基础上构造了一个寻找最佳扰动的优化问题
Quality of Perturbations
-
:表示伪车道在可见性。其计算方法是将每个车道线像素的灰度值相加(每个车道线像素的灰度值)Gp代表当前像素的信心)。Vlane(x)值越高,假车道的可见性越高。
-
:添加到输入摄像头图像中的扰动可见性。这个分数结合在一起和这些表示可见性。Vperturb(x)值越低,干扰对人类来说就越不显眼。变化的像素值增量越小,变化的像素数量越少。
-
:整体分数扰动。S(x)值越高,扰动产生的假车道就越强,同时不引人注目。如果扰动不能创建假车道,S(x)应该为零。
Optimization problem
对向量X值进行最优化S(x)
:根据算法找到的提示,鼓励搜索位置移动到值较高的坐标
:本质上是随机更新位置,接受更高的可能性和更好的解决方案
:搜索个人体验与他人分享信息,并根据群体信息更新位置
:独立工作p
- 甲虫触角搜索(BAS)
- 粒子群优化(PSO)
- 甲虫群优化(BSO)
- 人工蜂群(ABC)
- 模拟退火(SA)
**trick:**n和θ没有加入到算法中
- 首先,由于扰动数n为离散变量,而其他参数均为连续变量,如果考虑n,优化问题将成为混合离散连续优化问题,难以找到最优结果。
- 其次,由于旋转角度θ是由攻击意图决定的,因此算法得到的θ值可能不能满足攻击者的要求
- 因此,我们将n 和 θ固定为常数
Evaluation
6个问题来评估我们对车道线检测模块的攻击
-
- 记录历史扰动最高分数和top10个扰动的平均分数,排除偶然性
- BAS和SA同样有多输入和其他三种相同
- results:
- PSO算法在五种算法中找到了最高的S(x) (top-1和top-10)。只有ABC的收敛速度比PSO快,但ABC发现的top-1和top-10的平均S(x)远低于PSO。
-
输入原始图像时,车道检测模块不输出,但添加一个不引人注意的扰动后,将检测到一个清晰的车道。并且该扰动对人类感知几乎是无形的
-
-
动机:我们没有在启发式算法中加入扰动数n和旋转角θ。在该RQ中,我们研究了n和θ对S(x)的影响。
-
n :[1,5], θ :[0:30:2],一共有5×14=70种组合,搜索其最佳S(x),并且记录
-
图的第一行表示特定θ下的平均S(x),最后一列表示特定n下的平均S(x)。每种设置下的average (x)表示该设置的总体有效性
-
n无显著影响,n=2时效果最好,θ随着增大S(x)减小
-
-
- num1和num4的得分比其他的高,因为这两个图像中的地面都是干净的,一个小的扰动很容易导致输出车道图像中出现假车道。虽然NUM.2/3/5的分数相对较低,但扰动不易被人眼察觉,假车道有效且强。
-
-
我们主要关注x中的五个维度,包括表示扰动形状的wid和len,表示相对位置的D1和D2,以及表示扰动灰度值的增量的∆G
-
shape:wid比len小得多,这意味着“窄而长”的扰动比“宽而短”的扰动更有效
-
position:对于扰动的位置,D1范围为10.14m ~ 15.30m, D2范围为1.51m ~ 2.23m。
-
灰度值增量:在不同的输入图像中,∆G的值有所不同。对于干净的地面(num1和num4)或黑暗的地面(num3和num4),一个小的增量可以使输出图像中的车道非常明显,而“脏”的地面(num2和num5)需要更大的∆G值来生成一个假车道
-
总结:窄而长”的扰动更有可能造成假车道。所需的灰度值增量(∆G)取决于地面的亮度和洁净度
-
-
-
分别寻找n = 1和n = 2场景下的最佳数字扰动。当n = 1时,其长度len为1.5m,宽度wid为1cm。n = 2时,每次扰动的长度为0.4m,宽度为1cm,相邻距离为(D3) 0.7m。
-
x轴为每帧的纵向距离(D1), y轴为车道可见平面(x)。Vlane(x)值越大,说明攻击越有效。我们还提出以下看法
- n=1比n=2效果更高,说明:即使是一个单一的扰动也可以在物理世界中起作用。
- 直线摄动(θ = 0)更容易被检测到,θ要低一点效果好
- 因此,扰动在明亮和黑暗环境中都起作用。更黑暗的环境甚至会让车道能见度更高(如图(b)中n = 2)
- 当n = 1时,5m≤D1≤12m时车道可见性较高。当n = 2时,5m≤D1≤7m时车道可见性较高,因此,如果适当地实施扰动(如图11 (a)中n = 1,θ = 0)),假车道可以在大范围D1 (15m到3m)内被检测到,D1 ≤ 9m更容易检测到
-
精心设计的微扰可以被检测为假车道,而不会被人类察觉,在现实世界中依旧有效
-
-
-
在常见的十字路口场景中(即直线车道在车辆面前消失),这些扰动会误导车辆进入迎面车道
-
结果表明,微扰会产生假车道,使车辆转向。此外,车辆偏离了5.1米(超过车辆宽度的2.5倍),并沿着假车道行驶到对面的车辆,显示了现实世界中的严重威胁。
-
(b):车辆驶入十字路口之前,这些扰动被检测并识别为假车道,因此车辆开始沿着检测到的车道转向。
-
©:车辆沿假车道行驶,转向左侧(迎面而来的车道)。在此过程中,将中间车道(车道图像中的右侧车道)识别为右侧车道。基于此检测结果,车辆驶入迎面而来的车流。
-
(d):车辆偏离了5.1米(超过车辆宽度的2.5倍),被引入了迎面而来的车道,并在这个错误的方向上继续行驶。
-
- 总结:由这些不引人注意的干扰产生的假车道能够成功地欺骗车辆进入自动转向模式,甚至误导车辆进入迎面而来的车流(可能会撞上迎面而来车道上的其他车辆),从而显示出现实世界中潜在的严重威胁。
-
Defense
Enhancing the lane detection module
- 通过特征检测异常车道线。由于攻击者希望使干扰不引人注目,所以生成假车道的干扰的大小应该比正常车道小得多
- 攻击者为了误导车辆造成安全和/或安全后果,检测到的假车道会与真实车道不一致(如产生急转弯)。因此,车道检测模块可以利用这些特征提前拒绝异常车道
- 训练数据中包含对抗性例子。Goodfellow等提出,在训练数据中加入对抗例子,可以使模型对对抗攻击具有更强的鲁棒性。
Enhancing the control policy.
- 考虑其他视觉元素。如果车辆的转向控制策略仅仅依赖于车道检测结果,那么车辆很容易受到我们的攻击。因此,它可以通过其他视觉元素(例如,来的车辆,行人)来辅助转向控制
- 多传感器融合。在特斯拉自动驾驶中,车道检测模块依赖于视觉数据。一种可能的防御方法是采用多传感器融合。也就是说,控制策略还应考虑来自激光雷达、雷达、声纳和GPS等传感器的信息
- 先进的警告。由于自动驾驶的安全性可能无法得到充分保障,车辆在检测到异常车道线(如车道尺寸过小、车道角度过陡等)时,应提前向驾驶员发出警告。此外,为保证安全,车辆应要求驾驶员手动控制,并退出自动转向模式。
我们将从两个方面拓展工作。首先,我们将评估Apollo和Openpilot等其他自动驾驶系统中车道检测模块的脆弱性。其次,我们将探索通过在真实车道上添加扰动来攻击车道检测模块的可行性,例如使用暗标记来覆盖部分真实车道或添加标记来改变真实车道的形状。 警告。由于自动驾驶的安全性可能无法得到充分保障,车辆在检测到异常车道线(如车道尺寸过小、车道角度过陡等)时,应提前向驾驶员发出警告。此外,为保证安全,车辆应要求驾驶员手动控制,并退出自动转向模式。
我们将从两个方面拓展工作。首先,我们将评估Apollo和Openpilot等其他自动驾驶系统中车道检测模块的脆弱性。其次,我们将探索通过在真实车道上添加扰动来攻击车道检测模块的可行性,例如使用暗标记来覆盖部分真实车道或添加标记来改变真实车道的形状。