一、背景
这篇文章主要是针对于车辆的ACC系统进行攻击,车辆的ACC系统可以翻译为自适应巡航系统,通过分析前方的车辆的速度,自动调整自车速度并进行跟车。现有的绝大多数类似研究进行的是“digital field”,这个词可以理解为直接修改整张图像,这种攻击由于直接修改整张图像,从实际应用的角度来看很难实现,所以这篇文章进行了实际部署的攻击。
二、ACC工作原理
ACC系统在工作时会通过摄像机和雷达进行前车的检测,融合后确定前车速度并规划自车速度。这个过程程序只需要设置车辆的最大速度,自车会根据前车速度动态调整。
具体来说,ACC的第一步是进行前车检测(Lead Detection),这个过程实际上是一个类似于目标检测的过程。相机的图像经过深度学习进行检测,加上雷达的信号分析,得到两个数据源的前车信息。之后两个数据源进行融合并得到最终的前车结果,这个结果包括了自车与前车沿驾驶方向、垂直于驾驶方向的距离、速度以及加速度。这些信息会被用于计算自车的速度,计算结果经过PI处理之后就可以下发到底盘,从而实现ACC控制。
三、攻击方法
这篇文章中设计的攻击,主要目标是通过在自车前方放置攻击图像,使得ACC系统产生偏移,进而导致碰撞。
在攻击的过程中,存在一个距离约束的问题。假设攻击产生了效果,那么自车ACC系统会出现问题导致车辆识别不到前车,在这种情况下车辆会加速,也就意味着自车和前车之间的距离会缩小。这种性质使得攻击设计的图像应该考虑距离这一因素,应该能够在多个距离下都具有攻击效果。
在这个攻击的实现过程中,我们的目标是设计一张攻击图像,我们可以将其理解为原图和一个扰动,二者叠加即为攻击图像。在这个过程中,我们需要最小化一个损失函数,函数的输入是攻击图像,通过调整扰动,实现最小化损失函数。
损失函数可以拆分为两个部分:对抗损失(Adversarial Loss)和总变差损失(TV Loss)。
其中对抗损失又可以进一步拆分为置信度损失和距离损失,前者负责让ACC系统无法可靠地检测到前方车辆,后者则负责让系统错误地判断前车距离较远。
总变差损失则是用于使生成的对抗扰动更加平滑,适合物理打印。
通过录制仿真环境下多时间的图像数据,优化函数可以设计出一个攻击图像,在实验验证的部分,作者选择了两种模拟器进行攻击,为了将攻击图像部署到模拟器内部,作者使用的方法是修改车辆的贴图模型,将车辆后方的贴图替换为设计出来的攻击图像,从而将攻击部署在模拟器中,而并没有进行实际测试。