发明内容
本发明提供一种法兰零件轮廓视觉定位方法,该方案能够得到完整的轮廓信息。
本申请提供一种法兰零件轮廓视觉定位方法,包括:
获取法兰零件的图像,并将所述图像转化为灰度图像;
基于所述灰度图像确定卷积核大小;
基于所述卷积核内像素点的分布特征确定权重修改值;
利用所述权重修改值对初始sobel算子进行优化,利用优化后的sobel算子对所述法兰零件进行处理,以获取所述法兰零件对应的轮廓信息。
在一可选实施例中,基于所述灰度图像确定卷积核大小,包括:
在所述灰度图像中利用两个平行滑动的窗口在滑动过程中检测窗口内的像素点的灰度值,进而确定突变像素点,所述突变像素点为灰度值从0跳变到预设值时,所述预设值对应的像素点;
将所述突变像素点连线,将所述连线的垂线确定法线;
基于所述法线确定所述法兰零件的局部区域;
基于所述局部区域确定所述卷积核大小。
在一可选实施例中,基于所述局部区域确定所述卷积核大小,包括:
基于所述局部区域中不同灰度值出现的概率计算所述局部区域的熵;
确定所述局部区域的熵从0变化为不为0时的第一像素点,以及确定所述局部区域的熵从不为0变化为0时的第二像素点;
确定所述第一像素点以及第二像素点的距离,所述距离为所述卷积核大小。
在一可选实施例中,基于所述局部区域中不同灰度值出现的概率计算所述局部区域的熵,包括:
利用如下公式(1)计算所述局部区域的熵:
其中,
表示不同局部区域
的熵;
表示局部区域不同灰度值出现的概率;
表示不同灰度值的数量。
在一可选实施例中,基于所述卷积核内像素点的分布特征确定权重修改值,包括:
基于所述卷积核内的熵、所述卷积核内像素点灰度值的最大值、最小值判断标记卷积核中中心像素点的必要性;
如果标记必要性处于第一预设范围,则不标记,如果标记必要性处于第二预设范围,则标记;
将标记的像素点两两连接,确定法兰零件的形状;
基于所述形状确定所述权重修改值。
在一可选实施例中,将标记的像素点两两连接,确定法兰零件的形状,包括:
将标记的像素点两两连接,得到连接线;
确定连接线的法线,所述法线经过所述连接线的中点;
如果所述所有法线相交于一点,则表示所述法兰零件为圆形轮廓;如果所有法线相互平行,则表示所述法兰零件为矩形轮廓。
在一可选实施例中,基于所述形状确定所述权重修改值,包括:
如果所述法兰零件为圆形轮廓,将所述连接线组成方向上的权重增加,将其余方向上的权重减小,进而确定权重修改值。
在一可选实施例中,利用优化后的sobel算子对所述法兰零件进行处理,以获取所述法兰零件对应的轮廓信息,包括:
利用优化后的sobel算子对所述法兰零件进行处理,得到梯度输出值;
基于所述梯度输出值确定所述法兰零件对应的轮廓信息。
在一可选实施例中,利用优化后的sobel算子对所述法兰零件进行处理,得到梯度输出值,包括:
利用如下公式(2)得到梯度输出值:
其中,
表述sobel算子的梯度输出值,
分别表示
4个方向上的分量;
分别表示4个方向的权重修改值,在初始sobel算子中,
,n表示连接线组成方向上标记的像素点数量,优化后的sobel算子中,
。
在一可选实施例中,基于所述卷积核内的熵、所述卷积核内像素点灰度值的最大值、最小值判断标记卷积核中中心像素点的必要性,包括:
利用如下公式(3)计算标记卷积核中中心像素点的必要性:
其中,
表示标记卷积核中中心像素点的必要性,
表示卷积核内不同灰度值的像素点;
表示卷积核中不同灰度值的像素点出现的概率,
分别表示卷积核内像素点灰度值的最大值和最小值。
本发明的有益效果是:区别于现有技术,本发明提出的法兰零件轮廓视觉定位方法,包括:获取法兰零件的图像,并将所述图像转化为灰度图像;基于所述灰度图像确定卷积核大小;基于所述卷积核内像素点的分布特征确定权重修改值;利用所述权重修改值对初始sobel算子进行优化,利用优化后的sobel算子对所述法兰零件进行处理,以获取所述法兰零件对应的轮廓信息。该方案能够得到完整的轮廓信息。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面结合附图和实施例对本发明进行详细的说明。
请参见图1,为本申请法兰零件轮廓视觉定位方法的一实施例的流程示意图,具体包括:
步骤S11:获取法兰零件的图像,并将所述图像转化为灰度图像。
具体的,采集法兰零件的图像,为使得像素点之间对比度增加,方便后续的算子的改进,对采集的图像进行灰度化后均衡化的处理,得到灰度图像,后续处理都基于灰度图像进行展开分析。
步骤S12:基于所述灰度图像确定卷积核大小。
对预处理后图像进行初步分析,得到法兰边缘处先验特征,获取先验特征的目的是得到法兰边缘的宽度,从而使得算计的卷积核能够包揽边缘,一般sobel算子卷积核大小为
,为防止局部区域边缘宽度大于
,此处需要确定卷积核大小,使得卷积核包揽边缘。而使得卷积核包揽边缘的目的是能够在算子运算的过程中,其卷积核内像素点能够完整地反映出边缘部分,从而根据先验特征判断卷积核内像素点灰度值的分布是否满足法兰边缘处像素点分布的规律。先验特征指“法兰边缘处与背景处的灰度值差值是巨大的,并且边缘具有一定宽度,在指定宽度内,其灰度变化是渐进的”。通过量化上述灰度差和渐进的灰度变化,得到边缘的初步宽度,此处得到的边缘为较模糊边缘,主要目的是确定其宽度,使得卷积核大小为边缘宽,从而使得其能够完全涵盖边缘处,方便后续步骤的展开分析。
具体的,请结合图2,步骤S12具体包括:
步骤S21:在所述灰度图像中利用两个平行滑动的窗口在滑动过程中检测窗口内的像素点的灰度值,进而确定突变像素点,所述突变像素点为灰度值从0跳变到预设值时,所述预设值对应的像素点。
具体的,在灰度图像中,其背景灰度值为0,取两个平行滑动的滑窗,使得其在滑动过程中检测窗口内像素点灰度值,如果窗口内灰度值从0跳变到预设值,则将0跳变到预设值时的预设值对应的像素点确定为突变像素点。也就是说,将0跳变到预设值的第一个像素点确定为突变像素点。
步骤S22:将所述突变像素点连线,将所述连线的垂线确定法线。
将突变像素点连线,此连线的垂线即为灰度值差值较大区域的法线。
步骤S23:基于所述法线确定所述法兰零件的局部区域。
得到法线方向后,规定与法线方向一致的
区域为法线组成局部区域,即法兰零件的局部区域。具体的,局部区域中的中间像素点经过法线。
步骤S24:基于所述局部区域确定所述卷积核大小。
具体的,基于所述局部区域中不同灰度值出现的概率计算所述局部区域的熵。在一实施例中,利用如下公式(1)计算所述局部区域的熵:
其中,
表示不同局部区域
的熵;
表示局部区域不同灰度值出现的概率;
表示不同灰度值的数量。
当窗口在背景部分时,
,当窗口在前景部分,但不处于边缘部分时,其
;当窗口在边缘区域,由于窗口内灰度变化,其
。基于此,确定所述局部区域的熵
从0变化为不为0时的第一像素点,以及确定所述局部区域的熵
从不为0变化为0时的第二像素点。确定所述第一像素点以及第二像素点的距离
,所述距离
为所述卷积核大小,即卷积核的大小为
。在一具体实施例中,n取值为5。
步骤S13:基于所述卷积核内像素点的分布特征确定权重修改值。
上述步骤S12获得卷积核的大小,已经可以包含基本边缘的宽度,所以步骤S13中可以直接分析卷积核内像素点的分布特征,分析其是否满足边缘像素点分布的先验规律。
在一具体实施例中,请结合图3,步骤S13具体包括:
步骤S31:基于所述卷积核内的熵、所述卷积核内像素点灰度值的最大值、最小值判断标记卷积核中中心像素点的必要性。
确定卷积核中中心像素点的标记必要性的目的是将核内分布特征满足先验特征的点进行必要性高的划分,从而将这些点认为是满足边缘规律的点,并将这一系列的点进行连线,量化其在空域中的基本分布形式,进一步确定其满足边缘规律。
对于满足这些规律的点,因为其在某一段可能会因为视角问题造成边缘的缺失,所以需要进行梯度权重的划分,将边缘处梯度占比放大,从而在最终的输出结果中,可以解决边缘缺失的问题,达到良好的边缘检测效果。
在一具体实施例中,利用如下公式(3)计算标记卷积核中中心像素点的必要性:
其中,
表示标记卷积核中中心像素点的必要性,
表示卷积核内不同灰度值的像素点;
表示卷积核中不同灰度值的像素点出现的概率,
分别表示卷积核内像素点灰度值的最大值和最小值。
步骤S32:如果标记必要性处于第一预设范围,则不标记,如果标记必要性处于第二预设范围,则标记。
可以理解的,卷积核内的熵越大,则标记必要性越大,所以成正比,因为在边缘处,其像素点灰度值的分布相较于前景或背景,是较为离散的。其中,熵的范围为
;最大值和最小值之间的的差值越大,其标记必要性也就越大。因为在边缘处,像素点灰度值分布较离散,边缘处灰度值普遍低于前景、普遍高于背景;均值
越大,则标记必要性越小,因为在前景处,其灰度值均值明显高于边缘处(存在低灰度值点)。
具体的,标记必要性
越接近1,标记必要性就越大。因此,在一实施例中,如果标记必要性处于第一预设范围,则不标记,如果标记必要性处于第二预设范围,则标记。需要说明的是,第二预设范围更接近1。在一具体实施例中,第一预设范围为[0,0.8],第二预设范围为(0.8,1]。即
时,不进行标记,如果
时,则进行标记。对像素点进行标记的目的是分析所有标记点在空域中的基本分布形式,或者分布规律,判断是否满足法兰轮廓的基本结构,如圆、矩形等等。若满足基本结构,那么需要对其梯度权重进行重构,重构的目的是使得边缘不完整的部分经过重构后sobel算子的输出结果能够对其补全,达到补充不完整边缘的目的。
步骤S33:将标记的像素点两两连接,确定法兰零件的形状。
在对像素点进行标记后,需要量化标记的像素点在空域中构成的形状,从而根据形状得到梯度权重的修改值。
在一实施例中,量化的方式为:将标记的像素点两两连接,得到连接线;确定连接线的法线,所述法线经过所述连接线的中点。连接完成后,分析所有法线之间的相交程度。如果所述所有法线相交于一点,则表示所述法兰零件为圆形轮廓;如果所有法线相互平行,则表示所述法兰零件为矩形轮廓。对于此场景下的圆形轮廓法兰,本方案最终目的是补全边缘轮廓不完整的地方,所以此时需要根据形状修改梯度权重修改值,达到补全轮廓缺陷的目的。
步骤S34:基于所述形状确定所述权重修改值。
步骤S12中已经确定算子的卷积核大小,此时需要确定算子的计算方式和输出结果,计算方式由基本轮廓确定,如圆形法兰轮廓下,计算方式需围绕圆形规律进行权重的添加,使得输出结果能够补全缺陷处。其中,围绕圆形规律进行权重添加的方式为:卷积核可以完全包揽边缘宽度,一般梯度输出为中心像素处的上下两个像素点灰度值相比,此处为了迎合圆形规律,将由标记的像素点连线组成方向上的权重进行增加,从而能够使得增加后输出值更符合圆形法兰轮廓。
在一实施例中,请结合图4,其中在3π/4方向上,具有标记的像素点的连线,且标记的像素点的连线为梯度方向,将标记的像素点连线方向上的权重值增加,得到权重修改值。
步骤S14:利用所述权重修改值对初始sobel算子进行优化,利用优化后的sobel算子对所述法兰零件进行处理,以获取所述法兰零件对应的轮廓信息。
具体的,利用优化后的sobel算子对所述法兰零件进行处理,得到梯度输出值;基于所述梯度输出值确定所述法兰零件对应的轮廓信息。
在一实施例中,利用如下公式(2)得到梯度输出值:
其中,
表述sobel算子的梯度输出值,
分别表示
4个方向上的分量;
分别表示4个方向的权重修改值,在初始sobel算子中,
,n表示连接线组成方向上标记的像素点数量,优化后的sobel算子中,
。
至此,通过量化卷积核内像素点分布的基本特征,得到输出点标记的必要性,并量化标记点在空域中的分布形式,确定了权重的修改值。
将原算子分为两类,一类为原梯度输出,即此时算子内不存在标记点;二类为包含权重的梯度输出,即此时算子内存在标记点。将此逻辑添加到sobel算子,得到优化后的带有权重的算子。利用优化后的sobel算子对所述法兰零件进行处理,得到梯度输出值;基于所述梯度输出值确定所述法兰零件对应的轮廓信息。以此能够得到完成的边缘轮廓图像。
本申请的方法,能够通过分析并量化法兰零件的先验特征,并用于判断算子卷积核内像素点分布方式是否满足先验特征,从而进行后续对输出点标记必要性的判断和权重的修改。对比于直接使用sobel算子进行轮廓的提取,此方法能够通过标记输出点,并分析输出点的分布形式,从而获得卷积核内各个方向的权重,使得此权重对应到原图中能够识别轮廓并补充其残缺的部分,有效地解决检测出的轮廓不清晰、残缺的问题。
以上仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。