一种基于工业相机的高精度生产线sensor快速定位方法与流程
未命名
07-13
阅读:172
评论:0
1.本发明涉及工业相机的技术领域,具体而言,涉及一种基于工业相机的高精度生产线sensor快速定位方法。
背景技术:
2.检测技术是现代工业的基础技术之一,对目标进行定位、测量或对几何特征的拟合效果直接影响工件或装配的质量把控。边缘特征检测精度越高,则制造精度越高、缺陷控制等级越高。因此边缘技术在工业检测流程中起着非常重要的作用,尤其在高精度工件检测如sensor中,sensor轮廓定位精度越高,其良品率也就越高。
3.在sensor加工流水线上,sensor的定位通过工业相机采集图像,上位机对图像进行边缘轮廓提取,通过边缘信息定位sensor,机械手进而根据位置坐标对sensor进行加工。在整个加工流程中,sensor边缘信息的速度和精度直接影响产线效率。在传统机器视觉测量中,通过采集更高分辨率的图像,然后对图像进行亚像素边缘提取,进而提高拟合配准、缺陷控制的精度。
4.常规的亚像素边缘提取思路为先进行像素边缘提取,再进行亚像素边缘提取,这类方法将亚像素信息的提取分离成了两部分:像素边缘提取、亚像素边缘提取。在这一过程将引入两类问题:1、像素边缘近似八邻域梯度方向存在多个像素点拥有相同的梯度值。而亚像素边缘只会出现在边缘梯度脊线上,不会存在脊线的法线方向有多个梯度点的情况,因此多像素的宽边缘点存在精度问题。2、两次提取无疑增加了算法的计算量。对于需要高分辨率缺陷检测的工业流水线来说,上述方法对生产线的运行效率有直接影响。
技术实现要素:
5.本发明的目的在于:提供一种能够解决生产线上提取到的sensor轮廓中存在的粗边缘,且亚像素边缘检测速度较快的生产线sensor定位方法。
6.本发明的技术方案是:提供了一种基于工业相机的高精度生产线sensor快速定位方法,该方法包括:
7.s1、使用工业相机通过sensor对测试物体在可见光下从任意角度拍摄一张图像;
8.s2、对图像的所有像素点进行滤波,并计算每个像素点的梯度幅值amp,将梯度幅值amp大于等于预设的弱边缘梯度幅值阈值的像素点设为前景点;
9.将二维梯度图像f(x,y)在(x0,y0)处进行二阶泰勒展开得到前景点上的一阶、二阶偏导数g
x
、gy、g
xx
、g
yy
和g
xy
;
10.s3、对上述偏导数使用facet模型计算得到:
[0011][0012]
前景点的法线向量n表示为(n
x
,ny),法线向量n的模为1,对前景点梯度在法线方向上进行泰勒展开计算出该前景点的亚像素坐标;
[0013]
图像二阶导数的极大值与极小值与hessian矩阵的两个特征值分别对应,前景点的法线向量n可以通过求取hessian矩阵最大特征值对应的特征向量得到,hessian矩阵表示为:
[0014][0015]
s4、将亚像素边缘点连接,首先构建选点范围表和选点记录表两个辅助表,其中选点范围表包括所有在前景点的1/2像素范围内的亚像素边缘点坐标,选点记录表记录所有已被提取的亚像素边缘点坐标;
[0016]
从选点范围表第一个满足遍历条件的边缘点开始遍历,寻找脊线,遍历规则包括:选择的当前点必须包含在选点范围表中,且未出现在选点记录表中;
[0017]
选择新的当前点后,计算作为候选点的当前点周围像素的损失函数δloss,将损失函数δloss最小的点作为该脊线的第二个点;损失函数δloss的计算公式如下:
[0018][0019]
其中||p1,p2||2为当前点与候选点的二范数距离,且||p1,p2||2<0.5,||p1,p2||2=100;为当前点与候选点的像素梯度权重,为当前点与候选点的像素梯度权重,为hessian矩阵最大特征值的权重,其中thresh=0.5;
[0020]
一条脊线连接完成后,将该脊线的所有边缘点均写入选点记录表中;
[0021]
s5、将获得的所有脊线以及用到的所有边缘点坐标信息移交至生产线的机械臂;
[0022]
s6、机械臂根据接收到的信息对工业相机的sensor进行操作,完成sensor定位。
[0023]
上述任一项技术方案中,进一步地,步骤s3中计算前景点亚像素坐标的方法包括:对前景点梯度在法线方向上进行泰勒展开:
[0024][0025]
针对边缘点,令可得:
[0026][0027]
则该前景点的亚像素坐标为:
[0028]
(p
x
,py)=(tn
x
+x0,tny+y0)。
[0029]
上述任一项技术方案中,进一步地,步骤s4中确定候选点的方法包括:
[0030]
寻找当前脊线的第二个点时,对起始点周围的八个方向的相邻像素均计算损失函数δloss,将八个损失函数δloss中最小值对应的点作为第二个点;
[0031]
从第三个点的寻找开始,只计算八方向中与上一点的前进方向及与该方向相邻两个方向相邻像素的损失函数δloss,将三个损失函数δloss中最小值对应的点作为下一点。
[0032]
上述任一项技术方案中,进一步地,步骤s4中,边缘点连线的停止条件包括:损失函数δloss最小的候选点出现在选点记录表中,此时将最后找到的候选点作为终止点并于上一点连线,使两条脊线互相连接;损失函数δloss最小的候选点位置在图像边界外。
[0033]
上述任一项技术方案中,进一步地,步骤s4中边缘点连线停止后,判断该脊线终止点与起始点不是同一个点时,从终止点开始朝起始点进行一次反向连线。
[0034]
上述任一项技术方案中,进一步地,步骤s2中对图像所有像素点滤波采用sobel滤波,sobel滤波的梯度幅值amp和角度dir的计算方式为:
[0035]
amp=(|dx|+|dy|)/4
[0036]
dir=atan2(dy,dx)
[0037]
若该像素点的梯度幅值amp小于预设的弱边缘梯度幅值阈值,则不对该点计算角度dir。
[0038]
上述任一项技术方案中,进一步地,步骤s2中将二维梯度图像f(x,y)在(x0,y0)处进行二阶泰勒展开的算式为:
[0039][0040]
其中g
x
和gy为前景点上的一阶偏导数,g
xx
、g
yy
和g
xy
为前景点上的二阶偏导数。
[0041]
上述任一项技术方案中,进一步地,步骤s3对偏导数进行facet模型计算过程中,g
x
、gy、g
xx
和g
yy
的卷积模板系数均为1/6,g
xy
的卷积模板系数为1/4。
[0042]
上述任一项技术方案中,进一步地,步骤s3中亚像素的精度输入值为1/2,即:
[0043]
|tn
x
|≤0.5,|tny|≤0.5。
[0044]
上述任一项技术方案中,进一步地,步骤s4中点范围表使用行程编码构造。
[0045]
本发明的有益效果是:
[0046]
本发明的技术方案通过常见简单边缘检测算子计算图像梯度,通过预设阈值对梯度图进行阈值分割获得前景区域,计算前景点的亚像素信息,通过联合损失函数动态提取边缘脊线,该方案将像素级、亚像素级的边缘提取融合为了一步操作,并且使用联合损失函数将不会出现“粗”的脊线。
附图说明
[0047]
本发明的上述和附加方面的优点在结合下面附图对实施例的描述中将变得明显和容易理解,其中:
[0048]
图1是根据本发明的一个实施例的基于工业相机的高精度生产线sensor快速定位方法的流程图;
[0049]
图2是根据本发明的一个实施例的基于工业相机的高精度生产线sensor快速定位
方法的sobel滤波模板;
[0050]
图3是根据本发明的一个实施例的基于工业相机的高精度生产线sensor快速定位方法的facet卷积模板;
[0051]
图4是根据本发明的一个实施例的基于工业相机的高精度生产线sensor快速定位方法的像素编号示意图;
[0052]
图5是根据本发明的一个实施例的基于工业相机的高精度生产线sensor快速定位方法的寻找后续像素的编号示意图;
[0053]
图6是根据本发明的一个实施例的基于工业相机的高精度生产线sensor快速定位方法的边缘点连线流程图。
具体实施方式
[0054]
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互结合。
[0055]
在下面的描述中,阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
[0056]
如图1所示,本实施例提供了一种基于工业相机的高精度生产线sensor快速定位方法,该方法包括:
[0057]
s1、使用工业相机通过sensor对测试物体在可见光下从任意角度拍摄一张图像。
[0058]
在本实施例中,生产线上的工业相机为可见光波段的可与上位机通信的面阵工业相机,本实施例提供的方法适用于绝大多数工业相机。
[0059]
s2、对步骤s1中拍摄的图像进行滤波,本实施例使用快速sobel计算对图像的所有像素点进行滤波,sobel滤波模板如图2所示,sobel滤波的梯度幅值amp和角度dir的计算方式为:
[0060]
amp=(|dx|+|dy|)/4
[0061]
dir=atan2(dy,dx)
[0062]
首先计算像素点的梯度幅值amp,将计算结果与预设的弱边缘梯度幅值阈值比较,若该像素点的梯度幅值amp小于预设阈值,则不对该点计算角度dir,将梯度幅值amp大于等于预设阈值的像素点设为前景点。
[0063]
对前景点进行亚像素信息计算,将二维梯度图像f(x,y)在(x0,y0)处进行二阶泰勒展开:
[0064][0065]
其中g
x
、gy、g
xx
、g
yy
和g
xy
分别为前景点上的一阶、二阶偏导数。
[0066]
s3、对步骤s2中得到前景点上的一阶、二阶偏导数g
x
、gy、g
xx
、g
yy
和g
xy
使用facet模
=100;为当前点与候选点的像素梯度权重,为当前点与候选点的像素梯度权重,为hessian矩阵最大特征值的权重,其中thresh=0.5。
[0083]
从第三个点的寻找开始,由于图像的边缘轮廓在像素层级不会发生过大的弯曲,如图4所示,将一个像素周围的八个方向的相邻像素进行编号,只计算上一点对应编号以及该编号相邻的两个编号,共三个编号对应像素的损失函数δloss即可,例如第二点是第一点的a编号像素的话,寻找第三点只需计算第二点的b、a、h三个方向像素的损失函数δloss即可,如图5所示,若以第一点为参照,则上述举例中第三点的选择范围为b1、a1、h1三个像素。
[0084]
边缘点连线的停止条件包括:损失函数δloss最小的候选点出现在选点记录表中,此时将最后找到的候选点作为终止点并于上一点连线,使两条脊线互相连接;损失函数δloss最小的候选点位置在图像边界外。
[0085]
如图5所示,边缘点连线的整体流程中还包括反向连线:在一条脊线找到终止点后,若终止点与该脊线的起始点不是同一点,则从终止点开始,反向连线一次,此过程的目的是将起始点也与其他脊线连接;一条脊线连接完成后,将该脊线的所有边缘点均写入选点记录表中。
[0086]
s5、将步骤s4中获得的所有脊线以及用到的所有边缘点坐标信息移交至生产线的机械臂。
[0087]
s6、机械臂根据接收到的信息对工业相机的sensor进行操作,完成sensor定位。
[0088]
综上所述,本发明提出了一种基于工业相机的高精度生产线sensor快速定位方法,包括:
[0089]
s1、使用工业相机通过sensor对测试物体在可见光下从任意角度拍摄一张图像。
[0090]
s2、对图像的所有像素点进行滤波,并计算每个像素点的梯度幅值amp,将梯度幅值amp大于等于预设的弱边缘梯度幅值阈值的像素点设为前景点。
[0091]
将二维梯度图像f(x,y)在(x0,y0)处进行二阶泰勒展开得到前景点上的一阶、二阶偏导数g
x
、gy、g
xx
、g
yy
和g
xy
。
[0092]
s3、对上述偏导数使用facet模型计算得到:
[0093][0094]
前景点的法线向量n表示为(n
x
,ny),法线向量n的模为1,对前景点梯度在法线方向上进行的泰勒展开式为:
[0095][0096]
针对边缘点,令可得:
[0097][0098]
则该前景点的亚像素坐标为:
[0099]
(p
x
,py)=(tn
x
+x0,thy+y0)
[0100]
图像二阶导数的极大值与极小值与hessian矩阵的两个特征值分别对应,前景点的法线向量n可以通过求取hessian矩阵最大特征值对应的特征向量得到,hessian矩阵表示为:
[0101][0102]
s4、将亚像素边缘点连接,首先构建选点范围表和选点记录表两个辅助表,其中选点范围表包括所有在前景点的1/2像素范围内的亚像素边缘点坐标,选点记录表记录所有已被提取的亚像素边缘点坐标。
[0103]
从选点范围表第一个满足遍历条件的边缘点开始遍历,寻找脊线,遍历规则包括:选择的当前点必须包含在选点范围表中,且未出现在选点记录表中。
[0104]
选择新的当前点后,计算作为候选点的当前点周围像素的损失函数δloss,将损失函数δloss最小的点作为该脊线的第二个点;损失函数δloss的计算公式如下:
[0105][0106]
其中||p1,p2||2为当前点与候选点的二范数距离,且||p1,p2||2<0.5,||p1,p2||2=100;为当前点与候选点的像素梯度权重,为当前点与候选点的像素梯度权重,为hessian矩阵最大特征值的权重,其中thresh=0.5。
[0107]
一条脊线连接完成后,将该脊线的所有边缘点均写入选点记录表中。
[0108]
s5、将获得的所有脊线以及用到的所有边缘点坐标信息移交至生产线的机械臂。
[0109]
s6、机械臂根据接收到的信息对工业相机的sensor进行操作,完成sensor定位。
[0110]
本发明中的步骤可根据实际需求进行顺序调整、合并和删减。
[0111]
尽管参考附图详地公开了本发明,但应理解的是,这些描述仅仅是示例性的,并非用来限制本发明的应用。本发明的保护范围由附加权利要求限定,并可包括在不脱离本发明保护范围和精神的情况下针对发明所作的各种变型、改型及等效方案。
技术特征:
1.一种基于工业相机的高精度生产线sensor快速定位方法,其特征在于,所述方法包括:s1、使用工业相机通过sensor对测试物体在可见光下从任意角度拍摄一张图像;s2、对所述图像的所有像素点进行滤波,并计算每个像素点的梯度幅值amp,将梯度幅值amp大于等于预设的弱边缘梯度幅值阈值的像素点设为前景点;将二维梯度图像f(x,y)在(x0,y0)处进行二阶泰勒展开得到前景点上的一阶、二阶偏导数g
x
、g
y
、g
xx
、g
yy
和g
xy
;s3、对上述前景点的一阶、二阶偏导数使用facet模型计算得到:前景点的法线向量n表示为(n
x
,n
y
),法线向量n的模为1,对前景点梯度在法线方向上进行泰勒展开计算出该前景点的亚像素坐标;图像二阶导数的极大值与极小值与hessian矩阵的两个特征值分别对应,前景点的法线向量n可以通过求取hessian矩阵最大特征值对应的特征向量得到,hessian矩阵表示为:s4、将亚像素边缘点连接,首先构建选点范围表和选点记录表两个辅助表,其中所述选点范围表包括所有在前景点的1/2像素范围内的亚像素边缘点坐标,所述选点记录表记录所有已被提取的亚像素边缘点坐标;从所述选点范围表第一个满足遍历条件的边缘点开始遍历,寻找脊线,所述遍历规则包括:选择的当前点必须包含在所述选点范围表中,且未出现在所述选点记录表中;选择新的当前点后,计算作为候选点的当前点周围像素的损失函数δloss,将损失函数δloss最小的点作为该脊线的第二个点;损失函数δloss的计算公式如下:其中||p1,p2||2为当前点与候选点的二范数距离,且||p1,p2||2<0.5,||p1,p2||2=100;为当前点与候选点的像素梯度权重,为当前点与候选点的像素梯度权重,为hessian矩阵最大特征值的权重,其中thresh=0.5;一条脊线连接完成后,将该脊线的所有边缘点均写入选点记录表中;s5、将获得的所有脊线以及用到的所有边缘点坐标信息移交至生产线的机械臂;s6、所述机械臂根据接收到的信息对工业相机的sensor进行操作,完成sensor定位。2.如权利要求1所述的基于工业相机的高精度生产线sensor快速定位方法,其特征在于,所述步骤s3中计算前景点亚像素坐标的方法包括:对前景点梯度在法线方向上进行泰勒展开:
针对边缘点,令可得:则该前景点的亚像素坐标为:(p
x
,p
y
)=(tn
x
+x0,tn
y
+y0)。3.如权利要求1所述的基于工业相机的高精度生产线sensor快速定位方法,其特征在于,所述步骤s4中确定候选点的方法包括:寻找当前脊线的第二个点时,对起始点周围的八个方向的相邻像素均计算损失函数δloss,将八个损失函数δloss中最小值对应的点作为第二个点;从第三个点的寻找开始,只计算八方向中与上一点的前进方向及与该方向相邻两个方向相邻像素的损失函数δloss,将三个损失函数δloss中最小值对应的点作为下一点。4.如权利要求1所述的基于工业相机的高精度生产线sensor快速定位方法,其特征在于,所述步骤s4中,边缘点连线的停止条件包括:损失函数δloss最小的候选点出现在所述选点记录表中,此时将最后找到的候选点作为终止点并于上一点连线,使两条脊线互相连接;损失函数δloss最小的候选点位置在图像边界外。5.如权利要求4所述的基于工业相机的高精度生产线sensor快速定位方法,其特征在于,所述步骤s4中边缘点连线停止后,判断该脊线终止点与起始点不是同一个点时,从终止点开始朝起始点进行一次反向连线。6.如权利要求1所述的基于工业相机的高精度生产线sensor快速定位方法,其特征在于,所述步骤s2中对所述图像所有像素点滤波采用sobel滤波,sobel滤波的梯度幅值amp和角度dir的计算方式为:amp=(|dx|+|dy|)/4dir=atan2(dy,dx)若该像素点的梯度幅值amp小于预设的弱边缘梯度幅值阈值,则不对该点计算角度dir。7.如权利要求1所述的基于工业相机的高精度生产线sensor快速定位方法,其特征在于,所述步骤s2中将二维梯度图像f(x,y)在(x0,y0)处进行二阶泰勒展开的算式为:
其中g
x
和g
y
为前景点上的一阶偏导数,g
xx
、g
yy
和g
xy
为前景点上的二阶偏导数。8.如权利要求1所述的基于工业相机的高精度生产线sensor快速定位方法,其特征在于,所述步骤s3对偏导数进行facet模型计算过程中,g
x
、g
y
、g
xx
和g
yy
的卷积模板系数均为1/6,g
xy
的卷积模板系数为1/4。9.如权利要求1所述的基于工业相机的高精度生产线sensor快速定位方法,其特征在于,所述步骤s3中亚像素的精度输入值为1/2,即:|tn
x
|≤0.5,|tn
y
|≤0.5。10.如权利要求1所述的基于工业相机的高精度生产线sensor快速定位方法,其特征在于,所述步骤s4中所述点范围表使用行程编码构造。
技术总结
本发明公开了一种基于工业相机的高精度生产线sensor快速定位方法,涉及工业相机的技术领域,该方法包括:使用工业相机通过sensor对测试物体在可见光下从任意角度拍摄一张图像;对图像的所有像素点进行滤波,并计算每个像素点的梯度幅值,将梯度幅值大于等于预设的弱边缘梯度幅值阈值的像素点设为前景点;对滤波结果使用facet模型快速拟合,得到符合条件的亚像素点设为边缘点;对所有边缘点遍历寻找脊线并连接,将所有在脊线上的边缘点坐标进行记录;将获得的所有脊线以及用到的所有边缘点坐标信息移交至生产线的机械臂;机械臂根据接收到的信息对工业相机的sensor进行操作,完成sensor定位。sensor定位。sensor定位。
技术研发人员:王艳军 高晓阳 刘敏 易天格
受保护的技术使用者:北京大恒图像视觉有限公司
技术研发日:2023.04.03
技术公布日:2023/7/12
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
