Abstract

INTRODUCTION

A.
如图1所示,本文首先提出了一种基于学习的分类方法,利用小尺度驾驶模式从真实驾驶数据中识别驾驶事件。这些模式包含在几秒钟的驾驶数据中,通常与驾驶动作相对应,从而帮助描述驾驶员的行为。其次,本文将所学的模型应用于数字道路,即将道路的数值描述作为卡车驾驶模拟器的输入。

本文的贡献有四方面:

  • 影响驾驶员行为的道路事件的识别和分类
  • 提出并分析了一套对道路事件敏感的小型驾驶模式相关特征
  • 使用两种机器学习技术,即决策树和线性逻辑回归,自动识别驾驶事件与真实驾驶数据。此外,驾驶事件 与真实驾驶数据,并且驾驶事件的识别还包括主要识别特征的选择
  • 在实际驾驶数据和数字道路上进行了模型实验。后者为模拟驾驶数据。

首先,除了[6]中研究的节流空驱动事件之外,我们考虑更完整的驾驶事件集,包含特别是油门非空事件,即

  • driving at a speed limit
  • reach a higher speed limit
  • urban take-off
  • main road or highway take-off
  • adjust for stop
  • adjust for other reasons

其次,还引入了新的驾驶特征,例如与油门踏板相关的特征,以进一步对油门= 0和油门>驾驶事件进行分类。最后,我们也给出了该工作的最终应用,即在数字道路上的仿真。这是一个重大的挑战,因为数字道路包含的驾驶信息(例如驱动器)比真实驾驶数据要少,从而使驾驶事件的识别复杂化。

A. 驾驶事件

Johnson等人提出了一种用于攻击性驾驶[3]智能识别的移动传感器平台。这个平台旨在区分典型的(非侵略性的)驾驶风格和侵略性的驾驶风格,考虑到驾驶员的安全,并提出了8个驾驶事件的自动识别。
等。该平台使用手机中各种传感器收集的数据,如后置摄像头、加速度计、陀螺仪和GPS。同样,Eren等人[8]和Paefgen等人。[9]还使用从智能手机传感器收集的驾驶数据来进行驾驶行为分析,例如[8]中的安全驾驶或危险驾驶,以及[9]中的关键事件。另外,Karaduman等人依靠CAN总线数据进行主动/平静驾驶检测[10]。

Van Ly等人确定了三种不同的驾驶事件,即加速、刹车和转弯[5]。他们提出利用这些驾驶事件的特征向量来区分两名驾驶员,以提供反馈并减少危险的汽车机动次数。Satzoda等人对使用自然驾驶研究(NDS)进行自动驾驶分析[2]的可能性进行了更一般的多模态研究。他们确定了一些驾驶事件,主要集中在横向机动,例如,右/左变道。左/右曲线。左/右转。等。

这些研究都一致表明,自动识别驾驶事件是可能的。如表I所示。驾驶事件大多限于转弯、加速和刹车事件。此外,驾驶事件的定义因工作的不同而差异很大,这取决于底层应用程序。在我们的工作中,我们关注的是突出卡车司机如何控制车辆的燃料消耗和平均速度问题的驾驶事件。因此,我们特别关注纵向努力,并定义驾驶事件,这与目前最先进的一个有很大不同。事件在第III- b节和表III和IV介绍。与其他研究相比,我们详细说明导致加速或刹车的不同情况。然而,相关研究提出的特征可以用于自动识别我们的驾驶事件。

B. 驾驶特征

在文献中,驾驶特征的提取有多种目的,包括上述驾驶事件:道路类型识别[14],驾驶员分类[15],油耗估计[16]。我们这里的目的是识别驾驶事件。因此,我们需要提取驾驶模式,即将所有驾驶数据分割成一系列驾驶事件。Engstrom将驾驶模式分为三类,即大规模、小规模和实时规模的驾驶模式[14]。

大规模的驾驶模式,例如5分钟的速度数据,是持续几分钟的长期驾驶数据,使分析成为可能,而不是全球驾驶事件或。行为。这些模式通常用于确定驾驶环境,如道路类型[14],识别驾驶员[15]和估计油耗[16]。Ericsson列举了一组driving characteristics来研究[17]对燃料利用率和尾气排放因子的影响。这些驱动参数主要涉及速度、加速、发动机和变速箱特性。虽然这些特征在他们的研究中都是有趣的,以燃料利用为目的,但他们并不都适应我们的驾驶事件识别过程。例如,引擎相关的特性,例如,在发动机转速<1500 rpm时%的时间,是特定于汽车特性的,而我们的目标是识别驾驶事件独立于卡车发动机的物理特性。

小规模驾驶模式通常包括几秒钟的驾驶数据,因此允许提取在驾驶机动过程中[2],[3],[5],[11,[18]]的重要特征,例如,变道,环形车道制动。

最后,最后一种模式是实时数据,如眼睛或头部位置,用于分类车辆机动。这类数据持续时间的数量级约为几毫秒。

在本文中,我们的目标是识别典型持续数秒的驾驶事件,从而使用短尺度驾驶模式。我们关注的是小型最先进的驾驶功能,综合在表II中。从这个表格可以看出,我们把这些驾驶特性分成了8个不同的组。第一组与各种车辆速度统计有关,而第二组与车辆加速度有关。第三组由值得注意的子部分组成,它们描述一个精确的部分驾驶数据,并计算不同比例的驾驶时间,例如,停顿时间,匀速等。第四组被称为“独立”,由不依赖于车辆的特征组成,如驾驶时间和每公里停车次数。第五小组。主要是对能量的分析。第六组是关于发动机转速和换挡的各种参数,下一组是关于横向行驶的信息,即横向和摆幅加速度或颠簸。最后一组是关于驾驶员控制车辆的执行器。

这些特性已被用于各种目的,如Canale和Malan[18]提出的驾驶员分类。他们通过对驾驶员行为的统计分析,即车辆的平均值和标准差,以及速度、坡度等环境数据来研究驾驶员的风格。然而,他们的研究仅限于城市路段的停车和行走阶段,他们的目标是分类驾驶员的风格,而不是驾驶事件。类似的工作是计算加速度和/或曲率数据的统计特征,这些数据是用加速度计、陀螺仪或GPS[2]、[3]、[5]、[11]获得的。在我们的工作中,我们专注于纵向动力特性,因为这项工作的主要目标之一是不包括横向努力的模拟过程。

DRIVING DATA AND DEFINITION OF DRIVING EVENTS

基于学习的驾驶事件识别需要具有代表性的训练数据进行训练和验证。在本节中,我们将介绍所收集的驾驶数据和我们所关心的驾驶事件。

A. 数据收集
当我们开始我们的研究时,我们没有合适的驾驶数据来学习。因此,我们启动了一个数据采集过程,旨在涵盖11名不同司机的尽可能多的驾驶情况。这里的一个关键标准是招募足够多的不同驾驶经验的卡车司机,从而在同一驾驶事件中描述不同的行为。我们选择了一批具有代表性的车辆和道路分布的区域利用率。这些公路位于城市和城市以外地区,包括一些高速公路。所有数据均在法国里昂地区采集。一辆装载13.7吨的沃尔沃FL车辆配备了三个数据采集设备。
这些设备是一个CAN数据记录器,记录CAN总线信号,如车辆速度,“油门踏板百分比,等,一个GPS车辆重力定位,和摄像机记录拍摄外部场景。只能使用数据和GPS数据进行分类。摄像机的记录有助于对事件进行标记,也有助于理解事件期间公路上实际发生了什么,从而解释分类结果。实际上,采集到的原始驾驶数据还需要进一步手工后处理,以分割各种驾驶事件,作为后期学习阶段的地面真实数据。然而,由于没有显示交通环境的图像,这种人工分割是非常复杂的。因此,我们实现了aspecific注释工具,以同步的方式显示交通环境和驾驶数据的视频。
在数据采集过程中,要求驾驶员正常驾驶,但不使用巡航控制,并始终保持自动变速箱处于自动模式。我们制定这些规则是为了区分驾驶员和车辆的影响。由于驾驶事件的部分分析是通过执行器(见章节II1-B),我很重要的是,司机可以控制车辆的速度仅与执行器,而不是使用巡航控制。出于同样的原因,我们不希望司机控制变速箱,所以我们要求他保持自动模式。

B. 驾驶事件

根据本研究的目的,有许多定义驾驶事件的方法。这项工作的目标是了解驾驶员的行为。因此,我们所关注的驾驶事件中,驾驶员可以通过使用不同的执行器来显示不同的行为。为了控制车辆的速度,驾驶员使用三种不同的执行器,即油门踏板(Throttle pedal)、刹车踏板(brake pedal)和减速踏板(retarders)。油门踏板和刹车踏板是大家都知道的踏板,分别用于加速和刹车。缓速器是辅助主要摩擦制动系统功能的设备。当驾驶员没有使用上述三个驱动器时,就会发生滑行(Coasting)。

本文根据这些驱动器的使用情况对驾驶事件进行了划分,得出了两种不同的结果。
第一种分类包括 Throttle > 0 事件,即车手每次开始使用油门踏板时启动。
第二类的Throttle = 0事件时,驾驶员使用刹车和/或减速器。
图三显示了两种不同事件类型的例子

直接应用前面的定义会导致许多远远超出实际情况的驾驶事件。因此,又定义了4条关于司机如何根据道路情况控制车辆的规则:

  • 当车没有移动(速度等于0km/h),明显没有事件
  • 如果两个Throttle > 0 事件以滑行周期和他们之间少于3km/h的速度间距所分割,这两个事件被合并。我们在采集的驾驶数据中观察到,当驾驶员在驾驶过程中以匀速行驶为目标时,他们并没有保持准确的目标速度,而是在目标值附近的3公里/小时范围内振荡几公里/小时。因此两个相邻的Throttle > 0 事件速度差距小于3公里/小时的项目必须视为同一项目。相反,如果司机让他的车在滑行过程中显著地增加或减少速度,这意味着他想要改变他的目标速度。因此,这应该被解释为一个新的事件。
  • 如果两个或两个以上的Throttle = 0事件距离太近,则合并为单个事件(即两个相邻事件在delta t< 5s时,此期间发动机转矩<15 N.m,油门位置百分比也必须小于5%),这是由于缺乏低油门位置百分比的影响,以及踏板图配置导致的发动机扭矩较低。
  • 如果两个相邻Throttle = 0事件的滑行阶段重叠,这些事件也会合并为单个事件。事实上,如果两个Throttle = 0事件之间没有发生任何事情,我们可以认为车手在同一事件中仍在控制他的车辆,而不是在一个新的事件中。

表IIl和表IV展示了在数据收集过程中观察到的所有驾驶事件。我们还与专业司机一起起草了一份所有驾驶情况的详细清单。这表明,在我们的数据采集期间确定的以前的驾驶事件涵盖了主要和最常见的驾驶情况。

SELECTION OF DRIVING EVENTS SENSITIVE REATURES

一旦所有的驾驶事件都被识别出来并被人工标注在所获得的数据上,我们就必须提取对这些驾驶事件敏感的有意义的特征,为机器学习的后一个阶段做准备。

A. 驾驶事件敏感特征

如表V所示,我们收集了一组潜在敏感的驱动事件特性并将其划分为三组。这三组是由影响车辆速度和油耗的主要部件定义的。

  • 第一组特征与车辆行为(速度、加速等)有关
  • 第二组特征与驾驶员行为(刹车、油门等)有关
  • 最后一组包含与环境有关的特征(道路类型、斜坡等)。

这些特性中的大多数已经出现在文献中,特别是那些与速度和加速有关的。我们还调整了一些功能,以适应一个重型车辆的动力学。例如,卡车的高加速度阈值为|a| > 0.7 m/s2,而汽车的|a| > 2.5 m/s2。我们添加了一些其他的特征来更精确地描述驾驶事件及其上下文,例如,事件的持续时间和距离。这提供了一个事件的整体图片,而坡度、道路类型和其余的背景特征取决于环境。这些特征是基于一种直接的直觉,即一个事件可能取决于它的背景,例如,收费在高速公路上比在城市道路上更有可能发生。道路类型分为城市道路、主要道路和高速公路三类。

我们还引入了一些距离特性。这些提供的距离下一个或前一事件相同的类别(例如,油门> 0或节流= 0),原因是我们在收集观察驾驶数据,在一些地区,许多制动事件有序列而在其他地方,有少得多。因此,与下一个/前一个事件的距离可以作为环境的指示器。最后,我们还计算了与驾驶员执行器使用有关的各种特征,特别是驾驶员使用刹车、节流阀或减速器时距离事件发生的时间和距离的百分比。直观上,驾驶员在面对不同的驾驶事件时,可能会使用不同的致动器。

B. 通过SFS判别驾驶特征的选择

由于表V中列出的特征数量相当大,而且有些可能是相互关联的,因此一个关键问题是选择这些特征的子集,以充分区分驾驶事件。在机器学习领域,特征选择的目的是排除冗余或不相关的“特征[19]”。这样做的目的是通过减少过拟合来提高模型的可解释性,缩短训练时间,提高学习模型的泛化能力。在本文中,我们使用序列正向选择原则(SFS),它由测试特征[20],[21]的增长子集组成。为此,将收集到的驱动数据集用作硬数据。

1)Throttle = 0事件:为了评估识别Throttle =0事件的最具辨识力的feature,使用SFS在每次迭代中添加一个新feature来选择不断增长的feature子集。对于每个子集,我们使用C4.5[22]和线性logistic回归算法[23]对驱动事件进行分类(见V-A节),并选择提高分类率的特征子集。用于SFS的工具箱WEKA输出最相关的特性列表。因此,以下特征似乎是最重要的分类:最大速度,最低速度,速度标准偏差,初始和最终速度之间的差距(Aspeed),道路类型,距离,停止,前一个事件,和下一个事件的距离。基于特征子集增长的实验结果证实了一个众所周知的现象,即利用更多的特征可能会导致识别精度下降,因为有些特征是冗余的,会产生噪声。例如,前几公里的平均速度提供的信息并不比道路类型多。
一旦这9个属性出现,我们决定在它们之间做进一步的手工选择。我们的目标是在属性的数量、在真实数据和数字数据上计算这些属性的简便性和分类结果之间取得最好的折衷。例如,分类率(详见V-B节)为73.5%,有以下9个特征(最大速度,最小速度)。(Aspeed)、道路类型、距离、停止、速度标准偏差、前一事件、与下一事件的距离),而只有以下6个特征(最高速度、最低速度、(Aspeed)、道路类型、距离和停止),这些事件被正确找到的概率为74%。接下来的小节中给出的Throttle = 0事件的所有结果都是使用这6个特性获得的。直观上,SFS选择的特征在预期的情况下是一致的,即驾驶事件大多可以用速度相关和上下文相关的特征来描述

2)Throttle > 0事件:对于节流阀= 0事件,我们测试共同特征,特别是与速度和加速有关的特征。表V列出了用于自动识别驾驶事件的所有驾驶特性。由于燃油是在驾驶员踩油门踏板时注入的,所以我们也介绍了一些关注燃油消耗的特性,特别是[17]衍生的特性,比如均匀驾驶的持续时间和突然变速持续时间的百分比。再次应用SFS选择判别能力最强的特征来识别Throttle = 0 events, 以及C4.5[22]和线性logistic回归[23]。因此,我们观察到最常见的属性继续发挥主要作用,特别是速度、最小速度、平均速度和速度标准差。但是,与Throttle = 0事件不同,加速属性的影响更大。燃料消耗也作为一个区分属性出现。通过特征的选择,得到最佳分类精度的8个特征子集:Aspeed、最小速度、速度标准差、最大加速度、突然变速持续时间、平均转矩百分比、油耗和道路类型。
就像Throttle = 0事件一样,这一结果被证明与我们预期的特征是一致的,这是基于对车手在这些事件中的行为的了解。例如,区分事件的城市主干道的起飞和起飞:考虑到最终速度应小于50公里/小时城市起飞,而最终速度主要道路起飞约70 - 80公里/小时,该功能最终速度是直觉地预期作为识别特征对这两个事件进行分类。值得注意的是,特别是在我们的后续工作中,当只使用以下四个属性时,我们只观察到性能下降了1%,即Aspeed、最低速度、速度标准偏差和道路类型。

DRIVING EVENTS RECOGNITION FROM REAL DRIVING DATABASE ON TWO MACHINE LEARNING ALGORITHMS

这项工作的目的是自动识别影响驾驶员行为的重要驾驶事件。一旦驾驶事件被定义和鉴别特征被识别,我们就可以提出识别驾驶事件的机器学习算法。为了达到我们的目标,我们使用了V-A节中介绍的两种算法,即决策树和线性逻辑回归。这些应用于真实的驾驶事件,结果将在下面的子节中给出。图4给出了从原始数据集S到算法结果的分类过程。数据集S的每个实例代表一个事件Ev以及每个特性对应的值。

A. 基于学习的算法

  1. 决策树
    我们选择这种方法是因为它保留了属性的物理意义,这对我们的工作是非常必要的。事实上,我们的首要任务之一是充分理解为什么有些实例被归类到一个类而不是另一个类。
    此外,这种方法允许我们通过输出树清楚地看到哪些特征是最重要的。我们使用WEKA数据挖掘软件中的C4.5算法对事件[22]、[24]进行分类。该算法利用信息熵构建决策树:在每个节点上,最具辨别性的属性取决于增益比,即通过每个类中的实例数(分裂信息)加权的信息增益。

集合S的属性a的增益$G(S, a)$为

$$
G(S, a) = E(S) - \sum_{i=1}^{m} f_s(a_i) \times E(S_{a_i})
$$

  • $m$ 是S中a的不同值的数量
  • $f_s(a_i)$ 为S中具有$a_i$的项对a的值的频率
  • $a_i$ 是a中第i个可能的值
  • $S_{a_i}$ 是S的一个子集,包含a的值为$a_i$的所有项
  • $E(S)$是对a进行分割前数据集S的信息熵

$$
E(S) = - \sum_{j=1}^n f_s(j) \times log_2 f_s(j)
$$

  • n是S中不同属性值的个数
  • $f_s(j)$是集合S中j值出现的频率。
  1. 基于线性逻辑回归的分类器
    本文也使用线性逻辑回归(LLR)与决策树C4.5进行比较。LLR建立了一个线性模型。回归变量是表v中列出的特性。LLR保留了属性的物理意义,并为每个特性赋予了权重。在WEKA软件中,LLR被称为SimpleLogistic算法,它基于[23]和[25]。它创建线性逻辑回归模型,以获得一个给定实例属于一个类的后验概率。线性logistic回归将一个线性模型与一个概率函数关联起来,并确保概率之和为1,且保持在[0,1]。根据[23]和[25],逻辑线性回归模型定义如下:
    $$
    P_r(Ev = k|Features = a) = \frac{e^{F_k(a)}}{\sum_{l=1}^K e^{F_l(a)}}
    $$
    其中
    $$
    \sum_{l=1}^K F_l(a) = 0
    $$
    $$
    F_k(a) = \beta_k^T \dot a = \sum_{i=1}^n \beta_{ik} a_i + \beta_{0k}
    $$
  • $P_r(Ev = k|Features = a)$是在输入特征向量$a = (a1,……,an)$下,属于k类的后验概率
  • n是特征的数量
  • K是类的数目
  • $F_j(f_k)$ 为参数为$\beta_j$的线性模型

简单的logistic算法基于LogistBoost算法[26]估计这些参数。该算法一直运行到收敛时才能找到线性logistic模型的最大似然值,该模型的线性函数采用线性最小二乘回归拟合。

B. Throttle = 0 事件的分类

数据库包含913个Throttle =0事件,被分为13个类,见第III-B节。除非另有说明,以下所有结果均使用C4.5算法使用10倍交叉验证方法[27]获得。数据集因此被划分为10个折叠,每个折叠有91或92个实例。两种算法分别使用9个分区对模型进行学习,用剩余的分区对学习后的模型进行测试。这样重复了10次,但每次都使用不同的学习和测试集。然而,对于13个类,两种学习算法在初始原始数据库上进行蛮力训练的结果是令人失望的49%的分类率。这个分类率已经远远好于随机分类。有些分类,如J: toll,分类很好,如表六所示,而其他分类率相当低,如F: curves。

我们的目标是识别导致不同驾驶员行为的驾驶事件。因此,我们与内部专家驾驶员讨论这些结果,他们通过驱动器的利用分析了他们的驾驶方法。他们发现他们在一些驾驶事件上有相似的行为,这些驾驶事件被学习算法严重混淆。为了量化这种相似性并提高识别结果,我们根据式(6)测量每对类之间的Fisher线性判别法。

$$
J_{\frac{1}{2}} = \frac{1}{n} \times \sum{i=1}{n} \frac{(\mu_{1,n} - \mu{2,n})^2}{\sigma_{1,n}^2 + \sigma_{2,n}^2}
$$

  • $J_{\frac{1}{2}}$是第一类和第二类之间的Fisher距离
  • n是特征的数量
  • $\mu_{C,n}$为特征n在C类中的平均值
  • $\sigma_{C,n}$为特征n在C类中的标准差值
    这个判别器可以被解释为一个距离,并被用来量化类间相似性与类内差异
    例如,图5给出了到B的Fisher距离: traffic,显示出这个类与许多其他类太接近,很难区分。

专家驾驶员的建议和Fisher判别器的分析导致我们修改关于驾驶员行为的初始数据库标签,并对一些类和实例进行分组和/或分离。下面的小节将介绍每一步。

C. 讨论关于Throttle = 0 事件的识别
仔细观察类E的速度图:大小约束,我们发现需要将5个实例切换到另一个类。然后,对于类F: curve,高速实例的速度形状与类H: speed imit相似。这些最初的改变将分级率提高到57%,特别是H级限速级speed limit class(+18%)和A级环形交叉口级roundabout class(+10%)。
进一步分析上述类的合并,我们还发现,从驾驶员行为的角度来看,以停止结束的出口匝道事件与通行费事件非常相似。因此,我们将类M:exit ramp带有stop的出口匝道的实例移动到类J: toll。

类似地,D类:红绿灯的停止事件与I类:停止标志的停止事件非常相似。这种混淆可以在表七所示的混淆矩阵中观察到。当这两个类合并后,分类率上升到63%。

然后我们研究了L: give-way类,它的分类率仍然很低。在检查分类结果时,我们发现带有stop的实例总是与类I: stop相混淆。因此,我们将这些实例移到类I: stop。此外,我们还合并类L的其余实例。A类的让道:roundabout是让道的一种变体。这些变化使我们能够减少类的数量并改进分类结果。

此时,分类结果和混淆矩阵表明,C:减速带,E:尺寸约束,F:曲线,经常被混淆。通过这些事件的速度曲线可以观察到它们的相似性。这三个类别都被归为一个更广泛的类别,称为E:城市减速。这个类别包括所有在城市地区的减速事件,除了那些由交通或环形路引起的减速事件。这使得分类数量减少到9个,而分类率增加了5%。

这种分类的缺点现在是B:分类率在20%左右的流量类。这是由于广泛的驾驶情况包括在这类。专家驾驶员强调,交通状况会根据道路类型而变化。因此,我们根据道路类型创建集群,将B: traffic类实例分为3类,分别为E:城市减速,H:限速,B: traffic。该解决方案确保了最终的全局分类率为74%。

最后,由于我们的标记修改,识别准确率从大约50%提高到74%,如表VIII所示。LLR甚至取得了略好一点的结果,识别率达76%。

这个74%的最终结果是通过对我们数据库中913个事件进行10倍交叉验证得到的,假阳性率为6.7%。为了检验所提方法的泛化能力,我们进一步收集了一组新的使用同一车辆的驾驶数据。这个附加的数据集包含242个事件。
913事件的初始数据库用作训练集的算法,和242年的事件作为测试集。在这些相同的条件和选择属性,C4.5达到70%的识别率,这是非常接近74%的初始数据库上实现。LLR的识别率达到71%。考虑到类的数量,这个识别率相当不错。此外,驾驶员在面对不同事件时的行为是相似的,这是可以理解的,例如在环形交叉处的制动或卡车大小的约束事件。从我们专业的司机经验来看,这是意料之中的。这就是为什么在第二个数据库中验证242个事件的分类率对于我们的目标来说是可以接受的。最后,这项工作表明,基本特征,特别是最大和最小速度,是最重要的节流=0事件分类。关于Throttle = 0事件的初始工作允许我们构建并验证我们的方法,从而继续对Throttle> O事件进行分类。

DRIVING EVENTS RECOGNITION IN DIGITAL ROADS

CONCLUSION