1.一种图像和点云融合的轨道弹条扣件缺陷全面检测方法,其特征在于,包括:
获取包含弹条扣件的轨道三维点云和与弹条扣件对应的RGB深度图像;
从RGB深度图像中检测出外观缺陷扣件和外观正常扣件;
利用RGB深度图像和三维点云之间的映射关系,从轨道三维点云中分割出外观正常扣件的三维点云;
从外观正常扣件的三维点云中分割出弹条三维点云和绝缘垫块三维点云;
从弹条三维点云中提取弹条中部区域骨架点;
确定弹条中部区域骨架点中的最低点;根据绝缘垫块三维点云拟合绝缘垫块所在平
面;及计算最低点到绝缘垫块所在平面的距离,通过距离判断外观正常扣件的松、紧及正常状态;
所述轨道三维点云的获取,包括:
将线激光扫描传感器垂直安装在检测车上,并利用安装在检测车上的编码器触发线激光传感器动态扫描轨道轮廓;
设置线激光传感器在水平方向及高度方向的采集范围,建立采集坐标系,并设检测车前进方向为Y方向,垂直轨道方向为X方向,高度方向为Z方向;设线激光传感器在X方向设定的点间距是Δx,编码器触发间距是Δy,在X方向上点云个数为N,Y方向M行轮廓构成轨道三维点云图像;
其中,在轨道三维点云图像中,X方向第i个点的坐标表示为Xi=X0+i*Δx,第j行的Y坐标表示为Yj=Y0+j*Δy,X0、Y0是X方向和Y方向上的起始坐标,i=1,2,…,N‑1,j=1,2,…,M‑1,则第i行和第j列点的高度表示为Zij,轨道三维点云数据表示为(Xi,Yj,Zij);
所述RGB深度图像的获取,包括:
设线激光传感器的测量范围为h,点云高度Zij∈(‑h/2,h/2),以Δh为等间距,将高度划分为K等分,K=h/Δh,建立颜色表,随机选择K种不同颜色放入颜色表,使不同高度段用不同颜色表示,相同高度段用相同颜色表示,高度与颜色对应关系为:其中,[·]为取整函数,t表示颜色表中的第t种颜色,t∈[0,K‑1];
在指定文件夹下建立文本文件用于存放点云,建立与点云文件对应的大小为N×M的二维空图像It;
启动线激光传感器扫描包含弹条扣件的轨道,读取线激光传感器的每行轮廓,判断每个点的数据有效性:若当前点Pij高度值为有效值,将点Pij的高度Zij映射至二维图像It坐标(i,j),从颜色表中选择对应颜色表示点(i,j)的颜色;若点Pij的高度Zij为无效值,则二维图像It坐标(i,j)处的颜色用颜色表以外的一种颜色表示;将点Pij的三个坐标值(Xi,Yj,Zij)按扫描顺序依次保存在文本文件的一行中,文本文件中的每一行表示一个点云,点云和RGB深度图像构成场景的双模态图像;
所述RGB深度图像和三维点云之间的映射关系,包括:
建立点云和RGB双模态图像的映射关系,读取文本文件转换为矩阵,设矩阵表示Point,矩阵Point的大小为(M×N)×3;已知二维图像坐标(i,j),则三维点云图像与二维图像的映射关系为:所述从轨道三维点云中分割出外观正常扣件的三维点云,其包括:
对RGB深度图像制作目标检测样本标签,样本标签分为三类,分别是扣件外观正常,外观不完整扣件和外观缺陷扣件,且将外观正常扣件中弹条的接触面绝缘垫块标记在扣件区域内;其中,外观正常扣件包括正常扣件和螺栓松动扣件,外观不完整扣件是外观正常的扣件被存储在连续两个文件中,外观缺陷扣件包括扣环丢失、扣件折断和扣环异位和螺栓丢失扣件;
根据样本标签构建训练数据集,表示为Dt={Xt,Yt},其中,Xt为RGB深度图像,Yt为Xt中弹条扣件的真值标签图像;
用训练数据集Dt={Xt,Yt}训练深度深度神经网络,得到已训练的弹条扣件检测深度学习模型;
将无标签样本数据集Dv={Xv}输入已训练的弹条扣件检测深度学习模型中:当扣件预测为外观缺陷时直接输出检测结果;当扣件预测为外观不完整时将当前图像的前一张或者后一张图像进行拼接构成新的图像,重新输入已训练的弹条扣件检测深度学习模型进行标签预测;当扣件预测为外观正常时,输出检测矩形框的四个坐标,利用映射关系分割出扣件区域的点云数据;
所述从弹条三维点云中提取弹条中部区域骨架点,包括:
利用拉普拉斯算法对弹条点云数据集PointClip进行细化处理,获得弹条初始骨架,表示为SkeletonInitial={sP1,…,sPm},其中m为骨架点的个数,且SkeletonInitial∈SkeletonClip;
基于密度聚类法将弹条初始骨架点云空间聚类分割,剔除噪声骨架点,并提取弹条中部区域骨架点;
所述基于密度聚类法将弹条初始骨架点云空间聚类分割,剔除噪声骨架点,并提取弹条中部区域骨架点,包括:基于密度聚类法对弹条骨架点云SkeletonInitial进行空间聚类,将不连续的骨架划分为T个数据簇,表示为PointCluster={Cluster1,...,ClusterT};
判断PointCluster每个数据簇Clusteri中点云的数量,其中i=1,...,T,当Clusteri中点云数量较少时,则该簇认为是噪声数据,从骨架点中删除,得到包含s个数据簇的弹条骨架Skeleton={Cluster1,...,ClusterS};
计算Skeleton点集中X,Y方向的最大和最小坐标,分别表示为Xmin,Xmax,Ymin,Ymax;计算骨架点的中心面,分别表示为x=Xcenter,y=Ycenter,且Xcenter=(Xmax‑Xmin)/2,Ycenter=(Ymax‑Ymin)/2;
在骨架点Skeleton中搜索距离平面y=Ycenter最近的点B,并确定B所属的数据簇,设点B属于数据簇Clusteri,从Clusteri中提取骨架点中X坐标小于Xcenter的骨架点,构成新的数据集ClipCenterInitial.;
将ClipCenterInitial作为新的数据集,利用密度聚类方法对ClipCenterInitial数据集进行聚类,判断ClipCenterInitial数据簇的个数C,若C=1,则ClipCenterInitial为弹条中部点云骨架,表示为ClipCenter,若C>1,则选取B点所在的数据簇作为弹条中部骨架;
所述判断外观正常扣件的松、紧及正常状态,包括:
对弹条中部区域骨架ClipCenter中的数据点进行排序,基于KD树对ClipCenter构建邻域,搜索数据集ClipCenter中y坐标最小的点,将该坐标最小的点作为排序的起始点Pstart,将Pstart点最近的一个邻域点作为下一个起始点继续搜索最近的邻域点直到所有的骨架点遍历完成,将搜索到的每个起始点依次存放,从而得到排序后的ClipCenter;
利用样条插值法拟合排序后的弹条中部骨架ClipCenter,得到ClipCenter的二阶连续曲线SC,对曲线SC求一阶导数,根据一阶导数的极值点确定弹条骨架中部的最低点Plow;
对绝缘垫块数据集PointBlock={blockP1,…,blockPm}拟合平面,设拟合平面表示为PlaneBlock,过点Plow,作直线lp,且直线lp与坐标系Z方向平行,求得直线lp参数,已知平面PlaneBlock和直线lp,求出lp和PlaneBlock的交点,表示为点Pcross;
将点Pcross加入到绝缘垫块数据集Pointblock中,设Pointblock数据集中点的个数为KP,基于KD树重新构建Pointblock的邻域,将点Pcross的K邻域作为新的数据集,设为CrossCener,其中K由用户设定;对CrossCener数据集拟合平面,表示为PlaneCenter,将该平面作为绝缘垫块所在平面;
计算弹条骨架中部最低点Plow到绝缘垫块平面PlaneCenter的距离d,根据d的大小判断扣件松、紧及正常状态。
2.如权利要求1所述的图像和点云融合的轨道弹条扣件缺陷全面检测方法,其特征在于,从外观正常扣件的三维点云据中分割出弹条三维点云和绝缘垫块三维点云,包括:将外观正常扣件的三维点云数据作为训练样本,对每个样本分别标记弹条点云和弹条下面的绝缘垫块点云;
根据训练样本构造训练样本数据集,样本数据集表示为PointFastener={PC1,…PCt},其中,PCt为第i个标签样本;
利用样本标签PointFastener对Pointnet++网络进行训练,得到网络参数稳定的Pointnet++网络;
将待分割的外观完整扣件点云输入到已训练的Pointnet++模型中,分割出弹条点云和绝缘垫块的点云,分别表示为PointClip={clipP1,…,clipPn},PointBlock={blockP1,…,blockPm},其中n,m分别是弹条和绝缘垫块点云的数量。
3.如权利要求1所述的图像和点云融合的轨道弹条扣件缺陷全面检测方法,其特征在于,所述密度聚类法,包括:对三维骨架中的任意一点sP∈SkeletonInitial,其均值漂移向量表示为:其中,g(x)为高斯核函数,根据采样点云的密度和弹条的大小设定第i个骨架点的带宽hi的值;
从SkeletonInitial骨架点中任意选一个点表示为x;
根据均值漂移向量公式计算点sP的漂移点m(sP):
令sP=m(sP),||sP‑m(sP)||≤ε迭代结束,其中ε一般设置为小于0.1,否则重新计算点sP的漂移点。