一种基于角点检测的贴片机吸嘴元件角度的自动校正方法与流程

文档序号:20205095发布日期:2020-03-27 21:16阅读:688来源:国知局
一种基于角点检测的贴片机吸嘴元件角度的自动校正方法与流程

本申请属于视觉检测技术领域,具体涉及一种基于角点检测的贴片机吸嘴元件角度的自动校正方法。



背景技术:

在工业自动化快速发展的趋势下,依靠传统人工操作已经无法满足产品大批量生产以及配置过程复杂化的现代化生产模式的需求。以数字图像处理技术为基础的视觉检测技术逐渐取代了人工检测技术,广泛应用于工业制造领域中。

贴片机喂料器需要对元件的角度进行校正,现有技术通过轮廓检测和霍夫直线检测获取角度信息,但并不能解决光照影响下的吸嘴金属表面反光所导致的干扰问题;现有技术中,基于频域特征获取芯片角度,通过采集图像低频信息和高频信息的排序组合,减小光照强度的干扰,但无法有效解决反射光的影响。故急需一种能够克服上述干扰并良好应用于规模化生产的元件角度矫正方法。



技术实现要素:

本申请的目的在于提供一种基于角点检测的贴片机吸嘴元件角度的自动校正方法,克服了环境光照的影响,提高元件角度校正的精度。

为实现上述目的,本申请所采取的技术方案为:

一种基于角点检测的贴片机吸嘴元件角度的自动校正方法,所述基于角点检测的贴片机吸嘴元件角度的自动校正方法,包括:

步骤1:获取元件的灰度图像;

步骤2:根据预设的截取区域对灰度图像进行截取;

步骤3:采用shitomasi算法对截取获得的图像进行角点提取;

步骤4:将提取的角点中像素值大于阈值的角点去除;

步骤5:基于步骤4去除后剩余的角点,筛选最小外接矩形的面积小于阈值的角点集合;

步骤6:获取角点集合形成的最小外接矩形的区域图像,并采用三次样条插值方法对区域图像进行放大;

步骤7:对步骤6放大后的区域图像进行预处理;

步骤8:对预处理后的图像进行canny边缘检测,采用概率霍夫变换进行直线检测,提取得到若干线段;

步骤9:在提取的线段中筛选出至少一对相互平行的线段以及至少一条与相互平行的线段垂直的线段;

步骤10:判断互相垂直的两条线段中是否存在角度与步骤5中筛选得到的最小外接矩形的角度一致的线段,若存在,则将最小外接矩形的角度作为元件的旋转角度;若不存在,则根据筛选出的线段计算得到旋转角度。

作为优选,所述根据预设的截取区域对灰度图像进行截取,包括:

若元件为长为d、宽为w的长方形;

则预设的截取区域为长方形,且该长方形的长为α×d、宽为α×w;

对灰度图像进行区域截取时,以灰度图像的中心作为截取区域的中心,以灰度图像的长边作为截取区域的长,以灰度图像的短边作为截取区域的宽进行截取。

作为优选,所述采用shitomasi算法对截取获得的图像进行角点提取,包括:

步骤3.1:假设图像中像素点(x,y)的灰度值为i(x,y),则像素点(x,y)在局部小窗口w(x,y)的各个方向移动(u,v)的像素变化e(x,y)为:

其中ωu,v为加权函数;

步骤3.2:将i(x+u,y+v)进行泰勒展开得到:

i(x+u,y+d=i(x,y)+uix+viy+o(u2,v2)

其中ix,iy是一阶灰度梯度;

将泰勒展开后得到关系式忽略二阶及以上项后代入e(x,y)中得到:

步骤3.3:设置矩阵m如下所示,且λ1,λ2分别是矩阵m的两个特征值:

若λ1,λ2满足λ1≥λ2且λ2≥kλ2max,则像素点(x,y)为强角点;否则像素点(x,y)不是强角点;其中λ2max是所有像素点较小特征值中的最大值。

作为优选,所述基于步骤4去除后剩余的角点,筛选最小外接矩形的面积小于阈值的角点集合,包括:

步骤5.1:基于步骤4去除后剩余的角点生成角点集合p,所述角点集合p的大小为n;

步骤5.2:若角点集合p的最小外接矩形的面积大于1.2倍的当前元件的实际面积,则设置循环次数i=0,并执行步骤5.3;否则以角点集合p作为最终的角点集合并结束筛选步骤;

步骤5.3:复制角点集合p得到角点集合pt,删除角点集合pt中的第i个角点,并以角点集合pt中的剩余角点得到最小外接矩形;

步骤5.4:若i<n,则i=i+1,且重新执行步骤5.3;否则从得到的n个最小外接矩形中选取面积最小的最小外接矩形rm,且最小外接矩形rm对应的为角点集合pm;

步骤5.5:判断最小外接矩形rm的面积与元件的实际面积的关系,若最小外接矩形rm的面积小于0.9倍的元件的实际面积,则将角点集合pm作为角点集合p,并重新执行步骤5.2;否则执行步骤5.6;

步骤5.6:以最小外接矩形rm的较长一边作为长、较短一边作为宽,若最小外接矩形rm的长大于1.2倍的元件的长,则执行步骤5.7;否则执行步骤5.10;

步骤5.7:以最小外接矩形rm的长为y轴、宽为x轴建立坐标,获取y轴坐标最大和最小的两个角点,y轴坐标最大的角点的y坐标为ymax,y轴坐标最小的角点的y坐标为ymin;

步骤5.8:获取最小外接矩形rm在y轴坐标为ymin~(ymax+ymin)/2范围内的角点个数c1,获取最小外接矩形rm在y轴坐标为(ymax+ymin)/2~ymax范围内的角点个数c2;

步骤5.9:若c1>c2,则删除角点集合pm中y轴坐标为ymax对应的角点,并将删除后剩余的角点作为角点集合p,重新执行步骤5.2;否则删除角点集合pm中y轴坐标为ymin对应的角点,并将删除后剩余的角点作为角点集合p,重新执行步骤5.2;

步骤5.10:若最小外接矩形rm的宽大于1.2倍的元件的宽,则执行步骤5.11;否则角点集合pm作为最终的角点集合并结束筛选步骤;

步骤5.11:以最小外接矩形rm的长为y轴、宽为x轴建立坐标,获取x轴坐标最大和最小的两个角点,x轴坐标最大的角点的x坐标为xmax,x轴坐标最小的角点的x坐标为xmin;

步骤5.12:获取最小外接矩形rm在x轴坐标为xmin~(xmax+xmin)/2范围内的角点个数c3,获取最小外接矩形rm在x轴坐标为(xmax+xmin)/2~xmax范围内的角点个数c4;

步骤5.13:若c3>c4,则删除角点集合pm中x轴坐标为xmax对应的角点,并将删除后剩余的角点作为角点集合p,重新执行步骤5.2;否则删除角点集合pm中x轴坐标为xmin对应的角点,并将删除后剩余的角点作为角点集合p,重新执行步骤5.2。

作为优选,所述对放大后的区域图像进行预处理,包括:

采用直方图均衡化方法处理放大后的区域图像,得到第一图像;

对所述第一图像采用5×5的窗口进行中值滤波,得到第二图像;

对所述第二图像采用7×7的窗口进行高斯滤波,得到预处理完成的图像。

作为优选,所述在提取的线段中筛选出至少一对相互平行的线段以及至少一条与相互平行的线段垂直的线段,包括:

步骤9.1:计算各线段的角度angle为:

其中,(x1,y1)、(x2,y2)为线段上的两个不同点;

步骤9.2:按角度angle从小到大的顺序对所有线段进行排序,并选取相邻两条线段之间的角度angle相差小于3°的线段;

步骤9.3:按角度angle从大到小遍历所有线段,判断是否存在与步骤9.2中找到的线段相互垂直的线段,若存在,则得到符合条件的线段;否则选取与步骤9.2中找到的线段最接近垂直的线段。

作为优选,所述根据两组平行线的最长距离,判断元件的长和宽,得到旋转角度,包括:

步骤10.1:统计互为垂直的两个角度r1、r2分别对应的线段个数c1、c2;

步骤10.2:若c1≥2且c2≥2,则执行步骤10.3;否则执行步骤10.4;

步骤10.3:计算两个角度r1、r2分别对应的所有平行线段之间的最大距离d1、d2;且若d1<d2,则元件的旋转角度为r1;否则元件的旋转角度为r2;

步骤10.4:若c1≥2且c2==1,则执行步骤10.5;否则执行步骤10.6;

步骤10.5:计算角度r1对应的所有平行线段之间的最大距离d1,计算角度为r2的线段的两端到角度为r1的线段的最大距离l1;且若d1<l1,则元件的旋转角度为r2;否则元件的旋转角度为r1;

步骤10.6:若c2≥2且c1==1,则执行步骤10.7;否则结束旋转角度计算步骤;

步骤10.7:计算角度r2对应的所有平行线段之间的最大距离d2,计算角度为r1的线段的两端到角度为r2的线段的最大距离l2;且若d2<l2,则元件的旋转角度为r1;否则元件的旋转角度为r2。

本申请提供的基于角点检测的贴片机吸嘴元件角度的自动校正方法与现有技术相比具有以下有益效果:一方面,通过角点计算贴片角度能够减少图片中的光照强度的影响,避免没有能够检测到贴片两边的直线的情况,并快速获取旋转角度。另一方面,通过检测到的直线判断角度,能够弥补角点构成的最小外接矩形的倾斜偏差,获取准确的角度。

附图说明

图1为本申请的基于角点检测的贴片机吸嘴元件角度的自动校正方法的流程图;

图2为本申请的筛选角点集合的流程图;

图3为元件位于第一状态下获取的灰度图像示意图;

图4为针对图3的灰度图像进行角点筛选后得到的最小外接矩形示意图;

图5为元件位于第二状态下获取的灰度图像示意图;

图6为针对图5的灰度图像进行角点筛选后得到的最小外接矩形示意图;

图7为元件位于第三状态下获取的灰度图像示意图;

图8为针对图7的灰度图像进行角点筛选后得到的最小外接矩形示意图;

图9为本申请的计算元件旋转角度的流程图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是在于限制本申请。

如图1所示,其中一个实施例中,提供一种基于角点检测的贴片机吸嘴元件角度的自动校正方法,应用于贴片机视觉系统,对吸嘴元件的角度进行准确的校正。

本实施例的基于角点检测的贴片机吸嘴元件角度的自动校正方法,包括:

步骤1:获取元件的灰度图像。

在获取元件的灰度图像时,通常由工业摄像机进行采集,并且为了便于与贴片机的配合使用,该工业摄像机安装在贴片机上,由贴片机上的工作头的吸嘴吸住元件,并将元件移动至工业摄像机的视觉中心。

步骤2:根据预设的截取区域对灰度图像进行截取。

本实施例采用opencv函数截取指定区域的图像,通常贴片元件平放状态下的顶面为长方形,故在进行区域截取时,若元件为长为d、宽为w的长方形(指元件平放状态下的顶面或工业摄像机的拍摄面为长方形);则预设的截取区域为长方形,且该长方形的长为α×d、宽为α×w。

对灰度图像进行区域截取时,以灰度图像的中心作为截取区域的中心,以灰度图像的长边作为截取区域的长,以灰度图像的短边作为截取区域的宽进行截取。

由于工作头会将元件移动到图像中心,所以以图像中心为截取区域的中心可降低有效区域被截去的可能性,并且截取区域的长宽为优选为最大贴片长宽的2倍,以保证截取到所有有效的区域。本实施例根据工业摄像机的焦距,设定截取区域的长宽为灰度图像长宽的1/3。步骤3:采用shitomasi算法对截取获得的图像进行角点提取。

步骤3.1:假设图像中像素点(x,y)的灰度值为i(x,y),则像素点(x,y)在局部小窗口w(x,y)的各个方向移动(u,v)的像素变化e(x,y)为:

其中ωu,v为加权函数;

步骤3.2:将i(x+u,y+v)进行泰勒展开得到:

i(x+u,y+v)=i(x,y)+uix+viy+o(u2,v2)

其中ix,iy是一阶灰度梯度;

将泰勒展开后得到关系式忽略二阶及以上项后代入e(x,y)中得到:

步骤3.3:设置矩阵m如下所示,且λ1,λ2分别是矩阵m的两个特征值:

若λ1,λ2满足λ1≥λ2且λ2≥kλ2max,则像素点(x,y)为强角点;否则像素点(x,y)不是强角点;其中λ2max是所有像素点较小特征值中的最大值。

步骤4:将提取的角点中像素值大于阈值的角点去除。

根据获取的元件的灰度图像像素值的分布特性,本实施例设置阈值为160,以保证有效去除反光出高亮度区域的角点,避免反射光的影响。

步骤5:基于步骤4去除后剩余的角点,筛选最小外接矩形的面积小于阈值的角点集合。

由于吸嘴的轮廓是圆形的,芯片(元件)的轮廓是矩形的,所以提出假设用shitomasi算法提取出的角点绝大部分集中在芯片上。在这个假设下,若存在远离芯片的角点,则会造成角点形成的最小外接矩形面积远大于芯片的面积。当删除远离芯片的角点,剩下角点形成的最小外接矩形面积会减小并接近于芯片的面积。

根据上述假设,可以采用剔除法选择符合条件的角点集合,由于角点分布情况较为复杂,如图2所示,本实施例中提供的筛选角点集合的具体步骤如下:

步骤5.1:基于步骤4去除后剩余的角点生成角点集合p,所述角点集合p的大小为n;

步骤5.2:若角点集合p的最小外接矩形的面积大于1.2倍的当前元件的实际面积,则设置循环次数i=0,并执行步骤5.3;否则以角点集合p作为最终的角点集合并结束筛选步骤;

步骤5.3:复制角点集合p得到角点集合pt,删除角点集合pt中的第i个角点,并以角点集合pt中的剩余角点得到最小外接矩形;

步骤5.4:若i<n,则i=i+1,且重新执行步骤5.3;否则从得到的n个最小外接矩形中选取面积最小的最小外接矩形rm,且最小外接矩形rm对应的为角点集合pm;

步骤5.5:判断最小外接矩形rm的面积与元件的实际面积的关系,若最小外接矩形rm的面积小于0.9倍的元件的实际面积,则将角点集合pm作为角点集合p,并重新执行步骤5.2;否则执行步骤5.6;

步骤5.6:以最小外接矩形rm的较长一边作为长、较短一边作为宽,若最小外接矩形rm的长大于1.2倍的元件的长,则执行步骤5.7;否则执行步骤5.10;

步骤5.7:以最小外接矩形rm的长为y轴、宽为x轴建立坐标,获取y轴坐标最大和最小的两个角点,y轴坐标最大的角点的y坐标为ymax,y轴坐标最小的角点的y坐标为ymin;

步骤5.8:获取最小外接矩形rm在y轴坐标为ymin~(ymax+ymin)/2范围内的角点个数c1,获取最小外接矩形rm在y轴坐标为(ymax+ymin)/2~ymax范围内的角点个数c2;

步骤5.9:若c1>c2,则删除角点集合pm中y轴坐标为ymax对应的角点,并将删除后剩余的角点作为角点集合p,重新执行步骤5.2;否则删除角点集合pm中y轴坐标为ymin对应的角点,并将删除后剩余的角点作为角点集合p,重新执行步骤5.2;

步骤5.10:若最小外接矩形rm的宽大于1.2倍的元件的宽,则执行步骤5.11;否则角点集合pm作为最终的角点集合并结束筛选步骤;

步骤5.11:以最小外接矩形rm的长为y轴、宽为x轴建立坐标,获取x轴坐标最大和最小的两个角点,x轴坐标最大的角点的x坐标为xmax,x轴坐标最小的角点的x坐标为xmin;

步骤5.12:获取最小外接矩形rm在x轴坐标为xmin~(xmax+xmin)/2范围内的角点个数c3,获取最小外接矩形rm在x轴坐标为(xmax+xmin)/2~xmax范围内的角点个数c4;

步骤5.13:若c3>c4,则删除角点集合pm中x轴坐标为xmax对应的角点,并将删除后剩余的角点作为角点集合p,重新执行步骤5.2;否则删除角点集合pm中x轴坐标为xmin对应的角点,并将删除后剩余的角点作为角点集合p,重新执行步骤5.2。

本实施例提供的筛选角点集合的步骤中,步骤5.3~5.5,由于多余角点在元件的外围,所以删除多余角点会有明显的面积减小,通过这种删除方式可以快速获取元件所在区域的角点集合,以避免多余角点对后续计算旋转角度产生影响。

但是如果存在两个位置很接近多余角点,仅采用步骤5.3~5.5的方法将不能有效删除多余角点,所以本实施例提出了步骤5.6~5.13的方法,以四个边缘角点为元件形状大小的矩形一侧,并比较这样的矩形区域内具有的角点个数。因为截取区域图像的角点基本分布在元件上,外围的角点形成主要是由于光照阴影和圆形的吸嘴头所导致,而圆形的角点极少,光照阴影所形成的角点,通过步骤4的阈值处理,剔除了大部分不符合条件的角点,所以如果矩形区域包含的角点个数多的区域就即是元件所在的区域,从而删除包含角点个数少的区域所对应的角点。本实施例提供的角点集合筛选方法可以合理地去除元件外围的相邻角点。

三组角点筛选后的图像处理效果图如图3~8所示,从图中可以看出经过本实施例的筛选方法得到的角点集合对应的最小外接矩形,合理地切合了元件所在的区域,计算所得的旋转角度精度范围在1°以内。

步骤6:获取角点集合形成的最小外接矩形的区域图像,并采用三次样条插值方法对区域图像进行放大。

三次样条插值方法可以减小边缘的模糊,并且在放大时进行长和宽等比例放大,防止出现长和宽不成比例放大造成所求取的旋转角度误差大的情况。同时,受到霍夫直线检测的参数影响,针对不同大小的元件,进行不同程度的放大,使得放大后的图形接近于步骤2截取获得的图像的大小。

步骤7:对步骤6放大后的区域图像进行预处理。

预处理通常对图像进行去躁、滤波,本实施例中提供的预处理步骤为:

采用直方图均衡化方法处理放大后的区域图像,得到第一图像。

由于直方图均衡化处理后会带来明显的噪声,故为了减小噪声,对所述第一图像采用5×5的窗口进行中值滤波,减小椒盐噪声,得到第二图像。

并进一步对所述第二图像采用7×7的窗口进行高斯滤波,平滑图像,得到预处理完成的图像。

步骤8:对预处理后的图像进行canny边缘检测,采用概率霍夫变换进行直线检测,提取得到若干线段。

步骤9:在提取的线段中筛选出至少一对相互平行的线段以及至少一条与相互平行的线段垂直的线段。

步骤9.1:计算各线段的角度angle为:

其中,(x1,y1)、(x2,y2)为线段上的两个不同点;

步骤9.2:按角度angle从小到大的顺序对所有线段进行排序,并选取相邻两条线段之间的角度angle相差小于3°的线段;

步骤9.3:按角度angle从大到小遍历所有线段,判断是否存在与步骤9.2中找到的线段相互垂直的线段,若存在,则得到符合条件的线段;否则选取与步骤9.2中找到的线段最接近垂直的线段。

步骤10:判断互相垂直的两条线段中是否存在角度与步骤5中筛选得到的最小外接矩形的角度一致的线段,若存在,则将最小外接矩形的角度作为元件的旋转角度;若不存在,则根据筛选出的线段计算得到旋转角度。本实施例采用函数cvinvoke.minarearect()获取最小外接矩形的角度。

如图9所示,根据步骤9筛选出的线段计算得到旋转角度,包括:

步骤10.1:统计互为垂直的两个角度r1、r2分别对应的线段个数c1、c2;

步骤10.2:若c1≥2且c2≥2,则执行步骤10.3;否则执行步骤10.4;

步骤10.3:计算两个角度r1、r2分别对应的所有平行线段之间的最大距离d1、d2;且若d1<d2,则元件的旋转角度为r1;否则元件的旋转角度为r2;

步骤10.4:若c1≥2且c2==1,则执行步骤10.5;否则执行步骤10.6;

步骤10.5:计算角度r1对应的所有平行线段之间的最大距离d1,计算角度为r2的线段的两端到角度为r1的线段的最大距离l1;且若d1<l1,则元件的旋转角度为r2;否则元件的旋转角度为r1;

步骤10.6:若c2≥2且c1==1,则执行步骤10.7;否则结束旋转角度计算步骤;

步骤10.7:计算角度r2对应的所有平行线段之间的最大距离d2,计算角度为r1的线段的两端到角度为r2的线段的最大距离l2;且若d2<l2,则元件的旋转角度为r1;否则元件的旋转角度为r2。

步骤9得到的线段,如果存在多条平行线和多条垂直线(至少两条),则分别计算两类平行线之间的最大距离,比较这两个最大距离,距离大的线段为宽,距离短的线段为长,进而得到旋转角度即为长所在的线段对应的角度。

如果存在至少两条平行线,并只有一条线段与其垂直,则计算平行线的之间的最大距离和任意平行线段的两个端点到与之垂直的一条线段的最大距离,比较两个最大距离,距离大的线段为宽,距离短的线段为长进而得到旋转角度。

考虑了霍夫直线检测无法完全将边缘检测出来问题,通过计算线段端点到直线的最大距离,判断矩形长宽对应的线段。本方法能更有效地计算出旋转角度,减少由光照原因导致直线检测不完全造成的影响,提高对元件位置校正的准确性。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1