一种基于三维点云的棒材弯曲变形检测方法
2024-04-30任术长杨恩向李建华
任术长,杨恩向,李建华
1.兰州理工大学机电工程学院;2.云南文山铝业有限公司
0 引言
有色金属棒材在现代建筑、交通运输、机械制造等领域有着广泛的应用[1]。在棒材铸造成型过程中,由于工艺原因或工人操作不当,铸造成型的产品出现外形缺陷,如棒材弯曲、表面裂缝、橘皮等[2]。有色金属棒材的外形缺陷是影响其交付和使用的重要因素之一[3-4]。当前工业现场检测多采用人工测量,效率低,相应的自动检测技术需求迫切。
随着三维成像技术和三维扫描设备的快速发展以及企业对产品检测质量及效率要求提高,三维视觉技术广泛应用于产品外形缺陷检测[5-6]。I.Jovancevic[7]等使用三维扫描设备获取飞机外表面的点云数据,然后利用飞机表面缺陷区域数据点的曲率信息来检测缺陷区域。陈杨波等[8]通过比较叶轮标准点云模型与三维扫描获取的叶轮实测点云模型,获取叶轮曲面翘曲程度和区域。Y.Zhou[9]等提出了TransPCNet深度学习模型来分类缺陷点云,达到检测缺陷的目的。上述方法在不同应用领域取得了效果,对有色金属棒材三维视觉检测具有借鉴意义。
本文针对棒材弯曲变形检测困难问题,提出了一种基于三维点云的棒材弯曲变形检测方法。使用旋转平面分割棒材点云数据,获得多条曲线,计算每条曲线最大弯曲程度,得到被检测棒材的最大弯曲程度。
1 棒材弯曲测量问题
有色金属棒材通常采用竖井铸造工艺生产,以铝合金棒材为例,通常长度为6 m。由于铸造模具变形、铸造过程中热处理不当等原因,导致棒材外形存在一定程度弯曲变形。图1为弯曲变形棒材实物图。
图1 弯曲变形棒材实物图
棒材的弯曲度检测依据T/SSEA 0069—2020《棒材弯曲度测量方法》,在行业内直径90~130 mm棒材弯曲度允许最大偏差如表1所示。
表1 棒材允许弯曲差度 mm
当前针对棒材的弯曲度测量采用人工测量,依据标准,通过目视或者转动确定整支棒材明显弯曲点,使用1 m钢直尺横向垂直放在棒材最大弯曲位置,使用游标卡尺测量棒材与钢直尺的最大弯曲高度。测量的最大高度为棒材的最大弯曲度。棒材人工检测示意图如图2所示。
图2 棒材人工检测示意图
2 基于棒材点云的弯曲检测方法
2.1 点云数据获取及预处理
本文采用埃尔森AT-S1000-06C-S光栅结构光传感器多视角采集棒材点云数据。由于采集的原始点云数据包括许多无用背景点、噪声点以及大量冗余点,且一次采集很难获取完整棒材点云数据。因此需要对实体棒材进行多次多视角采集点云数据,对每次采集的原始点云数据进行降噪与简化,并对降噪与简化后各视角点云数据进行配准。本文使用欧式聚类[10]获取棒材主体点云,达到去降噪目的,对降噪后各视角点云使用TrimmedICP[11]算法进行点云配准。
2.2 RANSAC算法获取圆柱轴线信息
RANSAC[12](随机采样一致)算法是从一组含有“外点”的数据中正确估计数学模型参数的迭代算法。RANSAC算法拟合圆柱具体步骤如下:
1)计算给定点云P={p1,p2,…,pm}中各点的法向量N=[n1,n2,…,nm]。初始化最优模型Cbest,内点为0;
2)随机选取点云P中两点,根据所选点的坐标与法向量计算圆柱模型Ccur;
3)计算P中其他点到模型Ccur的距离,距离小于阈值ε为模型Ccur的内点;
4)判断Ccur的内点数量A是否大于最优模型Cbest的内点数量B,如大于则Cbest=Ccur;
5)判断是否达到预先设定的最大迭代次数。如未达到则跳回步骤2);
6)输出最优模型Cbest。
使用RANSAC算法对预处理点后点云数据进行圆柱拟合,获取点云拟合后的圆柱轴线信息,将轴线旋转平移至与世界坐标系X轴重合,计算变换矩阵,使用该变换矩阵对完整棒材点云进行旋转平移变换操作(即将棒材点云的轴线旋转平移至与世界坐标系X轴重合)。
2.3 棒材点云外形分割
对预处理后的完整棒材点云数据,采用所提方法分割棒材点云为多份外形曲线点云数据,具体步骤如下:
1)对于点云集合P,将其所有点投影至yoz平面,获得对应的二维点集P2d={p1,p2,…,pm},其中点pi坐标为(yi,zi)。
2)根据式(1)计算P2d中点和坐标原点的连线与y轴夹角(锐角),得到点的夹角集θ={θ1,θ2,…,θm}。
(1)
3)取初始角度为0,步长为t,根据夹角集θ可将点云数据分为90/t份。对每份点云数据,按照其对应的二维点集中点pi所在象限,又可将其分为4份点云数据。
步骤4:输出分割完成后的所有外形曲线点云数据。
由于棒材半径不同,t会直接影响后续的结果。t过小影响棒材分割的效果(对于半径较小的棒材,可能分割后每份点云数据过少而导致后续计算无法完成),t过大则分割不够彻底,影响后续弯曲度的计算。
2.4 异常点剔除
三维设备采集数据过程中会产生一些异常点,如扫描棒材表面裂缝、凸起等缺陷区域所产生的数据点,以及一些靠近棒材表面但不属于棒材表面的噪声点。如果不对上述异常点进行剔除处理,将会直接影响所提弯曲变形检测算法的精度。
无表面缺陷的棒材没有特征突变的区域,在分割后每份点云中,对于非异常点,其到对应直线的距离与其邻域点到对应直线的距离在一定范围内波动(根据相机分辨率)。本文先计算分割后每份点云中所有点到对应直线的距离。每个点与邻域点到对应直线距离的标准差σ计算公式如下:
(2)
判断所选点是否满足
(3)
式中:d为所选点到对应直线距离,mm;a为常数系数。
所选点若满足式(3),则作为异常点剔除。
2.5 外形曲线弯曲度计算
每份外形曲线的弯曲度表示圆柱在该处的弯曲度。曲线弯曲度计算具体步骤如下:
1)选取每份点云中坐标x最大值与最小值的空间两点p1(x1,y1,z)和p2(x2,y2,z2),计算过两点的空间直线方程:
(4)
式中(m,n,p)=(x2-x1,y2-y1,z2-z1);
2)根据式(5)计算所有点pi(i=1,2,3,…,n)到空间直线的距离d,剔除异常点,d表示为
(5)
3)判断步骤1)选择的空间两点是否为异常点,若是异常点,则剔除后重新开始步骤1)。若非异常点则输出所有点到直线距离中的最大值,表示该外形曲线的弯曲度。
每份外形弯曲度的最大弯曲度表示该圆柱的最大弯曲程度。
3 实验验证
为了验证本文研究的棒材弯曲变形检测算法的有效性,使用埃尔森AT-S1000-06C-S光栅结构光传感器采集棒材点云数据,对采集的原始点云数据进行预处理,对预处理后点云数据使用本文提出的弯曲变形检测算法进行棒材弯曲变形检测,基本流程如图3所示。
图3 弯曲变形检测流程图
检测系统如图4所示。被检测实体棒材如图5所示,其中标准棒材模型长1 000 mm,半径60 mm。
图4 检测系统图
规定相机第一次扫描自身坐标系为世界坐标系,第一次相机和实体棒材位置分别为相机初始位置和棒材初始位置。根据棒材半径选取分割步长t为1,依据相机分辨率,取剔除异常点中n为10,a为1.5。每个实体棒材使用9个视角获取棒材原始点云数据单次扫描云图如图6所示,对各视角扫描获取的点云数据进行预处理得到完整的棒材点云数据,如图7所示。使用所提弯曲变形检测方法对棒材点云数据进行分割。分割曲线如图8所示。
图6 单次扫描云图
图7 棒材预处理云图
图8 分割曲线图
实验分别对图5中4个实体棒材使用本文所提算法进行弯曲变形检测,将检测结果与人工检测结果进行比较。结果如表2所示。
表2 本文算法检测结果与人工检测结果比较 mm
从表2可以看出,本文所提算法针对棒材弯曲变形检测具有良好的可行性,其与人工检测的最大误差为1.16 mm,对棒材合格判定结果与人工一致。因此验证的本文所提方法的有效性。
4 结束语
本文提出了一种用于检测棒材弯曲变形的检测方法,利用三维传感器获取棒材表面点云数据,通过对各视角下获取的点云数据预处理得到完整的棒材点云,使用所提算法对棒材完成弯曲缺陷检测,最后通过实验验证了该方法的有效性。