Press "Enter" to skip to content

浅谈机器学习在自动驾驶中的应用

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

自动驾驶已经成为了工业界和学术界共同的研究热点。据统计,仅中国每年因为车辆的交通事故而死亡的人数达10万多人,受伤的人数达200多万人,而发生纠纷与冲突的人数更高达600多万人。

 

其中,约90%的事故原因来自于驾驶员的错误,比如:30%的事故是由于驾驶员醉酒,10%的事故是驾驶员分心造成的。自动驾驶有潜力能减少由驾驶员操作失误造成的交通事故,同时也为由于身体原因不能驾驶的人驾车出行提供了可能。而且,自动驾驶也能把劳动力从简单、重复的驾驶中解放出来,提高生产力。

 

自动驾驶从其诞生之日就获得了极大的关注。第一届DARPA无人车挑战赛始于2004年,无人车需要在莫哈维沙漠中完成150英里的行驶,但参赛的15辆车均未完成。次年,23辆车中有5辆顺利完成全程。后来,2007年,DARPA城市挑战赛举行,无人车需在模拟的城市环境中自主行驶,其中有6辆车完成赛程。除了这些挑战赛,许多研究机构和商业公司也加入自动驾驶的研究行列中。Google无人驾驶汽车已经行驶超过100万公里,实现了零事故;Tesla、Baidu、Tencent、Alibaba以及传统汽车厂商都在研究无人车。

 

汽车的自动化程度可以依据依赖人为操作的程度来划分。SAE J3016标准定义了0-5级的智能车的分级标准:0级代表了所有驾驶操作都是人类负责的车辆;1级包含基础驾驶协助,如防抱死制动系统;2级包含高级协助,如风险最小化纵向控制(通常基于控制理论来计算存在风险的状态集合);3级代表有条件的自动化,必要时候无人车需要人控制;4级表示无人车能在某些环境下可以完全自动化;5级则是完全自动化。下图给出了自动驾驶的分级标准。

 

 

图1. 自动驾驶的SAE-J3016分级标准

 

自动驾驶是一个复杂的软硬件相结合的系统。无人车主要通过摄像头,雷达等设备来感知周围的环境,依据所获取的信息来进行决策判断,由适当的工作模型来制定相应的策略,例如预测本车与其他车辆,行人等在未来一段时间内的运动状态。在规划好路径和行为之后,接下来需要控制车辆沿着期望的轨迹行驶,主要包含横向控制(转向)与纵向控制(速度)。当然,上述的动作都是基于传感器实时获取环境信息所做的局部路径规划下的动作,还需要与基于完整环境信息(GPS)的全局路径相结合。下图给出了一个基本的自动驾驶系统的框架图。

 

 

图2. 自动驾驶系统的框架图

 

机器学习在自动驾驶中得到广泛应用,其主要集中在无人车对环境的感知(autonomous vision)和行为决策(decision making)。机器学习在环境感知的应用属于监督学习(supervised learning)的范畴,例如对摄像头中的图像进行物体识别(object detection),需要大量被标注了实体的图像作为训练数据,从而深度学习的方法才能从新的图像中识别出物体。而机器学习在行为决策中的运用一般属于强化学习(reinforcement learning)的范畴,智能体需要与环境进行交互,智能体的每一步行为都会影响环境,同时环境的变化也会影响智能体的行为。强化学习则是从大量与环境交互的样本数据中,学习到环境与行为的映射关系,从而智能体每感知一次环境,就能‘智能’地做出行为。

 

智能感知

 

环境信息的采集与处理,是无人自主行驶的基础和前提。无人车对环境的感知主要基于各类传感器技术,所用的传感器一般有摄像头、毫米波雷达、激光雷达等。为了安全与准确的感知环境,无人驾驶车都是多个传感器共同协作,毫米波雷达和激光雷达主要承担了中长距测距和环境感知,而摄像头主要用于交通信号和其他物体的识别。

 

传统计算机视觉领域的主要研究方向是基于可见光的摄像头的视觉问题。要评价一种方案是否可行,我们需要一个标准的测试方法。KITTI数据由德国卡尔斯鲁厄技术研究院(KIT)和丰田芝加哥技术研究院(TTIC)共同开发,是全球最具权威、最有影响力的自动驾驶视觉的数据集之一。因此,我们基于该数据集来分析和比较目前最新颖的一些算法。

 

在无人驾驶中,对周围物体进行实时、准确的检测是至关重要的。同时,物体检测也是计算机视觉的研究重点之一。最近,卷积神经网络(Convolutional Neural Network, CNN)的兴起,极大地提升了物体检测的能力。

 

一开始,CNN只是简单地整合进滑动窗口(sliding-window)的方法中(Sermanet, et al., 2013)。然而,这样并未解决物体在图片中的精确定位。所以, Girshick等人(2014)提出了RCNN(Region-based CNN)来解决物体识别中的定位问题。他们利用selective search来生成许多候选区域(region proposals),然后利用CNN从每个区域中提取出特征向量(feature vector),并且用线性支持向量机(linear support vector machine, linear SVM)来分类,区分出包含实体的候选区域。RCNN虽然解决了定位的问题,但模型本身的时间复杂度太高,从而有一系列的工作(ResNet, Fast R-CNN, Faster R-CNN)来优化模型,最终实现了一个端到端(end-to-end)的框架。原有的CNN只能处理固定大小的图像,无法处理不同大小的候选框(candidate bounding box)。

 

然而,上述的方法在KITTI数据集上的效果并不显着,主要原因为数据集中的实体尺度多变,以及被遮挡或截断的程度严重。而且上述方法只是在检测网络(detection network)上改进,而筛选候选框所采用的selective search并不适用于这种场景,于是Ren等人(Ren et al., 2015)提出了RPN(region proposal networks)来代替selective search。RPN为CNN的一种变形,其在图像的卷积特征(convolutional feature)上用sliding window的形式预测每个候选框中包含实体的类型和概率。RPN与Fast RCNN相结合,实现了端到端学习(end-to-end learning)。

 

 

图3. RPN基本思想

 

行为决策

 

行为决策(Desicion Making)在整个无人车系统中扮演着“驾驶员”的角色。这个层面汇集了所有重要的车辆周边信息,不仅包括了无人车本身的位置、速度、朝向以及所处车道,还收集了无人车一定距离以内所有重要的被感知的障碍物信息以及预测轨迹。行为决策层所需要解决的问题,就是在知晓这些信息的基础上,决定无人车的行驶策略。

 

行为决策模块是一个信息汇聚的地方。由于需要考虑多种不同类型的信息以及受到交通规则的限制,行为决策问题往往很难用一个单纯的数学模型来进行解决,比较常见的方法是利用软件工程的方法来设计一些规则引擎系统。例如,在DARPA无人车竞赛中,stanford的无人车“Junior”利用cost设计和有限状态机(Finite State Machine)来设计无人车的轨迹和操控指令。而在近来的无人车规划中,基于马尔科夫决策过程(Markov Decision Process)的强化学习(Reinforcement Learning)也开始越来越多被应用到无人车的行为决策算法中。

 

强化学习的本质是一种学习决策(即将状态映射到动作)来最大化回报的过程。和大多数机器学习的方法一样,学习器本身不知道要采取哪些动作,而是通过尝试来发现哪些动作会产生最大的回报。然而在许多场景中,动作不仅影响即时回报(immediate reward),也会影响所有后续回报(subsequent rewards)。所以,试错探索(trial-and-error search)和延迟回报(delayed reward)是强化学习的两个最重要的特征。同时,强化学习是一个很宽泛的概念,任何能解决类似问题的方法都可以称作强化学习。

 

而随着深度学习(deep learning)的兴起,深度神经网络有了强大的表示能力和函数拟合能力,也为强化学习的发展注入了新的活力。深度强化学习(deep reinforcement learning)成为新的研究热点。

 

Isele 等人(2017)研究了交叉路口场景下的无人驾驶。他们仍旧使用Deep Q-Network的方法来处理该任务。其中,其提出了两种DQN结构–序列动作网络(Sequential Action DQN)和Time-to-Go DQN。序列动作网络是一个三层全连接网络。输出对应的是4个时间尺度(1,2,4,8个时间步骤)下的3个动作的概率(减速、加速、保持速度)。Time-to-Go DQN则使用了CNN,输出对应的5个动作分别是:1个go动作和4个时间尺度(1,2,4,8个时间步骤)的wait动作。对于reward,其自己定义了规则:+1表示成功,-10表示发生碰撞,-0.01用于步骤成本。

 

Shalevshwartz等人(2016)主要应对的是实际驾驶中一些比较复杂的场景,如双向道路合并。他们提出的方法不是单纯地利用深度强化学习来实现自动驾驶,而是将问题分成两个部分,可学习部分(learnable part)和不可学习部分(non-learnable part)。相较于前面的CARMA等工作,这种方式显得更加完备和更加实用,综合了强化学习和动态规划各自的优点。由强化学习来判断环境、做出行为决策,而动态规划则负责规划路径和执行动作,从而保障行车的安全。

 

小结

 

机器学习在自动驾驶中的应用主要集中在环境感知和行为决策两个模块中。在环境感知中,深度学习的发展对计算机视觉有了极大的促进,让其在物体识别和道路监测上的效果有了很明显的提升。但相较于高精度的激光雷达,摄像头感知域有限,受环境的影响大,因此在自动驾驶中环境的感知多是基于多类传感器共同作用的。在行为决策中,强化学习与深度学习相结合,为将复杂多变的环境映射成动作提供了可能。然而目前大多数研究主要基于电脑仿真的道路场景中进行实验(便于获取环境的所有信息),离现实场景还有一段距离。机器学习是数据驱动的,因此提供一份较为完备的包含对现实环境的感知和驾驶者操作记录的数据集是有重大意义的,进一步促进自动驾驶的发展。

Be First to Comment

发表评论

邮箱地址不会被公开。 必填项已用*标注