APP下载

基于Gabor滤波器和HOG特征的织物疵点检测

2018-09-19汤晓庆黄开兴秦元庆周纯杰

计算机测量与控制 2018年9期
关键词:疵点特征向量纹理

汤晓庆,黄开兴,秦元庆,周纯杰

(华中科技大学自动化学院,图像处理与智能控制教育部重点实验室,武汉 430074)

0 引言

在纺织工业中,织物的疵点会使其价值降低45%~65%,传统的织物疵点是通过人工进行检测,不仅效率低下,而且漏检率高,研究发现人工疵点检测的准确率大概只有60%~75%,不能满足现在企业对产品质量的要求[1]。

目前基于机器视觉和图像处理的疵点检测技术已经成为国内外研究学者的热门研究方向,各种图像处理算法被研究用于疵点检测当中,如基于统计的、基于模型的、基于频谱的方法等,并产生了许多有益的成果[2-3]。其中 Gabor滤波器作为一种重要的时频分析方法,由于在空间域和频率域都具备良好的局部性,并且和人眼的视觉通道很相似,因此被广泛的应用于疵点检测中[4]。利用Gabor滤波器对织物分析的方法主要有两类:一类是通过使用多尺度、多方向的Gabor滤波器组对织物疵点图像进行滤波[5];另一类是通过最优化的方法调整Gabor滤波器参数来构造最优滤波器对织物图像进行检测,这类方法需要事先对大量样本进行学习[6]。Gabor滤波器对织物图像滤波可以减少疵点图像对比度低和光照不均的影响,但是很难完全的消除背景纹理和噪声对疵点检测的干扰。方向梯度直方图 (Histogram of Oriented Gradient,HOG)是一种有效的形状和边缘信息提取算子,在机器视觉和图像处理领域被广泛应用于物体检测和体感识别等方面,目前也有一些研究将其应用于疵点检测中[7-8]。HOG 算子可以统计图像局部强度梯度和边缘分布来描述局部物体形状特征,并且对光照变化不敏感[9]。通过提取织物图像的HOG特征,利用织物背景和疵点区域的HOG特征差异可以尽可能消除背景纹理和噪声对疵点检测的影响。

本文经过对国内外相关文献的研究,将Gabor滤波器和HOG特征结合用于织物疵点检测,通过增强织物图像的疵点信息和消除背景及噪声影响,使织物疵点的检测更加准确。

1 Gabor滤波器、HOG原理

1.1 Gabor滤波器理论

Gabor变换是一种重要的时频分析方法,在空间域,它是由高斯函数调制的复振荡信号;在频率域,它是一个平移的高斯函数[10]。Gabor滤波器在二维空间的冲激响应函数为:

其中:σx和σy为滤波器的尺度因子,控制高斯函数在x轴和y轴的伸缩程度,如果σx=σy,则高斯截面是圆形的,否则是椭圆形的;w0则代表径向中心频率,其决定了Gabor滤波器在频率域中的位置;x'=xcosθ+ysinθ,y'=-xsinθ+ycosθ,θ为旋转角度,x,y为原来坐标,x',y'为旋转后坐标。通过选择不同的尺度w0和方向θ的值,可以获得一组不同尺度、不同方向的自相似的Gabor滤波器。

Gabor滤波器由实部和虚部组成,可表示为:

其中:ge(x,y)是二维Gabor滤波器的实部,go(x,y)是二维Gabor滤波器的虚部。文献 [11-12]的研究发现:Gabor滤波器的实部适用于检测团状疵点,而虚部适用于边缘检测。

1.2 HOG特征提取算法

方向梯度直方图 (HOG)是一种在机器视觉和图像处理中用来进行物体检测的特征描述子[13]。其基本观点是局部目标的外表和形状可以被局部梯度或边缘方向的分布很好的描述。本文采用的HOG特征提取算法流程如下:

1)采用Gamma矫正法对图像进行矫正,降低图像局部的阴影和光照变化所造成的影响,同时抑制噪声干扰。

式中,H(x,y),h(x,y)分别表示图像在点 (x,y)处的Gamma矫正后和校正前的像素值;gamma一般取1/2。

2)计算图像每个像素点的梯度。其中图像在点 (x,y)处的水平梯度和垂直梯度为:

式中,Gx(x,y),Gy(x,y)分别代表像素点 (x,y)处的水平梯度、垂直梯度。可求得像素点 (x,y)处的梯度幅值和方向分别为:

式中,G(x,y),α(x,y)分别为图像在像素点 (x,y)处的梯度幅值和梯度方向。

3)将图像分为4*4像素的单元 (cell),8*8像素的块 (block),其中block由邻近的2*2的cell组成,以4个像素 (一个单元)为块步长。

4)统计每个cell的梯度直方图,梯度直方图选择4个方向通道,即可得到4维的HOG向量。

5)将每个block内4个cell的HOG向量进行统计,即得到block的16维HOG特征向量,同时对该HOG特征向量采用重叠单元归一化,减弱图像中的光照不均等影响。

6)统计图像中所有block的HOG特征向量。

2 织物疵点检测算法

在进行织物疵点检测时,首先使用3个尺度、4个方向的Gabor滤波器对织物图像进行滤波并将滤波后的图像进行融合;然后再利用双边滤波对图像去噪;最后通过HOG特征提取和阈值分割实现疵点检测。算法的流程图如图1所示。

图1 疵点检测算法流程图

2.1 Gabor滤波

在获取到待检测织物图像后,首先利用Gabor滤波器对图像进行滤波,滤波过程包括以下几步:

1)在文献 [14-15]中对比了Gabor滤波器的实部和虚部在不同径向中心频率和方位角组合下的分辨能力,发现Gabor滤波器的实部的分辨力远远好于虚部。考虑到常见织物 (平纹布和斜纹布)的纹理一般在水平、垂直和对角线方向,本文采用3个尺度和4个方向(00,450,900,1350)的二维实Gabor滤波器来对织物图像进行滤波。织物图像的Gabor滤波可以表示为:

式中,f(x,y)表示待检织物图像,fmn(x,y)表示滤波后的图像,‘*’表示二维卷积运算;gmn(x,y)表示实Gabor滤波器,m表示尺度数,n表示方向数;m=1,2,3;n=1,2,3,4。

2)Gabor滤波后得到了12幅图像。首先把相同尺度,不同方向的图像进行融合,得到3幅不同尺度的融合图像:

式中,pm(x,y)表示融合后的图像;m=1,2,3。

3)将3幅不同尺度的图像再进行融合,得到融合图像p12(x,y),p23(x,y):

4)对p12(x,y),p23(x,y)进行融合,得到最终融合图像P(x,y):

2.2 双边滤波

在织物图像经过Gabor滤波之后,织物图像的疵点区域得到增强,背景纹理信息得到一定的抑制,为了保证疵点检测的准确性,需要进一步去除背景纹理信息和噪声。这里对比三种织物疵点检测中常用的图像去噪手段:中值滤波、高斯滤波、双边滤波,观察三种滤波算法对一幅含有明显疵点的织物图像的滤波效果,如图2所示。

在图2中,图2(a)是疵点原图,图2(b)是Gabor滤波后的图像,图2(c)、图2(d)、图2(e)分别是对图2(b)进行双边滤波、高斯滤波、中值滤波的效果图。从3种滤波算法对图2(b)的滤波效果来看,双边滤波相比于其他两种算法,不仅很好的抑制了背景纹理,而且保持了图像中疵点的边缘信息。因此本文采用双边滤波对Gabor滤波后的织物图像进行去噪。

图2 三种滤波算法效果对比

2.3 HOG特征提取与阈值分割

经过双边滤波之后,对滤波后的图像进行HOG特征提取和阈值分割。处理过程包括以下几步:

1)提取图像的HOG特征向量。

按照前面HOG特征提取算法的步骤,提取图像所有8*8图像块的HOG特征向量。以256×256像素的图像为例,经过HOG特征提取可以得到3969个图像块,因此可以得到3969个16维的HOG特征向量。

2)根据图像提取的HOG特征向量进行阈值处理。

首先将待检织物的无疵点织物图像作为样本进行训练。通过对无疵点织物图像进行Gabor滤波和双边滤波之后,提取图像的所有16维HOG特征向量,然后统计16维特征向量每一维的最大值:

式中,n表示特征向量总数;vi表示第i个特征向量,i=1,2…,n;vi(j)表示特征向量 vi的第 j维特征值,j=1,2…,16;表示特征向量第j维的最大值。

将无疵点织物图像中提取的HOG特征向量的每一维的统计最大值作为疵点检测阈值,然后对被检织物图像进行阈值处理:

式中,Bi(x,y)表示特征向量vi对应的图像块的像素值;表示特征向量第j维的检测阈值。通过将图像中所有子图像块的HOG特征向量的每一维特征 (比如第j维)与对应维度的疵点检测阈值比较,如果存在某一维的特征值大于,即说明该图像块为疵点区域,将图像中该图像块的像素全置为1;否则该图像块为正常区域,将图像中该图像块像素全置为0。

3)显示阈值分割后的二值图像,从图像中可以清楚的观察织物图像中是否存在疵点以及疵点出现的位置。

3 实验与分析

为了检验本文提出算法的疵点检测效果,对破洞、断经等几种常见的织物疵点进行实验测试,其中疵点图像来自TILDA织物纹理数据库以及CCD工业相机采集的织物图像,图像大小为256×256像素。实验在OpenCV2.4.10和Microsoft Visual Studio2010环境下进行。

3.1 算法测试

本节利用本文提出算法对破洞、断径、断纬、油污、跳纱5种常见的织物疵点各选取30幅疵点图像进行实验测试,疵点图像如图3(a)所示。算法的具体实现步骤如下:

1)对疵点图像进行Gabor滤波与图像融合。

首先通过前面选定的Gabor滤波器参数来构造Gabor滤波器组与疵点图像进行卷积运算实现Gabor滤波,然后将Gabor滤波后的疵点图像按前述方法步骤进行图像融合。融合后的图像如图3(b)所示,从图中可以看出经过这步运算图像中疵点区域和背景纹理的对比度得到了明显增强。

2)对融合后图像进行双边滤波。

图像双边滤波通过调用OpenCV中的双边滤波函数实现,其中双边滤波的参数是经过对5种疵点图像进行测试设置的经验值。双边滤波后的图像如图3(c)所示,从图中可以看出双边滤波不仅实现了图像平滑,同时很好的保留了疵点区域的边缘。

图3 疵点检测效果图

3)对图像进行HOG特征提取与阈值分割

图像HOG特征提取与阈值分割是按照前面介绍的算法步骤进行实现的,其中阈值通过对20幅正常纹理织物图像按照前述方法进行训练得到。阈值分割后的最终疵点图像如图3(d)所示,从图中可以看出几种疵点被准确地从织物图像中检测和分割了出来。

经过对5种疵点各30幅图像进行实验测试,这里对5种疵点的检测准确率进行了统计,统计结果如表1所示。从图3中的疵点检测效果和表1中的疵点检测准确率来看,本文提出的算法利用Gabor滤波器与HOG特征提取,很好的实现了织物图像疵点区域的增强与背景纹理影响的消除,进而保证了本文算法能够有效地实现织物常见疵点的检测,并能较准确地确定疵点出现的位置和疵点的大致形状。

表1 织物5种疵点检测准确率统计

3.2 对比实验

为了进一步检验本文提出算法的检测效果,这里将本文提出算法与文献 [16]中的算法进行了对比,其中文献[16]中利用了4个尺度、6个方向的Gabor滤波器组对织物图像进行疵点检测。两种算法的实现与实验对比在本文搭建的实验平台下进行。

首先在实验中对比了两种算法对4种不同种类疵点的检测效果,如图4所示。其中图4(a)为疵点样本图像,图4(b)为本文提出的算法对疵点样本图像的检测结果,图4(c)为文献 [16]中算法对疵点样本图像的检测结果。从4种疵点检测结果的对比上可以看出,两种算法都检测到了疵点并将疵点从图像背景中分割了出来,但是从整个疵点检测的效果上来看,文献[16]中算法将一些背景纹理也检测为疵点,而本文算法较好地消除了背景纹理和噪声的影响,更加准确地定位了疵点的位置。

另外在实验中通过CCD相机收集了50幅织物图像,其中包括20幅无疵点的样本图像,30幅含不同种类疵点的样本图像,并将图像大小调整为256×256像素,以提高检测效率。然后使用本文提出算法和文献[16]中算法分别对样本图像进行疵点检测,检测结果见表2。表2中的正检率表示疵点样本图像被正确检测的比率,误检率表示无疵点样本图像被误检为存在疵点的比率。

表2 织物疵点检测率统计

从表2中可以看出,本文算法和文献 [16]中算法的正检率相同,但是本文算法对无疵点的织物图像的误检率较低。整个对比实验的结果表明:与文献 [16]中传统的Gabor滤波算法相比,本文将Gabor滤波器和HOG特征提取结合可以更好的消除织物背景纹理和噪声的干扰,使得整个织物疵点的检测结果更为准确。

图4 两种算法疵点检测结果对比

4 结论

本文提出了一种基于Gabor滤波器和HOG特征的织物疵点检测算法。首先采用3个尺度、4个方向的Gabor滤波器组对织物图像进行滤波,使图像对比度增强,同时抑制背景纹理信息;然后通过双边滤波进一步对图像去噪;最后通过提取图像HOG特征并利用图像疵点区域和背景纹理的HOG特征差异进行阈值分割实现织物的疵点检测。通过本文提出算法对多种织物疵点进行了测试,并与传统的Gabor滤波算法进行了比较,实验表明本文算法并且可以较好的抑制织物背景及噪声的干扰,准确的将织物疵点从织物背景中分割出来。由于实际应用中的织物类型和生产条件各不相同,根据实际情况后面可以对算法中的Gabor滤波器等的参数进行优化,使其疵点检测的效果更好。

猜你喜欢

疵点特征向量纹理
二年制职教本科线性代数课程的几何化教学设计——以特征值和特征向量为例
基于Cascade RCNN 和二步聚类的织物疵点检测
克罗内克积的特征向量
基于总变差的织物疵点分割方法
喷丝板疵点检测系统设计
基于BM3D的复杂纹理区域图像去噪
基于FPGA的图像疵点处理设计与实现
肺纹理增多是病吗?
三个高阶微分方程的解法研究
TEXTURE ON TEXTURE质地上的纹理