一种用于机器视觉的螺纹旋向识别方法与系统转让专利

申请号 : CN202110966438.5

文献号 : CN113902667B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 白剑宇王佳慧白昊天文世挺杨劲秋

申请人 : 浙大宁波理工学院

摘要 :

本发明公开了一种用于机器视觉的螺纹旋向识别方法,涉及图像视觉技术领域,主要包括步骤:获取经灰度化处理后的螺纹区域灰度图像;根据灰度图像通过大津法进行自适应阈值的划定,并提取灰度图像中灰度值超过自适应阈值的部分作为螺纹图像,而后通过Canny算子提取螺纹图像中的螺纹外轮廓;根据灰度图像进行顶帽运算获取灰度图像中的螺旋线区域图像,并以两遍遍历法作为连通域搜索算法对螺旋线轮廓图进行连通区域阈值内的二次降噪,获得螺旋线轮廓;通过霍夫直线拟合算法提取螺纹外轮廓中的基准直线和螺旋线轮廓中的螺旋直线;根据旋向趋势进行旋向划分。本发明根据螺纹螺旋线的分布特点设计了螺纹旋向识别算法,解决了人工旋向识别的问题。

权利要求 :

1.一种用于机器视觉的螺纹旋向识别方法,其特征在于,包括步骤:获取经灰度化处理后的螺纹区域灰度图像;

根据灰度图像通过大津法进行自适应阈值的划定,并提取灰度图像中灰度值超过自适应阈值的部分作为螺纹图像,而后通过Canny算子提取螺纹图像中的螺纹外轮廓;

根据灰度图像进行顶帽运算获取灰度图像中的螺旋线区域图像,并以两遍遍历法作为连通域搜索算法对螺旋线区域图像进行连通区域阈值内的二次降噪,获得螺旋线轮廓;

通过霍夫直线拟合算法提取螺纹外轮廓中的基准直线和螺旋线轮廓中的螺旋直线;

判断螺旋直线相较于基准直线的旋转趋势,若旋转趋势为逆时针,则判断为螺纹旋向为右旋,否则螺纹旋向为左旋;

所述两遍遍历法为连通域搜索算法,用于实现连通域搜索及像素点数目统计。

2.如权利要求1所述的一种用于机器视觉的螺纹旋向识别方法,其特征在于,所述自适应阈值的求解公式组如下:式中,定义灰度值在0~m之间,N为总像素数目,ni为灰度值为i的像素数,th为自适应阈值大小, 为灰度为i的像素出现的概率,P0为像素灰度在0~th部分出现的概率 ,P1为像素灰度在th+1~m部分出现的概率并与P0互补,u0为灰度值th以下像素的灰度均值,u1为灰度值th以上像素的灰度均值,uth为自适应阈值为th时灰度均值,u为整个图像的灰度均值, 为方差。

3.如权利要求1所述的一种用于机器视觉的螺纹旋向识别方法,其特征在于,所述通过Canny算子提取螺纹图像中的螺纹外轮廓具体包括步骤:对螺纹图像进行高斯平滑处理;

提取平滑处理后螺纹图像的灰度梯度幅值及方向;

根据灰度梯度幅值及方向,通过非极大值抑制法保留螺纹外轮廓候选区域;

通过双阈值法在外轮廓候选区域中提取螺纹外轮廓。

4.如权利要求1所述的一种用于机器视觉的螺纹旋向识别方法,其特征在于,所述顶帽运算的公式组表达式如下:式中,top为顶帽运算,open为开运算,A为进行顶帽运算的灰度图像,B为开运算的核;

为腐蚀符号,用于求局部最小值; 为膨胀符号,用于求局部最大值。

5.如权利要求1所述的一种用于机器视觉的螺纹旋向识别方法,其特征在于,所述通过霍夫直线拟合算法提取螺纹外轮廓中的基准直线和螺旋线轮廓中的螺旋直线的步骤中,具体包括步骤:获取螺纹图像的黑色像素分步图;

提取黑色像素分布图中黑色像素区域左右边界,黑色像素最高分步点半值处之间的间隔为模拟螺旋线长度;

以预设比例的模拟螺旋线长度为霍夫直线拟合算法的长度阈值进行基准直线和螺旋直线的提取。

6.如权利要求5所述的一种用于机器视觉的螺纹旋向识别方法,其特征在于,在获取所述螺旋线轮廓中的螺旋直线前,还包括步骤:提取螺旋线轮廓中长度不低于长度阈值的直线加入筛选列表;

获取筛选列表中直线的平均斜率和标准差;

筛选出筛选列表中符合3 原则的直线作为霍夫直线拟合算法的数据输入;

所述3 原则为将斜率小于μ‑3 、大于μ+3 的值判定是坏值,不参与旋向判断,其中μ为平均斜率, 为标准差。

7.一种用于机器视觉的螺纹旋向识别系统,其特征在于,包括:外轮廓提取模块,用于根据灰度图像通过大津法进行自适应阈值的划定,并提取灰度图像中灰度值超过自适应阈值的部分作为螺纹图像,而后通过Canny算子提取螺纹图像中的螺纹外轮廓;

螺旋线提取模块,用于根据灰度图像进行顶帽运算获取灰度图像中的螺旋线区域图像,并以两遍遍历法作为连通域搜索算法对螺旋线区域图像进行连通区域阈值内的二次降噪,获得螺旋线轮廓;

直线提取模块,用于通过霍夫直线拟合算法提取螺纹外轮廓中的基准直线和螺旋线轮廓中的螺旋直线;

旋向判定模块,用于根据螺旋直线相较于基准直线的旋转趋势,在旋转趋势为逆时针时输出右旋结果,在轩主趋势为顺时针时输出左旋结果;

所述两遍遍历法为连通域搜索算法,用于实现连通域搜索及像素点数目统计。

8.如权利要求7所述的一种用于机器视觉的螺纹旋向识别系统,其特征在于,所述外轮廓提取模块在通过Canny算子提取螺纹图像中的螺纹外轮廓时具体包括:高斯单元,用于对螺纹图像进行高斯平滑处理;

数据提取单元,用于提取平滑处理后螺纹图像的灰度梯度幅值及方向;

区域框定单元,用于根据灰度梯度幅值及方向,通过非极大值抑制法保留螺纹外轮廓候选区域;

轮廓提取单元,用于通过双阈值法在外轮廓候选区域中提取螺纹外轮廓。

9.如权利要求7所述的一种用于机器视觉的螺纹旋向识别系统,其特征在于,所述直线提取模块中具体包括:图像转换单元,用于将螺纹图像根据其黑色像素的分步情况转换为黑色像素分步图;

长度判定单元,用于提取黑色像素分布图中黑色像素区域左右边界,并将黑色像素最高分步点半值处之间的间隔作为模拟螺旋线长度;

直线提取单元,用于以预设比例的模拟螺旋线长度为霍夫直线拟合算法的长度阈值进行基准直线和螺旋直线的提取。

10.如权利要求9所述的一种用于机器视觉的螺纹旋向识别系统,其特征在于,还包括直线过滤单元,用于筛选出螺旋线轮廓中长度不低于长度阈值的直线,并根据筛选结果的平均斜率和标准差,提取出符合3 原则的直线作为直线提取单元在获取所述螺旋线轮廓中螺旋直线时的数据输入;

所述3 原则为将斜率小于μ‑3 、大于μ+3 的值判定是坏值,不参与旋向判断,其中μ为平均斜率, 为标准差。

说明书 :

一种用于机器视觉的螺纹旋向识别方法与系统

技术领域

[0001] 本发明涉及图像视觉技术领域,具体涉及一种用于机器视觉的螺纹旋向识别方法与系统。

背景技术

[0002] 目前应用于军事及航天航空领域的螺纹生产过程中,借助了各种形式的先进设备,多种螺纹检测手段相结合,基本满足了行业精度需求。光学仪器及计算机技术的迅猛发展,使得工业检测领域趋于自动化、智能化。目前的螺纹检测方式主要以机器视觉检测为主,传统视觉算法在提取颜色、角度、长度等量化特征方面有较大的优势,常用于螺纹尺寸检测领域;深度学习方法则善于提取难以量化的、深度语义的特征,因此多应用于缺陷检测领域,借助计算机强大的算力,在检测精度和速度上有较大优势。但考虑到部分工件存在不同旋向的同种螺纹设置,如自行车两侧的踏板,就需要通过不同的旋向来满足其踏板的安装需求,而目前解决该问题的方法通常为人工识别,通过机器视觉进行螺纹旋向识别的方法较少,同时也不够完善,存在较大的改善区间。

发明内容

[0003] 为了实现根据机器视觉对螺纹旋向的准确识别,本发明提出了一种用于机器视觉的螺纹旋向识别方法,包括步骤:
[0004] 获取经灰度化处理后的螺纹区域灰度图像;
[0005] 根据灰度图像通过大津法进行自适应阈值的划定,并提取灰度图像中灰度值超过自适应阈值的部分作为螺纹图像,而后通过Canny算子提取螺纹图像中的螺纹外轮廓;
[0006] 根据灰度图像进行顶帽运算获取灰度图像中的螺旋线区域图像,并以两遍遍历法作为连通域搜索算法对螺旋线轮廓图进行连通区域阈值内的二次降噪,获得螺旋线轮廓;
[0007] 通过霍夫直线拟合算法提取螺纹外轮廓中的基准直线和螺旋线轮廓中的螺旋直线;
[0008] 判断螺旋直线相较于基准直线的旋转趋势,若旋转趋势为逆时针,则判断为螺纹旋向为右旋,否则螺纹旋向为左旋。
[0009] 进一步地,所述自适应阈值的求解公式组如下:
[0010] grayi=ni/N,
[0011]
[0012]
[0013] σ2(th)=P0(u‑u0)2+P1(u1‑u)2;
[0014] 式中,定义灰度值在0~m之间,N为总像素数目,ni为灰度值为i的像素数,th为自适应阈值大小,grayi为灰度为i的像素出现的概率,P0为像素灰度在0~th部分出现的概率ω(th),P1为像素灰度在th+1~m部分出现的概率并与P0互补,u0为灰度值th以下像素的灰度均值,u1为灰度值th以上像素的灰度均值,uth为自适应阈值为th时灰度均值,u为整个图2
像的灰度均值,σ(th)为方差。
[0015] 进一步地,所述通过Canny算子提取螺纹图像中的螺纹外轮廓具体包括步骤:
[0016] 对螺纹图像进行高斯平滑处理;
[0017] 提取平滑处理后螺纹图像的灰度梯度幅值及方向;
[0018] 根据灰度梯度幅值及方向,通过非极大值抑制法保留螺纹外轮廓候选区域;
[0019] 通过双阈值法在外轮廓候选区域中提取螺纹外轮廓。
[0020] 进一步地,所述顶帽运算的公式组表达式如下:
[0021] top(A)=A‑open(A,B),
[0022] open(A,B)=(AΘB)⊕B;
[0023] 式中,top为顶帽运算,open为开运算,A为进行顶帽运算的灰度图像,B为开运算的核。
[0024] 进一步地,所述通过霍夫直线拟合算法提取螺纹外轮廓中的基准直线和螺旋线轮廓中的螺旋直线的步骤中,具体包括步骤:
[0025] 获取螺纹图像的黑色像素分步图;
[0026] 提取黑色像素分布图中黑色像素区域左右边界,黑色像素最高分步点半值处之间的间隔为模拟螺旋线长度;
[0027] 以预设比例的模拟螺旋线长度为霍夫直线拟合算法的长度阈值进行基准直线和螺旋直线的提取。
[0028] 进一步地,在获取所述螺旋线轮廓中的螺旋直线前,还包括步骤:
[0029] 提取螺旋线轮廓中长度不低于长度阈值的直线加入筛选列表;
[0030] 获取筛选列表中直线的平均斜率和标准差;
[0031] 筛选出筛选列表中符合3σ原则的直线作为霍夫直线拟合算法的数据输入。
[0032] 本发明还提出了一种用于机器视觉的螺纹旋向识别系统,包括:
[0033] 外轮廓提取模块,用于根据灰度图像通过大津法进行自适应阈值的划定,并提取灰度图像中灰度值超过自适应阈值的部分作为螺纹图像,而后通过Canny算子提取螺纹图像中的螺纹外轮廓;
[0034] 螺旋线提取模块,用于根据灰度图像进行顶帽运算获取灰度图像中的螺旋线区域图像,并以两遍遍历法作为连通域搜索算法对螺旋线轮廓图进行连通区域阈值内的二次降噪,获得螺旋线轮廓;
[0035] 直线提取模块,用于通过霍夫直线拟合算法提取螺纹外轮廓中的基准直线和螺旋线轮廓中的螺旋直线;
[0036] 旋向判定模块,用于根据螺旋直线相较于基准直线的旋转趋势,在旋转趋势为逆时针时输出右旋结果,在轩主趋势为顺时针时输出左旋结果。
[0037] 进一步地,所述外轮廓提取模块在通过Canny算子提取螺纹图像中的螺纹外轮廓时具体包括:
[0038] 高斯单元,用于对螺纹图像进行高斯平滑处理;
[0039] 数据提取单元,用于提取平滑处理后螺纹图像的灰度梯度幅值及方向;
[0040] 区域框定单元,用于根据灰度梯度幅值及方向,通过非极大值抑制法保留螺纹外轮廓候选区域;
[0041] 轮廓提取单元,用于通过双阈值法在外轮廓候选区域中提取螺纹外轮廓。
[0042] 进一步地,所述直线提取模块中具体包括:
[0043] 图像转换单元,用于将螺纹图像根据其黑色像素的分步情况转换为黑色像素分步图;
[0044] 长度判定单元,用于提取黑色像素分布图中黑色像素区域左右边界,并将黑色像素最高分步点半值处之间的间隔作为模拟螺旋线长度;
[0045] 直线提取单元,用于以预设比例的模拟螺旋线长度为霍夫直线拟合算法的长度阈值进行基准直线和螺旋直线的提取。
[0046] 进一步地,还包括直线过滤单元,
[0047] 用于筛选出螺旋线轮廓中长度不低于长度阈值的直线,并根据筛选结果的平局斜率和标准差,提取出符合3σ原则的直线作为直线提取单元在获取所述螺旋线轮廓中螺旋直线时的数据输入。
[0048] 与现有技术相比,本发明至少含有以下有益效果:
[0049] (1)本发明所述的一种用于机器视觉的螺纹旋向识别方法与系统,提出了基于形态学的螺旋线提取方法,相较于多种轮廓提取算子进行轮廓线提取解决了各算子求解过程中存在的问题,提高了精度和完整度;
[0050] (2)基于螺纹线长度进行概率霍夫拟合算法长度阈值的可变调整,是算法能够根据螺纹尺度大小,灵活改变长度阈值,进而更为准确的提取螺旋线;
[0051] (3)通过连通区域的二次去噪算法及基于统计学的螺旋线轮廓中直线的筛选,使得直线拟合准确率进一步地提升,最终通过螺旋直线和基准直线的斜率比较实现旋向识别。

附图说明

[0052] 图1为一种用于机器视觉的螺纹旋向识别方法的方法步骤图;
[0053] 图2为一种用于机器视觉的螺纹旋向识别系统的系统结构图;
[0054] 图3为螺纹旋向判断示意图;
[0055] 图4为各算子螺纹外轮廓提取结果示意图;
[0056] 图5为各算子螺旋线提取结果示意图;
[0057] 图6为形态学腐蚀、膨胀原理示意图;
[0058] 图7为Canny算子与形态学螺旋直线提取比对图;
[0059] 图8为连通区域示意图;
[0060] 图9为不同连通区域阈值下的区域去除结果示意图;
[0061] 图10为霍夫直线检测算法坐标转换示意图;
[0062] 图11为各算法通过霍夫直线检测算法提取直线的结果示意图;
[0063] 图12阈值分割图沿x轴的黑色像素分布图。

具体实施方式

[0064] 以下是本发明的具体实施例并结合附图,对本发明的技术方案作进一步的描述,但本发明并不限于这些实施例。
[0065] 实施例一
[0066] 如图3所示,顺时针旋转时旋入的螺纹称为右旋螺纹,反之为左旋螺纹。从螺纹图像中可以看出,左旋螺纹呈现螺旋直线相较于顶部基准直线呈左倾态,即此时螺旋直线斜率减去基准直线斜率为负数,而右旋螺纹斜率差则相反,为正数。基于上述特征,本发明为了解决机器视觉对螺纹旋向的识别,如图1所示,本发明提出了一种用于机器视觉的螺纹旋向识别方法,包括步骤:
[0067] 获取经灰度化处理后的螺纹区域灰度图像;
[0068] 根据灰度图像通过大津法进行自适应阈值的划定,并提取灰度图像中灰度值超过自适应阈值的部分作为螺纹图像,而后通过Canny算子提取螺纹图像中的螺纹外轮廓;
[0069] 根据灰度图像进行顶帽运算获取灰度图像中的螺旋线区域图像,并以两遍遍历法作为连通域搜索算法对螺旋线轮廓图进行连通区域阈值内的二次降噪,获得螺旋线轮廓;
[0070] 通过霍夫直线拟合算法提取螺纹外轮廓中的基准直线和螺旋线轮廓中的螺旋直线;
[0071] 判断螺旋直线相较于基准直线的旋转趋势,若旋转趋势为逆时针,则判断为螺纹旋向为右旋,否则螺纹旋向为左旋。
[0072] 需要注意的是,本发明所述的螺纹区域灰度图像,其螺纹顶部基准线默认位于螺纹外轮廓的顶部,也即是本发明中所出现的螺纹区域灰度图像均是螺纹头部向上的状态。
[0073] 根据本实施例开头的判断思路,本发明需要分别提取螺纹顶部的基准直线和螺纹上的螺旋直线进行斜率比对,而为了避免螺纹螺旋直线对基准直线提取的干扰,保证提取的基准直线唯一,本发明通过阈值分割算法,将螺纹与背景图像进一步分割开来,进而提取外轮廓中的基准线。同时,可通过提取掩膜的方式对图像进行分割,仅针对感兴趣区域(ROI,Region of Interest)进行形态学处理等后续操作。
[0074] 其中,阈值分割是指将图像依据灰度值,划分为只包含黑、白两种颜色的图像,是极端条件下的对比度增强手段,通常用于划分图像中差别较大的前景及背景,公式如下:
[0075]
[0076] 式中,x为当前像素值,th为自适应阈值大小,fth为进过自适应阈值分割后的灰度值。
[0077] 由于本发明所需要针对的是不同光照条件下螺纹图像的旋向识别,图像的灰度值存在较大的差别,采用固定阈值的方法并不适用于所有图像,因此本发明采用大津法(Otsu算法),自动划分自适应阈值。
[0078] Otsu算法将灰度级别在0~m间的图像,按照阈值th分为两部分,0~th(包含th)间的像素为G0部分,像素值为th+1~m间的像素为G1部分,分别计算每一部分出现的概率。
[0079]
[0080] P1=1‑P0,
[0081] grayi=ni/N;
[0082] 式中,N为总像素数目,ni为灰度值为i的像素数,grayi为灰度为i的像素出现的概率,P0为像素灰度在0~th(G0)部分出现的概率,P1为像素灰度在th+1~m(G1)部分出现的概率。
[0083] 由上述式子可知,G0部分的平均值u0和G1部分的平均值u1分别为:
[0084]
[0085]
[0086] 式中,uth为自适应阈值为th时灰度均值,u为整个图像的灰度均值。
[0087] G0和G1两个部分的方差如下式:
[0088] σ2(th)=P0(u‑u0)2+P1(u1‑u)2
[0089] 通过上述公式组成的公式组,即可根据G0和G1两部分之间的方差公式求解其最大方差下的自适应阈值th,该自适应阈值th即为本发明所要求解的当前螺纹区域灰度图像的最佳自适应阈值。通过该方法求得自适应阈值进行螺纹图像提取,不易受到光照条件的影响,适应性较强,能够较为完整的提取ROI区域(也即是螺纹区域)。
[0090] 在获取到螺纹区域图像后,接下要要解决的就是螺纹外轮廓的提取,其可以通过提取阈值分割后的图像外轮廓,使用直线拟合算法提取顶部直线。
[0091] 边缘检测的研究最早见于对电视信号的处理中,后续相继提出了应用于各种场景下的图像处理的边缘检测算子。边缘检测算子通常为一阶或二阶微分算子。
[0092] 在一阶算子中,Roberts算子利用对角方向相邻两个像素灰度值之间的差代替梯度值;Sobel算子使用邻域梯度计算目标像素梯度,并结合了方向差分和局部加权平均,通过设置阈值来筛选边缘点;Prewitt算子类似于Sobel算子,模板略有不同,适用于处理噪声多、灰度渐变的场景。
[0093] 二阶算子中,Laplacian算子由于对噪声敏感,目前应用较少;LOG(Laplacian of Gaussian)算子针对Laplacian算子的局限性进行改良,首先对图像使用高斯平滑处理,再进行边缘提取,在参数选取上需要较多的人为干预,不适用于场景多变的场景。
[0094] 而本发明所选用的Canny算法,结合本发明,主要包括以下步骤:
[0095] 对螺纹图像进行高斯平滑处理;
[0096] 提取平滑处理后螺纹图像的灰度梯度幅值及方向;
[0097] 根据灰度梯度幅值及方向,通过非极大值抑制法保留螺纹外轮廓候选区域;
[0098] 通过双阈值法在外轮廓候选区域中提取螺纹外轮廓。若当前像素点灰度值大于高阈值即为边缘;低于低阈值,则不是边缘点;介于两者之间,若该点与被检出的边缘点相连,则可被认为是边缘点。
[0099] 如图4所示为各算子提取轮廓边缘图的示意图,结果显示,阈值分割后的图像能够较为容易的提取螺纹外轮廓,但是上述边缘中,仅有Canny算子提取的为单像素边缘,有利于后续提取唯一基准线,故本发明采用Canny算子提取螺纹外轮廓。而后就可以通过霍夫直线检测对螺纹外轮廓进行基准直线的提取,具体提取方法后续陈述。
[0100] 在解决了基准直线提取的同时,还需提出螺纹旋线中的螺旋直线,为实现该目的,需要对自适应阈值分割前的图像进行边缘检测及提取,其中,提取的轮廓中须包含清晰且尽可能多的螺旋线,以提高结果可信度。
[0101] 通常的,边缘提取一般选用之前所述的几个算子,其提取结果如图5所示,Roberts算子、Sobel算子及Prewitt算子提取边缘线为多像素边缘,且对于内部螺旋直线未能准确、完整提取;LOG算子提取的边缘模糊,定位精准度较低;Canny算子提取边缘为单像素边缘,定位较为准确,且能较好地提取螺旋直线。
[0102] 对于螺旋直线的提取,Canny算子虽为五种算法中提取轮廓最为清晰的算子,但仍存在螺旋直线提取不完全、螺旋直线缺失等问题,因此本发明根据图像中螺旋直线区域相较于邻域较亮的特点,提出一种采用形态学算法对螺纹螺旋直线进行提取的方法。
[0103] 形态学算法中,利用腐蚀和膨胀将图像与运算核之间进行卷积运算,是最为基础和常见的操作。
[0104] 腐蚀是求局部最小值,执行腐蚀操作后的区域范围变小,而膨胀则是相反的操作,是求局部最大值,使执行操作的区域范围变大,它们的原理如图6所示。其中,腐蚀和膨胀的公式表达依次如下:
[0105]
[0106]
[0107] 式中,A表示需要进行形态学操作的图像,B表示形态学操作的核。
[0108] 将腐蚀和膨胀操作按照执行顺序进行不同组合便是常见的开运算和闭运算。开运算是对图像执行先腐蚀再膨胀操作,可用来消除小的连通区域,在平滑较大物体边界的同时,不明显改变其面积;闭运算是对图像执行先膨胀再腐蚀操作,能够填充小型黑色区域。其中,开运算和闭运算的公式表达依次如下:
[0109] open(A,B)=(AΘB)⊕B
[0110] close(A,B)=(A⊕B)ΘB
[0111] 顶帽运算是开运算结果图和原图之差,公式如下所示,可用来分离比邻域亮一点的区域。
[0112] top(A)=A‑open(A,B)
[0113] 在自行车脚踏板螺纹图像中,螺旋直线相比于邻域较亮,因此可以使用顶帽运算突出螺旋直线部分。采用顶帽运算后的图,相比于原图使用Canny算法后,大大减少螺旋直线提取过程中的漏检情况,且滤波后的螺旋直线更易识别。
[0114] 如图7所示为通过Canny算子和形态学运算获取的螺旋直线结果比对图,可以看出,未经过形态学运算直接使用Canny算法提取的螺旋线轮廓存在长距离缺失、数目较少等情况;经过顶帽运算处理后(为更为清晰的显示图像,采用了阈值处理手段,以增强对比度)的图形,更易提取图像中的亮度较高区域,因此螺旋直线较为连续且数目较多,保留细节较多,为后续霍夫直线检测提供较多的参考点。
[0115] 如图7所示,经过形态学处理后的螺旋线轮廓虽然经过滤波处理,但是仍有部分噪声存在。而霍夫直线检测算法是将图像从笛卡尔坐标系映射到二维参考坐标系,通过投票机制来判断是否存在符合条件的直线存在,对噪声较为敏感,因此在进行霍夫直线检测前,还需要通过较小连通区域的滤除来对图像进行二次去噪。
[0116] 连通域,指的灰度值相等且相连的像素点的集合,一般有四连通和八连通两种连通域(如图8所示)。搜索连通域常见的算法为两遍遍历法和种子填充法。
[0117] 其中,两遍遍历法及种子填充法均能实现任意复杂的连通域搜索及像素点数目统计,但由于在本发明所针对的螺纹图像,其图像尺寸较小,因此两种方法虽然时效性相当,但在边界问题上,种子填充法会出现一定误判,故本发明选用两遍遍历法作为连通域搜索算法。
[0118] 通过选取不同的连通区域阈值,其结果如图9所示,螺旋线区域图像原图(图9.a)中存在较多的干扰点,去除小于8的连通域后(图9.b),部分干扰点去除;去除小于15的连通区域后(图9.c),干扰点进一步得到去除,但造成了部分螺旋线中间有所缺失,对后续的直线检测造成一定影响,故本发明设定连通区域的阈值为8。而后就可通过概率霍夫直线拟合算法进行螺旋直线的提取。
[0119] 对于直线检测来说,其在计算机视觉与模式识别领域中占有着重要地位,目前使用较多的是霍夫直线检测算法。霍夫直线检测算法由Hough等人于1962年提出,通过空间映射的方式,实现线段的检测,对噪声有一定鲁棒性,且易于获得线段的位置、长度及角度等参数。
[0120] 霍夫直线检测算法将X‑Y坐标系映射到θ‑ρ坐标系下,即将直线y=kx+b,转变为ρ=xcosθ+ysinθ的形式。如图10所示,在θ‑ρ坐标系下,经过某一点(θ,ρ)的曲线越多,表示以θ、ρ表示的线段上有越多的点,越有可能成为一条线段。通过对每个点的经过的曲线的数量进行统计,超过给定阈值的,可以认为存在这样一条线段。进一步,可以使用概率霍夫直线检测算法,通过设定参数来限制检测处的线段的像素点的最大间距,进而更为精准的筛选出满足条件的线段。
[0121] 如图11所示为直接使用概率霍夫直线拟合算法进行直线提取的各方法结果示意图,其中图11.a为螺纹外轮廓中可提取的唯一有效线段(也即是基准直线);图11.b为Canny算子提取的轮廓所拟合直线的结果;图11.c为经由顶帽运算、较小连通区域去除后的螺旋线拟合结果,相较于Canny算子能检测出较多且准确的直线,更加有利于螺纹旋向的判断。从结果图中可以清晰的辨别出螺旋线相较于基准线右倾(逆时针旋转趋势),因此上图螺纹旋向为右旋。
[0122] 上述概率霍夫直线拟合算法采用的是固定阈值,当投票数和长度大于阈值的直线才能被识别出。阈值采用人为设定方式,过大会导致小尺寸螺旋线难以被识别,过小会导致识别重复且易受噪点影响,对结果造成一定影响。
[0123] 本实施例通过将同一张图进行不同比例放缩直线拟合后发现,原比例图像、放大至1.5倍及缩小0.75倍的图像均能准确识别出一定数量的直线段,可以进行正常识别,但放大图像中存在一定数量的线段重复,这是由于长度阈值过小,较长线段被分割为几段较短线段,导致识别重复;将原图缩小至0.5倍时,由于图中线段长度无法达到长度阈值,导致提取直线失败。
[0124] 为提升直线识别的准确率和鲁棒性,本发明还提出一种自适应长度阈值的概率霍夫直线拟合法,根据螺旋线尺寸的不同,自动选取合适长度阈值进行直线拟合。
[0125] 如图12所示,图12.a为自适应阈值分割后的图像,记灰度值黑色为1,白色为0,图12.b所示为灰度沿左图x轴分布示意图。螺旋线应为图12.b所标记,但从黑色像素分布图无法直接获得,因此本发明采取近似值代替真实螺旋线长度。
[0126] 记黑色像素总数最高点高度为H,取其半值记为0.5H,分布取0.5H处左右边界点间隔为L。选取5组不同尺寸螺纹图像的真实螺旋直线长度L0及以上算法所得L值进行对比,差值记为△L,公式如下所示,结果如表1。
[0127]
[0128] 表1:真实螺旋直线长度与L值差值
[0129]组别 A B C D E
L0/像素 208 215 315 105 158
L/像素 190 203 300 96 145
△L/% 8.65 5.58 4.76 8.57 8.22
[0130] 结果显示,计算所得L值通常低于真实螺旋线长度L0,平均差值约为13个像素点,可视为近似相等。考虑到经由各种算法处理后的轮廓存在部分缺失,螺旋线存在少量不连续的情况,本节将概率霍夫直线拟合算法的长度阈值设为0.8L。
[0131] 进一步地,考虑到现实生产中,由于不可避免的噪声影响,图像中概率霍夫直线检测出的线段往往大于肉眼识别的螺旋线,且可能检测出非螺旋线的线段,部分无效线段的出现是由于恰巧处于同一直线的点数达到设定阈值而被认为是一条直线。通常情况下,这一类直线的斜率与大部分有效直线的平均斜率差别较大,并超过一定范围的标准差。因此,根据样本值的分布,可运用统计学知识去除较为明显的错值,提高结果的精确度。
[0132] 首先限制检测出直线的长度,长度低于阈值的视为无效线段,不参与结果统计中;同时,将以上筛选出的直线进行统计学统计,计算出平均斜率μ及标准差σ。根据正态分布的“3σ”原则,将斜率小于μ‑3σ、大于μ+3σ的值认为是坏值,不参与旋向判断。通过统计学知识,能够较好地去除该部分直线,使得最终结果更具可信度。
[0133] 去除错值后的线段的斜率依次减去阈值处理部分提取的螺纹顶部基准线斜率,分别统计结果大于0(逆时针旋转趋势)、小于0(顺时针旋转趋势)的线段数。结果中数量多的占线段90%以上的视为正确旋向,大于0表示该螺纹为右螺纹,小于0则表示该螺纹为左螺纹。若不存在一方占90%及以上,则认为无法判断。
[0134] 实施例二
[0135] 为了更好的对本发明的发明点进行理解,本实施例通过系统结构的形式来对本发明的技术点进行概括说明,如图2所示,一种用于机器视觉的螺纹旋向识别系统,包括:
[0136] 外轮廓提取模块,用于根据灰度图像通过大津法进行自适应阈值的划定,并提取灰度图像中灰度值超过自适应阈值的部分作为螺纹图像,而后通过Canny算子提取螺纹图像中的螺纹外轮廓;
[0137] 螺旋线提取模块,用于根据灰度图像进行顶帽运算获取灰度图像中的螺旋线区域图像,并以两遍遍历法作为连通域搜索算法对螺旋线轮廓图进行连通区域阈值内的二次降噪,获得螺旋线轮廓;
[0138] 直线提取模块,用于通过霍夫直线拟合算法提取螺纹外轮廓中的基准直线和螺旋线轮廓中的螺旋直线;
[0139] 旋向判定模块,用于根据螺旋直线相较于基准直线的旋转趋势,在旋转趋势为逆时针时输出右旋结果,在轩主趋势为顺时针时输出左旋结果。
[0140] 进一步地,所述外轮廓提取模块在通过Canny算子提取螺纹图像中的螺纹外轮廓时具体包括:
[0141] 高斯单元,用于对螺纹图像进行高斯平滑处理;
[0142] 数据提取单元,用于提取平滑处理后螺纹图像的灰度梯度幅值及方向;
[0143] 区域框定单元,用于根据灰度梯度幅值及方向,通过非极大值抑制法保留螺纹外轮廓候选区域;
[0144] 轮廓提取单元,用于通过双阈值法在外轮廓候选区域中提取螺纹外轮廓。
[0145] 进一步地,所述直线提取模块中具体包括:
[0146] 图像转换单元,用于将螺纹图像根据其黑色像素的分步情况转换为黑色像素分步图;
[0147] 长度判定单元,用于提取黑色像素分布图中黑色像素区域左右边界,并将黑色像素最高分步点半值处之间的间隔作为模拟螺旋线长度;
[0148] 直线提取单元,用于以预设比例的模拟螺旋线长度为霍夫直线拟合算法的长度阈值进行基准直线和螺旋直线的提取。
[0149] 进一步地,还包括直线过滤单元,
[0150] 用于筛选出螺旋线轮廓中长度不低于长度阈值的直线,并根据筛选结果的平局斜率和标准差,提取出符合3σ原则的直线作为直线提取单元在获取所述螺旋线轮廓中螺旋直线时的数据输入。
[0151] 综上所述,本发明所述的一种用于机器视觉的螺纹旋向识别方法与系统,根据螺纹螺旋线的分布特点设计了螺纹旋向识别算法,即通过螺旋直线斜率与基准直线斜率之差的正负值判断旋向。
[0152] 使用自适应阈值分割法获得ROI区域,Canny算子提取外轮廓,通过直线拟合算法提取基准线。同时提出了基于形态学运算的螺旋线提取算法,相较于轮廓提取算子,提取的螺旋线数量更多且更为完整。
[0153] 通过基于连通区域的图像二次去噪算法,进一步去除连通区域小于阈值的噪点。基于自适应阈值的概率霍夫直线拟合算法,使得算法针对不同尺度的螺旋图像能够自动改变长度阈值,进而有效减少了重复线段的提取和较短螺旋线的漏检,使算法的鲁棒性进一步提升。
[0154] 通过“3σ”原则去除错值直线,进一步提高了拟合直线的准确度。最终根据占据直线数量90%及以上的线段与螺纹顶部基准线斜率相减的正负值来判断旋向。
[0155] 需要说明,本发明实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
[0156] 另外,在本发明中如涉及“第一”、“第二”、“一”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
[0157] 在本发明中,除非另有明确的规定和限定,术语“连接”、“固定”等应做广义理解,例如,“固定”可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
[0158] 另外,本发明各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围内。