本发明涉及视觉处理技术领域,尤其是基于全局阈值与模板匹配的焊缝特征点滤波方法。
背景技术:
当代的自动化工业领域中,自动焊接技术对生产效率和质量有着越来越明显的改善和提高。虽然现在的焊接机器人大多数已经不需要人工示教和离线编程,但是基于激光引导的焊接仍然存在定位点误差,滤波效果不理想等问题,极大制约了自动焊接技术的发展。
因此,急需一种方案解决上述问题。
技术实现要素:
本发明针对现有技术的不足,提出基于全局阈值与模板匹配的焊缝特征点滤波方法,采用基于全局距离阈值滤波的方法,快速将一些误差较大的点滤除,对于一些误差较小、处于真实焊缝附近、但仍然会影响焊接轨迹的误差点,采用了基于模板滤波的方法将其滤除,最后得到了准确光滑的焊缝轨迹曲线。本方法可有效提高噪音点和误差点的滤波效率,获得准确完整的焊缝轨迹。
为了实现上述发明目的,本发明提供以下技术方案:
基于全局阈值与模板匹配的焊缝特征点滤波方法,包括如下步骤:
(1)对图像定位后并转换到基坐标下的三维点进行降采样;
(2)将步骤(1)得到的降采样点按照焊缝方向的坐标轴排序,获得一组有序的特征点序列,并计算该序列点集中每个点的邻近点距离,得到其均值与方差;
(3)根据步骤(2)得到的距离均值与方差,计算滤波所需要的全局距离阈值;
(4)根据步骤(3)得到的全局阈值,对特征点序列中的点距进行判断:
a.若当前点的邻域均值大于阈值,则将其判断为离群点,将其滤除;
b.若前点的邻域均值小于或等于阈值,则判断为正常点,将其保留;
遍历所有点,得到滤波后点序列,并进行下一步操作;
(5)利用“从有到有”的规则采集模板焊缝,将步骤(4)中所述滤波后点序列作为初始模板点序列;
(6)利用基于梯度变换的迭代在线模板学习方法,对步骤(5)中初始模板点序列进行首尾延长,得到完整模板点序列;
(7)采用模板匹配的方法对步骤(6)中所述完整模板点序列与滤波后的当前扫描点序列进行配准,得配准后模板点;
(8)根据步骤(7)中得到的配准后模板点,通过模板滤波方法处理步骤(7)所述的当前点序列,得到准确的当前焊缝特征点;
(9)采用最小二乘曲线拟合的方法,对步骤(8)中所述特征点进行曲线拟合,得到较为平滑的三维焊接曲线,并发送给abb工业机器人。
优选的,所述步骤(1)对图像定位后并转换到基坐标下的三维点进行降采样,具体为:利用体素化方法,对采集到的点建立三维栅格,每个栅格的大小为1mm*1mm*1mm。对于处于同一体素内的点,用重心点表示,公式为:
其中,q为某个栅格内特征点的集合,n为该栅格内点数。
优选的,所述步骤(2)中计算该序列点集中每个点的邻近点距离,得到其均值与方差,公示为:
上式中,
优选的,步骤(3)所述中全局距离阈值的公示为:
上式中,dthresh为全局距离阈值,σ为人工设置的误差系数(通常取3~5)。
优选的,所述对特征点序列中的点距进行判断,具体为:计算特征点序列中某个点与其前后点之间的距离均值
优选的,所述步骤(6)具体为:
(1)利用“从有到有”的规则采集模板焊缝,经过计算得到三维焊缝特征点序列q0,经过全局阈值滤波处理,得到初始模板序列q1;
(2)假设需要延长q1的前半段,即模板焊缝的头部(尾部同理)。设q1中包含的点数目为n1,
计算头部点序列各个点在其邻域内的局部拟合曲线:
(3)沿焊缝相反方向l计算各个点在局部邻域内的梯度(尾部则方向相同):
得到前n1/2个点在其局部邻域内的梯度;
(4)利用最小二乘法对gi(i∈[1,n1/2]),计算与其匹配的直线回归方程,方程系数为σ1,σ2;
(5)根据回归方程和已知序列对特征点进行延长:
(6)重复步骤(2)—(5),直到j满足延长点个数。
优选的,步骤(7)中所述配准,具体为:
(1)设模板焊缝点集为m,待匹配点集为p,其对应的点个数分别为nm,np。根据迭代最近点(icp)算法,求解满足距离最小平方和的旋转矩阵r和平移举证t,即满足:
上式中,pi表示在点集p中与mi距离最近的点;
(2)定义两个点集的质心为mcentroid、pcentroid,则步骤1中的最小误差公式可转化为:
经过整理优化,上述问题可转化为:
(3)假设最优解为r*,且r*为正交矩阵,则tr(r*h)≥tr(rh)=tr(br*h);
(4)通过对h进行svd分解,可求解得到r*,则t*=pcentroid-rmcentroid;
(5)将步骤(4)中得到的r*,t*作用到m,得到新的模板点集m';
(6)将m'作为初始模板点集m,重复上述步骤,直到满足设置的迭代次数,或者e小于设定阈值。
有益效果
本发明所提出基于全局阈值与模板匹配的焊缝特征点滤波方法,传统的滤波算法主要通过优化图像定位算法,采用基于全局距离阈值滤波的方法,快速将一些误差较大的点滤除,对于一些误差较小、处于真实焊缝附近、但仍然会影响焊接轨迹的误差点,采用了基于模板滤波的方法将其滤除,最后得到了准确光滑的焊缝轨迹曲线。本方法可有效提高噪音点和误差点的滤波效率,获得准确完整的焊缝轨迹。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
图1为本发明所述基于全局阈值与模板匹配的焊缝特征点滤波方法的效果图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
传统的滤波算法主要通过优化图像定位算法,减少在图像定位过程中的误差。但是在面对复杂的工业环境时,二维图像优化算法对减少误差点的改善受到了明显的制约。而在进行激光引导的自动焊接过程中,焊缝的轨迹,即机械臂的引导轨迹是一条光滑的三维曲线。
通过设置相机的曝光时间,机械臂的激光拍摄路径以及激光、手眼标定等过程,我们可以得到三维空间下一系列离散的焊缝特征点集。因此,在图像定位优化的基础上,增加了在三维空间下的滤波算法,极大地改善了滤波效果,并在实际的自动引导焊接过程中进行了验证。滤波方法分为两步:
1.基于全局距离阈值的快速三维焊缝点滤波;
2.离线三维模板学习与在线模板滤波。
基于全局阈值与模板匹配的焊缝特征点滤波方法,包括如下步骤:
(1)对图像定位后并转换到基坐标下的三维点进行降采样;
(2)将步骤(1)得到的降采样点按照焊缝方向的坐标轴排序,获得一组有序的特征点序列,并计算该序列点集中每个点的邻近点距离,得到其均值与方差;
(3)根据步骤(2)得到的距离均值与方差,计算滤波所需要的全局距离阈值;
(4)根据步骤(3)得到的全局阈值,对特征点序列中的点距进行判断:
a.若当前点的邻域均值大于阈值,则将其判断为离群点,将其滤除;
b.若前点的邻域均值小于或等于阈值,则判断为正常点,将其保留。
遍历所有点,得到滤波后点序列,并进行下一步操作;
(5)利用“从有到有”的规则采集模板焊缝,将步骤(4)中所述滤波后点序列作为初始模板点序列;
(6)利用基于梯度变换的迭代在线模板学习方法,对步骤(5)中初始模板点序列进行首尾延长,得到完整模板点序列;
(7)采用模板匹配的方法对步骤(6)中所述完整模板点序列与滤波后的当前扫描点序列进行配准,得配准后模板点;
(8)根据步骤(7)中得到的配准后模板点,通过模板滤波方法处理步骤(7)所述的当前点序列,得到准确的当前焊缝特征点;
(9)采用最小二乘曲线拟合的方法,对步骤(8)中所述特征点进行曲线拟合,得到较为平滑的三维焊接曲线,并发送给abb工业机器人。
具体的,步骤(1)—(4)为基于全局距离阈值的快速三维焊缝点滤波,由于机械手在进行焊枪激光引导时,机械臂存在启动加速和停止减速的环节,使得起点和终点处的点过于密集,不利于机械手操作。且因为图像定位的误差,定位到的特征点甚至会存在轻微回退现象,针对该问题,首先需要对图像定位后的点进行降采样。利用体素化方法,对采集到的点建立三维栅格,每个栅格的大小为1mm*1mm*1mm,对于处于同一体素内的点,用重心点表示。
其中,q为某个栅格内特征点的集合,n为该栅格内点数。
在机械手坐标系中,设焊枪的前进方向为y轴正方向,即y始终保持增大的规律。
因此,将上述得到的降采样点根据y大小排序,获得一组特征点序列。计算该序列点集的邻近点距离均值与距离方差。
上式中,
根据得到的距离均值与方差,计算所需要的全局距离阈值:
上式中,dthresh为全局距离阈值,σ为人工设置的误差系数(通常取3~5)。
根据得到的全局阈值,对特征点序列中的点距进行判断。计算特征点序列中某个点与其前后点之间的距离均值
如果当前点的邻域均值大于阈值,则将其判断为离群点,将其滤除;若果小于阈值,则判断为正常点,将其保留。
由于位于两端的误差点同行分布比较集中,且其数量无法估计,所以为了能最大限度的将误差点滤除,需要对特征点序列进行循环过滤,滤波次数为nfilter(一般不小于5)。
步骤(5)—(9)为离线三维模板学习与在线模板滤波,根据以上基于全局距离阈值的快速三维焊缝点滤波的过程,可以对识别定位到的焊缝特征点进行初步的滤波,将误差较大,分布密集的点滤除,得到均匀且排列较为一致的点序列。但是有的误差点与正常点集较为接近,且邻域均值处于正常范围以内,上述滤波过程无法将其滤除。这些误差点的存在对焊枪引导轨迹会存在较大的影响,使得轨迹发生偏移,导致焊接失败。
针对该问题,采用离线三维模板学习与在线模板滤波的方法,可以有效地将其滤除。由于机械误差以及人工安装环节中的误差,当前学习的三维焊缝模板可能与之后的焊缝位置出现偏差,此时需要进行模板与焊缝的匹配,将模板旋转平移到真实焊缝的位置后再进行模板滤波。
因此,如图1所示,模板滤波可以分为三个部分,离线模板学习,在线模板匹配与模板滤波。
其中,模板学习为:
为了能够使用模板匹配功能,首先需要有一个三维空间下完整且高精度的焊缝模板。离线人工设计模板的方法精度高,可以使模板焊缝有较高的重合度,但是过程较为繁琐,耗时长,不利于自动化生产的发展。因此设计了一种基于梯度变化的迭代模板学习方法。为了在模板学习模式下避免错误点的输入,学习到较好的模板,激光引导时需要以“从有到有”的规则进行焊缝定位,即在模板学习阶段激光线条全部位于焊缝处。由于上述误差点大多集中在焊缝两端,因此需要在两端保持与模板焊缝的高重合度才能使起到模板过滤的效果,否则无法将两端的错误点过滤。而经过初次引导学习到的模板,由于是以“从有到有”的规则采集特征点学习,因此在端口部分会有焊缝段的缺失。为了弥补这一缺失,采用了基于梯度变化的迭代在线模板学习方法,将原有的模板焊缝在两端进行延长。如果直接采用基于最小二乘曲线拟合并延长的方法,由于初始点在端口部分的缺失,无法保证延长后的曲线仍然保持沿焊缝延长方向的轨迹。
基于梯度变化的迭代在线模板学习方法:
1.利用“从有到有”的规则采集模板焊缝,经过计算得到三维焊缝特征点序列q0,经过全局阈值滤波处理,得到初始模板序列q1。
2.假设需要延长q1的前半段,即模板焊缝的头部(尾部同理)。设q1中包含的点数目为n1,
计算头部点序列各个点在其邻域内的局部拟合曲线:
3.沿焊缝相反方向l计算各个点在局部邻域内的梯度(尾部则方向相同):
得到前n1/2个点在其局部邻域内的梯度。
4.利用最小二乘法对gi(i∈[1,n1/2]),计算与其匹配的直线回归方程,方程系数为σ1,σ2。
5.根据回归方程和已知序列对特征点进行延长:
6.重复2-5步骤,直到j满足延长点个数。
延长效果图(前后各延长4个点,y方向步长为2mm)
模板匹配
为了使学习好的焊缝模板能够最大程度的与真实焊缝重合,使模板焊缝处于真实焊缝的位置上,采用模板匹配的方法进行三维点离散点的配准。
配准流程:
1.设模板焊缝点集为m,待匹配点集为p,其对应的点个数分别为nm,np。根据迭代最近点(icp)算法,求解满足距离最小平方和的旋转矩阵r和平移举证t。即满足:
上式中,pi表示在点集p中与mi距离最近的点。
2.定义两个点集的质心为mcentroid、pcentroid。则步骤1中的最小误差公式可转化为:
经过整理优化,上述问题可转化为:
3.假设最优解为r*,且r*为正交矩阵,则tr(r*h)≥tr(rh)=tr(br*h)。
4.通过对h进行svd分解,可求解得到r*,则t*=pcentroid-rmcentroid。
5.将步骤4中得到的r*,t*作用到m,得到新的模板点集m'。
6.将m'作为初始模板点集m,重复上述步骤,直到满足设置的迭代次数,或
者e小于设定阈值。
模板滤波
经过模板匹配过程,可以使得模板焊缝点集与当前焊缝真实轨迹基本重合。由于误差点的位置并不处在模板点集的轨迹上,可利用最小二乘曲线拟合方法对匹配后的模板点集进行曲线拟合,得到三维空间中一条光滑的焊缝模板曲线。以点集p中y坐标为自变量,求解得到在模板曲线上该y值对应的x与z,记做x',y',并判断该点是否属于误差点:
上式中,(xi,yi,zi)是当前焊缝点集中的某一点,(xi',yi,zi')是以该点对应的模板坐标,dis表示求解两点之间的距离。d为距离阈值,通常为1.5~2mm。
通过模板滤波,可以将一些通过全局距离阈值难以滤除的误差点滤除,得到准确的焊缝特征点。
经过全局阈值滤波后仍然存在误差点,而经过模板学习,匹配,滤波后,该点已经得到滤除。
最后采用最小二乘曲线拟合的方法,对经过滤波处理后的特征点进行拟合,得到较为平滑的三维焊接曲线,并发送给abb工业机器人。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。