郭子明
(常州星宇车灯股份有限公司,江苏 常州 213001)
高级驾驶辅助系统是当前智能汽车领域研究与发展的重要方向之一,其中,对车辆周围环境中多目标的识别与跟踪是完成众多驾驶辅助任务(如自适应巡航、碰撞预警等)的前提[1]。激光雷达传感器视场角广,其点云数据能以较高的精度和分辨率提供距离信息,且不受天气等环境因素影响,是目前常见的一种环境感知传感器。
基于激光雷达点云的目标识别方法主要可分为两大类:基于深度学习的方法[2]与基于特征匹配的方法[3]。前者需要消耗大量的计算资源,而后者受点云分割与特征提取的准确性影响较大。针对以上问题,本文提出一种基于自适应距离阈值的点云分割算法,利用多特征匹配的方式实现目标识别,并采用基于常角速度和加速度模型(Constant Turn Rate and Acceleration,CTRA)的扩展卡尔曼滤波(EKF)进行目标状态更新与关联,减小漏检对目标跟踪的影响。方法整体流程如图1所示。
图1 方法流程Fig.1 Method flow
在数据采集过程中,点云数据中通常会包含一些环境杂波,这些点云数据不属于任何环境目标,会给环境目标的分割带来更大的困难,因此需要在预处理时对异常点进行剔除。本文采用一种考虑时空分布的中值滤波方法剔除原始点云中的异常值。
基于距离阈值的点云分割可以简单表达为:
d(pn-1,pn)>dth
(1)
其中,d(pn-1,pn)表示原始点云内相邻两点之间的距离,dth为距离阈值。通常情况下,由于激光雷达角度分辨率固定,目标与传感器之间距离越大,目标表面相邻点之间距离越大。如图2所示,距离阈值dth与点的径向距离有关,表示为:
图2 基于距离阈值的聚类算法Fig.2 Distance threshold based clustering algorithm
(2)
其中,rn-1为点pn-1的径向距离;Δφ为激光雷达的角度分辨率;λ为用于计算最大间距的角度阈值;ε为传感器误差。
然而,基于上述聚类算法,位于同一目标上与激光脉冲方向相对平行和相对垂直的表面上的点云可能无法分割为同一目标。因此在既有算法的基础上进行了改进,用|α-β|表示相邻两点的位置与激光束的相对关系(图2)。若|α-β|小于设定的角度阈值,认为两点位于与激光束相对垂直的表面上,则设定一个较大的λ以获得较小的距离阈值dth;若大于设定角度阈值,则设置一个较小的λ以获得较大的距离阈值dth。
在聚类后的各点云簇内部利用端点迭代拟合(Iterative End Point Fitting,IEPF)算法[4]进行线段拟合。将各点云簇中第一个和最后一个数据点连接形成一条线段,计算这两点之间的其他数据点相对于这条线段的最大距离。若最大距离大于设定阈值,则将该线段在最大距离对应的数据点处分为两条线段,并重复进行上述检查,直至表示该点云簇的所有线段不需再分割为止。
实际驾驶环境中目标部分被遮挡会影响点云的聚类,同一目标的数据点可能被分割为2个点云簇。本文通过对点云簇间距及线段斜率的对比完成点云簇的合并。如图3所示,上方车辆目标被遮挡,对应的点云被分割为两部分,将该目标左侧点云簇的最后一个数据点与右侧点云簇的第一个数据点相连形成线段,该线段距离小于设定距离阈值,且斜率与右侧点云簇线段斜率相差小于设定的斜率阈值,故将2个点云簇合并,再重新进行线段拟合。
图3 点云聚类与线段拟合Fig.3 Point cloud clustering and line segment fitting
本文关注的移动目标包含车辆、行人、骑行者3类,经点云聚类及线段拟合后,车辆目标可由1条或2条线段表示,行人由1条线段表示,骑行者由1条或2条线段表示。定义如下特征:
•l表示单线段目标的线段长度
•l1,l2分别表示双线段目标的2条线段长度
•varr表示点云簇距离方差
对采集的大量点云数据按上文所述方法进行处理,并人工标注各目标类别,可获得不同类型目标的特征参考区间。将未知类型目标的一组特征与生成的各类型特征参考区间进行对比,即可实现目标类型的识别。
对于每一时刻检测到的目标,需将其与历史目标进行关联,从而对目标状态进行滤波处理。采用基于常角速度和加速度模型(Constant Turn Rate and Acceleration,CTRA)的扩展卡尔曼滤波(EKF)进行目标状态预测:
(3)
系统状态为{xyαva}T,依次表示目标在自车坐标系下的横向距离、纵向距离、速度方向、速度、加速度,A为状态转移矩阵,自车速度、航向角速度测量获得,作为控制量输入给滤波器。
如图4所示,基于k-1时刻的目标信息,对k时刻的目标状态进行预测。k时刻存在2个测量目标,计算与当前目标1的估计位置之间的欧式距离,若最小欧式距离小于设定距离阈值,则将对应目标与k-1时刻的目标进行关联,标识为同一目标,随后利用该目标测量对目标状态进行更新。
图4 目标关联示意Fig.4 Schematic of target association
对于未与既有目标关联的新目标,为其初始化扩展卡尔曼滤波器的系统状态及相关误差矩阵,用于下一时刻的目标状态预测与目标关联。若某历史目标未与当前时刻目标发生关联,则继续利用之前时刻的信息进行状态估计,直至连续未关联时间超过设定阈值,该目标被剔除。
在实验车辆上安装激光雷达传感器及高精度组合定位设备,用于获取环境感知与自车运动信息。从环境中提取出来的目标信息被人工标注为车辆、行人、骑行者三类,作为真值用于与算法识别结果进行对比,通过定量分析的方式验证本文方法的性能。
利用以下指标来描述目标识别结果:
•正确识别的目标个数(True Positives,TPs)
•错误识别的目标个数(False Positives,FPs)
•理应识别但未识别的目标个数(False Negatives,FNs)
根据真值以及目标识别结果,获得以上指标,并与一种基于特征的目标识别方法[5]进行了对比,各类目标识别结果对比见表1。针对3类目标,相较于参考文献中的方法,本文方法能够提供更加准确可靠的目标识别结果。整体而言,本文方法的识别准确率提高了3.5%,召回率提高了5.8%。
表1 目标识别结果评估
在自车坐标系下对目标跟踪的横纵向位置偏差进行了统计,表2给出了2个车辆目标在跟踪过程中位置估计值与测量值之间偏差的均方根值。另外,本文的目标跟踪策略保证了算法在目标被短暂遮挡发生漏检时的可用性。
表2 目标位置偏差均方根值
本文提出了一种基于特征匹配的目标识别方法,将未知目标的特征与实验获取的各类特征参考区间进行对比实现目标分类,并采用EKF对目标状态进行滤波处理,完成目标跟踪。实验结果表明,本文提出的目标识别方法能够明显提升目标识别的准确率与召回率,且能够在一定程度上克服漏检对目标跟踪的影响。