本发明涉及3D图像数据处理技术领域,具体涉及一种焊缝缺陷3D点云检测方法、设备和介质。
对于新能源中的锂电池外壳,在产出后需要进行焊缝技术检测,如果焊接不达标,会导致锂电池外壳密封型差,尤其是由于焊缝缺陷主要有漏焊,虚焊影响很大,存在质量问题和安全隐患。现有技术上中针对焊接缺陷检测,主要有以下几个方向:
1.从整体上面来判断缺陷,比如深度学习,和模型配准(主要是ICP算法,配准后,比较对应点之间的距离之和),这类技术主要是从整个焊缝来检测缺陷,由于从整个焊缝来检测缺陷,对模型配准主要问题是计算量很大,速度很慢而且有很多不控制的因素,比如配准本来就存在误差,如果检测的缺陷很小会导致检测要求不符合要求。且深度学习需要大量样本,当样本量不足时,会导致检测精度下降。
2.对焊缝进行切片,按照每一个切片进行对比。这类技术主要是将焊缝分割成很多段,依次检测每一段是否满足设定的要求。检测时通常将采集设备放置到一个匀速运动装置上,每个一段时间或者位移,取出一部风,直接作为切片点云。但是这部风存在一个很大局限性,运作装置的路径需要和焊缝的路径保持一致,如果是焊缝是简单的直线或者圆环,可以控制运动装置的路径,但焊缝的路径一旦复杂,就无法根据焊缝的路径对运动装置的路径进行控制,会导致检测不全面,检测无效等结果。
本发明所要解决的技术问题是无法对复杂的焊缝结构进行检测,检测精度低,目的在于提供一种焊缝缺陷3D点云检测方法、设备和介质,通过对点云进行三次曲线拟合提取焊缝路径,根据焊缝路径的法向量来进行切片,保证每一个切片是与当前段焊缝路径的切线是垂直的,能够根据焊缝本身结构进行焊缝检测,提高了对复杂的焊缝结构的检测全面性和检测精度。
本发明 第 一 方面提供一种焊缝缺陷3D点云检测方法,包括以下具体步骤:
S1、获取被测件点云C0,构建三维坐标系,采用小二乘法确定基准面;
S2、根据基准面对被测件点云数据进行过滤,确定需检测的目标点云C1;
S3、根据目标点云C1确定投影点云C2,采用过小二乘法对点云C2进行三次曲线拟合,确定焊缝路径曲线p;
S4、获取焊缝路径曲线p的法向量进行切片,得到切片点云C3;
S5、对切片点云C3进行二次曲线拟合,根据拟合曲线确定焊缝参数。
本发明通过对点云进行三次曲线拟合提取焊缝路径,根据焊缝路径的法向量来进行切片,保证每一个切片是与当前段焊缝路径的切线是垂直的,能够根据焊缝本身结构进行焊缝检测,提高了对复杂的焊缝结构的检测全面性和检测精度。
进一步的,所述S1具体包括:构建三维坐标系,在点云C0中选取多个参考点,结合参考点坐标获取平面系数。
进一步的,所述S2具体包括:
基于三维坐标系,将基准面校正到与XOY平面平行;
获取点云C0到校正后的基准面的距离,将小于距离设定阈值的点云C0过滤,得到需检测的目标点云C1。
进一步的,所述将基准面校正到与XOY平面平行具体包括:
获取基准面的法向量a;
根据平面系数确定法向量a与XOZ平面之间的三角函数,构建绕X轴的旋转的旋转矩阵R1;
根据平面系数确定法向量a与YOZ平面之间的三角函数,构建绕Y轴的旋转的旋转矩阵R2;
根据旋转矩阵R1和旋转矩阵R2,确定基准面和XOY平面平行的点云C4;
根据点云C4将基准面校正到与XOY平面平行。
进一步的,所述S3具体包括:
将点云C1投影到XOY平面,得到投影点云C5;
将点云C5中所有点的x坐标和y坐标通过小二乘法进行三次曲线拟合,确定焊缝路径曲线p。
进一步的,所述S4具体包括:
获取焊缝路径曲线p上任意一点Xm,对焊缝路径曲线p进行求导,根据求导后的焊缝路径曲线p确定Xm的斜率;
获取点Xm的切片所在平面的法向量,结合焊缝路径曲线p确定切平面的系数;
获取切片厚度,确定切片点云C3。
进一步的,所述切片获取过程还包括:
将切片点云C3中的点云校正到与YOZ平面平行;
获取Xm处切片平面系数与YOZ平面的夹角;
根据夹角构建绕Z轴旋转的旋转矩阵R3;
根据切片点云C3和旋转矩阵R3,得到所有需要检测的拱形点云的切片数据。
进一步的,所述S5具体包括:
遍历切片点云C3,获取每一个切片点云的y轴和z轴坐标;
对y轴和z轴坐标进行二次曲线拟合;
根据拟合的二次曲线确定焊缝的参数。
本发明第二方面提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现一种焊缝缺陷3D点云检测方法。
本发明第三方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现一种焊缝缺陷3D点云检测方法。
本发明与现有技术相比,具有如下的优点和有益效果:
通过对点云进行三次曲线拟合提取焊缝路径,根据焊缝路径的法向量来进行切片,保证每一个切片是与当前段焊缝路径的切线是垂直的,能够根据焊缝本身结构进行焊缝检测,提高了对复杂的焊缝结构的检测全面性和检测精度;
本方案通过按准确的姿态切片,为下一步提供姿态一致的切片点云,对于每一个切片的点云,进行抛弧线拟合,根据拟合的曲线系数,判断每一个切片点云的形状,根据每一个点到曲线的距离,和判断切片点云是否合理分布。
为了更清楚地说明本发明示例性实施方式的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。在附图中:
图1为本发明实施例中的检测流程;
图2为本发明实施例中的焊缝路径曲线切线图;
图3为本发明实施例中的对切片点云拟合的结果;
图4为本发明实施例中的焊缝中的漏焊的检测结果;
图5为本发明实施例中的一个焊缝中有针孔的检测结果。
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
作为一种可能的实施方式,如图1所示,本实施例提供本发明 第 一 方面提供一种焊缝缺陷3D点云检测方法,包括以下具体步骤:
S1、获取被测件点云C0,构建三维坐标系,采用小二乘法确定基准面;
S2、根据基准面对被测件点云数据进行过滤,确定需检测的目标点云C1;
S3、根据目标点云C1确定投影点云C2,采用过小二乘法对点云C2进行三次曲线拟合,确定焊缝路径曲线p;
S4、获取焊缝路径曲线p的法向量进行切片,得到切片点云C3;
S5、对切片点云C3进行二次曲线拟合,根据拟合曲线确定焊缝参数。
本实施例通过根据目标点云C1确定投影点云C2,采用过小二乘法对点云C2进行三次曲线拟合提取焊缝路径,根据焊缝路径的法向量来进行切片,保证每一个切片是与当前段焊缝路径的切线是垂直的,能够根据焊缝本身结构进行焊缝检测,提高了对复杂的焊缝结构的检测全面性和检测精度。
其中,提取基准面具体包括:构建三维坐标系,在点云C0中选取多个参考点,选取的参考点包括至少三个,结合参考点坐标获取平面系数,利用小二乘法拟合平面,构建平面方程,根据参考点坐标,确定平面系数A、B、C和D,其中XYZ为三维坐标系中的X轴,Y轴Z轴,x为X轴坐标,y为Y轴坐标,z为Z轴坐标。
其中,根据基准面对被测件点云数据进行过滤,确定需检测的目标点云C1具体包括:
基于三维坐标系,将基准面校正到与XOY平面平行;
将基准面校正到与XOY平面平行具体包括:
获取基准面的法向量a;
根据平面系数确定法向量a与XOZ平面之间的三角函数,构建绕X轴的旋转的旋转矩阵R1;
上述计算步骤具体包括,获取平面系数A、B、C和D,根据平面系数A、B、C和D确定基准面的法向量,获取校正后的基准面的法向量与XOZ平面之间的三角函数,根据三角函数cosx,sinx构建绕X轴的旋转的旋转矩阵R1。
根据平面系数确定法向量a与YOZ平面之间的三角函数,构建绕Y轴的旋转的旋转矩阵R2;
上述计算步骤具体包括,获取平面系数A、B、C和D,根据平面系数A、B、C和D确定基准面的法向量,获取校正后的基准面的法向量与YOZ平面之间的三角函数,根据三角函数cosx,sinx构建绕Y轴的旋转的旋转矩阵R2。
根据旋转矩阵R1和旋转矩阵R2,确定基准面和XOY平面平行的点云C4:即4=C0·R1·R2;
根据点云C4将基准面校正到与XOY平面平行;
获取点云C0到校正后的基准面的距离,将小于距离设定阈值的点云C0过滤,得到需检测的目标点云C1,即焊缝轮廓,因为基准面目前已经和XOY平面平行,通过界面设定数值(即目标点云C0到XOY面距离来过滤点云,这里可以直接比较点云中Z坐标和设定数值),通过调整数值,可以得到一个拱形焊缝目标点云C1。
其中,根据目标点云C1确定投影点云C2,采用过小二乘法对点云C2进行三次曲线拟合,确定焊缝路径曲线p具体包括:
将点云C1投影到XOY平面,得到投影点云C5;
将点云C5中所有点的x坐标和y坐标通过小二乘法进行三次曲线拟合,确定焊缝路径曲线p:
其中w0、w1、w2和w3表示拟合曲线的参数。
其中,如图2所示,获取焊缝路径曲线p的法向量进行切片,得到切片点云C3具体包括:
获取焊缝路径曲线p上任意一点Xm,对焊缝路径曲线p进行求导,根据求导后的焊缝路径曲线p确定Xm的斜率。
根据点Xm斜率得到切片所在平面的法向量,结合焊缝路径曲线p确定切平面的系数;
获取切片厚度,确定切片点云C3。具体的,点云是空间散乱点的集合表征了物体表面轮廓特征信息,点云切片是用一组平面与点云求交给定一个平面,一块点云,求出点云在平面中的轮廓线。由于点云的密度是有限的,故利用点云在平面中的点求出轮廓线是行不通的。所以引入“带宽”,在平面法矢方向生成两个等距离的平面W1和W2,取W1和W2之间的点来生成平面W的轮廓曲线。W和之间的距离即带宽,带宽就是切片厚度
切片获取过程还包括:
将切片点云C3中的点云校正到与YOZ平面平行;
获取Xm处切片平面系数与YOZ平面的夹角;
根据夹角构建绕Z轴旋转的旋转矩阵R3;
根据切片点云C3和旋转矩阵R3,得到所有需要检测的拱形点云的切片数据。
具体计算步骤包括:求导后的焊缝路径曲线p为:
每隔相同距离,取一点Xm,则Xm点的斜率K为:
设Xm点的切片所在平面的法向量为:
因为焊缝路径曲线p在XOY平面,因此可以得到Xm点的切线的向量可以表示为(1,K,0)从而可以到对应的
将Xm代入焊缝路径曲线p中得Ym_D:
因为点(Xm,Ym_D,0)在Xm点的切片平面上,因此
推出Xm点切片平面的系数为Lm(1,K,0,Xm+KYm_D),按照设定的切片厚度,取出该切片的点云为C3,将切片中点云校正到与YOZ平面平行,在这里我们可以设置将切片中点云校正到平面系数为Ln(1,0,0,0)与YOZ平面平行,根据平面的系数Lm和平面的系数Ln,计算Xm处切片平面系数与YOZ平面的夹角为:
根据夹角构建绕Z轴旋转的旋转矩阵R3;
将切片点云C3与旋转矩阵R3相乘,重复上述过程,直到把所有需要检测的拱形点云全部切完,得到所有切片点云C3i,i=1,2,3…n。
其中,如图3所示,对切片点云C3进行二次曲线拟合,根据拟合曲线确定焊缝参数S5具体包括:
遍历切片点云C3i,i=1,2,3…n,获取每一个切片点云的y轴和z轴坐标;
对y轴和z轴坐标进行二次曲线拟合,得到拟合曲线;
根据拟合的二次曲线确定焊缝的参数,包括焊缝高度。
其中
系数越大,抛弧线越尖锐。如果是同一种工艺制作,应该在一定范围内波动,所以可以通过的范围,来监控焊缝质量。
如果切片上面的点在拟合曲线的上方,那么这些点是属于凸包,如果曲线上面点是在曲线下方,那么这些点是属于凹包。计算每一个点到拟合曲线,做标准差,如果拱形点云上面有凹陷或者凸起,就会导致标准差偏大。
本实施例第二方面提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现一种焊缝缺陷3D点云检测方法。
本实施例第三方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现一种焊缝缺陷3D点云检测方法。
作为一种可能的实施方式,如图4所示,提供了一个焊缝中的漏焊检测示例,如图5所示,提供了一个焊缝中有针孔的检测示例,使用本方式,可以准确测量出焊缝中存在的漏焊,虚焊问题,通过提供了详细的切片方式,经过验证,可以按准确的姿态切片,为下一步提供姿态一致的切片点云。对于每一个切片的点云,进行抛弧线拟合,根据拟合的曲线系数,判断每一个切片点云的形状。就算每一个点到曲线的距离,和判断切片点云是否合理分布。