密度聚类与PCA的点云数据处理技术在高铁轨道检测中的应用
2020-07-28王培俊李文涛李保庆
肖 俊,王培俊,李文涛,李保庆,杨 杰
(1.西南交通大学机械工程学院,成都 610031; 2.成都西南交大研究院有限公司,成都 610031)
随着铁路运输的快速发展,列车高速、重载以及高密度运行对铁路轨道的伤害越来越严重[1],及时精确地对轨道参数进行检测,保证铁路运输安全,是列车提速后需解决的问题之一。
目前,轨道检测主要分为接触式和非接触式两类。接触式检测依靠测量头与轨道直接接触,常见的如机械接触式钢轨磨耗测量仪以及OPTIMESSTM(奥特迈斯)公司研制的MiniProf外形轮廓测量系统[2]。这种方式测量工作强度大、易受人为因素影响,当轨道表面存在油污时,测量不便。非接触式测量有三维结构光测量法、激光传感器法等,如美国KLD Labs公司研制的ORIAN光学钢轨检测与分析系统以及瑞士OPTIMESSTM激光轨检系统,能够测量钢轨断面轮廓[3-4]。但二维线激光与轨向的垂直难以保证,影响了检测精度,并且进口设备费用昂贵、后期维护困难,难以在铁路工务系统大面积推广。本文将三维结构光技术用于轨道廓形及磨耗检测,三维点云采集不存在垂直问题,且单位时间内获取的数据量大,检测参数多,有效提高了检测效率和精度。
点云数据处理是结构光测量的重要环节,而点云配准是点云数据处理中的关键步骤。配准的目的在于将不同视角下的点云调整到同一坐标系下[5]。目前,应用最广泛的点云精确配准方法是迭代最近点算法(ICP)以及其改进算法(如点到面的最近迭代点算法)[5]。Besl等提出的ICP算法能够基本满足大多数三维点云的配准要求,但其运行速度和精度主要取决于点云的初始位置和点云的大小[6]。近些年由于提出了许多快速最近点搜索算法(如Mul-KNN[7]和libnabo[8]),从而使ICP算法的效率有了大幅度的提升。但是,当点云初始位置相差较大时,会严重影响ICP算法的精度和运行速度。为此,在精确配准之前,需要对点云进行预处理和初始配准,以此来减少点云数据量,为精配提供良好的初始位置。
点云预处理的主要目的是减少点云数据量以及去除噪声点和离群点等“坏点”。常见的去噪算法有很多,如平滑滤波、最小二乘滤波、双边滤波以及卡尔曼滤波等等[9]。LEE等[10]通过拟合二次曲面去噪,效率较高,特征保持较好,但是由于存在法向估计偏差,准确性有待提高;Zhang等[11]在网格去噪中加入全变分和分段常值函数,计算相对复杂。
预处理之后,对点云进行初始配准。初始配准算法大致可分为:基于几何特征和不变量的全局配准、基于投票法则的全局配准以及其他全局配准算法。典型算法如AIGER等[12]提出的基于共轭向量的Super4PCS算法,此算法对噪声和杂点有较强的鲁棒性,但当曲面对称性强,或重叠区域较小时,易配准失败。RADU等[13]提出的快速点特征直方图特征信息提取算法,通过点云的特征直方图定义特征向量,以此特征匹配点云,但其配准精度不高。CHEN等[14]改进了RANSAC算法,针对重叠区域较小的点云集时,具有一定的鲁棒性,但是当点云集中外点比例较高时,难以同时保证效率、精度和鲁棒性。LILIENTHAL提出的使用标准最优化技术确定两点云间最优匹配的NDT算法[15-16],针对大型点云,其配准速度较快,但对点云初始位置有要求,初始位置差异较大,将配准失败。
针对上述研究现状,结合密度聚类与PCA主成分分析算法实现点云初始配准。该方法运行速度快,配准精度较高,提高了三维结构光检测的精度和效率。
1 点云预处理
由于人为因素、设备因素以及环境因素等的影响,现场采集到的钢轨点云往往存在噪声点、离群点以及背景数据点等干扰数据,这些干扰数据会对最终的配准精度产生很大的影响,进而影响检测精度,除此以外,还存在着原始点云数据量大的问题[17-18]。因此,对点云进行预处理,将减少后续数据处理用时,提高后续处理的精度。
1.1 点云采样
三维结构光采集的单片点云包含的点数可达百万级,如果不进行精简直接使用,不仅占用计算机资源,还会使点云处理时间变长,效率降低。对点云进行采样的目是在不明显减少点云信息的基础上,用尽量少的数据点表示,为后续点云处理节约时间和空间[19]。本文采用三维体素栅格的采样方式,用所有体素的中心点近似体素中包含的点集,完成对原始点云数据集下的采样[20],如图1所示。
图1 划分三维体素栅格
1.2 密度聚类去除噪声点和离群点
聚类的目的在于将集中的数据样本点划分为若干个不相交的子集,每个子集称为一个“簇”。通常情况下,密度聚类算法从样本点密度的角度来考察样本点之间的连续性,并基于可连续性不断扩展聚类簇以获得最终的聚类结果[21]。DBSCAN密度聚类算法将簇定义为密度可达的点的最大集合。它本身对噪声不敏感,能发现任意形状、大小的类簇,将该算法用于去除噪声和离群点,能将密度分布连续的样本点进行聚类,从中提取出目标点云[22-23],以提高后续数据处理的精度。
首先,读入点云集P,将其状态设置为未访问,设定初始邻域参数ε(邻域半径)和MinPts(最小邻域点数);然后寻找点云集P中的核心点,即在ε邻域内至少包含MinPts个点的数据点;最后以任一未被访问的核心点为出发点,找出由其密度可达的所有数据点生成聚类簇,状态设为已访问,迭代执行该步骤直到所有核心点均被访问完为止。聚类完成之后,查看聚类结果,若能分离,则停止聚类,否则根据本次聚类情况,重新选择新的邻域参数进行聚类。
图2为一个三维点云聚类效果图。
图2 聚类效果
DBSCAN算法需要输入两个自定义参数ε(邻域半径)和MinPts(最小邻域点数),参数设置将直接影响聚类的效果。这两个参数需要根据采样后点云中点与点之间的间隔距离来设置。采样选择的是三维体素栅格下采样的方式,对于采样后的点云,点与点之间的间隔距离与设置的体素栅格尺寸基本一致,因此,邻域半径ε的大小设置为略大于体素栅格尺寸即可,而最小邻域点数MinPts设置为理论上一核心点周围的点数,即3或者4,如图3所示。
图3 邻域参数设置示意
2 点云配准
点云初始配准采用的是主成分分析法(Principal Component Analysis,简称PCA)。PCA是使数据简化的算法,通过揭露数据内部的主要分布方向,减少了数据集的维数,从而保留了点云集中贡献最大的特征,更好地解释数据的变化规律[24]。PCA算法进行点云配准是以主轴方向为依据。首先求得源点云和目标点云的点云质心,以此作为点云主坐标系的坐标原点,然后通过计算两点云主轴的对应关系,即可大致对齐两点云数据[25]。
2.1 构建PCA坐标系
将点云数据看成由点的X、Y和Z坐标值构建的矩阵,如点云集P
(1)
通过求X、Y、Z三个方向的变量均值即可得点云的质心c,也就是PCA坐标系的坐标原点,其计算如下
(2)
计算点云的协方差矩阵,可求得该点云集对应的特征向量,分别对应点云坐标系的3个主要分布方向。协方差矩阵为实对称矩阵且实对称矩阵的特征向量是相互垂直正交的,因此点云集的特征向量可作为PCA坐标系的3个坐标轴方向。点云协方差矩阵的计算如下
Pcov=(P-c)(P-c)T
(3)
对上述协方差矩阵Pcov的特征进行求解
Pcov=USVT
(4)
其中,U和V是协方差矩阵Pcov经过奇异值分解所得的左右两组正交矩阵,S是一个对角线上元素为奇异值,其他元素为0的对角矩阵。左正交矩阵U内的3个单位列向量,即是点云PCA坐标系3个坐标轴的方向向量。以钢轨点云为例,计算其PCA坐标系,如图4所示。
图4 钢轨模型点云自身PCA坐标系
2.2 求取变换矩阵进行点云初始配准
假设需要配准的源点云和目标点云的对应点集分别为P和T。由式(2)可求得点云集各自的质心坐标cp和cT,中心化点集
(5)
由中心化点集得到协方差矩阵,根据式(4)进行奇异值分解
[U,S,V]=SVD(T′T·P′)
(6)
计算旋转矩阵R和平移向量T
R=U·VT
(7)
T=cT-R·cP
(8)
依据旋转矩阵R和平移向量T即可对源点云进行旋转平移变换,将源点云变换到目标点云的坐标系下,实现点云的初始配准。完成之后,采用经典的ICP算法完成对源点云和目标点云的精确配准。
3 现场试验与结果分析
为验证上述方法的效率与精度,在成雅高铁成蒲段和成都铁路局工务大修段分别进行了现场试验,如图5所示。对60 kg/m钢轨(以下简称“60轨”)点云进行了多次配准试验,检测钢轨磨耗值,并与当前常见的两种全局配准算法SAC-IA和NDT进行对比分析。在Windows7系统下采用C++编写程序,计算机配置为Intel Core i3-4150 3.5 GHz CPU,4 G内存。
图5 成雅高速铁路成蒲段现场试验
自行研制的测量平台由测量小车、控制箱、结构光扫描系统、计算机及测量软件系统组成。高速列车行驶时车轮仅与钢轨内侧接触,在夜晚天窗期间测量时,沿轨道推行检测小车,转动扫描仪采集左右股钢轨内侧点云即可。检测软件将采集的钢轨点云与标准钢轨模型点云进行对比,即可实现钢轨磨耗的测量。
钢轨磨耗高精度测量的关键在于钢轨点云与模型点云之间的良好配准。配准之前,对60轨点云进行预处理,试验结果见图6。预处理结果表明,运用密度聚类可以有效去除噪声和离群点,从原始点云中提取出目标点云。
图6 点云预处理
为解决点云不完整而导致配准效果不理想的情况,首先对源点云进行分割,然后提取出完整的局部点云进行配准。此处提取了60轨轨顶弧面点云,效果如图7中红色所示。
图7 60轨轨顶点云分割
在预处理的基础上,对60轨点云进行初始配准,配准结果如图8所示。
图8 60轨初始配准
3种算法都成功实现了60轨的初始配准,配准时间与欧式适合度评分(从源点云到目标点云的距离平方和)见表1。
表1 3种算法配准结果对比
上述结果表明,对于点云初始配准,PCA算法在相同条件下的配准速度和配准精度均高于其余两种算法。NDT算法对点云初始位置有较高要求,并且需要人工设置搜索步长和网格分辨率,若初始位置偏差较大或初始参数设置不恰当,配准将失败。而SAC-IA算法需进行特征计算,特征计算也受到初始参数设定的影响,并且需要较大的迭代次数来使点云的初始配准达到一个较好的结果,故其配准较为耗时,配准精度不高。PCA算法不需要人工设置初始参数及迭代次数,仅需进行矩阵的运算,故其速度快、配准时间短,并且欧式适合度评分最小,配准精度相对较高。
在PCA配准的基础上,利用60轨的轨腰部分进行ICP精确配准,获得钢轨测试点云和模型点云的最终配准结果,利用此结果可对钢轨磨耗进行检测。由于PCA初配精度较高,从而提升了60轨整体配准的精度。以成雅高铁成蒲段为例,提取出待测截面的二维平面图,如图9所示。测量软件可自动得出垂磨、侧磨以及总磨耗值。选取同一段60轨的两个截面进行测量试验,避免测量时的随机误差。为与光学检测结果对比,同时使用JTMH-B数显式钢轨磨耗尺手动测量上述位置的两个截面,结果见表2、表3。为保证钢轨磨耗尺测量的准确性,测量前对其进行了标定。接触式测量的钢轨磨耗尺操作简便,但测量头随着测量次数的增加会产生磨损,若不及时标定将影响测量精度,只有在及时标定后才能保证精度,测量效率低。此外,测量底座与钢轨头下面的贴合程度、钢轨侧面变形等因素均会给测量带来一定的误差。而结构光为非接触式测量,完全避免了上述问题,从表2和表3可以看出,结构光测量结果与标定后的磨耗尺测量结果相近。因此,结构光测量结果准确、可信。
图9 60轨点云二维截面
表2 成雅高铁成蒲段60轨磨耗检测结果 mm
表3 成都铁路局工务大修段60轨磨耗检测结果 mm
4 结语
综合利用密度聚类与PCA算法进行点云数据处理。该方法去除了源点云中的“坏点”,消除了其对配准的影响,避免了人工设置配准参数带来的随机性与不确定性。与同类方法相比,该方法提升了配准精度,配准效率提高了近百倍,在保证配准精度的同时,大大缩短了配准时间。对两组相似的点云,该方法均能实现其任意位姿上的初始配准,具有普遍适用性。在三维结构光轨道检测中,应用此方法配准轨道测试点云和模型点云,可提高检测精度和效率。