人工智能技术与咨询
关键词:无人车;环境感知;激光雷达;识别;跟踪
在无人驾驶汽车中,环境感知系统是其行驶决策的信息来源,对交通流中的车辆、非机动车、行人等目标进行识别并保持跟踪,及时向决策系统输入环境障碍物信息,是环境感知系统的重要任务,也是无人车安全行驶的关键所在。
国内外在这一问题的研究上,先后提出了将三维数据压缩到二维平面并进行聚类的栅格地图法[1]、将点云按帧截图并用视觉方法进行检测的特征图像法[2]等,这些方法仅能获得某一二维平面上的目标信息。随着机器学习的兴起,使用神经网络、随机森林、Adaboost等机器学习算法[3]对三维点云特征直接进行提取和分类逐渐发展起来。在目标跟踪上,使用MHT和JPDA等数据关联算法[4],结合卡尔曼滤波器进行跟踪是较为常见的方法[5]。但这种方法在实际的复杂交通流中面临维度灾难和对交叉、遮挡目标无效的问题,因此,一系列基于非线性假设的跟踪方法被提出[6-8]。
本文中使用经过滤和分割的三维激光点云数据,通过可变阈值筛选进行聚类。复合10个不同特征得出53维特征向量作为判据,用SVM分类器改进的Adaboost机器学习算法对三维激光点云数据进行直接处理,得到目标识别结果。提出基于最大熵模糊聚类的数据关联方法并设计相应的粒子滤波器,解决了由复杂交通流造成的目标遮挡与错跟问题。仿真与实验结果表明,该方法具有可靠性和鲁棒性。
使用速腾聚创出品的RS-16线激光雷达作为点云数据的获取来源,安装方式为车顶对心安装。安装示意图如图1所示。
图1 雷达安装示意图
为减少计算量,选取激光点云的z坐标值作为过滤与分割的依据,对地面、建筑物等的点云进行滤除。将激光扫描的区域在x-y平面上划分为0.1 m×0.1 m的网格,由于网格小于可能的目标所占有的面积,因此每个网格都可以视为仅隶属于一类分类。可能的分类包括地面、建筑物、树木和目标。地面的特点是z坐标值小,且为一近似平面,网格内z坐标值相差不大。建筑物和树木的特点是z坐标值相差巨大,且最大值远远超出目标。网格内点云数目过少则可判定为噪声。按表1进行激光点云数据的过滤与分割。该方法效果如图2和图3所示。
表1 点云过滤与分割算法
图2 点云数据过滤前图
图3 点云数据过滤后图
聚类是依据某种事先确定的标准(例如密度、距离、层次)等所产生的差异来将散乱的数据点聚合为相互独立的分类。聚类算法的关键在于标准及其阈值的选取。为充分利用激光雷达含有深度信息的三维点云数据,以及减少由于目标远近不同造成的离散程度不同等的影响。本文中使用深度信息,即距离值来对聚类阈值进行调整。提出一种基于距离值的可变阈值确定方法[9-10],如图4所示。设rn-1为相邻前点离激光雷达的直线距离,Δφ为激光雷达的角分辨率,σ为激光雷达零偏误差,λ为可变阈值参数,则聚类的可变阈值为
图4 阈值计算示意图
通过实验选取适宜的可变阈值参数(本文取10°),则由式(1)可以看出,越远离激光雷达,阈值不断增加,良好地适应了远处激光点分布更为分散的趋势,从而提高了远处离散点云的聚类效果。
目标识别过程是从空间或时间分布数据信息中将属于目标的部分筛选出来并进行特征判断。机器学习是解决这类问题的有利工具。在机器学习过程中,两个重点分别是设计适宜的算法与分类器以及选取合适的先验特征。
Adaboost是一种基于统计的机器学习算法。其基本原理是不断对学习的样本进行迭代,每一次迭代的结果都视为一个弱分类器。由于在每一次迭代时都对样本的权值进行更新,因此这一过程最终会得到若干个弱分类器,将这些弱分类器根据权值进行加权线性组合,就能得到一个具有较高精度的强分类器。
Adaboost算法的关键在于弱分类器的训练,这一过程直接影响最终分类器的精确程度。由于Adaboost为框架式的算法,其中的弱分类器可以使用Adaboost分类器,也可以使用其他的分类器。传统的Adaboost算法在高维数据中精度会有明显下降,且受噪声影响极大,容易在复杂交通流环境中出现错误率激增。因此使用SVM分类器作为弱分类器对传统Adaboost算法进行改进,以提升在非线性和高维应用环境下的分类器性能。本文所设计的Adaboost算法的框架如表2所示。
表2 基于SVM的Adaboost算法流程
构建SVM分类器的基本原理是利用非线性映射,把一个向量从二维函数向高维函数映射,从而把非线性问题线性化。实现这一过程主要依赖于在低维空间中寻找一个核函数,使该函数值等于两输入向量非线性变换到高维空间后的内积。设要构建的分类器输入量为{xi}n,输出量为{yi}n,映射函数为φ(x i),选取性能优良的径向基函数作为核函数,即
式中σ为基参量因子。此后在高维空间内可以看作一个线性的回归过程。高维空间的线性回归方程为
式中w为权重向量。引入参数松弛因子
和ξi,精度因子ε以及惩罚因子c,则所要求的目标函数为
其约束条件为
用拉格朗日定理求解这一问题,可得
结合极值点处的KKT条件定理:
激光点云具有丰富的特征信息,由于目标与无人车的相对位置不同,以及目标有可能因遮挡、交叉等呈现出不完整的形态,因此本文中综合激光点云的统计信息、空间位置信息以及反射强度信息3个方面,给出一个复合特征向量作为上述SVM分类器的学习输入,选取的复合特征如表3所示。
表3 本文中选取的复合特征
(1)统计信息 主要统计指标有聚类内所含点云数目、聚类内点云离散距离、聚类内点云的三维协方差及其特征值、惯性张量矩阵及其特征值。其中,点云离散距离如式(10)所示,该特征主要表征边缘点云偏离程度。
三维协方差如式(11)所示,该特征主要表征点云在各方向上的相关性,而特征值表征该方向的权重。
惯性张量矩阵如式(12)所示,该特征主要表征点云整体分布的稳定性,可用于消除噪声影响。
(2)空间位置信息 根据目标的几何特性,寻找目标在某一方向上的几何特性代表特征。使用旋转卡壳法做出聚类在各个平面上的最小包围矩形,形成一个长方体,长方体的长、宽、高即可代表目标在不同方向的尺寸及形状特征。
(3)反射强度信息 由于不同物质反射特性不同,因此打中同一目标上的激光点云应该具有接近的反射强度。对反射强度计算其平均值、方差,并得到所有激光反射点的归一化直方图。归一化直方图是将所有聚类中的激光点云以反射强度值的大小为标准投影划分到20个强度差值相同的小区域内,用类似于绘制马赛克的方法得到目标拟合轮廓。
通过对三维点云信息选取复合特征聚类后可以对目标特征进行识别及分类,并给出对三维点云信息识别分类后的确信度,最终的识别效果如图5所示。
目标跟踪过程是通过跟踪器对识别出的目标在不同时刻激光点云中的连续位置进行确定。由于交通流中存在的干扰因素以及激光束的随机缺漏等,该时刻t的观测量集合可能与状态量集合是双射的,也可能是单射非满射的,甚至是非满射非单射的。在算法设计上首先使用数据关联算法得出多目标的关联概率分布,然后不断更新目标状态的估计值与观测值,从而完成对多目标跟踪的实现,如图6所示。
图5 识别效果图
图6 目标跟踪算法流程图
要获得关联问题的最优解,通常采用的方法是联合概率数据关联(JPDA)算法或多假设跟踪算法(MHT)。这两种方法可以求取最优,但是在复杂城市道路中计算量过大。因此,在关联过程中变寻求最优为寻求次优是一种较为可行的方案。通过对观测值模糊聚类,将观测值归入以目标估计量为中心的类中,然后结合信息熵极大时概率分布最接近真实的原理,将数据关联问题转化为求解条件极值的聚类问题,可以有效降低计算负荷。
假设t时刻所获得的激光点云帧中存在c个目标,所有通过激光雷达得到的观测量总集合为z j。可以将寻优过程做如下描述:此时由滤波器输出的目标的估计量作为聚类中心ci,真值和估计值之间的差异代价函数为
其中
,其可以表征观测量对于聚类中心ci的隶属程度。D是观测量对于聚类中心的欧式距离。根据信息熵理论,熵值最大的分布即不确定性最大值的概率分布,也即占优势的概率分布。引入熵值,即
为求得熵值在上两式约束条件下的最大点,采用拉格朗日函数法,设 ηj和 λj是式(13)和式(14)拉格朗日乘数。当取到最大值时,观测量zj和估计量ci之间的隶属程度为
此时,某一观测量j来自目标i的概率pji可以用隶属程度uji来表示。至此,只需给出观测量对多个目标隶属程度相同或相近的解决标准,就可以得出目标关联概率矩阵β,即可完成关联。具体的操作方法如表4所示。
传统的多目标跟踪系统通常采用卡尔曼滤波器进行滤波更新,这一滤波器虽然简单成熟,但目标在复杂交通流中的运动并非一个满足线性和高斯假设的场景。当目标被遮挡时,预测位置的不确定噪声变为具有多个峰值的非高斯模型。为解决这一问题,引入粒子滤波器对目标进行估计和更新。
粒子滤波是一种用一群粒子的密集程度来表示概率密度的时间序列蒙特卡洛方法。这种方法利用无参数的点来近似,代替高斯模型。当点按概率密度分布后,从中随机抽取采样点,进行加权求和,从而得到后验概率密度函数。
表4 相同隶属度修正算法
设该后验概率密度函数为 p(x0→t|z1→t),其一组有关联的随机观测样本为
{xn|n=0,1,…,k}表示从初始时刻到 t时刻的全部示状态集合对应的点集,两者由关联确认权值所支持联系。由此可写出t时刻的近似后验概率密度为
式中
为关联确认权值,即
q
为重要性采样密度函数,取先验概率分布函数为重要性采样密度函数,则关联确认权值的更新过程可以写作:
由于各个时刻的观测值是相互独立且符合马尔可夫过程的,因此概率密度函数就是观测量的似然函数。当不断迭代更新到下一时刻,采样点不断增加,近似式就会不断逼近真实的值。
值得注意的是,在这一迭代更新的过程中,粒子的多样性也在不断丢失。本文采用重新采样的方法构建的车载激光雷达滤波器,如表5所示。
表5 粒子滤波跟踪器
为验证上述方法在城市复杂交通流环境下的工作性能,选取百度Apollo平台开放数据进行了验证,同时在自主研发的“北航猛狮号”无人驾驶平台进行了真实城市道路实验。
验证评价指标采取ROC(receive operating characteristic)曲线法。ROC曲线是将目标和非目标分开,分别衡量所有目标中被正确检测为目标的比率(TPR)和所有非目标中被错误检测为目标的比率(FPR)。这种方法可以避免传统正确率评价标准中,目标和非目标样本数不相等造成的问题。ROC曲线横纵坐标定义为
式中:TP为被正确检测的正样本;FN为漏检的正样本;FP为误检的正样本;TN为被正确判断的负样本。ROC曲线与横轴围成的面积越大,则检测效果越好。
首先,使用百度Apollo平台对200种虚拟场景进行了目标识别与跟踪的验证,场景包括目标在本车正前方、正后方、侧前方、侧后方,执行动作包括直行、转弯、掉头、超车、跟车、换道、会车,目标数目包括单目标、双目标、多目标。然后,使用百度Apollo平台在北京市海淀区采集的真实道路数据进行验证,场景包含丁字路口、十字路口、快速路、高速路、拥堵等,目标为各种实际交通参与者,检测效果如图7所示。
图7 Apollo平台虚拟与真实场景检测效果图
具体评价结果如图8和图9所示。从图中可以看出,在真实道路上检测效果有明显下降,主要原因是实际道路上尤其是拥堵时,车辆连接紧密,点云分割难度增加。该ROC曲线与平台开源的标准Adaboost分类器检测算法和文献[11]所使用的栅格地图模型匹配法相比表现均更优异,同时所有目标算法识别处理时间均小于10 ms,因此该方法能够满足无人车鲁棒性与实时性要求。
此外,使用真实无人驾驶车辆在实际道路上进行目标识别与跟踪实验。图10为目标跟踪效果图。图中右侧两辆目标车为跟踪研究对象,速度为相对速度。前方标注为car的车辆为搭载有OBD数据记录装置的预设车辆,后方标注为truck的车辆为测试数据关联稳定性的车辆。实验环境除真值车与干扰车外,还存在大量随机的社会车辆。
图8 ROC指标评价曲线图
图9 识别算法耗时图
可以看出,在近400帧的跟踪过程中,目标ID号(157、158号)始终保持不变,说明跟踪保持不断,数据关联一直正确。证明本文方法在存在多个目标的复杂交通场景下,能保持对目标的持续跟踪并正确关联。
图11为速度跟踪误差图。从图中可以发现,当被测车辆处于超车过程中时,测量误差较大;当被测车辆完成超车过程,回正直行时误差显著降低。主要原因是在超车过程中,被测车辆航向变化较大,激光点云形状处于较大变化,最近追踪点不断变化(第1帧、第101帧),而从第224帧完成超越开始,激光点云稳定为L型,测量误差开始减小。到目标远离且有遮挡后,误差又进一步增大。但最大误差不超过实际车速的10%,平均误差在3.435 km/h,能够满足无人车跟踪精度要求。
最后,为检验算法对小目标交叠和遮挡时的识别跟踪情况,选取行人远离车辆、行人靠近车辆、行人被车辆大面积遮挡、行人再次远离车辆这4个基本状态作为一个实验周期。图12为行人与车辆交叠、遮挡情况实景图,分别对应实验周期内4个基本状态。图13为整个实验过程识别结果图。可以发现,虽然当行人与车辆发生交叠和遮挡情况会导致行人的3D点云形状和密度发生了很大改变,且当行人被车辆大面积遮挡时(行人仅有头部露出车顶且高度不超过0.3 m),置信概率明显下降,但是通过对多特征的复合使用,依然能够通过点云密度和反射率的突变捕捉到行人被车辆遮挡后的剩余信息,且可以根据概率密度观测模型对行人轮廓进行补全,绘制出最小包络矩形[12],且在整个实验过程中行人的跟踪ID号保持不变,这说明在当行人与车辆目标发生交叠和遮挡时可以通过帧间运动信息进行预测估计,整个过程中的识别算法和跟踪算法具有良好的可靠性。
图10 目标跟踪效果图
图11 跟踪速度误差图
设计了一套基于三维激光点云数据的目标识别与跟踪方法。直接对三维激光点云数据进行处理,为减小计算量,先对点云过滤与分割。然后使用可变阈值进行聚类,输入用SVM分类器改进的Adaboost算法进行识别,得到三维拟合轮廓及分类。在目标跟踪阶段,应用最大熵模糊聚类进行数据关联,而后用粒子滤波器进行跟踪。设计的方法通过百度Apollo平台和自主开发的无人驾驶平台进行了验证,同时对小目标交叠和遮挡情况的识别跟踪效果进行实车验证。结果表明,该套方法实时性和鲁棒性均良好。
图12 行人与车辆交叠、遮挡情况实景图
图13 行人与车辆交叠、遮挡识别结果图
我们的服务类型
公开课程
人工智能、大数据、嵌入式
内训课程
普通内训、定制内训
项目咨询
技术路线设计、算法设计与实现(图像处理、自然语言处理、语音识别)