摘 要:针对目前基于激光雷达点云的大多数特征不能描述行人目标的形状分布这一问题,本文提出了一种面向地面无人车辆的基于激光雷达传感器的行人检测方法。利用DBSCAN算法所有的非地面激光雷达点云进行聚类,并且提出了一种快速点特征直方图分布特征,用于训练支持向量机分类器进行行人的检测。本文在KITTI OBJECT数据库和一辆地面无人车辆上对方法的正确率和有效性进行了实验,结果表明:验证了本文提出的快速点特征直方图特征相比较于其他的激光雷达特征,可以有效提高行人检测的性能,同时能够满足地面无人车辆对行人检测的实时性要求。
关键词:行人检测; 激光雷达; 地面无人车辆; 环境理解; 无人驾驶; 目标检测; 支持向量机; 快速点特征直方图
近年来,随着地面无人车辆(unmanned ground vehicle, UGV)研究的快速发展,行人检测的相关工作正得到越来越多的重视。传统的行人检测方法主要依赖于可见光摄像机等传感器获取的图像,采用机器视觉的相关方法进行行人检测[1-5]。目前,研究者们已经提出了许多行人检测的方法,但是它作为地面无人车辆的核心技术之一,依然是一项十分具有挑战性的工作,其主要原因有以下2个方面:1)由于不同的行人之间的体型、姿态和着装等具有很大的差异,导致从可见光图像提取行人的特征具有一定的难度;2)可见光图像容易受到不同光照条件和阴影的影响,导致行人目标之间在图像上具有显著的差异。
近几十年,随着三维传感器(激光雷达、立体视觉摄像机等)的不断发展,许多基于激光雷达进行行人检测的方法已经被提了出来。如何设计出一种有效描述行人的激光雷达点云特征,一直是相关领域的研究热点。Premebida等[6]提出了一种基于激光雷达的15维特征,用于在城市环境下进行行人检测。这些特征中的一部分特征,例如最小反射距离,聚类后的类内点个数等,Haselich等[7]进一步用于行人检测的相关工作中。Serment 等[8]则根据雷达点云集合的3个特征向量构成2个新的平面,把所有的点云投影到这2个平面上。随后,在这2个新的平面上提取特征。Kiyosumi等[9]在上述工作的基础上,保留了一部分特征,并添加了多维新的特征,从而形成了融合特征用于训练分类器。此外,Wan等[10]提出了一种基于激光雷达和图像融合的行人检测方法,能够利用融合特征进行行人检测。
为了进一步提高利用激光雷达进行行人检测的正确率,本文提出了一种基于激光雷达点云的行人检测方法和快速点云分布直方图的分布特征(DFPFH)。在KITTI OBJECT数据库和一辆地面无人车辆上进行的实验结果验证了本方法的有效性。
1 去除地面点云和疑似目标提取
目前常见的用于UGV的激光雷达传感器之一就是Velodyne HDL-64E S2激光雷达。该雷达的工作频率约为10 Hz,每一帧返回的点云数据包含大约13万个三维点。记每一帧的雷达点云数据为Ct={Pi,i=1,2,…,N},Pi={Xi,Yi,Zi,Ii}。其中,t是当前的数据帧号,N是第t帧雷达点云数据中所有三维点的个数,(Xi,Yi,Zi)是三维点Pi对应的坐标,Ii是Pi点的返回强度。接下来,为了去除地面点云,本文采用和文献[11-12]一样的方法,先把点云Ct投影到X轴和Y轴构成的平面上,构成一个平面点集。由于在地面无人车辆的行驶过程中,行人检测所关注的区域一般集中在车的前方,并且激光雷达的测量精度随着距离的增加而减小,所以本文只对车辆前方60 m内,左右各20 m内的点云进行栅格化,形成一个单元分辨率为20 cm×20 cm的栅格图Gt。然后,对于栅格图中的每一个单元Cellk∈Gt计算该栅格单元的最大高度差通常来说,地面栅格单元的高度差比较小,而障碍物栅格单元的高度差比较大,因此,可以通过设置一个高度差阈值来把地面栅格单元和障碍物栅格单元区分开来:如栅格单元的高度差大于阈值,则是障碍物栅格单元,否则是地面栅格单元。
图1展示了去除地面点云的过程,为了直观显示,本文把雷达点云投影到了图像上,颜色的不同代表返回的雷达点与车辆之间距离的不同。图1(a)为对应场景的图像,图1(b)为去除地面栅格单元之后的栅格图,图1(c)为未去除地面点时的雷达点云,图1(d)为去除地面点云过后的雷达点云。本文把雷达点云Ct中所有属于地面栅格单元的三维点从集合中去除后,就得到了新的雷达点云C′t(如图1(d)所示),用于聚类以提取待分类目标。
图1 去除地面点云的结果
Fig.1 Result of removing ground point clouds
由于无人车周围环境的不确定性,因此需要采用无监督的聚类方法对剩余的点云进行聚类。对于去除地面点云之后的雷达点云C′t,本文采用了包含噪声的基于密度的空间聚类方法(density-based spatial clustering of applications with noise, DBSCAN)[13]进行聚类。记r是半径参数,MinPts是邻域密度阈值,R={ri,i=1,2,…,N}是基于密度的聚类结果,其中ri是聚类结果的标签,三维点Pi和Pj之间的欧氏距离为则DBSCAN的算法步骤如下:
1)初始化:标记C′t中所有的点Pi为未访问,ri=i。
2)对于所有的Pi∈C′t,如果Pi未访问,则根据Dij<r找出所有Pj,构成Pi的邻域集合ηi,如果ηi中的点的数量小于MinPts,则记Pi为噪声点(ri=-1);如果Pi已访问,则转到3);
3)对于所有的Pk∈ηi,如果Pk未访问,则根据Dkj<r找出所有Pj,把Pj加入Pi的邻域集合ηi;如果Pk已访问,则rk=ri。转到2)。
在本文的实验中,设定r=0.3 m,MinPts=5,最终标签相同的点构成一个聚类结果。图2展示了一帧数据的聚类结果,其中,图2(a)为场景图像,图2(b)为去除地面点云之后的点云数据,图2(c)为最终的聚类结果。为了更加直观,本文把聚类结果投影到了图像上,即图2(c)中所有的框。
图2 待分类行人目标聚类结果
Fig.2 Result of clustering of pedestrians to be classified
2 特征提取
经过聚类,本文得到了若干个待分类的疑似行人目标。图3展示了不同目标的雷达点云,为了直观显示,本文把所有的点云都投影到了Y-Z平面上。图3(a)为行人目标图像,图3(b)为行人目标的雷达点云,图3(c)为非行人目标图像,图3(d)为非行人目标的雷达点云。为了训练分类器,需要从目标的雷达点云中提取特征。目前,研究人员已经提出了许多基于激光雷达点云的特征,例如Spin Image[14],point feature histograms (PFH)[15],fast point feature histograms (FPFH)[16]等。此外,正如在上文中介绍的,目前也有很多专门针对行人检测所提出的基于激光雷达点云的特征。在这些特征中,由于FPFH的计算复杂度较低,计算时间较快,所以本文选择在FPFH特征的基础上设计新的特征。由于FPFH特征描述的是一个三维点和它周围邻域内点的关系,而本文需要提出一种能够用于描述整个点云的新的特征,因此,利用分块的思想,本文先计算每个雷达点的FPFH特征,再把整个点云空间划分成若干个部分,统计每个部分的FPFH特征平均值,再把它们联合起来作为新的特征。本文把这种新的特征称为FPFH的分布特征,即DFPFH特征。
图3 不同目标的雷达点云
Fig.3 Lidar point clouds of different kinds of objects
具体来说,由于行人的姿态不一定是垂直于路面的,因此对每一个疑似行人目标ri,本文首先计算了所有雷达点的FPFH特征。然后,本文计算了它的雷达点云集合的3个特征值λ1>λ2>λ3以及他们对应的3个特征向量e1、e2、e3,并把整个目标空间,沿着e1和e2构成的平面,均匀地划分成M×N份,这样就有了M×N个单元格。对于每一个单元格,需要计算其中所有的雷达点的FPFH特征的平均值作为这个单元格的FPFH特征。关于FPFH特征的定义,以及如何提取FPFH特征,可以参阅文献[16]。最后,把所有单元格的FPFH特征联合起来,就得到了FPFH特征的分布情况,即DFPFH特征。图4展示了提取这个特征的过程。
3 实验验证
为了验证算法的性能,本文在KITTI OBJECT数据库上进行了仿真实验,并在某地面无人车辆上进行了真实环境下的实验验证,实验的具体内容如下。
图4 DFPFH特征计算
Fig.4 Computing of DFPFH features
3.1 KITTI OBJECT数据库
KITTI数据库[17]是一个测试交通场景中道路检测、车辆检测、行人检测、车辆追踪、语义分割等算法的公开数据库,采集平台配有2个高清摄像机,1台Velodyne激光雷达和一套GPS定位系统。在KITTI数据库中,OBJECT数据库是专门用来测试车辆和行人等目标识别与分类算法性能的数据库。由于这个数据库并没有给出雷达点云的行人聚类分割结果,因此本文手动对部分数据进行了聚类标注,总共提取了4 340个行人目标和24 000个非行人目标(包括建筑、树木、交通指示牌和车辆等),每个目标的雷达点云内,根据目标与车辆之间的距离不同,包含500个以内的激光雷达点。随后,本文从这些目标中随机选取了2 000个行人目标和12 000个非行人目标作为训练集,剩余的目标作为测试集。
3.2 DFPFH特征参数选择
在实验中,本文设置M=6,N=6,即对于每一个目标,把目标空间分为36个单元格。另一个对于DFPFH特征而言的关键参数,就是在计算每个点的FPFH特征时定义的点邻域的直径Ra。为了测试不同的Ra对于分类结果的影响,本文从数据训练集中随机选取了1 000个行人目标和6 000个非行人目标作为训练样本,其余训练集中的目标作为测试样本。之后,本文选取了10个不同的Ra(从0.1 m~1.0 m,间隔为0.1 m),并分别在这10个不同的参数下,提取了DFPFH特征,然后分别训练了10个SVM分类器对测试样本进行了分类。图5展示了实验结果。从图5可以看出,当半径为0.3 m时,分类结果最好,因此本文在后面的实验中选择了0.3 m作为提取DFPFH特征的点邻域直径。
图5 DFPFH邻域直径的选择对行人检测结果的影响
Fig.5 Pedestrian detection performances of different Ras of DFPFH
3.3 KITTI数据库行人检测结果
为了测试本文提出的DFPFH特征的分类性能,本文用上述的数据库,对本文和文献[8]、文献[9]以及文献[10]中提出的特征的分类性能进行了实验测试。在训练集上,本文分别提取了4种特征训练了4个SVM分类器,再用这些分类器对测试集进行了分类。本文在图像中分别计算了4种行人检测结果的6个参数来验证算法性能。这些参数分别是:假正类率,真正类率, 精度,召回,正确率和F测量值。表1给出了不同雷达特征的行人检测性能参数。从表1可以看出,本文提出的特征明显具有更好的性能。
表1 不同雷达特征的行人检测性能
Table 1 Pedestrian detection performances of different kinds of Lidar based features
由于本文提出的算法是用于进行行人检测,所以可以通过对待分类样本设置一些特定的限制条件来提高检测的正确率。对于每一帧测试数据,本文统计出了每一个待分类目标的最大高度差和雷达点数量。对于高度差小于1 m或者大于2 m的目标,以及雷达点数小于20的目标,在提取特征并利用SVM分类器分类之前,本文直接判定这个目标不是行人。对于剩下的待分类目标,再提取DFPFH特征,利用SVM分类器进行分类。最终,结合这些限定条件,本文提出的算法在测试集上的平均识别率达到了84.6%,图6展示了部分实验结果。从图6中可以看出,大部分的非行人目标,通过该分类限制条件,可以直接被分类成非行人。这些分类限制条件不仅提高了分类正确率,还通过减少待分类目标数量的方法,提高了算法的效率。
图6 KITTI OBJECT数据库行人检测结果
Fig.6 Results of pedestrian detection on KITTI OBJECT dataset
3.4 某机器人平台行人检测结果
为了验证本文提出的算法在真实环境下的行人检测性能,本文使用了某地面无人车辆进行实验验证。该地面无人车辆如图7所示,配有1台Velodyne64E激光雷达,1台可见光摄像机,1套GPS惯导组合定位系统以及其他多类传感器。本文只使用了激光雷达获取的点云数据进行行人检测,并且为了便于验证实验结果,本文将激光激光雷达和可见光图像进行了联合标定,并将每帧的行人检测结果投影到了图像上。在车辆行进的过程中,本文实时对激光雷达数据进行处理,利用在KITTI数据库上预先训练出的SVM分类器完成行人检测的任务。在实验中,本文共采集了3 000帧包含多个动态行人的激光雷达数据以及对应的行人检测结果。随后,本文对真值进行了人工标注,并统计了检测结果的各项参数。表2展示了这些参数,图8展示了一帧实验结果。从表2中可以看出,本文提出的算法能够同时满足系统的实时性要求和检测正确率要求。
图7 某地面无人车辆
Fig.7 The unmanned ground vehicle
表2 某地面无人车辆行人检测性能
Table 2 Pedestrian detection performance on unmanned ground vehicle
图8 行人检测结果
Fig.8 Results of pedestrian detection on unmanned ground vehicle
4 结论
1)本文提出了一种基于激光雷达传感器的行人检测算法,将64线激光雷达点云数据进行处理,去除了地面点云,利用DBSCAN聚类算法完成了疑似行人目标提取。随后,再对每个疑似目标提取特征,训练SVM分类器进行行人检测。
2)本文提出了一种基于FPFH分布情况的特征DFPFH作为每一个疑似目标的特征,并且通过在KITTI OBJECT数据库上的实验,证明了本特征可以有效提高行人检测的正确率。
3)本文在某地面无人车辆上,利用在KITTI OBJECT数据库上预先训练出的SVM分类器进行了实时行人检测。实验结果证明本文提出的算法可以满足正确性与实时性要求。
本文提出的算法对多个重叠目标,例如多个行人构成的人群,分类正确率还不是很高。如何将人群中的每一个独立个体分割开来,以提高行人检测的正确率,还有待于进一步研究。