发明内容
本发明的目的在于提供一种基于梯度多阈值优化缺陷检测方法,用于解决阈值不准确、阈值不能随着图像浮动的变化、最优阈值化迭代过长、算法复杂等问题,具有缺陷检测效果好、提取速度快等优点。
本发明一种基于梯度多阈值优化缺陷检测方法,具体包括以下步骤:
步骤1、对待检测物采集图像,转换为数字图像后供后面计算用;
步骤2、通过K均值聚类算法获取最优阈值化的多个阈值,自动选取其中一个为模块均值的最优化阈值,具体迭代计算步骤如下:
(1)图像中的信息分为两类:背景像素和物体像素,假设待检测物采集图像中没有有关物体的确切位置的信息,作为第1步近似,考虑图像中某些点含有背景像素和其它点为物体像素,任意选择K个聚类对象作为聚类中心;
(2)根据每个聚类对象均值,计算每个聚类对象与这K个聚类中心的距离,根据最小距离重新对上一步的聚类对象进行划分,将图像分割成包含背景区域和物体区域;
(3)在第t步,分别计算背景区域和物体区域的灰度均值μb和μo,进一步将图像分割成背景区域和物体区域,阈值为T,它的前一步公式是:
其中,μb、μo为背景区域和物体区域的灰度均值,#background_pixels、#object_pixels为背景区域和物体区域的像素个数,f(i,j)为像素点(i,j)处的像素值,比较T(t+1)和T(t)值,当T(t+1)=T(t)时计算停止;
步骤3、对待检测物采集图像进行四个方向的梯度计算,通过正态分布模型,获取图像的动态阈值;
在一幅图像中,每个像素点都具有8邻域和4个边缘检测方向,在传统的水平和垂直方向检测边缘的基础上,增加45°和135°方向上的边缘检测,其公式如下:
Px(i,j)=I(i+1,j)-I(i-1,j) (2)
Py(i,j)=I(i,j+1)-I(i,j-1) (3)
P45(i,j)=I(i-1,j+1)-I(i+1,j-1) (4)
P135(i,j)=I(i+1,j+1)-I(i-1,j-1) (5)
T(i,j)=(|px(i,j)|+|py(i,j)|+|p45(i,j)|+|p135(i,j)|)/4 (6)
其中,Px(i,j)、Py(i,j)、P45(i,j)、P135(i,j)分别代表x、y、45°、135°方向上的梯度,I为输入图像的像素值,T(i,j)为在像素点(i,j)处的梯度幅值;
样本数据接近(μ,σ)的正态分布,经过统计,(μ-σ,μ+σ)之外的数据占总数据的30%,(μ-3σ,μ+3σ)之外数据占总数据的0.3%左右,因此,可以认为在(μ+σ,μ+2σ)之内的像素为边缘点,大于μ+3σ为噪声,其图像的动态阈值计算如下:
λmin=μ+σ (9)
λmax=μ+2σ (10)
其中,μ为整体梯度幅值图像的均值,σ为整体梯度幅值图像的方差,λmin、λmax为梯度幅值阈值的上下边界,M、N表示图像分割区域的长和宽;
步骤4、运用统计学实验方法,对预置值数量的样本图像进行取样,分别统计样本图像的模块中像素最大值、像素差最大值作为模块像素均值和模块像素差最大值的阈值,具体步骤如下:
(1)分别对样本图像进行归类,本发明的样本图像主要分6类;
(2)对每类样本图像进行定向模块取值,每幅样本图像按照预设的步长,取100个模块,该模块的大小为4×4,且模块的位置一半位于图像的缺陷处,一半位于图像的非缺陷处;
(3)分别统计样本图像的模块中像素最大值、像素差最大值作为模块像素均值和模块像素差最大值的阈值;
步骤5、对待检测物采集图像进行分割,通过模块化的阈值判断,提取图像中检测出的缺陷模块,并把它放在新的图像矩阵中,通过中值滤波,输出缺陷检测结果图像,具体为:
(1)确定分割阈值条件,包括输入图像的起始位置、分割窗口的宽w和高h、分割移动的步长;
(2)根据分割阈值条件对物体区域中的对象进行分割处理,分别计算4×4分割模块中的像素均值、像素差最大值、像素最大值和梯度均值,将其与上述步骤获得的阈值进行比较判断,若在阈值范围内,则将该分割模块的像素复制到一个新矩阵,对于新矩阵中空白的部分,直接赋值为255,组合成完整的缺陷图像矩阵;
(3)设置滤波窗口为4×4分割模块半径,对缺陷图像矩阵进行中值滤波去噪,获取最终的缺陷检测结果图像。
所述的步骤2中的K均值聚类算法,K取值4,分别求取四聚类中心值,并自动以最低的聚类中心值为局部均值的最优化阈值。
本发明首先直接给定预想的初值,设定适当的迭代次数,通过简化的均值聚类算法,求出最优化阈值;其次,通过正态分布模型,统计样本每幅梯度图像中100个模块,由计算获取动态的阈值;再次,通过对样本图像进行分块处理,运用统计学方法,提取模块中的像素最大值和像素差最大值;之后分别对每个模块进行模块梯度、模块最大值、模块像素值差最大值和模块均值多阈值的判断,最后,输出获取的模块,组合成完整的图像,通过中值滤波得到缺陷检测结果图像。在实践中,对40幅含有大活结、小活结、大裂纹、小裂纹、死结、孔洞等的样本图像进行缺陷检测试验,本发明都能快速准确的检测出木材的缺陷,提高了应用范围和木材生产的质量。
具体实施方式
生产过程中,木材缺陷检测系统如图1所示,上方两边的是光源、中间的是采集摄像头,下面的是传送带,系统由传送平台、工业相机、图像采集卡、电脑和缺陷检测软件组成。相机采用Guppy_PRO系列工业相机,其采集的为灰度图像,分辨率可以自由调节。由于参与缺陷检测的图像是黑白工业相机采集的,通过图像采集卡可以直接转化为数字图像,不用考虑色空间的转换。
如图2所示,本发明一种基于梯度多阈值优化缺陷检测方法,具体包括以下步骤:
步骤1、对待检测物采集图像,转换为数字图像后供后面计算用;
步骤2、通过K均值聚类算法获取最优阈值化的多个阈值,自动选取其中一个为模块均值的最优化阈值,具体迭代计算步骤如下:
(1)图像中的信息分为两类:背景像素和物体像素,假设待检测物采集图像中没有有关物体的确切位置的信息,作为第1步近似,考虑图像中某些点含有背景像素和其它点为物体像素,任意选择K个聚类对象作为聚类中心;
(2)根据每个聚类对象均值,计算每个聚类对象与这K个聚类中心的距离,根据最小距离重新对上一步的聚类对象进行划分,将图像分割成包含背景区域和物体区域;
(3)在第t步,分别计算背景区域和物体区域的灰度均值μb和μo,进一步将图像分割成背景区域和物体区域,阈值为T,它的前一步公式是:
其中,μb、μo为背景区域和物体区域的灰度均值,#background_pixels、#object_pixels为背景区域和物体区域的像素个数,f(i,j)为像素点(i,j)处的像素值,比较T(t+1)和T(t)值,当T(t+1)=T(t)时计算停止;
本发明中采用自定义的四类k-means算法,即上述步骤中K=4,分别求取四聚类中心值,并自动以最低的聚类中心值为局部均值的最优化阈值。
步骤3、对待检测物采集图像进行四个方向的梯度计算,通过正态分布模型,获取图像的动态阈值;
在一幅图像中,每个像素点都具有8邻域和4个边缘检测方向,本发明在传统的水平和垂直方向检测边缘的基础上,增加450和1350方向上的边缘检测,其公式如下:
Px(i,j)=I(i+1,j)-I(i-1,j) (2)
Py(i,j)=I(i,j+1)-I(i,j-1) (3)
P45(i,j)=I(i-1,j+1)-I(i+1,j-1) (4)
P135(i,j)=I(i+1,j+1)-I(i-1,j-1) (5)
T(i,j)=(|px(i,j)|+|py(i,j)|+|p45(i,j)|+|p135(i,j)|)/4 (6)
其中,Px(i,j)、Py(i,j)、P45(i,j)、P135(i,j)分别代表x、y、45°、135°方向上的梯度,I为输入图像的像素值,T(i,j)为在像素点(i,j)处的梯度幅值;
由于图像的边缘只占很小的一部分,而噪声所占的比例也非常小,根据概率统计理论的分析,样本数据接近(μ,σ)的正态分布,经过统计,(μ-σ,μ+σ)之外的数据占总数据的30%,(μ-3σ,μ+3σ)之外数据占总数据的0.3%左右,因此,可以认为在(μ+σ,μ+2σ)之内的像素为边缘点,大于μ+3σ为噪声,其图像的动态阈值计算如下:
λmin=μ+σ (9)
λmax=μ+2σ (10)
其中,μ为整体梯度幅值图像的均值,σ为整体梯度幅值图像的方差,λmin、λmax为梯度幅值阈值的上下边界,M、N表示图像分割区域的长和宽;
步骤4、运用统计学实验方法,对预置值数量的样本图像进行取样,分别统计样本图像的模块中像素最大值、像素差最大值作为模块像素均值和模块像素差最大值的阈值,具体步骤如下:
(1)分别对样本图像进行归类,本发明的样本图像主要分6类;
(2)对每类样本图像进行定向模块取值,每幅样本图像按照预设的步长,取100个模块,该模块的大小为4×4,且模块的位置一半位于图像的缺陷处,一半位于图像的非缺陷处;
(3)分别统计样本图像的模块中像素最大值、像素差最大值作为模块像素均值和模块像素差最大值的阈值;
步骤5、对待检测物采集图像进行分割,通过模块化的阈值判断,提取图像中检测出的缺陷模块,并把它放在新的图像矩阵中,通过中值滤波,输出缺陷检测结果图像,具体为:
(1)确定分割阈值条件,包括输入图像的起始位置、分割窗口的宽w和高h(本实施例选择4×4的窗口)、分割移动的步长(考虑到滑动窗口处理过程中会出现“锯齿效应”,步长定为2);
(2)根据分割阈值条件对物体区域中的对象进行分割处理,如图3所示,分别计算4×4分割模块中的像素均值、像素差最大值、像素最大值和梯度均值,将其与上述步骤获得的阈值进行比较判断,若在阈值范围内,则将该分割模块的像素复制到一个新矩阵,对于新矩阵中空白的部分,直接赋值为255,组合成完整的缺陷图像矩阵;
(3)分割后的图像矩阵中夹杂着一些孤立的噪声,为了提高图像的清晰度,需要对获取的缺陷图像矩阵进行中值滤波。设置滤波窗口为4×4分割模块半径,对缺陷图像矩阵进行中值滤波去噪,获取最终的缺陷检测结果图像。
本发明的实验平台为Matlab R2010,内存2G,操作系统为32位Window 7操作系统;图像采集是在单D65光源,倾角为2-10之间,高度保持10-50cm之间,进行数据采集的。实验数据是由木纹缺陷库中所选的6种缺陷40幅图组成,图像的分辨率为800×600,主要是与一些经典的分割算法作对比,如二值化方法、自动阈值分割算法和四类k-means算法。其对比如图4、图5所示。
图4为本发明对木材缺陷检测对比图,(a)原图、(b)二值化后的结果、(c)自动阈值分割后的结果、(d)四类k-means算法分割的结果、(e)本发明的结果。
图5为几种木材缺陷小检测对比图,(a)大裂纹图像、(b)小裂纹图像、(c)大活结图像、(d)小活结图像、(e)孔洞的图像、(f)大裂纹处理后的图像、(g)小裂纹处理后的图像、(h)大活结处理后的图像、(i)小活结处理后的图像、(j)孔洞的处理后的图像。
在上述40个样本图像中,根据图4的结果,针对分割图像的评价,发明中采用峰值信噪比,作为评价的标准,由下表所示:
处理结果 |
二值化处理的结果 |
自动阈值分割后的结果 |
k-means算法的结果 |
本发明的结果 |
均方误差 |
6.77 |
119 |
30.3 |
0.56 |
峰值信噪比 |
39.8 |
27.3 |
33.3 |
50.5 |
由上表可以看出,本发明的处理图像的结果,在大量样本中,其峰值信噪比提高的范围为18.3%-53.67%,即图像的有效信息得到了较好的提取。
以上所述,并非对本发明的技术范围作任何限制,故凡是依据本发明的技术实质对以上实施例所作的任何细微修改、等同变化与修饰,均仍属于本发明技术方案的范围内。