
激光雷达因其可靠性目前仍是无人驾驶系统中最重要的传感器,然而,在现实使用中,激光雷达并不是完美的,往往存在点云过于稀疏,甚至丢失部分点的问题,对于不规则的物体表面,使用激光雷达很难辨别其模式,在诸如大雨天气这类情况下,激光雷达也无法使用。
为了理解点云信息,通常来说,我们对点云数据进行两步操作:分割(Segmentation)和分类(Classification)。其中,分割是为了将点云图中离散的点聚类成若干个整体,而分类则是区分出这些整体属于哪一个类别(比如说行人,车辆以及障碍物)。分割算法可以被分类如下几类:
基于边的方法,例如梯度过滤等;
基于区域的方法,这类方法使用区域特征对邻近点进行聚类,聚类的依据是使用一些指定的标准(如欧几里得距离,表面法线等),这类方法通常是先在点云中选取若干种子点(seed points),然后使用指定的标准从这些种子点出发对邻近点进行聚类;
参数方法,这类方法使用预先定义的模型去拟合点云,常见的方法包括随机样本一致性方法(Random Sample Consensus,RANSAC )和霍夫变换(Hough Transform,HT);
基于属性的方法,首先计算每个点的属性,然后对属性相关联的点进行聚类的方法;
基于图的方法;
基于机器学习的方法;
在完成了点云的目标分割以后,分割出来的目标需要被正确的分类,在这个环节,一般使用机器学习中的分类算法,如支持向量机(Support Vector Machine,SVM)对聚类的特征进行分类,最近几年由于深度学习的发展,业界开始使用特别设计的卷积神经网络(Convolutional Neural Network,CNN)对三维的点云聚类进行分类。
然而,不论是提取特征-SVM的方法还是原始点云-CNN的方法,由于激光雷达点云本身解析度低的原因,对于反射点稀疏的目标(比如说行人),基于点云的分类并不可靠,所以在实践中,我们往往融合激光雷达和相机传感器,利用相机的高分辨率来对目标进行分类,利用Lidar的可靠性对障碍物检测和测距,融合两者的优点完成环境感知。
在无人驾驶系统中,我们通常使用图像视觉来完成道路的检测和道路上目标的检测。道路的检测包含对道路线的检测(Lane Detection),可行驶区域的检测(Drivable Area Detection);道路上路标的检测包含对其他车辆的检测(Vehicle Detection),行人检测(Pedestrian Detection),交通标志和信号的检测(Traffic Sign Detection)等所有交通参与者的检测和分类。