胡 舒,王树根,王 越,李 欣
(1.武汉大学 遥感信息工程学院,湖北 武汉 430079;2.武汉市测绘研究院,湖北 武汉 430022)
随着科技的发展,城市中私家车的数量急剧增加,违规占道、违章停车等情况层出不穷,导致道路安全形势日趋严峻。夜间违停乱停导致的道路安全问题越来越受到重视,公众对公共停车场数量的需求也越来越大,因此改善当前城市夜间道路环境已刻不容缓。为了获取城市区域道路两侧的夜间停车信息,可利用夜间车流量相对较少、路面状况较稳定的特点开展城市区域道路两侧停车调查工作,为建设公共停车场以及治理夜间违章停车提供依据。
车载激光扫描技术是一种动态获取城市三维空间数据的新技术[1]。该技术已在三维城市建设、杆状地物检测、建筑物立面检测以及道路安全检测等领域得到广泛应用。与机载LiDAR相比,车载LiDAR具有扫描频率高、移动速度快和测量距离近等特点,采集的点云数据量大且内容丰富,包括道路沿线地物,如树木、建筑物、行人、线杆、车辆以及其他目标等。车载激光扫描技术不受光照因素的制约,可用来获取夜间道路两侧的地物目标点云数据。
针对基于三维激光点云的目标检测方法,国内外已有不少研究,如谭贲[2]、PU S[3]等通过分析车载LiDAR点云中不同地物的扫描点特征来采集点云数据块的各项特征,再进行地物的自动识别和分类,但没有讨论车辆目标的检测问题;YANG B S[4]等发现从点云数据中提取车辆目标存在一定的困难,由于建筑物阴影、树木等对车辆的遮挡,导致检测准确率降低。然而,基于车载LiDAR点云的车辆目标自动检测问题鲜有研究,因此本文根据车辆目标的点云特征和自然空间特征等,提出了一种基于知识规则的车辆目标自动检测方法,并通过实测数据验证了该算法的有效性。
车载激光扫描系统获取的车载LiDAR点云数据量非常庞大,且存在数据冗余,为了便于后续处理,需对点云数据进行预处理。本文利用参考文献[5]的方法分别在水平方向和垂直方向对点云进行处理,主要目的是去除地面点云。在水平方向上,根据道路宽度信息建立缓冲区,道路两侧以外的不属于道路范围的点云被全部去除;在垂直方向上,结合POS轨迹数据并按高度过滤,提取出地面到扫描中心高度范围内的点云。通过上述预处理,去除了地面点云,只保留了感兴趣的道路范围内的点云数据,大大减少了点云数量,提高了点云的处理效率。
本文采用分割的方法对点云进行聚类分析,将点云分割为点云簇;再根据车辆目标的特征,实现城市道路两侧车辆目标的自动检测。聚类算法主要包括层次聚类方法、划分方法、基于网格的方法、基于密度的方法以及基于模型的方法[6-8]。除此之外,还可将点云数据进行投影,并对投影得到的图像进行二值化处理,再利用图像的聚类方法[9]进行聚类分析。
车载LiDAR点云剔除地面点后,路面目标点云为独立分布状态,因此本文分别采用基于欧式距离分割的聚类方法和基于密度的DBSCAN聚类方法对车载LiDAR点云数据进行聚类,并比较两种算法的性能,进而选取最适合本文数据的方法进行聚类实验。
1.2.1 基于欧式距离分割的聚类方法
该方法基于欧式距离度量点与点之间的远近[10]。在多维空间中,利用点与点之间的几何距离来表示欧氏距离,如在三维空间中的任意两点A(XA,YA,ZA)和B(XB,YB,ZB),其欧式距离可表示为:
针对点云数据量庞大、冗余严重且处理效率低下的情况,在进行基于欧式距离分割的聚类之前,需先对点云数据进行体素栅格滤波,以实现体素网格化下采样,该过程利用PCL库[11]中的VoxelGrid滤波器实现。由于点云中不可避免的存在大量噪声干扰,为了减少干扰,利用统计分析技术对点云进行滤波,滤除噪声点,可大大减少冗余的点云数据,使点云形状特征得以保持,该过程利用PCL库中的StatisticalOutlierRemoval滤波器实现。
在进行基于欧式距离分割的聚类过程中,利用KD Tree算法在多维空间内对每个点的最邻近点进行搜索,小于设定的距离阈值D的点云数据被划分到同一个点云簇。设定一个点云簇包含点云数量的最小值(Min_Size)和最大值(Max_Size),只有包含点云数量在这个范围之间的点云簇才能被保存下来,其余点云簇则直接滤除,该阈值设定的目的是滤除分割得到的细小部件。
1.2.2 基于密度的DBSCAN聚类方法
由于滤除地面点云后,点云密度特征明显,因此本文同时采用基于密度的方法进行聚类。具有噪声的基于密度的DBSCAN[12]聚类方法是一个典型的基于密度的聚类方法。其核心思想为:在点云数据集中选择任意一个核心对象(即在一定范围内周围点的数量大于一定阈值的点)作为种子点,然后向周围扩展,找到该种子点密度可达的所有样本集合,聚类为一个点云簇,重复上述过程,直到点云数据集内所有的点都被聚类或被判定为异常点为止。
在聚类过程中,本文采用基于欧式距离分割的聚类方法和基于密度的DBSCAN聚类方法分别对同一组实验数据进行聚类实验。聚类结果如图1所示,可以看出,图1a中下采样效果以及离群点滤除效果明显,点云簇边缘更加光滑;图1b中点云簇边缘噪声点依然存在,且离群点去除效果较差。基于欧式距离分割的聚类方法的聚类结果明显优于基于密度的DBSCAN聚类方法,如图1中红色矩形框所示,基于密度的DBSCAN聚类方法分割严重不足,这是由于该点云数据集密度不均匀所导致的,因此本文选择基于欧式距离分割的方法进行聚类。
图1 两种聚类方法效果对比
1.3.1 特征提取
对分割后得到的独立地物点云簇进行点云特征的提取,提取的特征应能区别车辆与其他点云数据中的地物。根据车辆的空间拓扑位置、物理大小、车辆与地面的关系以及车辆的几何特征等,建立车辆目标自动检测的知识规则,再根据该规则实现车辆的自动检测。知识规则涉及车辆目标的大小、高度、水平投影面积、水平投影外接矩形边界框的长与宽等。
1)大小是区分不同地物目标的重要特征之一。本文采用每个独立地物包含的点云数量来表示地物大小。
2)高度是区分城市地物的重要特征之一。首先计算独立地物的最大高度Zmax和最小高度Zmin,再根据式(2)计算得到独立地物的高度H。车辆目标的平均高度是相似的,约为1.5 m。
3)水平投影面积。车辆在三维、二维空间中的形态如图2所示,城市中不同型号车辆在水平面上的投影在面积和形状上是相似的,因此地物的水平投影面积S,即为物体点云簇在水平面上投影的边界矩形框面积,计算公式为:
式中,xmax、xmin、ymax、ymin分别为x坐标和y坐标的最大值与最小值。
4)水平投影外接矩形边界框的长与宽,描述的是物体的形状特性。车辆具有相似的形状,其水平投影外接矩形边界框的长与宽也相似,边长过长和过短的地物都不符合车辆的形状特性。
图2 车辆在三维、二维空间的示意图
1.3.2 特征判定与车辆检测
在图像处理时,通常采用模板匹配的方法来检测地物目标,但在三维点云数据处理时,该方法不适用,因此本文基于上述知识规则和要素特征,分别计算各独立地物点云的属性,为进行车辆目标的检测提供基础知识。
根据知识规则定义计算独立地物的特征向量Vi=[x,y,z,n,h,s,l],其中x、y、z为空间位置,以独立地物的质心表示;n为大小,以独立地物点云中所包含的点云数量来表示;h为高度;s为水平投影面积;l为水平投影外接矩形边界框的长与宽。结合车辆目标的自然特征和空间几何特征,与知识规则建立自然对应关系,计算各独立地物点云的特征,并得到特征向量;再与建立的车辆目标自动检测知识规则进行匹配,实现车辆目标的自动检测。
基于知识规则的车辆目标自动检测算法流程如图3所示。
图3 基于知识规则的车辆目标自动检测算法流程图
本文选取武汉市三环线内某道路的车载LiDAR点云实测数据进行车辆目标检测实验,以验证提出的基于知识规则的车辆目标自动检测算法的有效性与可行性。
实验数据来源于武汉市三环线内主要道路的夜间停车状况调查项目。武汉市三环线内某段道路预处理后的点云数据如图4所示,呈长条状分布,全程长约为1.4 km,共包含9 742 560个扫描点。
图4 武汉市三环线内某段道路的车载LiDAR点云数据
考虑到点云数据量庞大、处理效率低的情况,实验中将该道路点云分为8个小段,分别进行车辆目标的自动检测。首先对点云数据进行预处理、下采样、滤波以及分割等处理;再利用基于知识规则的车辆目标自动检测算法计算地物目标的点云特征、几何特征以及各项属性;然后将其与车辆目标知识规则库进行匹配,得到车辆目标的检测结果。某段道路的检测结果如图5所示,原始点云数据在FugroViewer中显示,其余结果均在CloudCompare软件中显示。
由图5b可知,基于欧式距离分割的聚类方法能很好地去除离群点和异常点,并将地物目标分割成独立地物点云,地物目标的分割效果较好;由图5c可知,基于知识规则的车辆目标自动检测算法能有效实现车辆目标的自动检测。
为了验证本文算法的正确性,实验过程中对8个路段分别进行了车辆目标的自动检测,同时采用人工目视判读的方法对点云数据中的车辆目标进行统计,并将本文算法得到的检测结果与之进行比较,结果如表1所示。
图5 某段道路车辆目标检测结果
表1 样本路段车辆检测结果
由表1可知,基于知识规则的车辆目标自动检测算法能有效检测车辆目标,自动检测准确率可达88.10%,证明该方法是可行且有效的。
该路段某个位置造成的车辆漏检(红色框)和错检(黄色框)现象如图6所示。通过分析可以发现,影响自动检测准确率的主要原因一方面是部分车辆目标之间存在相互遮挡,导致距离过近、分割不足,或是车辆点云不连贯导致过分割、车辆信息不完整,进而导致提取的特征无法与知识规则匹配;另一方面是由于极少数地物与车辆目标有相似的特征,导致识别困难。
考虑到过分割与分割不足对车辆目标检测精度的影响,可通过优化聚类方法达到对点云数据的更优分割,从而提高车辆目标检测的准确率。除此之外,点云密度也是影响检测精度的因素之一,因此在点云数据的获取上也应更加严谨。
图6 车辆目标漏检结果示意图
本文以武汉市三环线内主要道路的夜间停车状况调查项目为依托,采用武汉市三环线内某段道路沿线点云数据进行车辆目标的自动检测。首先通过点云预处理移除地面点云,并对非地面点云进行下采样和滤波,以简化点云并去除离群点与异常点;然后采用基于欧式距离分割的聚类方法将点云数据划分为点云簇;再分析车辆目标的点云特征、自然物理特征、空间几何特征等相关特点,建立车辆目标检测的知识规则;最后根据知识规则实现车辆目标的自动检测。实验表明,该方法的准确率可达88.10%,减少了人工统计的工作量。在后续研究中,可进一步改进聚类算法以及深入挖掘人工智能方法,以便提高车辆目标检测的精度和自动化程度。