基于机器视觉的抛光金属弧状面瑕疵实时检测方法
技术领域
本发明涉及一种检测方法,尤其是一种基于机器视觉的抛光金属弧状面瑕疵实时检测方法,属于抛光金属弧状面检测的技术领域。
背景技术
在工业生产中,随着工业技术水平的不断提高,对产品的质量要求也随之提高,传统对工件质量的监测主要靠人工目测。由于受检查人员的主观因素的影响,很容易出现误检和漏检等情况,并且人工目测还有效率低、准确率低和规范化程度不够,检测结果与检查人员的个人能力及精神状态密切相关,稳定性和可靠性比较差,另外,也不能将检测数据分类实时送入计算机进行自动质量管理。为了解决人工目测工作量大、效率低、漏检率高的难题,企业急需引进一种自动检测技术,以替代人工操作,在降低人力成本的同时又能实现对产品质量的严格控制。所以,引入了机器视觉在工件质量监测上的应用。通过机器视觉代替传统的人眼来对产品质量进行监测,提高了生产效率和产品的质量。
目前,国内外也有许多学者在研究抛光弧状金属表面的瑕疵检测,比如轴承外表面这类圆柱形的金属工件。此类工件的检测还存在以下几个问题:(1)、由于抛光弧状工件表面的反射率高,相机接受到的反射光的反射角不同,所以很难得到光照均匀,幅面宽的图像;(2)采集到的图像灰度分布不均匀,有效区域过窄。如采用同轴光作为光源时,有效区域过窄,经实验分析检测一个轴承需至少60张图像。为解决光照不均的问题,可以采用提取背景图像,再根据背景图像对图像进行增强,得到灰度均匀的图像。但当工件有大缺陷的时候,背景图像的提取将会出现误差。
发明内容
本发明的目的是克服现有技术中存在的不足,提供一种基于机器视觉的抛光金属弧状面瑕疵实时检测方法,其操作方便,检测精度高,检测适应性好,稳定可靠。
按照本发明提供的技术方案,一种基于机器视觉的抛光金属弧状面瑕疵实时检测方法,所述抛光金属弧状面瑕疵实时检测方法包括如下步骤:
步骤1、离线情况下,获取N张合格工件在正常工作光照下的第一样本图像及M张合格工件在低光照下的第二样本图像,对N张第一样本图像分别进行中值滤波获得图像序列In,n=1,2,…,N,对M张第二样本图像分别进行中值滤波获得图像序列Im,m=1,2,…,M,对图像序列In、图像序列Im分别进行数据融合后得到图像g(x,y)、h(x,y);
步骤2、统计融合后图像g(x,y)、h(x,y)内相应灰度值及灰度值对应的像素个数,分别得到图像g(x,y)、h(x,y)的直方图,根据直方图相应的较大波峰值对应的灰度值建立图像背景I(x,y)与直方图内较大波峰值对应的灰度值间的线性关系式为
I(x,y)=a(x,y)*(Zmax-Zh)+h(x,y)
其中,Zmax表示直方图内较大波峰值对应的灰度值,a(x,y)为斜率矩阵;
步骤3、从上述第一样本图像、第二样本图像中均任选一张样本图像,并建立所选第一样本图像、第二样本图像的直方图,得到所选第一样本图像、第二样本图像直方图内的较大波峰值对应的灰度值,根据所述灰度值及步骤2的线性关系式,分别得到所选第一样本图像、第二样本图像的反射分量;
步骤4、根据步骤3得到所选第一样本图像、第二样本图像的反射分量,建立合格工件反射分量标准差与直方图内较大波峰值对应的灰度值间的对应关系式为
其中,σ(Zmax)表示合格工件的反射分量标准差,Zmax_n表示所选第一样本图像直方图中最大波峰值对应的灰度值,Zmax_0表示所选第二样本图像直方图中最大波峰值对应的灰度值,σn为所选第一样本图像的标准差,σ0为所选第二样本图像的标准差;
步骤5、在线实时获取抛光金属弧状面工件在工作光照下的检测图像,对所述检测图像进行中值滤波,建立检测图像的直方图;根据直方图内较大波峰值对应的灰度值及上述步骤得到检测图像的反射分量;对获得检测图像的反射分量进行高斯滤波,得到第二反射分量,并计算第二反射分量的第二标准差,且根据步骤4计算得到检测图像在对应灰度水平的合格工件图像的第一标准差;
步骤6、比较第一标准差及第二标准差,以选取分割阈值,通过分割阈值对第二反射分量进行阈值分割,得到对应的二值图像;
步骤7、扫描上述二值图像,并对二值图像内不同连通区域进行标记,统计连通区域面积,将连通区域面积与预设判断阈值比较,判断抛光金属弧状面的瑕疵。
所述步骤1包括如下步骤:
步骤1.1、在离线情况下,采集N张合格工件在工作光照下的第一样本图像,然后降低至所需光照强度,采集M张合格工件在低光照强度下的第二样本图像;
步骤1.2、对第一样本图像、第二样本图像进行中值滤波分别得到图像序列In,Im;其中,n=1,2,…,N,m=1,2,…M;
步骤1.3、根据将图像序列In进行数据融合,其中,(x,y)表示图像序列内的像素位置;
步骤1.4、根据将图像序列Im进行数据融合。
所述步骤2包括如下步骤:
步骤2.1、图像灰度取0~255,统计图像g(x,y)对应灰度值的像素个数,然后除以图像g(x,y)的总像素个数,得到图像g(x,y)的直方图p(z),并求出达到较大波峰值的灰度值Zg;
步骤2.2、根据步骤2.1,得到图像h(x,y)的直方图q(z),并求出达到较大峰值的灰度值Zh;
步骤2.3、建立图像背景I(x,y)与直方图内较大波峰值对应灰度值间的线性斜率矩阵,得到
步骤2.4、根据步骤2.3得到图像背景I(x,y)与直方图内较大波峰值间的线性关系,为
I(x,y)=a(x,y)*(Zmax-Zh)+h(x,y),
其中,Zmax表示直方图内较大波峰值对应的灰度值。
所述步骤3包括如下步骤:
步骤3.1、从上述N张第一样本图像、M张第二样本图像中均任选一张样本图像,统计所选第一样本图像、第二样本图像内对应灰度值的像素数,以建立所选第一样本图像、第二样本图像的直方图,得到所选第一样本图像、第二样本图像直方图内的较大波峰值对应的灰度值;
步骤3.2、根据步骤2及较大波峰值对应的灰度值,求出所选第一样本图像、第二样本图像分别对应的背景分量I(x,y);
步骤3.3、根据求取所选第一样本图像、第二样本图像的反射分量,其中,k为常数,f(x,y)为所选第一样本图像或第二样本图像。
所述步骤4包括如下步骤:
步骤4.1、计算所选第一样本图像的反射分量的均值μ,得到
其中,n*m表示反射分量图像的大小;
步骤4.2、根据步骤4.1计算所选第一样本图像反射分量的标准差σn,得到
步骤4.3、根据步骤4.1、步骤4.2计算所选第二样本图像反射分量的标准差σ0;
步骤4.4、建立合格工件反射分量标准差与直方图内较大波峰值的灰度值Zmax对应关系式,得到,
其中,σ(Zmax)表示合格工件的反射分量标准差,Zmax_n表示所选第一样本图像直方图中最大波峰值对应的灰度值,Zmax_0表示所选第二样本图像直方图中最大波峰值对应的灰度值。
所述步骤5包括如下步骤:
步骤5.1、在工作光照条件下,采集工件检测图像t(x,y),并对检测图像t(x,y)进行中值滤波;
步骤5.2、建立中值滤波后,检测图像的直方图,根据检测图像的直方图,得到直方图内较大波峰值对应的灰度值Zt;
步骤5.3、根据灰度值Zt及步骤2,得到检测图像的背景分量It(x,y);
步骤5.4、根据步骤5.3及步骤3,得到检测图像的反射分量rt(x,y);
步骤5.5、对反射分量rt(x,y)进行高斯滤波,生成第二反射分量R(x,y);
步骤5.6、根据灰度值Zt及步骤4.4得到检测图像的第一标准差σ(Zt);
步骤5.7、根据步骤4.1及步骤4.2计算第二反射分量R(x,y)的第二标准差σt。
所述步骤6包括如下步骤:
步骤6.1、比较第一标准差σ(Zt)与第二标准差σt的关系,得到
步骤6.2、设定分割上阈值T1、下阈值T2,得到
其中,λ为调节系数;
步骤6.3、利用上阈值T1、下阈值T2对第二背景分量R(x,y)进行阈值分割,得到二值图像b(x,y),得到
其中,0为背景区域,1为待处理区域。
所述步骤7包括如下步骤:
步骤7.1、扫描二值图像b(x,y),并对二值图像b(x,y)内的不同连通区域进行标记;
步骤7.2、分别统计二值图像b(x,y)内不同连通区域的面积,设置所需的判断阈值S;二值图像b(x,y)内连通区域面积大于判断阈值S时,则相应连通区域为瑕疵区域;当二值图像b(x,y)内连通区域面积小于判断阈值S时,则相应连通区域为正常区域。
所述步骤5.5中,高斯滤波的卷积模板为
所述调节系数λ为3~4。
本发明的优点:先在离线状态下学习分析被测工件在该工作状态下的亮度分布情况,以及合格工件的统计特征;然后在线检测时,能有效提取出被测工件的反射分量,并通过滤波、阈值分割等操作对工件进行实时、准确的瑕疵检测,操作方便,检测精度高,检测适应性好,稳定可靠。
附图说明
图1为本发明用于采集图像的结构示意图。
图2为本发明的流程图。
附图标记说明:100-工业相机、110-支撑架、120-被测工件、130-漫射平面光、140-底座及150-悬挂架。
具体实施方式
下面结合具体附图和实施例对本发明作进一步说明。
本发明目的在于对抛光金属弧状面进行瑕疵的实时检测,由于抛光金属弧状面表面光滑,漫反射率低,而且表面成弧状,不同空间位置的面所放射的光线强度不一,所以很难获得宽幅亮度均匀的图像。根据该问题,提出了一种基于离线学习知识实时检测抛光金属弧状面并能进行在线实时检测瑕疵的方法。
如图1所示,采集图像时,本发明包括底座140,所述底座140上设有竖直分布的支撑架110,通过支撑架110能够支撑金属弧状面;底座140上还设有悬挂架150,通过悬挂架150能够悬挂工业相机100;支撑架110的正上方设有漫射平面光130,通过漫射平面光130照射被测的金属弧状面,以能够工业相机100采集所需的图像。本发明实施例中采用X-Sight SV4-30m工业相机100采集柱形工件弧状侧表面图像,工业相机100采样单元为1/3英寸CMOS,分辨率为640*480(像素)。由于抛光金属弧状表面的反射率高,检测面不在一个空间平面上,采用直接照射、同轴照射的方式都只能得到非常窄的有效区域。采用了蓝色漫射平面LED光源与被测面垂直照射的方式照明;因为波长越短,表面的散射性越好,所以选择了波长在470nm的蓝色光源。
如图2所示:本发明对抛光金属弧状面瑕疵实时检测方法包括如下步骤:
步骤1、离线情况下,获取N张合格工件在正常工作光照下的第一样本图像及M张合格工件在低光照下的第二样本图像,对N张第一样本图像分别进行中值滤波获得图像序列In,n=1,2,…,N,对M张第二样本图像分别进行中值滤波获得图像序列Im,m=1,2,…,M,对图像序列In、图像序列Im分别进行数据融合后得到图像g(x,y)、h(x,y);
离线情况是指通过工业相机先采集合格工件的图像,通过对大量数据进行分析得到所需的结论,以用于在线检测,样本图像的作用一是分析背景分量,作为在线检测提取反射分量时的依据;二是提取特征,作为检测时阈值分割、决策时用。获取N张第一样本图像、M张第二样本图像是为了对样本图像进行数据融合,从而获得更可靠的背景分量,其中N可以等于M。低光照的范围最好在平均灰度在值20左右,正常光照的平均灰度值大概是在40左右。
步骤1包括如下具体步骤:
步骤1.1、在离线情况下,采集N张合格工件在工作光照下的第一样本图像,然后降低至所需光照强度,采集M张合格工件在低光照强度下的第二样本图像;
步骤1.2、对第一样本图像、第二样本图像进行中值滤波分别得到图像序列In,Im;其中,n=1,2,…,N,m=1,2,…M;
中值滤波时,将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值,默认窗口采用25*25的邻域窗口,根据采集的样本图像大小可以进行相应调整,中值滤波为常规的滤波方式,为本技术领域人员所熟知,此处不再详述;
步骤1.3、根据将图像序列In进行数据融合,其中,(x,y)表示图像序列内的像素位置;
步骤1.4、根据将图像序列Im进行数据融合。
步骤2、统计融合后图像g(x,y)、h(x,y)内相应灰度值及灰度值对应的像素个数,分别得到图像g(x,y)、h(x,y)的直方图,根据直方图相应的较大波峰值对应的灰度值建立图像背景I(x,y)与直方图内较大波峰值对应的灰度值间的线性关系式为
I(x,y)=a(x,y)*(Zmax-Zh)+h(x,y)
其中,Zmax表示直方图内较大波峰值对应的灰度值,a(x,y)为斜率矩阵;
所述步骤2包括如下步骤:
步骤2.1、图像灰度取0~255,统计图像g(x,y)对应灰度值的像素个数,然后除以图像g(x,y)的总像素个数,得到图像g(x,y)的直方图p(z),并求出达到较大波峰值的灰度值Zg;
建立直方图为本技术领域常用的技术手段,直方图的横坐标为图像灰度值,纵坐标为某个灰度值的像素个数与图像总相数个数的比值,此处不再详述;z为图像灰度值;
步骤2.2、根据步骤2.1,得到图像h(x,y)的直方图q(z),并求出达到较大峰值的灰度值Zh;
步骤2.3、建立图像背景I(x,y)与直方图内较大波峰值对应灰度值间的线性斜率矩阵,得到
步骤2.4、根据步骤2.3得到图像背景I(x,y)与直方图内较大波峰值间的线性关系,为
I(x,y)=a(x,y)*(Zmax-Zh)+h(x,y),
其中,Zmax表示直方图内较大波峰值对应的灰度值。
步骤3、从上述第一样本图像、第二样本图像中均任选一张样本图像,并建立所选第一样本图像、第二样本图像的直方图,得到所选第一样本图像、第二样本图像直方图内的较大波峰值对应的灰度值,根据所述灰度值及步骤2的线性关系式,分别得到所选第一样本图像、第二样本图像的反射分量;
所述步骤3包括如下步骤:
步骤3.1、从上述N张第一样本图像、M张第二样本图像中均任选一张样本图像,统计所选第一样本图像、第二样本图像内对应灰度值的像素数,以建立所选第一样本图像、第二样本图像的直方图,得到所选第一样本图像、第二样本图像直方图内的较大波峰值对应的灰度值;
步骤3.2、根据步骤2及较大波峰值对应的灰度值,求出所选第一样本图像、第二样本图像分别对应的背景分量I(x,y);
步骤3.3、根据求取所选第一样本图像、第二样本图像的反射分量,其中,k为常数,f(x,y)为所选第一样本图像或第二样本图像;k是取决于反射分量的常量,为了使反射分量的均值在0.5左右,一般k取0.5。
步骤4、根据步骤3得到所选第一样本图像、第二样本图像的反射分量,建立合格工件反射分量标准差与直方图内较大波峰值对应的灰度值间的对应关系式为
其中,σ(Zmax)表示合格工件的反射分量标准差,Zmax_n表示所选第一样本图像直方图中最大波峰值对应的灰度值,Zmax_0表示所选第二样本图像直方图中最大波峰值对应的灰度值,σn为所选第一样本图像的标准差,σ0为所选第二样本图像的标准差;
所述步骤4包括如下步骤:
步骤4.1、计算所选第一样本图像的反射分量的均值μ,得到
其中,n*m表示反射分量图像的大小;
步骤4.2、根据步骤4.1计算所选第一样本图像反射分量的标准差σn,得到
步骤4.3、根据步骤4.1、步骤4.2计算所选第二样本图像反射分量的标准差σ0;
步骤4.4、建立合格工件反射分量标准差与直方图内较大波峰值的灰度值Zmax对应关系式,得到,
其中,σ(Zmax)表示合格工件的反射分量标准差,Zmax_n表示所选第一样本图像直方图中最大波峰值对应的灰度值,Zmax_0表示所选第二样本图像直方图中最大波峰值对应的灰度值。
步骤5、在线实时获取抛光金属弧状面工件在工作光照下的检测图像,对所述检测图像进行中值滤波,建立检测图像的直方图;根据直方图内较大波峰值对应的灰度值及上述步骤得到检测图像的反射分量;对获得检测图像的反射分量进行高斯滤波,得到第二反射分量,并计算第二反射分量的第二标准差,且根据步骤4计算得到检测图像在对应灰度水平的合格工件图像的第一标准差;
在线检测是指获得检测图像后,通过对检测图像进行检测分析判断金属弧状面是否存在瑕疵;在线检测需要利用离线检测的结论及数据,在线检测利用到的技术手段与离线检测一致时,可以参考上述离线检测时的计算公式及方法。
所述步骤5包括如下步骤:
步骤5.1、在工作光照条件下,采集工件检测图像t(x,y),并对检测图像t(x,y)进行中值滤波;
步骤5.2、建立中值滤波后,检测图像的直方图,根据检测图像的直方图,得到直方图内较大波峰值对应的灰度值Zt;
步骤5.3、根据灰度值Zt及步骤2,得到检测图像的背景分量It(x,y);
步骤5.4、根据步骤5.3及步骤3,得到检测图像的反射分量rt(x,y);
步骤5.5、对反射分量rt(x,y)进行高斯滤波去噪,生成第二反射分量R(x,y),其中高斯滤波的卷积模板为
步骤5.6、根据灰度值Zt及步骤4.4得到检测图像的第一标准差σ(Zt);
步骤5.7、根据步骤4.1及步骤4.2计算第二反射分量R(x,y)的第二标准差σt。
步骤6、比较第一标准差及第二标准差,以选取分割阈值,通过分割阈值对第二反射分量进行阈值分割,得到对应的二值图像;
所述步骤6包括如下步骤:
步骤6.1、比较第一标准差σ(Zt)与第二标准差σt的关系,得到
步骤6.2、设定分割上阈值T1、下阈值T2,得到
其中,λ为调节系数;所述调节系数λ为3~4。
步骤6.3、利用上阈值T1、下阈值T2对第二背景分量R(x,y)进行阈值分割,得到二值图像b(x,y),得到
其中,0为背景区域,1为待处理区域。
步骤7、扫描上述二值图像,并对二值图像内不同连通区域进行标记,统计连通区域面积,将连通区域面积与预设判断阈值比较,判断抛光金属弧状面的瑕疵。
所述步骤7包括如下步骤:
步骤7.1、扫描二值图像b(x,y),并对二值图像b(x,y)内的不同连通区域进行标记;
本发明实施例中可以采用递归方法进行区域标记;
步骤7.2、分别统计二值图像b(x,y)内不同连通区域的面积,设置所需的判断阈值S;二值图像b(x,y)内连通区域面积大于判断阈值S时,则相应连通区域为瑕疵区域;当二值图像b(x,y)内连通区域面积小于判断阈值S时,则相应连通区域为正常区域。通过判断二值图像b(x,y)内连通区域是否为瑕疵区域来判断金属弧状面是否存在瑕疵,由于金属抛光面及不同行业的加工要求,判断阈值S可以相应设置。
本发明先在离线状态下学习分析被测工件在该工作状态下的亮度分布情况,以及合格工件的统计特征;然后在线检测时,能有效提取出被测工件的反射分量,并通过滤波、阈值分割等操作对工件进行实时、准确的瑕疵检测。