技术文章和通讯

基于机器学习的宝马汽车转向过度检测

作者:Tobias Freudling,宝马集团


转向过度是一种不安全的情况,在这种情况下,车辆的后轮胎在转弯时失去抓地力(图1)。这可能是由于轮胎磨损、路面湿滑、转弯过快、转弯时突然制动或这些因素的组合造成的。

图1所示。在测试赛道上驾驶一辆宝马M4。

现代稳定控制系统被设计成在检测到过度转向时自动采取纠正措施。理论上,这样的系统可以通过使用基于第一性原理的数学模型来识别过度转向状态。例如,当车载传感器的测量值超过模型中设定的参数阈值时,系统就判定汽车过度转向。然而,在实践中,由于涉及的许多因素的相互作用,这种方法被证明难以实施。一辆轮胎充气不足的汽车在结冰路面上行驶与一辆轮胎充气适当的汽车在干燥路面行驶所需要的阈值可能大不相同。

在宝马,我们正在探索一种机器学习方法来检测转向过度。在MATLAB中工作®,我们开发了一个有监督的机器学习模型作为概念证明。尽管之前在机器学习方面没有什么经验,但在短短三周内,我们就完成了一个工作中的ECU原型,能够以超过98%的准确率检测过度转向。

收集数据和提取特征

我们首先从车辆过度转向之前、期间和之后收集真实世界的数据。在一位专业司机的帮助下,我们在法国Miramas的BMW试验场用一辆宝马M4进行了现场驾驶测试(图2)。

图2。法国米拉马斯的宝马试验场。

在测试期间,我们捕获了转向过度检测算法中常用的信号:车辆的前向加速度、横向加速度、转向角和横摆率。此外,我们还记录了司机对转向过度的看法:当司机指出汽车转向过度时,我的同事作为乘客乘坐汽车,按下了笔记本电脑上的一个按钮。当司机表示汽车已恢复正常驾驶时,她松开了按钮。这些按钮的按下创造了我们训练有监督学习模型所需的基本事实标签。我们总共在43分钟的记录数据中捕获了约259000个数据点。

回到我们慕尼黑的办公室,我们将收集到的数据加载到MATLAB中,并使用统计学和机器学习工具箱™中的分类学习应用程序来使用各种分类器训练机器学习模型。根据这些原始数据训练的模型产生的结果并不突出——精确度在75%到80%之间。为了得到更准确的结果,我们对原始数据进行了清理和精简。首先,我们应用滤波器来降低信号数据上的噪声(图3)。

图3。原始转向角信号(蓝色)和滤波后的相同信号(橙色)。

接下来,我们使用峰值分析来识别滤波输入信号上的峰值(局部最大值)(图4)。

图4。已识别峰值的转向角信号。

评估机器学习方法

在过滤和减少收集的数据后,我们能够更好地评估监督机器学习方法。使用分类学习器应用程序,我们尝试了k-最近邻(KNN)分类器、支持向量机(SVM)、二次判别分析和决策树。我们还使用该应用程序查看通过主成分分析(PCA)转换特征的效果,这有助于防止过度拟合。金宝app

表1总结了我们评估的分类器产生的结果。所有分类器在识别过度转向方面表现良好,其中三个分类器的真阳性率超过98%。决定因素是真实的阴性率:分类器能有多精确地确定车辆的时间转向过度。在这里,决策树的表现超过了其他分类器,真正的负分类率接近96%。

真阳性(%) 真阴性(%) 假阳性(%) 假阴性(%)
基于PCA的K-最近邻
94.74 90.35 5.26 9.65
金宝app支持向量机 98.92 73.07 1.08 26.93
二次判别分析 98.83 82.73 1.17 17.27
决策树 98.16 95.86 1.84 4.14
表1。四种不同的有监督机器学习分类器的结果总结。

为车内测试生成代码

由决策树产生的结果是有希望的,但真正的测试将是分类器在真实汽车的ECU上的表现如何。我们用MATLAB Coder™从模型生成代码,并为我们的目标ECU编译代码,安装在宝马5系列轿车。这一次,我们在阿什海姆附近的宝马工厂亲自进行了测试,那里离我们的办公室很近。当我开车时,我的同事收集数据,记录下我指出汽车过度转向的准确时间。

该分类器在ECU上实时运行,表现出奇地好,准确率约为95%。在进行测试时,我们不知道会发生什么,因为我们使用的是不同的车辆(宝马5系而不是M4)、不同的驾驶员和不同的赛道。仔细观察数据发现,模型与驾驶员感知的过度转向之间的大部分不匹配发生在过度转向条件的开始和结束附近。这种不匹配是可以理解的;即使对于驾驶员来说,也很难准确确定何时开始和停止转向过度。

我们已经成功开发了一种用于过度转向检测的机器学习模型,并将其部署在原型ECU上,现在我们正在展望机器学习在宝马的其他许多潜在应用。几十年来收集的大量数据可供我们使用,而今天,一辆汽车一天就能产生1万亿字节的测量数据。机器学习提供了一个开发软件的机会,利用可用的数据来了解司机的行为,并改善驾驶体验。

2018年出版

查看相关功能的文章

查看相关行业的文章