作者:沈克强来源:人工智能学习圈
一、诸论
(一)研究背景
伴随着人工智能的高速发展,为解决交通堵塞、通行效率低的问题,自动驾驶汽车取得了前所未有的发展。
汽车作为重要的运载工具,通过车载传感器(车规级传感器设备),可视设备,控制器,执行器等电子设备,形成一种可以在任意地点,任意时刻,能够接入任意信息的模式,为汽车提供智能环境的支持,达到提高车辆安全性的目的。目标识别感知及控制系统目前已经成为汽车智能化的亮点和卖点。
年,工信部发布的《中国制造》明确提出,到年,我国将掌握自动驾驶的总体技术以及各项关键技术,要建立起比较完善的智能网联汽车的自主研发体系,生产配套体系以及产业群,要基本完成汽车产业的转型升级。所以在政策和市场的共同作用下,我国的智能汽车技术发展迅猛,智能汽车领域相关系统以及应用软件的开发已经初步成形。
本论文以温州大学瓯江学院智能车综合开发控制系统台架为平台,以LS-CA型16线激光雷达为研究对象,充分运用Apollo、51Simone综合仿真系统,以传感器技术、多传感器融合为基础,解决了传统激光雷达测试成本高、仿真效果差、训练集单一的缺点,对基于激光雷达的目标识别感知控制算法提出了改进措施;并对基于低速无人驾驶车辆上的目标识别进行了深入的研究;最后,基于多传感器融合的确定性目标关联算法,实现了特殊道路场景下不确定数目的多个车辆目标的跟踪,为汽车的主动防撞及自动驾驶奠定坚实的基础。
(二)激光雷达的定义和关键技术
激光雷达又称光学雷达(LiDAR,LightDetectionAndRanging),是一种先进的光学遥感技术。激光雷达可以用于测量物体距离和表面形状,其测量精度可达厘米级。
图1-1激光雷达工作原理
激光雷达,是以发射激光束探测目标的位置、速度等特征量的综合雷达系统。其工作原理是向目标发射探测信号(激光束),然后将接收到的从目标反射回来的信号(目标回波)与发射信号进行比较,作适当处理后,就可获得目标的有关信息,如目标距离、方位、高度、速度、姿态、甚至形状等参数,从而对目标车辆等目标进行探测、跟踪和识别。
本论文研究的LS-A型激光雷达采用混合固态激光雷达方式,集合了16个激光收发组件,测量距离高达米,测量精度+/-2cm以内,出点数高达,点/秒,水平测角°,垂直测角-15°~15°。LS-A通过16个激光发射组件快速旋转的同时发射高频率激光束对外界环境进行持续性的扫描,经过测距算法提供三维空间点云数据及物体反射率,可以让机器看到周围的世界,为定位、导航、避障等提供有力的保障。
二、基于激光雷达的目标识别
(一)引言
激光雷达是一种主动探测传感器,其受环境干扰小,精度高、速度快的特点,广泛适用于移动机器人、AGV等的目标检测和识别方面。
关于激光雷达的目标检测,主要集中在行人和障碍物方面,针对以上两种目标,重点在于如何研究高效的控制模型。对于自动驾驶汽车来说,从高清图像中检测出特征物体尤为重要,例如不易被发现的红绿灯、行人等。
目标识别的难点在于以下几个方面
l无法准确无误的分割目标物体,特别是目标特征不显著的物体;
l不同的物体在不同角度的探测结果不同;
l环境对目标物体信息的干扰;
(二)基于激光雷达的环境感知
自动驾驶的四大核心技术包括环境感知、精度定位、路径规划和线控执行四大部分,环境感知是实现自动驾驶的先决和必要条件,越来越多的研究表明,仅仅依靠视觉的环境感知很难达到自动驾驶要求的。
环境感知主要包括路面、静态物体和动态物体三个方向。自动驾驶汽车对于动态物体的感知,不仅要检测物体,还要对其轨迹进行追踪,从而预计车辆的行驶轨迹。对于市区道路尤其中国的复杂市区必不可少。
图2-1激光雷达环境感知
(三)激光雷达目标数据预处理
通常激光雷达在工作时,每一束激光对应一个目标物体的三维立体坐标(静态位姿),但实际上目标物体是在不断运动和变化的,在运动和变化的过程中会发生物体的形状畸形变化,为了保证目标数据的稳定和可靠,我们要去除物体畸形变化。
由激光雷达原始产生的目标数据,可以获取每一束激光打在障碍物上的激光点距的绝对距离值和角度值。转换为目标距离值和角度值,去畸变之后,转化为新的数据重新发布。
首先我们要先假设一个自动驾驶车辆模型,使得模型车辆做匀速直线运动,然后将每一个时间的数据存储在队列里面。
以下是数据预处理的操作过程和源代码:
l点云类的构造函数
(四)激光雷达数据可视化
PclVisualizer是cloudViewer的后端可视化工具,但它在单线程中运行,若要使用PCLVisualizer类必须使用调用函数,这样可以避免可视化的并发问题。
以下是实现数据可视化的代码:
下面函数作为回调函数,在主函数中注册后只执行一次,函数具体实现对可视
化对象背景颜色设置等。
编译并运行程序,得到点云数据图。
(五)激光雷达滤波处理
PCL中总结了几种需要进行点云滤波处理的情况,这几种情况分别如下:
(1)点云数据密度不规则需要平滑。
(2)因为遮挡等问题造成离群点需要去除。
(3)大量数据需要进行下采样(Downsample)。
(4)噪声数据需要去除。
对应的方法如下:
(1)按具体给定的规则限制过滤去除点。
(2)通过常用滤波算法修改点的部分属性。
(3)对数据进行下采样。
双边滤波算法是通过取邻近采样点的加权平均来修正当前采样点的位置,从而达到滤波效果。同时也会有选择剔除部分与当前采样点“差异”太大的相邻采样点,从而达到保持原特征的目的。
pcl.filters库提供了对噪声点和离群点去除的具体实现#filters模块利用32个类与5个函数实现了利用filters对点云数据进行不同的滤波以达到除去不需要的点的目的,其依赖于pci::