检测过度转向的BMW汽车与机器学习

Tobias Freudling,宝马集团

过度转向是其中车辆的后轮胎失去它们的抓地力,同时进行导航的转弯(图1)到不安全条件。它可以通过磨损的轮胎,湿滑路况导致的,采取转得太快,刹车突然而转向,或这些因素的组合。

图1所示。在测试跑道上过度驾驶宝马M4。

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

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

收集数据和提取特征

我们开始之前,从车辆收集真实世界的数据,期间和之后转向过度。配有专业的司机的帮助下,我们在米拉马,法国(图2)的BMW试验场进行了宝马M4现场驾驶考试。

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

在测试过程中,我们捕获了过度转向检测算法中常用的信号:车辆的前加速、横向加速、转向角度和偏航率。此外,我们还记录了司机对过度转向的感知:当司机表示汽车过度转向时,我的同事作为乘客坐在车内,按下了她笔记本电脑上的一个按钮。当司机表示汽车已经恢复正常驾驶时,她松开了按钮。这些按钮创建了ground-truth标签,我们需要训练一个监督学习模型。在43分钟的记录数据中,我们总共捕获了大约259,000个数据点。

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

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

接下来,我们使用峰分析来识别在我们的滤波后的输入信号的峰值(极大值)(图4)。

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

评估机器学习方法

过滤和减少收集的数据后,我们能够更好地评估监督的机器学习方法。使用分类学习应用程序,我们试过k近邻(KNN)分类器,支持向量机(SVM),二次判别分析和决策树。金宝app我们还使用了应用识破主成分分析(PCA),这有助于防止过度拟合转化功能的影响。

由我们评估分类器所产生的结果总结于表1中的所有分类器识别的转向过度,具有98%以上,3分生产真阳性率表现良好。决定性因素是真阴性率:分类如何准确地能够确定车辆何时是转向过度。在这里,决策树优于其他分类器,其真实负率几乎达到96%。

真阳性(%) 真阴性(%) 假阳性 (%) 假阴性(%)
K最近与PCA邻居
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编译代码,该ECU安装在宝马5系轿车中。这次,我们在靠近我们办公室的Aschheim附近的宝马工厂自己进行了测试。我一边开车,我的同事一边收集数据,记录下我指出汽车转向过度的准确时间。

在对ECU实时运行,分类进行得非常好,约95%的准确率。进入测试,我们还不知道会发生什么,因为我们用的是不同的车辆(一宝马5系,而不是M4),不同的驱动程序,以及不同的曲目。在数据仔细查看后发现,大多数的模型和驾驶员的转向过度感知之间的不匹配的附近发生的过度转向状态的开始和结束。这种不匹配是可以理解的;它可以很难,即使是驾驶者准确判断何时转向过度已经开始和停止。

在成功开发了用于过度转向检测的机器学习模型并将其部署在原型ECU上之后,我们现在正在预想宝马机器学习的许多其他潜在应用。几十年来收集的大量数据对我们来说唾手可得,而今天,一辆车就能在一天内产生1tb的测量数据。机器学习为开发软件提供了机会,利用可用数据了解司机的行为并改善驾驶体验。

2018年出版的


查看文章的相关能力

查看文章为相关行业