高速道岔尖轨点云的复合拼接及数据处理优化

2018-07-12 11:29王培俊吕东旭
西南交通大学学报 2018年4期
关键词:邻域道岔工作组

王培俊, 吕东旭, 陈 鹏

(西南交通大学机械工程学院, 四川 成都 610031)

尖轨是道岔的重要部件,在列车变轨的过程中起引导作用.相对于基本轨,尖轨的结构薄弱,是铁路交通的薄弱环节,需得到及时有效的检测.随着高速铁路的迅速发展,为保证高速列车安全、平稳地变轨,高速尖轨需满足更高的工作性能,其检测需求也相应地提高.

道岔中钢轨损坏的主要原因是车轮走行对钢轨形成的磨耗和疲劳破坏[1].目前,我国主要采用人工的方法检测尖轨,使用相应的测量尺,甚至目测来判断尖轨的工作状态,检测效率低下且检测结果易受个人经验影响.近年来,随着数字图像技术的发展,出现了许多基于图像视觉的检测方法,如通过单目视觉的方法构建的钢轨轮廓检测系统[2].相对于单目视觉系统,基于结构光双目立体视觉的三维扫描系统具有测量精度高、扫描速度快且一次可进行较大幅面扫描等特点[3],广泛应用于逆向工程和表面检测等领域,包括钢轨轮廓的检测[4],主要研究应用对象为结构较为简单的钢轨[5-6].有学者对道岔进行了缝隙较大处的密贴值检测[7],但对于结构较为复杂的、非拉伸件的尖轨检测尚没有较为全面深入的研究.虽然激光检测仪在道岔检测中也有应用,但激光检测仪是截面检测形式,难免存在数据小部分丢失的问题,难以完全满足结构复杂的道岔检测要求.铁路高速道岔检测仍然是铁路线路检测中的难题.为检测高速尖轨的磨耗,基于点云库(point cloud library, PCL)开发了磨耗分析软件,将三维结构光设备扫描的点云数据导入可获得三维尺度的检测结果,但当前的系统存在如下问题:

(1) 结构光扫描系统的机器视觉设备具有一定的工作视场范围,无法在同一测点采集完整的高速道岔尖轨点云数据,需从多个视角进行数次扫描,将多幅局部点云拼接成完整的尖轨模型.目前常用的点云拼接方法是基于标识点识别的点云拼接[8],极大地增加了人工成本,降低了扫描效率,并且需要点云数据连续.

(2) 在应用PCL进行点云数据处理与分析时,部分函数设备利用率不高,运行速度缓慢,降低了整个检测系统的实时性.

针对基于标识点的点云拼接效率低下的问题,本文通过分析高速道岔尖轨的检测需求及其几何形态,引入了复合拼接的方法,通过融合编码器的位移信息,完成了尖轨点云数据的拼接.通过扫描实验证实其可行性,在检测系统的自动化、扫描效率方面有较大提升.

针对PCL函数效率低下的问题,考虑到数据处理流程的计算复杂度和运算的时间消耗,重点分析了点特征直方图(point feature histograms, PFH)的计算过程,结合PFH算法和OpenCL(open computing language)硬件模型的特点,调整点云数据结构,提出基于OpenCL的PFH算法.通过实验测试,获取优化后的算法相对于原有PFH函数的加速比以及系统整体性能的提升幅度.

1 高速道岔尖轨点云数据的复合拼接

1.1 高速道岔尖轨的检测需求分析

尖轨磨损的测量参数有垂直磨耗、侧面磨耗和降低值等.以垂直磨耗为例,测量的是尖轨轨顶的磨损,检测位置为未磨损尖轨轨顶距离内侧1/3轨头宽度处[9].不同于基本轨的固定截面,高速道岔尖轨的截面随着位置的变化而改变.因此,要准确测量尖轨各部位的垂直磨耗,需精确定位检测点.

使用结构光扫描仪对高速道岔尖轨进行磨耗检测时,在截面方向的定位可以选择未与列车轮轨直接接触的轨底顶面作为参考,以尖轨的CAD设计模型作为配准目标,将测量得到的尖轨轨底数据精确配准到这一标准模型的轨底,再对比轨顶处的磨耗情况;由于轨底截面固定不变,不具备在尖轨延伸方向定位的条件,原始的定位方法是采集整个尖轨的点云数据,以其开端为原点计算延伸值.受结构光扫描仪工作范围和扫描方位的限制,尖轨点云数据的获取过程中需要进行多次扫描并且精确拼接.将数次从不同方位、视角获取的局部点云数据拼接成完整的待测尖轨的三维模型,再将其与标准的尖轨CAD模型精确配准,计算两者之间的差异可以得出待测尖轨的磨耗值.传统拼接流程如图1所示.

图1 点云的传统拼接流程Fig.1 General point cloud registration

点云拼接的本质是将在不同方位、视角下获取的尖轨局部点云数据作刚性变换,将各自的局部坐标系统一到全局坐标系中.首先需定义全局坐标系,通常可将首次获取的局部尖轨点云所对应的局部坐标系定义为全局坐标系,而单次测量获得的尖轨点云是局部数据,设平移变换为T和旋转变换为R,局部坐标为(XL,YL,ZL),全局坐标为(XW,YW,ZW),它们之间的变换可描述为

(1)

通过式(1)中矩阵R和T的具体参数即可完成局部坐标到全局坐标的统一.典型的求解方法是通过对标识点的检测与定位[10].由于标识点在全局坐标系与局部坐标系中拓扑关系不变,在局部到全局坐标的变换中可以利用这一属性实现标识点匹配,从而确定变换关系.

利用局部点云交叠部分的标识点实现点云拼接,对标识点的数量和分布都具有一定的要求.在测试实验中,如果能够满足标识点数目大于3且不共线的条件,即可实现点云的拼接,用于检测高速道岔尖轨的磨耗.然而,在高铁线路的实际工况环境下,道岔检测时存在以下弊端:

(1) 较低的效率.人工的方法保证局部点云交叠处标识点的位置与数量,极大耗费检测的时间,同时检测人员对标识点布置的合理性将影响测量的成功率和精度.

(2) 数据存在空洞.全黑或全白的标识点的颜色设计,虽然有利于特征提取,但与此同时会造成极端的曝光不足或过量,从而引起数据的缺失,形成点云数据空洞.

(3) 数据有冗余.铁路现场的道岔尖轨磨耗以抽检的形式进行检查,主要是在尖轨的尖端、顶宽5 mm处、顶宽20 mm处、顶宽35 mm处、顶宽50 mm处、顶宽70 mm以上6个主要检查断面[9].使用标识点的方法强制性地要求尖轨的各幅点云数据之间具有重叠区域,不仅大大增加了扫描工作量,导致点云数据冗余,还会增加潜在的拼接失败的风险.

针对以上问题,综合高速道岔尖轨的几何形态,本文提出了基于距离编码器的高速尖轨点云复合拼接方法.

1.2 复合拼接

首先分析高速道岔尖轨的几何形态.我国铁路的大部分12号及12号以下的道岔均采用直线型尖轨[11],即大部分的尖轨曲率为0.由于尖轨轨底的截面形状保持不变,沿尖轨延伸方向测得的各组点云可以看作是第1组点云的Z向平移.为了保证检测数据的连续性,结构光扫描设备搭载在检测小车上,小车沿尖轨直线行驶,结构光扫描设备相对于尖轨无偏转,仅在与轨道平行的方向发生位置变化.假设检测过程中检测车的车轮不与被测轨相对滑动,则检测车通过的距离与车轮转动的总周长相等,利用激光编码器采集车轮的转动总弧度,可获得检测车在被测尖轨上平移的距离.

在没有参考标识点的条件下,以结构光扫描设备自身的局部坐标系为基准获取多组点云数据,由于各测点处扫描设备对于尖轨的可视范围一定,轨底的截面也恒定,各组检测数据基本重合.

设XY平面与尖轨CAD模型的启示截面重合,Z方向为钢轨的延伸方向,建立全局坐标系.利用激光编码器记录脉冲量,乘以脉冲长度计算出测量检测小车的位移量,换算成各局部点云沿轨道的偏移量,基于激光距离编码器复合尖轨点云拼接的工作流程图如图2所示.

图2 基于激光距离编码器复合拼接流程Fig.2 Complex point cloud registration based on laser distance encoder

2 PFH的OpenCL实现与优化

2.1 PFH基本原理

PFH是一种稳定性较优秀的点云特征描述方法,具有曲面刚性不变、点距对特征计算影响小和噪点扰动较弱等优势[12].如图3所示,PFH使用多维直方图描述目标点Pt与邻域点Pi(i=1,2,…,k)之间的几何特性[13-14],计算复杂度为O(k2),从而辅助点云配准[15].

图3 目标点与k个邻近点之间的几何特性Fig.3 Geometric characteristic between query points and their nearest k neighbors

任取邻域中两点Pa与Pb,设它们的法向量分别为na、nb,计算两点之间的空间位置关系和法向量的角度偏转.取其中的一点作为局部坐标系原点定义局部坐标系,以简化运算,如图4所示.

图4 任意两点Pa和Pb之间的相对位置关系Fig.4 Relative position of two arbitrary points Pa and Pb

其中,将Pa与Pb相连得到(Pb-Pa)坐标系的Z轴垂直于X轴和(Pb-Pa)所在的平面.Pa和Pb的位置关系和其所对应的法向量ns和nt之间的偏转关系可描述为

(2)

式中:d是Pa和Pb之间的欧式距离.

计算邻域内任意两点的几何特征描述值(α,φ,θ,d),把两点的空间位置关系和法向量偏转关系(共12个值)减少为4个.其中,3个参数是角度量,且省略d能减弱算法对点云密度的敏感度,从而增强鲁棒性[13].将这3个角度参数映射到n3个区间的直方图,计算领域点落到各区间的频数.PCL点云库提供了一个pcl::PFHSignature125的数据类型存储PFH值,它包含125个浮点数,即n=5(每个分量分为5等分).

2.2 PFH的OpenCL并行性分析

结构光扫描设备采集的高速尖轨点云包含x、y、z3个位置坐标描述,不具备法向量,因此首先需要估计点云数据的法向量.实验证明,在尖轨点云数据(规模为(105~106个点)的计算中,点云的法向量的计算复杂度低于5%,OpenCL并行加速收益低,甚至可能因GPU (graphics processing unit)之间的数据拷贝带来的额外开销而降低性能.综上,本文中法向量计算在CPU平台实现.

假设尖轨点云包含M个点,邻域点数量设为N,那么计算PFH循环次数为M(N2-N)次(包括重复配对),或者MN2次(不计重复配对).每个循环输入的数值为6个(空间坐标和法向量),且各点的PFH计算完全独立,并行度较高.实践表明,PFH直方图计算所时间占整个点云数据处理时间的85%.因此,本文结合PFH算法和GPU设备的特点,提出了OpenCL并行化的PFH算法.

2.3 GPU内存访问优化

GPU全局内存的访问代价十分高昂,若线程频繁访问全局内存会因内存阻塞而空载,降低计算单元的利用率.使用GPU内建的局部内存可以有效解决内存阻塞问题[16].GPU的局限在于其局部内存容量,对于单个计算单元,局部内存容量通常只有几十KB,而PFH的直方图计算中,需要搜索配对临近,对于无序点云这种搜索将扩大到整个点云.因此,不能直接将完整的点云数据复制到局部内存中.

针对上述问题,本文对点云数据格式进行重构,使其适应OpenCL设备高速访存,优化如下:

假设尖轨的点云数据量为M.首先设定邻域点的数量为k,遍历整个点云数据,基于k-d搜索树的方法建立邻域点索引.建立两个浮点数组,将邻域点索引按目标点遍历的顺序存储空间坐标和法向量.因此,每个点的邻域点索引相互独立,且在内存中连续.将待计算的目标点的邻域索引拷贝到GPU各计算单元的局部内存中,每个单元的线程只需从局部内存中读取数据,避免频繁访问全局内存,降低了访存阻塞.基于OpenCL的PFH计算流程如图5所示.在PFH计算流程中,法向量和邻域点索引的创建在CPU平台中实现.CPU计算完成后,将计算结果拷贝到GPU的全局内存中,在GPU平台完成PFH计算,再将计算结果拷贝到主机内存.

图5 OpenCL优化的PFH流程Fig.5 Flowchart of OpenCL-accelerated PFH

2.4 OpenCL工作组与工作项的划分

在OpenCL的抽象模型中,共享数据的工作项(work-item)组成一个工作组(work-group)[17],具体到GPU硬件设备中,在相同工作组中的所有工作项共享局部内存.结合PFH的计算特点,本文将单个点的PFH计算任务分配到OpenCL模型中的一个工作组.

工作组大小的划分会直接影响GPU的负载效率.以AMD GCN (advanced micro devices, graphics core next)架构的GPU为例,最小的线程操作粒度为64(称作wavefront)[18],即这64个线程的操作指令是同步的.以wavefront的整数倍划分工作组的大小时,GPU计算单元的利用率最高,计算性能会显著优于其他情况[17].设任意目标点的邻域点索引数量为k,则分配到每个工作组后需要执行k2次计算.将工作组的大小设为P,每个工作项执行S次循环,使得总循环次数PS≥k2.最佳的k值随点云数据密度改变而浮动,若工作组大小P设置太大,当k值设置较小时容易造成计算单元的闲置.运用CodeXL,可以分析出不同工作组大小下VALU (vector arithmetic logic unit)的负载利用率如图6所示.

图6 工作组大小不同时向量运算器的负载情况Fig.6 Load percentage of VALU in different workgroup sizes

从图6可以看出,当k设定较小时,包含64个工作项的工作组VALU初始化比例与包含256个工作项的工作组相当,但前者的VALU负载更高.因此在k较小时,工作组设为64个工作项时计算单元利用率更高,与理论分析一致.当k设定较大时两者均能使GPU的计算单元高负载运行.综上,本文将工作组64个工作项,即一个wavefront对应的线程数量.

3 实 验

3.1 基于距离编码器的复合拼接测试

检测的高速尖轨长度为1 200 mm,使用点云采集幅面为400 mm×300 mm的扫描装置获取被测尖轨工作侧的点云.考虑点云数据之间的交集,进行4次数据采集,点云数据的偏移量由距离编码器获取.未经处理的的原始点云数据将重叠在初始位置,如图7所示.

将首次采集的轨尖处的点云与尖轨设计CAD模型尖端对齐.首先分割出轨底的点云数据,将其与标准模型的对应位置进行粗配准和精确配准,再沿Z轴平移至尖轨尖端,效果如图8所示.

融合激光距离编码器测得的偏移量到尖轨点云变换矩阵,实现后续点云的刚性变换,限制变换后的点云位置,进而完成精确配准.后续点云精确配准后的效果如图9所示.

图7 多片原始尖轨点云相互重叠Fig.7 Overlaps of multiple point clouds in the initial state

图8 扫描的第一片尖端点云与高速尖轨标准模型尖端对齐Fig.8 Registration of the first scanned piece of point cloud of the switch rail to the CAD model on the starting points

图9 后续点云与标准模型精确配准结果Fig.9 Accurate registration results of the rest point clouds to the designed model

以测量数据与标准CAD模型的截面配准误差和距离编码器法在尖轨延伸方向的误差评价复合配准方法的精度,利用商用软件Geomagic Qualify作为验证工具,误差分析操作如图10所示.

图10 点云模型匹配误差分析Fig.10 Point cloud alignment error analysis

两种点云拼接方法与标准CAD模型的匹配误差如表1所示.首次采集的尖轨尖端数据由两种方法共用,因此匹配误差一致;距离编码器法的任意一副局部点云均独立与标准CAD模型精确配准,因此在截面方向上的匹配精度保持一致;标识点法仅对首次采集的尖轨尖端数据精确配准,后续局部点云通过标识点的检测来定位,造成误差累计,为了使各截面的匹配足够精确以满足磨耗分析的要求,标识点法的匹配过程中仍然需要考虑每一组局部点云的匹配精度.

表1匹配误差表
Tab.1Alignment errors mm

点云序列标识点拼接法距离编码器拼接法0010.240.240020.450.280030.630.260040.880.23

以标识点法为参考,距离编码器法在尖轨延伸方向上的误差如表2所示.可以看出,单次误差约为0.40 mm.本文点云拼接所产生的累计误差在1.00 mm内,适用于尖轨延伸方向的精度需求不高的测量.

表2延伸方向误差表
Tab.2Errors along the switch rail mm

点云序号延伸方向误差00100020.230030.610040.89

3.2 PFH的OpenCL加速测试

本实验的测试平台如表3所示.

表3 OpenCL平台配置表Tab.3 Hardware and software of the OpenCL platform

上述高速尖轨采集的第一片点云模型作为实验测试的点云数据,数据量为400 117个点.选取不同的邻近点规模k,计算上述点云数据的PFH点特征直方图,记录CPU平台和GPU平台耗时.选取每个实例运行 3次后的平均值进行对比.CPU平台使用PCL库提供的计算函数,GPU平台使用本文针对OpenCL优化后的PFH函数.测试的结果如图11所示.

图11 CPU和GPU的PFH计算对比Fig.11 Comparison between CPU and GPU PFH computing

GPU的加速效果在较小的k值下并不明显,接近于CPU的计算耗时,但随着k值的逐步增长,GPU的计算耗时并未显著增加,而CPU的计算时间却发生了指数性增长.在临近点为100的条件下,相对于CPU平台,GPU运算的加速比可达45.

3.3 系统总体提升比例

经上述两个方法优化后,检测系统的点云扫描效率和处理效率有了一定提升.以扫描四片点云为例,预估检测系统的整体提升幅度,如表4所示.

表4系统优化前后耗时对比
Tab.4Comparison of time consumption between original and optimized methods s

对比项目原方法改进方法系统标定33.1533.15喷涂显影剂34.06×434.06×4粘贴标识点30.00×30清除标识点10.00×30扫描6.45×46.45×4点云预处理5.005.00PFH计算50.006.41粗匹配10.4110.41精确匹配4.65×44.65×4总耗时399.20235.61速度提升/%69.43

4 结 论

本文在高速尖轨点云拼接中引入基于距离编码器的混合配准,取代了传统的标识点拼接法,在取得较满意的拼接精度的同时精简了手动粘贴标识点的流程,提升了检测系统扫描数据的自动化程度;相对于PCL库提供的默认PFH算法,引入了基于OpenCL异构加速计算的PFH点特征直方图算法,能更有效的利用计算资源,发挥GPU的并行处理优势,提升处理速度.以实际尖轨为实验对象,实验证明本文针对高速尖轨的结构光检测系统通过对数据扫描和数据处理两部分的优化,将检测系统的整体效率提升了约70%,显著提高了检测效率.

猜你喜欢
邻域道岔工作组
基于混合变邻域的自动化滴灌轮灌分组算法
肖幼率工作组赴戴家湖涵指导抢险
稀疏图平方图的染色数上界
中低速磁浮道岔与轮轨道岔的差异
场间衔接道岔的应用探讨
既有线站改插铺临时道岔电路修改
基于邻域竞赛的多目标优化算法
32个工作组印迹 >
基于细节点邻域信息的可撤销指纹模板生成算法
KJH101-127型气动司控道岔的改造