APP下载

动力集中型动车组撒砂管高度检测方法研究

2022-02-28罗玉胜谭兆海

技术与市场 2022年2期
关键词:标定平面定位

罗玉胜,谭兆海,赵 波

(1.中国铁路兰州局集团有限公司,甘肃 兰州 730000;2.成都铁安科技有限责任公司,四川 成都 610091)

0 引言

全车运行故障动态图像综合检测系统安装在客整所入段线上,对动力集中型动车组的车底走行部、车侧转向架、车体车窗及车顶部位进行动态检测,自动识别判断关键部件变形、脱落、异物等异常情况。

撒砂管是撒砂装置的一部分,通过撒砂管撒砂可以增大动车车轮和轨道之间的动摩擦系数,能够有效地提升牵引力和防止车轮空转[1]。在列车的行驶过程中,撒砂管有可能受到碎石或者其他外力的撞击,导致撒砂管的高度产生变化影响其撒砂功能,对行车安全造成威胁。目前对撒砂管的高度测量主要是通过千分尺、标准尺等传统测量工具对其进行人工测量,缺点是费时、费力、工作量大。如果能通过全车运行故障动态图像综合检测系统实现撒砂管高度的通过式自动检测,将极大地提高检测效率替代传统人工测量,对保障动车组运行安全具有重要意义。

高度测量是计算机视觉技术的一大主要研究方向,最初的高度测量算法都是依赖于二维图像,通过对二维图像的处理以及图像坐标、相机坐标、空间坐标之间的转换关系来测量被测物体的高度[3]。也正是因为其完全依赖于二维图像,而二维图像缺少深度信息,所以其测量精度往往不高。随着3D技术的发展,非接触式的车辆和动车部件的高度测量技术得到了广泛的应用和发展[4]。以往的研究都是基于3D点云数据的处理来测量物体的高度,这些研究都有一个共同点,那就是面对的场景比较单一,背景干扰很小或者几乎为零[4-6]。撒砂管是撒砂装置的一部分,而撒砂装置又是动车的一部分,因此撒砂管的背景相对更加复杂,通过普通的点云数据处理无法滤除所有背景的干扰。所以仅仅依赖于3D数据处理的算法也无法满足撒砂管高度测量的需求。

得益于深度学习技术的发展,在二维图像上检测和识别特定的目标成为了可能。目标检测技术能够从复杂的背景图像中检测并定位到目标[7-9]。基于此,本文提出了一种撒砂管高度测量算法。该算法通过深度学习的目标检测技术在二维图像上定位出撒砂管,然后根据二维图像与三维点云数据的对应关系取出对应的撒砂管点云数据,以此来克服复杂背景对测量结果的干扰。

1 撒砂管定位

从图1中可以看出拍摄到的撒砂管样本,除了包含撒砂管部件本身之外,还包含铁轨、管道、车轮等干扰物,背景较为复杂。而且各个干扰物的像素灰度与撒砂管的像素灰度之间的差距并不大,也就是说图像的梯度信息并不是很明显。因此不能通过传统的边缘检测和图像分割算法来从图像中提取出撒砂管部件。同时不同列车和不同车厢的撒砂管高度都不一样,因此很难在3D点云数据上根据高度和深度范围直接来提取撒砂管。所以需要利用深度学习技术,首先在二维图像上定位出撒砂管,然后再根据二维图像与3D点云数据的对应关系获取撒砂管的3D点云数据信息。

图1 撒砂管样本

撒砂管的定位采用的是端到端的YOLOv3算法,YOLOv3算法检测精度高,速度快,能够满足现场应用中的实时性需求[10]。其神经网结构图如图2所示。

图2 YOLOv3神经网络结构图

图2中DBL代表—卷积层+BN层+激活函数,这是一种新的神经网络块。它与普通的神经网络相比,最大的好处是加入了BN层,在特征图像整体偏暗或者偏亮时,对图像重新做归一化,使得特征图的梯度特征更加明显,有利于梯度的传导和更新。res_unit代表残差块,残差块直接将梯度信息向后传递,能够有效解决神经网络在训练过程中梯度消失和梯度爆炸的问题。

YOLOv3网络输入的是撒砂管数据(见图1),其输出为定位和识别的结果。为了增强神经网络对不同尺度目标(撒砂管)的定位识别性能,本文在原本YOLOv3算法的基础上使用了Mosaic数据增强,该方法通过随机缩放、随机裁剪、随机排布的方式对训练数据进行拼接[11]。

2 撒砂管高度测量

撒砂管的高度(h)指从钢轨平面到撒砂管最低点的距离(见图3)。按照这个定义可以将撒砂管高度测量算法分为三大步骤:首先拟合钢轨平面得到平面的参数方程,然后通过2D和3D数据处理技术获得最低点的坐标,最终根据撒砂管最低点的坐标计算撒砂管高度h。

图3 撒砂管高度测量示意图

2.1 钢轨平面拟合

拟合钢轨平面的参数是计算撒砂管高度的基础,平面拟合包括平面数据采集和参数计算两个过程。在数据采集阶段,首先将标定板放置在钢轨上;然后通过水平尺来保证标定板的水平;最后通过3D相机采集标定板上表面的点云数据。三维平面的表达式如公式(1)所示:

Ax+By+Cz+D=0

(1)

钢轨平面拟合的过程就是求取公式(1)所示的A、B、C、D4个参数的过程。要求取这4个参数,至少需要3个平面中的点。3D相机获取到的平面如图4所示。

由于存在相机畸变等问题,获取到的平面点云数据并不是完全水平的(见图4)。所以在拟合平面时选用了RANSAC算法来拟合平面,而不是随机3个点求取平面的参数[12]。RANSAC算法将数据分为“局内点”与“局外点”。“局内点”是可以用来估计模型参数的点,“局外点”是不属于估计的模型,属于噪声点[12]。RANSAC算法在拟合点云平面时,根据设置阈值来确定该点是否偏离了当前平面,即在拟合时如果该点距离平面较远就判定为噪声点,然后根据出噪声点外的数据距离该平面的最大距离值是否在误差允许范围内来判定该平面的参数是否正确。如果不正确就继续重新取点进行迭代计算,知道计算得出最佳平面。

图4 3D标定板平面

如上文所述,在拍摄3D数据时,标定板是放置在钢轨平面上的,所以在通过RANSAC算法计算得到标定板的平面参数方程之后,还需要再加上标定板厚度才能得到钢轨平面的参数方程如公式(2)所示:

Ax+By+Cz+D+d1=0

(2)

公式(2)中A、B、C、D表示从标定板点云数据拟合到的平面参数,由于标定板平面和钢轨平面是完全平行的,所以x轴,y轴,z轴的参数完全相同,d1表示标定板厚度。

2.2 撒砂管最低点选取与高度计算

撒砂管最低点选取的第一步是根据二维图像的定位结果与3D点云数据的对应关系来获取撒砂管所在区域的点云数据。二维图像中撒砂管的定位通过YOLOv3算法来完成,而2D图像与3D点云数据的对应转换关系则通过二维相机与3D的联合标定来获取,由于联合标定不是本文重点,所以这里不做过多介绍。

获取到撒砂管所在区域的点云数据(见图5)。从图5中可以看出,通过二维图像的定位已经去除了大多数背景噪声的干扰,但是在二维图像上离撒砂管很近的区域仍然存在干扰。

图5 撒砂管所在区域点云数据

为了除去这部分噪声的干扰,首先通过体素滤波对如图5所示的3D数据进行体素滤波消除噪点,然后通过kd-tree对进行点云数据的连通域分析[13]。kd-tree算法将在一定搜索半径范围内的点云数据进行归类,将整个点云数据分为不同的点云团,并为这些点云团分配不同的索引。所以后续对这些点云团进行处理时只需要按照索引去取对应的3D数据。由于撒砂管的大小是有一定范围的。所以,通过对点云数据规模的判断就能除去点云规模较小的区域对测量结果的干扰。

通过对所有的撒砂管数据进行统计和分析发现,点云数据规模差不多的情况下,撒砂管的点云团到钢轨平面的平均高度是最低的。因此通过计算各个点云团到钢轨平面的平均高度就能挑选出撒砂管对应的点云团如图6所示。

图6 撒砂管3D点云数据

从图6中可以看出已经滤除了点云数据中的噪声,接下来就是选取最低点。通过对现有数据的统计和分析,发现90%的撒砂管点云数据的规模都在20 000个数据点以上,逐一计算其到钢轨平面的距离选取最低点将耗费大量的计算时间,降低算法的时间效率。同时,根据撒砂管的结构可以出来,撒砂管的最低点一定在底面上。所以提取了撒砂管的底面点云数据,如图7所示。

图7 撒砂管底面点云

获得撒砂管底面点云的数据之后,将所有的点带入公式(3)计算每个点的高度值:

dis=Ax+By+Cz+D+d1/(A2+B2+C2)

(3)

公式(3)中x、y、z表示底面上的点的坐标。计算完所有的点之后,选取计算得到的高度值的最小值就是撒砂管的高度值,该值对应的点就是撒砂管的最低点。

3 实验

进行的实验是YOLOv3算法的定位实验和撒砂管高度测量的实验。2个实验的硬件基础都是一样的,使用的平台为Windows服务器,其GPU为RTX3090 Ti,显存大小为24 G。

3.1 实验评价指标

YOLOv3定位算法的评价指标为IoU(intersection over union),其计算公式如公式(4)所示:

IoU=A∩B/A∪B

(4)

公式(4)中A表示预测的框,B表示实际的框。

高度测量算法则通过误差来评价算法的好坏,其计算公式如公式(5)所示:

Er=|dc-dr|

(5)

公式(5)中,Er表示计算误差,dc表示算法计算得到的撒砂管高度值,dr表示撒砂管的实际高度值。取dc与dr相减的绝对值作为误差。

3.2 数据集介绍

实验过程所使用的数据均通过实地相机采集获得,所有的数据均来自于HXD1和HXD2两种车型,涉及到20 000个撒砂管样本,定位网络训练过程中的训练集、验证集、测试集的比例为6:2:2。高度测试时选取了3 000个样本进行验证和测试。

3.3 相关实验

通过实验发现YOLOv3算法的撒砂管定位算法,所有参与测试的4 000个样本都是能被定位到,没有出现误检和漏检的情况,平均的IoU的得分为0.93,其定位结果如图8所示。

图8 YOLOv3定位结果展示

在实际应用中允许的最大测量误差为5 mm,实验发现参与测试的所有样本测试误差都小于等于4 mm,完全满足实际应用的需求。为了进一步验证算法的性能,在不同的测试误差下对实验结果进行了统计,其结果如表1所示。

表1 撒砂管高度测量误差统计

4 结语

本文针对以往研究中没有与撒砂管高度测量相关的机器视觉技术方案的问题,提出了一种可以在列车运行过程中检测列车撒砂管高度的算法。该算法通过目标检测算法YOLOv3在2D图像上的定位结果消除了大多数背景信息的干扰,然后通过点云数据的滤波等操作滤除了所有的背景信息,能在有管道等复杂背景的情况下测出撒砂管的高度。经过实验验证,所有样本的高度测量误差都不超过4 mm,测量误差小于3 mm的样本占96%,测量误差小于2 mm的样本占90%,满足实际应用的需求。但是针对光线较暗的情况下,该算法的测量误差仍然较大,后续将继续这方面算法的研究。

猜你喜欢

标定平面定位
定位的奥秘
玩转高考真题——平面解析几何篇
《导航定位与授时》征稿简则
使用朗仁H6 Pro标定北汽绅宝转向角传感器
Smartrail4.0定位和控制
银行业对外开放再定位
立体几何基础训练A卷参考答案
CT系统参数标定及成像—2
CT系统参数标定及成像—2
基于匀速率26位置法的iIMU-FSAS光纤陀螺仪标定