1. 引言
随着中国城市化的推进以及交通的需求,越来越多的城市开始大力发展城市轨道交通。交通运输部《2019年交通运输行业发展统计公报》显示,2019年,我国城轨交通运营车辆4.01万辆,同比增长17.89%。城市轨道交通协会统计年报数据显示,2020年,全国(不含港澳台)共有44个城市开通运营城市轨道交通线路233条,新增城市轨道交通线路39条。在“碳中和”、“碳达峰”、交通强国等战略目标牵引下,城市轨道交通依然是未来国家重点发展的基础建设领域,与此相关的城轨交通装备的生产、运营、检修也将被相应带动,得到大力发展[1]。
城轨车辆的检修工作是地铁运营的主要组成内容之一,在稳固城轨系统的固定资产中扮演着重要角色。面对日益增长的城轨规模,我国每年需要大量的城轨车辆检修人员来保证其安全稳定运行[2]。现阶段我国城轨车辆主要采用的是定期维修、状态检查、事后维修三者相结合的车辆检修管理模式,当地铁回到车辆段或者运用库,待安全员对列车断电后,班组人员会对列车设备进行定期巡检,一般包括车底、车顶、车侧和车内等区域。由于巡检一般都在夜晚12点后的非运营时间进行,会因人员疲惫、环境复杂、工作单调繁琐等问题而存在一定的安全隐患。列车车底检测通常是工作人员进入车底地沟进行人工目检,主要关注包括列车转向架和箱体上的紧固螺栓是否松动、丢失,铭牌、警示牌是否掉落,线缆接头丢失,部件脱落以及是否漏油等。正常情况下,一辆列车车底需要排查的项点高达几千个,因此使用智能化设备代替人工实现快速准确地项点检查,对减少人力成本、增加作业安全系数、提高检修的工作效率具有重要意义。
由于列车长时间运行,机械震动导致螺栓松动甚至掉落丢失,严重情况下可能造成设备无法正常运行。因此在地铁车底众多的检测项点中,螺栓类由于其数量多、发生松动、丢失等故障相对概率较高,在诸多不安全因素中的重要性和关注度较为为凸显。
近年来机器视觉在智能检修领域已有较多的研究和应用,文献[3]提出了一种基于TFDS系统联合数字图像处理和Hough变换圆检测原理的心盘螺栓丢失故障主动识别技术。文献[4]针对TFDS系统中人工识别螺栓故障效率低下的问题,使用改进的自适应LTP算子提取螺栓子图的特征直方图,用训练好的支持向量机实现故障螺栓的识别,对螺栓故障识别取得了很好的表现。文献[5]提出了一种基于SVM的转向架裂纹故障检测方法,通过小波包变换获取故障转向架的特征向量,判断转向架的故障情况。文献[6]利用传统图像处理方法,对采集的图像计算SURF特征,对车底螺栓丢失,盖板丢失等问题进行了故障判断。文献[7]中用基于SIFT特征提取算子结合SVM分类器的螺栓识别方法对于火车底多种类螺栓皆能很好的识别。随着深度学习的快速发展和广泛应用,在基于机器视觉的智能检修越来越多的使用深度学习进行目标检测实现二维图像中的关键部件定位,再利用传统的图像处理方法完成故障检测[8]。文献[9]研究了一种基于时频分析的深度迁移学习的螺栓松动故障诊断方法,在不同噪声环境下保持着95%的识别率。
虽然上述研究在图像故障识别上取得了一定的成果,为后续研究提供了思路,但在智能检修领域基于2D图像的故障识别常受到光照、位置、脏污等不确定性因素的影响,导致误报漏报多,难以为实际的列车检修工作带来足够的效率提升。以地铁车底螺栓2D图像识别为例,经过研究分析与实地考察,主要发现存在以下诸多难点:
1) 地铁车底螺栓分布复杂,种类大小不一,部分螺栓连接在地铁地板,距离较远,采集的图像模糊且目标较小。
2) 地铁车底环境复杂,线管姿态存在随机性,易发生遮挡识别项点或遮挡光源。
3) 车底螺栓图像受光照影响,白天和夜晚、晴天和雨天亮度不一,且部分箱体易产生反光,加大了图像识别难度。
4) 列车长时间运行导致车底覆盖上一层油污,导致与经过大修或者新车图像变化较大,易造成误报、漏报。
另一方面,在螺栓类故障中,螺栓丢失易用二维图像实现检测,但是螺栓的松动故障通常需要使用点云数据才能准确判断。
本文研究了一种基于2D图像和3D点云的地铁车底螺栓故障识别方法,并应用于车底巡检机器人系统,提供了故障检测算法的应用案例和参考。本文各章节内容安排如下:
第一章,主要介绍论文的研究背景及意义,说明研究该课题的重要性,调研国内外列车检修的研究现状以及地铁图像故障识别算法研究综述,以及分析地铁车底螺栓图像识别的难点,提出本文的应对措施,最后阐述论文结构。
第二章,描述了数据采集系统,介绍主要算法的基本原理,提出地铁车底螺栓故障识别算法流程。
第三章,阐述测试数据集情况和实验过程,通过实验数据分析算法的总体性能。
第四章,总结全文,分析论文研究过程中的不足,展望后续优化方向。
2. 基于点云数据的列车车底螺栓故障识别
2.1. 系统和数据简介
智能列检系统以巡检机器人为中心,搭载相机数据采集系统,连接算法识别系统以及设备综合管理系统。如图1所示,巡检机器人主要包括移动机器人运动底盘、多自由度机械臂以及相机。巡检机器人在地沟中自动运行,使用机械臂末端安装的相机扫描需要检测的项点并通过算法处理,在客户端显示检测结果,最后工作人员人工核实,做到统一故障判断标准、故障报警可追溯、检测结果能保证,进而大幅度减轻列检作业人员的劳动强度,提高工作质量。
(a)巡检机器人 (b) UR机械臂 (c) Photoneo
Figure 1.Data collection system
图1.数据采集系统
相机型号为Photoneo PhoXi S,其扫描最大距离可达1.5 m,采集两种格式的图像,如图2所示为采集的灰度图和深度图,其中深度图用于合成点云数据。利用机械臂末端的相机对车下关键部位进行数据采集的机械臂示教中,需要避开线管等干扰物,保障距离较远的地铁底板螺栓也清晰可见。具备主动光源的相机采集的点云数据(深度图)基本不受外界光照亮度影响,减少了灰尘、油污等对螺栓故障识别的影响,可以弥补传统地铁车底螺栓图像识别方法的不足。
Figure 2.Gray scale image (left) and corresponding depth map (right)
图2.灰度图(左)与对应的深度图(右)
2.2. 算法原理
2.2.1. 点云合成及下采样
由于二维图像没有利用到图像的深度信息,对螺栓松动故障没有很多的表征特征,而点云数据可以深度信息和2维RGB信息,更能表达出螺栓松动特征。
已知相机内参
,其中
,
为焦距,
,
表示相机光轴在图像坐标系中的偏移量,根据深度图像可以得出对应的点云三维信息P(xyz),其中(x,y,z)为点云的三维空间坐标。
下采样是对点云的一种滤波,目的是减少点云数目,尽可能保持点云原有状态,从而减少计算量,如图3所示,体素下采样步骤如下:
1) 把点云装进体素网格。
2) 把每个被占据的体素中的点做平均,取一个精确的点。
(a) (b)
Figure 3.Voxel down sampling
图3.体素下采样
如图4所示,a为合成的点云数据,该点云数据由300多万个点组成,为了提高运算速度,对其进行体素下采样,b为进行30倍体素下采样后的点云,下采样后算法运算速度提高了近10倍。
(a) (b)
Figure 4.Point cloud down sampling
图4.点云下采样
2.2.2. ICP点云配准
点云配准就是求两个点云之间的旋转平移矩阵,将源点云变换到目标点云相同坐标系下,可以表示为:
其中
就是目标点云与源点云中的一对对应点。
点云配准得到一个旋转平移变换矩阵(RT矩阵),该矩阵表示了这两个点云的位置变换关系,即通过RT矩阵可以将源点云变换到目标点云的位置,使二者能够重合。
ICP (Iterative Closest Point,迭代最近点)[10]算法的基本原理是:分别在待匹配的目标点云P和源点云Q中,按照一定的约束条件,找到最邻近点
,然后计算出最优匹配参数R和T,使得误差函数最小,误差函数
为:
其中n为最邻近点对的个数,
为目标点云P中的一点,
为源点云Q中与
对应的最近点,R为旋转矩阵,T为平移向量。ICP算法步骤如下:
1) 在目标点云P中取点集
;
2) 找出源点云Q中的对应点集
,使得
最小;
3) 计算旋转矩阵R和平移矩阵T,使得误差函数最小;
4) 对
使用上一步求得的旋转矩阵R和平移矩阵T进行旋转平移变换,得到新的对应点集
;
5) 计算
与对应点集
的平均距离;
6) 如果d小于某一给定的阈值或者大于预设的最大迭代次数,则停止迭代计算。否则返回第2步,直到满足收敛条件为止。
ICP算法输出映射变换为H,这时H可以用以下的公式来表示。
其中R代表旋转矩阵,T代表平移向量,V代表透视变换向量,S代表整体的比例因子。因为根据同一区域得到的点云数据只存在旋转和平移变换,不存在形变,所以将V设为零向量,比例因子S= 1。
2.2.3. RANSAC平面分割
RANSAC[11][12]是一种随机参数估计方法,根据正确数据出现概率去随机选取抽样数据,根据大数定律,随机性模拟可以近似得到正确结果。先把数据点分为局内点和局外点,通过不断迭代数据得到最优的模型,达到剔除局外点的目的,并包含最多的局内点。利用RANSAC算法可以对螺栓点云平面进行拟合。具体步骤如下:
1) 首先从点云数据中随机的选取不共线的三个点拟合一个平面方程:
2) 计算点云中各个点到平面
的距离:
3) 计算点云中各个点到平面的距离
的标准差
:
式中,
,取阈值
,当
时,将该点删除,反之,则保留该点:
4) 重复以上步骤,迭代k次,比较选取包含的点数最多的模型。
最后得到拟合的平面方程
,并滤除平面外的噪点。
2.3. 螺栓故障识别方案
地铁车底紧固螺栓故障主要分松动和丢失两类,在正常情况下,机器人数据采集系统在同一螺栓拍摄的图像数据是一致的,但是由于机器人移动过程中受到机械抖动、以及机械臂运动误差和相机角度偏差,导致数据存在偏差。因此需要通过点云配准算法把两个点云转换到同一坐标系上,通过比对测试样本与正常模版数据的螺栓差异性来判别螺栓的故障类型。算法流程如图5所示,主要包括点云合成、模板制作、点云分割、点云配准,平面拟合和异常检测。
Figure 5.Bolt fault identification process
图5.螺栓故障识别流程
算法选用无故障的正常数据制作好每个识别点的模版,标记出配准感兴趣区域(ROI)与螺栓表面点云的空间位置,用ROI提取测试数据的局部区域,然后把模版ROI区域点云与测试数据ROI区域用ICP算法进行点云配准,把测试数据点云转换到模版点云坐标系中,再用模版数据螺栓表面点云的空间位置,分割两个点云对应的螺栓表面点云,先判断测试数据螺栓点云是否发生大量缺失,如果点云缺失过多则判断为螺栓丢失,否则根据RANSAC平面拟合算法滤除螺栓表面之外的点,最后计算测试数据螺栓表面与模版螺栓表面的距离,通过阈值分割判断螺栓是否松动。
2.3.1. 模板制作
由于列车生产时工艺精度要求比较高,同一批次列车的螺栓安装位置时固定的,选取点云数据完整、螺栓平面点云噪声较少的正样本数据作为模版,首先通过选取感兴趣区域(ROI)作为模板配准的点云,避开距离过远的点云和具有随机变化的线管点云,提高配准率和配准效率,再标注螺栓表面点云。如图6所示,a为标注的配准点云,b为标注螺栓表面点云,保存目标框的空间坐标信息在JSON文件中,并预留螺栓松动时的空间位置。对于每一个识别项点都需要做标注,由于列车型号的不同,存在两个不同批次的列车,它们车底箱体及螺栓安装工艺存在差别,为此需要两个不同的模板才能满足算法的要求。
(a) (b)
Figure 6.Point cloud annotation
图6.点云标注
2.3.2. 点云配准
点云配准如图7所示,根据标注的信息分割模版点云(蓝)和目标点云(红)的感兴趣区域,a为配准前的点云,可以发现它们之间存在空间位置的偏差。通过点云ICP配准算法对两个点云进行配准,通过三维坐标变换把目标点云转换到模版点云的空间坐标上,b为经过配准后的点云,两个点云基本完全重合。
(a) (b)
Figure 7.Point cloud registration
图7.点云配准
2.3.3. 点云分割和松动检测
根据标注信息分割对应螺栓表面的点云,如图8所示,蓝色代表分割的模板螺栓表面点云,红色代表分割待识别的螺栓表面点云,如果分割的待识别螺栓不存在表面点云,或者点云数量少于一定的阈值,则判断该螺栓发生了丢失故障。a为正常螺栓的点云,其点云平面基本和模板点云在同一高度,b为发生松动故障时的螺栓表面点云,两个点云平面存在一定的空间高度差。
(a) (b)
Figure 8.Point cloud on bolt surface
图8.螺栓表面点云
由于相机拍摄的不能保证垂直拍摄,根据标注的坐标信息分割出来的点云会包含部分噪点,通过RANSAC平面拟合算法分割出模版点云螺栓平面与目标点云螺栓平面,同时滤除平面外(点到平面距离超过0.2 mm)的点云,如图9所示为RANSAC平面滤波后的螺栓表面点云,a经过滤波后的正常螺栓点云滤波,b为滤波后的松动螺栓表面点云,由于两个拟合的平面可能不是完全平行,无法通过平行平面距离公式求得螺栓高度差。
(a) (b)
Figure 9.Point cloud of bolt surface after plane segmentation
图9.平面分割后的螺栓表面点云
RANSAC算法拟合得到模版螺栓平面方程为
,先计算目标螺栓表面点云每个点
到模版螺栓平面的距离:
再用平均距离D代替两个螺栓表面的距离:
当螺栓平面距离D> 2.5 mm时,判断该螺栓发生松动,测量螺栓的松动量为D,否则为未发生松动的正常螺栓。
3. 实验分析
3.1. 数据集
数据来源于无锡地铁二号线地铁车辆,数据采集设备通过稳定性测试后,采集整条地铁线一共25辆列车的样本数据,并通过数据一致性测试。
正样本数据(无故障)采集超过100趟,每趟数据含80张图像数据和280个识别项点。此外采集的螺栓类故障数据中,包含187个模拟故障数据以及26个真实故障数据。三种数据类型如表1所列,其中模拟故障采用正六边形铁片(与地铁螺栓平面大小一致,厚度为3 mm)粘在螺栓表面的方式,真实故障由地铁公司检修人员将车底螺栓拧松或直接拆卸下来得到故障样本。
Table 1.Data classification
表1.数据分类
续表
3.2. 实验设计与分析
3.2.1. 点云配准分析
由于点云配准精度直接影响算法的识别结果,测试不同配准方法与不同下采样参数对结果的影响,如表2所列,Fitness表示两个点云之间的重合度,越高越好,Inlier_rmse表示所有内在对应关系的均方根误差,越低越好。对比彩色ICP与点对面ICP算法,由于列车底部情况复杂,配准的点云中含有线管曲面,Colored ICP的配准结果更好,所以本文采用Colored ICP算法。对于不同下采样倍数对配准算法的影响,主要影响算法处理时间和配准率,下采样倍速越大,点云数量越小,时间花费更小,平均配准重叠率下降。
Table 2.Registration results of different registration methods and downsampling parameters
表2.不同配准方法和下采样参数的配准结果
配准方法 |
下采样参数 |
平均Fitness |
平均Inlier_rmse |
T/s |
Colored ICP |
10 |
0.99 |
1.43 |
0.95 |
30 |
0.99 |
1.5 |
0.3 |
50 |
0.97 |
1.7 |
0.28 |
100 |
0.94 |
1.9 |
0.18 |
点对面ICP |
10 |
0.90 |
1.9 |
0.3 |
30 |
0.86 |
2.1 |
0.24 |
50 |
0.84 |
2.36 |
0.2 |
100 |
0.81 |
2.5 |
0.13 |
3.2.2. 平面滤波分析
实验对比了是否滤波对模拟故障螺栓平面点云测量松动量的影响,共测量了5组模拟故障数据的松动量,如表3所列。由于平面滤波前,根据标注信息分割螺栓平面包含了侧边点云和噪点,导致测量的结果偏小,测量松动量均值为2.78 mm,平均绝对误差百分比为8.8%,而经过滤波后的测量松动量均值为2.98 mm,平均绝对误差百分比为3.1%,测量结果更加准确。
Table 3.Comparison of measured looseness before and after filtering
表3.滤波前后测量松动量对比
编号 |
实际值 |
未滤波 |
滤波后 |
1 |
3.00 mm |
2.64 mm |
2.91 mm |
2 |
3.00 mm |
2.78 mm |
3.11 mm |
3 |
3.00 mm |
2.72 mm |
2.88 mm |
4 |
3.00 mm |
2.85 mm |
3.07 mm |
5 |
3.00 mm |
2.69 mm |
2.92 mm |
均值 |
2.74 mm |
2.98 mm |
标准差 |
0.08 |
0.10 |
平均绝对误差百分比 |
0.088 |
0.031 |
绝对误差百分比标准差 |
0.027 |
0.007 |
3.2.3. 算法性能测试分析
螺栓故障算法识别结果如图10所示,其中a为模拟松动故障识别结果,b为螺栓丢失识别结果,c和d为螺栓真实松动识别结果,并输出螺栓松动故障松动量的大小。
(a) (b)
(c) (d)
Figure 10.Test results
图10.检测结果
评价算法的性能指标主要为检出率和误报率:
实验结果统计如表4所列,为了测试误报情况,针对100趟正样本进行测试,平均每趟数据误报个数为0.56,误报率为0.20%。针对10趟模拟故障样本进行测试,一共设置187个模拟松动故障,识别出179个,检出率为95.7%,误报率0.39% (11/2800)。针对6趟真实故障样本进行测试,一共26个真实故障,其中包括螺栓松动故障21个,螺栓丢失故障5个,结果为全部检出,检出率100%,误报率0.18% (3/1680)。
Table 4.Statistics of experimental results
表4.实验结果统计
数据类型 |
样本数(故障/总数) |
检出数 |
误报数 |
漏检数 |
检出率 |
误报率 |
正样本(100) |
0/28000 |
/ |
56 |
/ |
/ |
0.20% |
模拟故障(10) |
187/2800 |
179 |
11 |
8 |
95.7% |
0.39% |
真实故障(6) |
26/1680 |
26 |
3 |
0 |
100% |
0.18% |
从实验的统计结果来看,通过3D点云处理识别螺栓故障的方法检测率高,漏检少,且基本不受光照变化的影响,相对于2D图像识别方法难以应对车辆大架修后的数据变化的缺点,3D点云处理方法鲁棒性更强,识别结果更准确。
3.2.4. 算法误报分析与优化
由于算法的识别结果需要安排工作人员到对应的部位去核实,因此降低误报率可以减少工作量,对于测试结果中误报情况总结如表5所列:
Table 5.Analysis of false positives
表5.误报分析情况
误报数量 |
遮挡 |
算法问题 |
部件差异 |
数据差异过大 |
70 |
44 |
8 |
5 |
13 |
(a) (b)
Figure 11.Blockage of foreign objects and conduit
图11.异物与线管遮挡
在70个误报中,有44个误报是由于地铁箱体异物(2个)或者接线管(42)随机垂落而导致遮挡项点,如图11所示,由于2D数据和3D点云数据都无法对项点可视,对于被异物遮挡的螺栓会误检为松动或丢失,而被线管遮挡的螺栓会被误检为丢失。并且异物和线管亦会增加配准误差。异物遮挡发现后可以安排工作人员人工剔除,而线管遮挡则需要调整相机的拍摄角度与固定线管相结合的方式减少类似问题。
在算法层面,为了减少线管遮挡的误报,通过对比线管遮挡和螺栓丢失的点云,如图12所示,a为线管遮挡的点云,b为螺栓丢失时的点云,它们根据标注信息分割的螺栓平面点云都发生缺失,通过对比发现,螺栓丢失时只缺失螺栓点云。而线管遮挡时,螺栓点云发生缺失,与其连接处的箱体点云也发生缺失。
如b中黄色三维框所示,算法判断螺栓表面点云缺失后,通过提取螺栓连接处小范围内的箱体表面点云,分析点云是否异常,从丢失报警中区分出线管遮档,可以减少95%以上的线管遮挡误报,整体误报率下降至0.1%。
(a) (b)
Figure 12.Point cloud caused by pipeline obstruction and point cloud caused by bolt loss
图12.线管遮挡点云和螺栓丢失点云
另外13个误报是机器人由于机械抖动、停车误差、升降平台误差、机械臂运动误差共同作用下同一检测点拍摄的两组点云数据(正常模板和故障数据)偏差较大造成无法配准,从而无法正确识别到螺栓位置。通过点云数据分析其中8个误报可归因于算法问题,比如模板选择不够合理、配准精度不够、距离远的项点螺栓平面点云数量较少导致平面拟合出现偏差,此类误报可通过参数优化部分解决。另外5个误报包含地铁生产厂家在制造时可能出现个别螺栓安装位置偏差或者遗忘安装螺栓垫片,以及箱体表面出现鼓包等情况,导致与模板有较大差异,造成误报。
4. 总结与展望
城轨列车在长时间运行下,底部紧固螺栓可能出现松动丢失的情况,巡检机器人通过搭载相机和机械臂的对每个检测螺栓——采集图像数据,利用图像识别算法对螺栓进行识别判断,得到检测结果并显示具体位置和故障类型,最后由工作人员进行故障排查确认,可以有效改善现有人工检查存在时间长、漏检多、标准不一、可追溯性差等问题,针对地铁底部螺栓松动故障难以识别问题。
本文提出了一套基于点云配准与平面拟合的螺栓松动、丢失故障识别算法,并通过点云滤波、下采样等方法,优化了算法的效率和稳定性。真实故障数据测试中对于3 mm以上的螺栓松动故障识别率达到100%,对于螺栓丢失故障识别率为100%。综合模拟故障和真实故障的测试结果来看,检出率大于95%,误报率约为0.1%,检测结果稳定,可以为检修工作效率带来了提升。
虽然论文的方法在当前案例中螺栓故障识别效果较好,但是也存在一些问题和可以继续优化的方向如下:
1) 对于数据质量要求比较高,需要保证每次采集同一目标的偏移量不能过大,否则可能导致点云无法配准而产生误报,如何解决大偏差下的点云配准问题是一个研究热点。
2) 列车底部复杂的空间环境导致易出现目标遮挡,目标遮挡导致无法采集到螺栓点云,从而无法识别。而线管空间随机性亦可能导致与模板点云相差较大,从而点云配准度不高,在综合考虑实际情况下,优化机器人示教可以避免出现项点遮挡问题。
3) 由于点云数据计算量较大,点云配准算法速度有待提升,考虑后续使用GPU加速提升算法性能。