一种基于积分图算法的织物瑕疵检测方法与流程

文档序号:11217305阅读:722来源:国知局
一种基于积分图算法的织物瑕疵检测方法与流程

本发明涉及机器视觉与视频图像处理技术领域,具体为一种快速的基于积分图算法的织物瑕疵检测方法。



背景技术:

传统纺织行业的瑕疵检测多以人工肉眼检测为主,然而人眼视觉易疲劳导致漏检、人工观察效率低、人力成本代价大,这与大规模工业化生产极不协调,利用计算机视觉和图像处理算法自动进行织物瑕疵检测,能有效解决这一问题。

基于图像滤波的方法在频域提取织物纹理特征来进行瑕疵检测,如gabor滤波、小波变换,由于瑕疵尺度方向未定,滤波时往往需要提取多个尺度多个方向的结果作为特征向量,即便采用pca降维方法,单帧图像检测时间仍需数十秒;基于信号统计的方法在空间域统计织物灰度分布特征来识别瑕疵,如局部二值模式(localbinarypattern,lbp)特征、灰度共生矩阵特征、规则带(regularband,rb)特征等,统计特征具有较好鲁棒性,但统计特征提取时一般需要利用邻域多个像素数据,如不采用合适的加速策略将导致整体运算量骤增;对织物图像直接阈值化来分割瑕疵的方法操作简单、运算较快,但是仅对平纹、斜纹等灰度均匀、无纹理图案的织物有效,且易受噪声干扰。为实现自动瑕疵检测算法的工业化应用,实时性和正确率都需满足,而据统计,仅有少部分算法能够满足实时性,而其中检测正确率高于90%的算法更少。

本发明提出一种基于积分图的快速织物瑕疵检测方法。利用积分图将任意大小的图像块内的求和运算化简为三次加法运算,快速提取梯度能量统计特征,极大减小运行时间开销,并利用核函数拟合非对称特征分布获得自适应的瑕疵判定阈值,实现瑕疵区域的准确分割。



技术实现要素:

本发明要解决的问题是:现有织物瑕疵检测系统依赖人眼观察,效率低下;现有通过各种复杂算法进行高正确率的织物瑕疵检测的方法运算量较大,不满足工业生产的实时性要求;现有能够快速检测织物瑕疵的方法仅能应对简单织物图像,对复杂纹理织物效果较差。总而言之,现有方法难以做到高实时性和高正确率的兼容。

本发明的技术方案为:一种基于积分图算法的织物瑕疵检测方法,利用积分图算法 将任意大小的图像块内的求和运算化简为三次加法运算,以快速提取梯度能量特征用于瑕疵检测,具体为:首先通过对无瑕疵模板进行图像学习,统计其梯度能量特征分布,所得特征分布非对称,采用核函数拟合特征分布,结合均值漂移法提取分布的峰值,再由峰值自适应求取阈值参数,所述阈值参数用于后续瑕疵的区分;然后,对待检测图像,通过积分图算法求取每个像素点所在检测窗口的梯度能量,结合所述阈值参数,判定当前像素点是否疵点,通过统计整幅图像的疵点总数来判定当前图像是否为瑕疵织物,

其中,梯度能量特征的提取方法为:首先求取原始图像f(x,y)的梯度图g(x,y),再利用积分图算法求取g(x,y)的梯度能量特征图e(x,y),对任意像素点(x,y),其能量特征是以点(x,y)为中心的大小为dw*dh的窗口区域内的像素积分。

利用积分图算法求取g(x,y)的梯度能量特征图e(x,y)的具体步骤为:

1)求取g(x,y)的积分图i(x,y)

i(x,y)=i(x-1,y)+i(x,y-1)-i(x-1,y-1)+g(x,y)(1)

2)根据积分图的特性,对任意点(x,y)求取其梯度能量特征图e(x,y):

所述织物瑕疵检测方法具体步骤如下:

1)利用无瑕疵模板图像,训练学习用于瑕疵检测的阈值参数

以无瑕疵织物的图像建立训练集,对各幅图像,获得图像的梯度能量特征图etrain(x,y),采用核函数来拟合etrain(x,y)中的梯度能量分布,获得核密度概率分布p(e),利用均值漂移法迭代求取核密度概率分布p(e)的极值,获得梯度能量分布的峰值所在位置,记为μ,根据峰值将能量分布分为左右两部,分别计算两部方差σ1、σ2,对训练集中的同一类织物的每幅无瑕疵图像均求取参数μ、σ1、σ2后,再对应取其平均值作为该类织物的最终瑕疵检测过程中的阈值参数;

2)对每一张待检测图像,获得其梯度能量特征图etest(x,y),如果etest(x,y)满足下式则判定点(x,y)为疵点:

其中,为步骤1)中获得的阈值参数,α为控制系数;

最后统计总疵点数,若大于设定的阈值td则判定该图有瑕疵。

核密度概率分布p(e)为:

其中,n为该无瑕疵图像的像素总数,{en|n=1、2、3...n}为无瑕疵图像中每个点的梯度能量数据,b为核函数带宽,c0为归一化系数,k(z)为高斯核轮廓函数,即k(z)=exp(-z/2),z≥0。

阈值参数μ、σ1、σ2的具体计算方法为:

1)设定初始值μ0为当前无瑕疵模板图像的梯度能量均值;

2)令μ1=m(μ0)+μ0,其中m(μ0)为μ0处的均值漂移量

上式中,函数g(z)=-k’(z),k(z)为高斯核轮廓函数;

3)若|μ10|<ε,令参数μ=μ1,进行下一步,否则令μ0=μ1并回到上一步进行迭代,ε表示无穷小量;

4)根据式(6)计算阈值参数σ1,其中,s为梯度能量分布图峰值右侧的像素点总数。

es∈{en|n=1,2...n}且es≥μ(6)

5)根据式(7)计算阈值参数σ2,其中,z为梯度能量分布图峰值左侧的像素点总数。

ez∈{en|n=1,2...n}且ez≤μ(7)。

本发明提出一种基于积分图的快速织物瑕疵检测方法,既满足实时性又具有较高正确率。其创新点在于:1)首次提出利用积分图算法快速提取织物图像的梯度能量特征用于瑕疵判别,由积分图将任意大小的图像块内的求和运算化简为三次加法运算,极大减小运行开销;同时,使用积分图算法时,本发明是先做梯度图再做积分图,而不是直接做积分图,这样可以去除光照变化的干扰,更进一步提高检测精度;2)本发明采用核函数拟合非对称的特征分布,结合均值漂移法提取分布峰值,自适应求取阈值参数,实现自动、准确的分割瑕疵区域。

附图说明

图1为本发明方法的流程框图。

图2为本发明方法中基于积分图计算区域积分的示意图。

图3为本发明实施例待检测织物图像。

图4为本发明实施例梯度能量特征图。

图5为本发明实施例瑕疵检测结果图。

图6为本发明方法与其它现有技术方法的检测结果对比。

具体实施方式

本发明提供了一种新的织物瑕疵检测方法,快速、自动化实现高精度的织物瑕疵检测。本发明方法主要包括基于积分图的梯度能量特征提取、基于核函数的阈值参数学习及瑕疵检测三个部分。

如图1所示,本发明首先通过对无瑕疵模板进行图像学习,统计其梯度能量特征分布,所得特征分布非对称,采用核函数拟合特征分布,结合均值漂移法提取分布的峰值,再由峰值自适应求取阈值参数,所述阈值参数用于后续瑕疵的区分;然后,对待检测图像,通过积分图算法求取每个像素点所在检测窗口的梯度能量,结合所述阈值参数,判定当前像素点是否疵点,通过统计整幅图像的疵点总数来判定当前图像是否为瑕疵织物,具体实施方式如下:

1、基于积分图的梯度能量特征提取:

一般而言,无瑕疵的织物图像纹理呈周期均匀分布,对其中任意点(x,y),以它为中心计算固定大小dw*dh窗口下的能量,理想状态下,该能量特征应当不随(x,y)变化而变化,而瑕疵的出现将打破其周期性、均匀性,也使得能量分布发生变化。据此,可以采用窗口能量值作为特征描述来检测瑕疵,但考虑到能量值易受光照影响,因此,本发明采用梯度能量,先求取原始图像f(x,y)的梯度图g(x,y),再对g(x,y)提取能量特征e(x,y)。求取特征e(x,y)的过程中,需要对每个像素统计其邻域像素和,如不采用加速算法,实时性将难以保证,因此,本发明提出采用积分图加速。对图像g(x,y),定义积分图i(x,y)为:

可见积分图i中任一点(x,y)的数值为源图像g中左上角至当前点(x,y)所成的矩形框内所有点的像素值之和。为了加速运算,可用式(1)所示算法快速获得积分图:

i(x,y)=i(x-1,y)+i(x,y-1)-i(x-1,y-1)+g(x,y)(1)

已有积分图i(x,y)后,图像g(x,y)上任意矩形区域的像素积分可由i(x,y)快速计算,如图2所示,令i(x1,y1)=r(a),i(x2,y2)=r(a)+r(b),i(x3,y3)=r(a)+r(c),i(x4,y4)=r(a)+r(b)+r(c)+r(d),r(·)函数表示区域积分,因此,d区域的积分r(d)可如下计算:

r(d)=i(x4,y4)-i(x2,y2)-i(x3,y3)+i(x1,y1)

根据上式,不管矩形区域d面积多大,都仅需三次运算即可求取其中像素值之和,极大降低计算量。据此,基于积分图的梯度能量特征提取方法的具体步骤为:

1)对织物图像f(x,y),求梯度图g(x,y);

2)根据式(1)求取g(x,y)的积分图i(x,y);

3)对任意点(x,y)求取其梯度能量图e(x,y),即以点(x,y)为中心的大小为dw*dh的窗

口区域内的像素积分:

2、基于核函数的阈值参数学习:

理想状态下,对无瑕疵图像,梯度能量e(x,y)应当不随(x,y)变化而变化,而实际中织物上不同区域的纹理不可能完全一致,图像采集过程中也可能引入噪声,因此,梯度能量e(x,y)往往呈一定分布,为了获得合适的阈值参数以分割瑕疵,一种最直接的方法是利用高斯模型来拟合e(x,y)的分布,并将参数设置为该高斯分布的均值和方差。然而,e(x,y)的分布并不总是具有对称性,在密度峰值的两侧可能呈现不同的衰减特性,因此如果用具有对称性的高斯模型拟合很容易产生偏差。为此,本发明提出采用核函数来拟合梯度能量分布,获得它的核密度概率分布p(e):

其中,n为该无瑕疵图像的像素数,{en|n=1、2、3...n}为对无瑕疵图像提取的梯度能量特征图etrain(x,y)中每个点的梯度能量数据,b为核函数带宽,c0为归一化系数,k(z) 为核轮廓函数,本发明选择高斯核轮廓函数,即k(z)=exp(-z/2),z≥0,代入公式(4)求解。为获得梯度能量分布的峰值所在位置,利用均值漂移法求取核密度概率分布p(e)的极值,根据密度峰值将能量分布分为左右两部,分别计算各部方差用于瑕疵检测阈值的计算,具体步骤为:

1)设定初始值μ0为当前无瑕疵模板图像的梯度能量均值;

2)令μ1=m(μ0)+μ0,其中m(μ0)为μ0处的均值漂移量:

上式中g(z)=-k’(z),即高斯核轮廓函数的求导。

3)若|μ10|<ε,停止循环并令阈值参数μ=μ1;否则令μ0=μ1并回到上一步,ε表示无穷小量;

4)根据式(6)计算阈值参数σ1,其中,s为梯度能量分布图峰值右侧的像素点总数。

es∈{en|n=1,2...n}且es≥μ(6)

5)根据式(7)计算阈值参数σ2,其中,z为梯度能量分布图峰值左侧的像素点总数。

ez∈{en|n=1,2...n}且ez≤μ(7)

为提高算法鲁棒性,对训练集中的每幅无瑕疵图像均依据式(5)、(6)、(7)求取参数μ、σ1、σ2,再各取所有无瑕疵图像的平均值作为最终瑕疵检测过程中的阈值参数。

3、瑕疵检测

检测阶段中,对每一张待检测图像,首先按照第一部分基于积分图的梯度能量特征提取方法,获得其梯度能量特征图etest(x,y)。如果etest(x,y)满足下式则判定点(x,y)为疵点:

其中,为通过对无瑕疵模板图像训练而获得的阈值参数,α为控制系数。统计总疵点数,若大于设定的阈值td则判定该图有瑕疵,td可由用户根据质量控制的实际需求调整。

图3、4、5、6为本发明实施效果图,待检测织物图像来源于香港大学电子电气工 程系工业自动化研究实验室提供的织物图像数据集,其中窗口宽度dw和高度dh均设置为25,控制系数α设置为4。图3显示了数据集中的3幅待检测织物图像,分别为(a)、(b)、(c),图4为对应提取的梯度能量特征图,图5为本发明检测结果,图3、4、5中的(a)、(b)、(c)分别对应一幅图像。由图4可见,瑕疵区域的梯度能量特征与正常纹理区域有显著差别,说明所构建的梯度能量特征能够较好的区分瑕疵区域与正常纹理区域。由图5可见所提算法检测结果图能够准确定位瑕疵。图6为本发明方法与其它方法的对比,(a)为织物原图,(b)为本发明方法检测结果,(c)为基于lbp特征的检测结果,(d)为rb算法的检测结果。由图6可见,相对于其它方法,本发明检测结果更加准确。对整个数据集的测试统计表明,当阈值td选择为50时,错检图像仅5幅,正确率达97%,且在matlab平台下平均每幅图像处理时间仅需56ms,而现有其它方法如基于lbp特征的方法在matlab平台下需要高达数十秒,现有研究中速度较快的基于rb算法的方法在c语言环境下还需140ms,本发明所提算法在c语言环境下处理时间将更短,实现了既高正确率又高实时性的检测。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1