基于机器学习的宝马汽车转向过度检测
作者:Tobias Freudling,宝马集团
过度转向是一种不安全的情况,即车辆的后轮胎在转弯时失去抓地力(图1)。它可能是由轮胎磨损、路面湿滑、转弯太快、转弯时突然刹车或这些因素的组合引起的。
现代稳定控制系统的设计,自动采取纠正措施时,过度转向检测。理论上,这种系统可以通过使用基于第一性原理的数学模型来识别转向过度情况。例如,当车载传感器的测量值超过模型中参数的设定阈值时,系统就会判定汽车转向过度。然而,在实践中,这种方法已被证明难以实施,因为涉及许多因素的相互作用。一辆轮胎充气不足的汽车在结冰的路面上行驶时所需要的阈值可能与在干燥的路面上充气正常的汽车所需要的阈值大不相同。
在宝马,我们正在探索一种机器学习方法来检测转向过度。MATLAB工作®,我们开发了一个有监督的机器学习模型作为概念的证明。尽管之前几乎没有机器学习的经验,但在短短三周内,我们就完成了一个工作ECU原型,能够检测过度转向,准确率超过98%。
数据采集与特征提取
我们首先收集了一辆汽车在过度转向之前、期间和之后的真实数据。在一名专业车手的帮助下,我们在法国米拉马斯的宝马试验场对一辆宝马M4进行了现场驾驶测试(图2)。
在测试过程中,我们捕获了过度转向检测算法中常用的信号:车辆的正向加速度、横向加速度、转向角度和偏航率。此外,我们记录了司机对转向过度的感知:当司机表示汽车转向过度时,我的同事作为乘客坐在车里,按下了她笔记本电脑上的一个按钮。当司机表示汽车已恢复正常操作时,她松开了按钮。这些按钮产生了我们训练监督学习模型所需的基本真理标签。总的来说,我们在43分钟的记录数据中捕获了大约259,000个数据点。
回到慕尼黑办公室,我们将收集到的数据加载到MATLAB中,并使用统计和机器学习工具箱™中的分类学习者应用程序,使用各种分类器训练机器学习模型。用这些原始数据训练的模型产生的结果并不突出——准确率在75%到80%之间。为了获得更准确的结果,我们清理并减少了原始数据。首先,我们应用滤波器来降低信号数据上的噪声(图3)。
接下来,我们使用峰值分析来识别经过滤波的输入信号上的峰值(局部极大值)(图4)。
评估机器学习方法
在过滤和减少收集的数据后,我们可以更好地评估有监督的机器学习方法。使用Classification Learner应用程序,我们尝试了k-nearest neighbor (KNN)分类器、支持向量机(svm)、二次判别分析和决策树。我们还使用该应用程序来查看通过主成分分析(PCA)转换特征的效果,这有助于防止过拟合。
表1总结了我们评估的分类器产生的结果。所有分类器在识别转向过度方面都表现良好,其中三个分类器的真阳性率超过98%。决定因素是真实的负率:分类器能够多准确地确定车辆何时处于危险状态不转向过度。在这里,决策树的表现优于其他分类器,真实的负率接近96%。
真阳性(%) | 真阴性(%) | 假阳性(%) | 假阴性(%) | |
k -最近邻PCA |
94.74 | 90.35 | 5.26 | 9.65 |
支持向量机 | 98.92 | 73.07 | 1.08 | 26.93 |
二次判别分析 | 98.83 | 82.73 | 1.17 | 17.27 |
决策树 | 98.16 | 95.86 | 1.84 | 4.14 |
为车载测试生成代码
决策树产生的结果是有希望的,但真正的测试将是分类器在真实汽车中的ECU上的表现如何。我们使用MATLAB Coder™从模型生成代码,并为目标ECU编译代码,安装在宝马5系轿车上。这一次,我们在阿什海姆附近的宝马工厂进行了测试,离我们的办公室很近。在我开车的时候,我的同事收集数据,记录下我指出汽车转向过度的准确时间。
在ECU上实时运行,分类器的表现令人惊讶地好,准确率约为95%。进入测试时,我们不知道会发生什么,因为我们使用的是不同的车辆(宝马5系而不是M4),不同的车手,不同的赛道。仔细观察数据可以发现,大多数模型与驾驶员感知到的过度转向之间的不匹配发生在过度转向状态的开始和结束附近。这种不匹配是可以理解的;即使是司机也很难准确地判断何时开始和停止转向过度。
在成功开发了用于过度转向检测的机器学习模型并将其部署在原型ECU上之后,我们现在正在设想机器学习在宝马的许多其他潜在应用。几十年来收集的大量数据可供我们使用,今天,一辆车一天就能产生一万亿字节的测量数据。机器学习为开发软件提供了机会,该软件可以使用可用数据来了解司机的行为,并改善驾驶体验。
2018年出版的