《 无人驾驶原理与实践》一1.3无人驾驶系统的基本框架

举报
华章计算机 发表于 2019/05/30 18:50:27 2019/05/30
【摘要】 本书摘自《 无人驾驶原理与实践》一第1章,第1.3节,编著是申泽邦 雍宾宾 周庆国 李良 李冠憬

1.3无人驾驶系统的基本框架

无人驾驶系统的核心可以概述为三个部分:感知(Perception)、规划(Planning)和控制(Control),这三部分的交互及其与车辆传感器硬件、环境的交互如图13所示。

image.png

      由图13可知,无人驾驶软件系统实际上是一个分层的结构,感知、规划、控制模块各自发挥不同的作用并相互影响。下面详细了解这三层的功能。
       感知是指无人驾驶系统从环境中收集信息并从中提取相关知识的能力。其中,环境感知(Environmental Perception)特指对于环境的场景理解能力,如障碍物的类型、道路标志及标线、行人车辆的检测、交通信号等数据的语义分类。定位(Localization)是对感知结果的后处理,通过定位功能从而帮助无人车了解其相对于所处环境的位置。
       规划是指无人车为了到达某一目的地而做出决策和计划的过程。对于无人驾驶车辆而言,这个过程通常包括从起始地到达目的地,同时要避开障碍物,并且不断优化行车路线轨迹和行为,以保证乘车的安全舒适。规划层通常又被细分为任务规划(Mission Planning)、行为规划(Behavioral Planning)和动作规划(Motion Planning)三层[3]。
       控制是指无人车精准地执行规划好的动作、路线的能力,及时地给予车辆执行机构合适的油门、方向、刹车信号等,以保障无人车能按预期行驶。

1.3.1环境感知

       为了确保无人车对环境的理解和把握,无人驾驶系统的环境感知部分通常需要获取大量的周围环境信息,具体来说包括行人、车辆的位置和速度,以及下一时刻可能的行为、可行驶的区域、对交通规则的理解等。无人车通常是通过融合激光雷达(Lidar)、摄像头(Camera)、毫米波雷达(Millimeter Wave Radar)等多种传感器的数据来获取这些信息的[4],本节简要地介绍一下激光雷达和摄像头在无人驾驶感知系统中的应用。
       激光雷达是一类使用激光束进行探测和测距的设备,如美国Velodyne公司的64线激光雷达,它每秒钟能够向外界发送数百万个激光脉冲,它的内部是机械式旋转结构。激光雷达能够实时地建立起周围环境的三维地图,通常来说,激光雷达以10Hz左右的频率对周围环境进行旋转扫描,其每一次扫描的结果为密集的点构成的三维图,每个点具备空间坐标(x,y,z)信息,由于其扫描结果都是激光点数据,并且数量巨大,所以又被称为点云数据,点云数据构建的图也叫点云图(Point Cloud Graph),图14是使用Velodyne VLP32c型号的激光雷达绘制的一个点云地图。

image.png

       目前,激光雷达因其测量的高度可靠性、精确性,仍是无人驾驶系统中最重要的传感器之一。但是并不意味着在任意场景中激光雷达的表现都是完美的,如在开阔地带,由于缺乏特征点,会存在点云过于稀疏,甚至丢失点的问题;对于不规则的物体表面,使用激光雷达也比较难辨别其特征模式;在诸如大雨、大雾这类天气情况下,激光雷达的精度和准确度也会受到很大影响。
       对于激光点云数据的处理,通常我们会进行两步操作:分割(Segmentation)和分类(Classification)。其中,分割是为了将点云图中离散的点使用聚类算法重新分组,使其聚合成一个个整体,而分类则是区分出这些整体属于哪一种类别,如属于行人类、车辆类或者其他障碍物类等。
       在完成了对点云的目标分割以后,分割出来的目标还需要被正确地分类。在这个环节中可以借鉴机器学习的分类算法,如支持向量机(Support Vector Machine,SVM)、决策树、K均值(Kmeans)等算法,以对聚类的特征进行分类。最近几年由于深度学习的发展,业界开始使用卷积神经网络(Convolutional Neural Network,CNN)来对三维的点云聚类进行分类,然而,无论是基于提取特征的SVM方法还是基于原始点云的CNN方法,由于激光雷达点云本身解析度低,对于反射点稀疏的目标(比如行人、自行车等),基于点云的分类并不可靠,所以在实践中我们往往融合激光雷达和摄像头传感器,既利用摄像头的高分辨率来对目标进行分类,又利用激光雷达的可靠性对障碍物进行检测和测距,融合两者的优点最终完成环境感知。
       在无人驾驶系统中,我们通常使用视觉传感器来完成对道路的检测,以及车辆、交通标志等的检测、识别和分类。道路的检测包含对车道线的检测(Lane Detection)、可行驶区域的检测(Drivable Area Detection)。检测任务还包括对其他车辆的检测(Vehicle Detection)、行人检测(Pedestrian Detection)、交通标志和信号的检测(Traffic Sign Detection)等,以及对所有交通参与者的检测、识别和分类。
       车道线的检测涉及两个方面:第一是识别车道线,对于弯曲的车道线,能够计算其曲率,即弯曲的弧度,以决定方向盘的控制角度;第二是确定车辆自身相对于车道线的偏移(即无人车自身在车道线的哪个位置)。一种方法是提取一些车道的特征,包括边缘特征(如索贝尔算子,通常是通过求取边缘线的梯度,即边缘像素的变化率来检测车道线)、车道线的颜色特征等,然后再使用多项式拟合车道线的像素,最后基于多项式以及当前摄像头在车上挂载的位置,确定前方车道线的曲率和车辆相对于车道的偏离位置。
       对于可行驶区域的检测,目前的一种做法是采用深度学习神经网络对场景进行像素分割,即通过训练一个像素级分类的深度神经网络,完成对图像中可行驶区域的分割。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。