APP下载

基于多尺度下LBP和PSO的织物瑕疵检测方法研究

2019-03-05陈建英

关键词:疵点分块瑕疵

李 涛,陈建英,刘 莉

(西南民族大学计算机科学与技术学院,四川 成都 610041)

1 引言

织物疵点检测在纺织品生产中占有重要地位,减少布匹疵点、提高质量是纺织企业生产和管理中不容忽视的问题.尽管对织物疵点自动检测的研究已有大量有价值的文献,新方法不断涌现,对织物疵点的自动检测仍吸引着国内外学者的关注和研究.

受织物疵点图像采集过程中各种噪声的影响、不同织物的纹理各不相同及瑕疵本身所具有的多样性和复杂性,以及疵点的不规则性、出现的随机性或奇异性等特点,疵点形状和大小不可预测而难以建立疵点模型.疵点自动检测技术的核心内容是对采集的织物图像进行处理,已有的检测方法众多[1-6].

织物纹理属于一种结构性纹理,具有稳定性、局部性和邻域相关性等特征,纹理的描述通常有结构法、统计法和频谱法三种.LBP(Local Binary Pattern)可以有效地描述图像的纹理,兼顾了纹理的结构特征和统计特征,具有光照不变性和旋转不变性的特点,被广泛应用于人脸识别、掌纹特征提取、场景分类、超声图像处理、目标跟踪等领域[7-12].LBP区别于一般基于统计纹理描述子的是它考虑了像素与其邻域之间的关系.而纹理又是一种与尺度有关的图像特征,同一纹理在不同的尺度下有不同的表现.多尺度分析这种对图像进行分析的方法类似于人类的视觉系统,缘于在不同尺度下,图像会表现出具有与尺度相关的一些特性,即通过多尺度分析,可得到不同尺度下的全局和局部的信息.此外,在一些实时处理场合,多尺度分析还具有计算效率上的优势.正因为如此,对图像进行多尺度处理方式在数字图像处理、分析领域获得成功应用[13-16].

Eberhart和Kennedy于1995年基于对鸟群、鱼群的模拟提出的微粒群优化算法PSO(Particle Swarm Optimization)具有精度高、收敛快的特点,本文拟采用在不同多尺度下用LBP分析技术提取织物纹理特征,在此基础上将图像分块后用PSO对疵点搜索进行检测.

2 LBP算法原理

局部二进制模式(Local Binary Pattern,LBP)[17-19]可以有效地描述图像的纹理特征,LBP可以用于提取纹理特征,将特征组织在一起构成特征向量,能够表示图像的局部特征,有很好的灰度不变性和旋转不变性,该模式是以一个邻域为待处理对象,将邻域中心像素的灰度与其相邻像素的灰度进行差分运算,若结果为正,则将该相邻像素置为1,否则置为0,由此得到一个二进制序列,以左上角为起点,按顺时针方向读出八个像素位置的值,为每一位二进制分配一个权重因子2i后,得到一个对应的十进制数值,以此值作为中心像素点的输出.

以3×3的8邻域为例说明基本LBP算法,如图1所示:

图1 基本LBP算法Fig.1 Basic LBP algorithm

式(2-1)为其数学描述:

式中,gc是邻域中心点的灰度值,gi是与中心点相邻像素的灰度值,P为该邻域中像素总数,R是邻域的半径值.上图中P=8,R=3.但当纹理发生旋转时,由式(2-1)可以得到不同的 LBPP,R,如11011111与11111011,显然,这两个值也可由另一个LBP循环移位得到,此时,这两个值对局部空间结构的描述视为一致.因此,为消除旋转所带来的影响,引入(2-2)式:

上式中的ROR(x,i)表示将二进制序列x向右循环移位i次,(2-2)式表示标准LBP算子循环移位(P-1)次后,其中的最小值作为L算子.

式中u(LBPP,R)表示LBP算子中0-1或1-0的跳变次数,当二进制位串包含的1到0或0到1的跳变次数不大于2的情况称为统一LBP或均匀LBP(Uniform LBP,ULBP),否则为非统一模式或非均匀模式.

3 PSO算法

PSO(Particle Swarm Optimization,微粒群算法)是一种仿生演化计算技术,它源于对鸟群觅食,可实现高效并行、随机、自适应群体搜索,用来求全局最优解该算法拥有参数少、收敛速度快、易实现的优点,而受到学者们的关注及应用.

微粒通过跟踪粒子来寻找最好解,即算法通过pbest(局部极值)和gbest(全局极值,种群的最好解)两个量来更新微粒的当前值,微粒i是一个D维向量,该向量包含两个方面的信息:位置信息和速度信息,其中位置信息用 Xi表示,或写成 Xi=(xi1,xi2,…,xiD)T,速度信息用 Vi表示,可表示为 Vi= (vi1,vi2,…,viD)T,这两个量的更新方程为:

式中rand1和rand2是两个在[0,1]范围内变化的随机函数,另有3个权重因子,w为惯性权重系数,c1和c2为加速因子.从方程(3-2)可以知道,PSO算法的性能与其参数相关,加速因子c1用于调节微粒飞向全局最好的最大步长,加速因子c2则是调节个体最好的最大步长,这两个加速因子的取值会影响微粒与目标区的距离,如果太小,微粒可能远离目标区;太大,微粒可能直接飞过或冲向目标区[20].因此,让算法加快收敛又不易陷入局部最优需要选用合适的c1,c2.本文取c1=c2=2[21].而惯性权重w,该值越大,全局搜索能力越强;越小,则局部搜索能力越强.通常,在搜索过程中,w的取值会不同,在初期,取值较大,后期则取值较小.因而有不少文献对参数进行改进,本文采用文献[22]对权重的优化方法:

其中wmax是最大惯性权重的初始化值,wmin对应最小惯性权重的初始化,λ为控制惯性权重变化的参数,本文取值为3,t为当前的迭代次数,tmax为最大迭代次数.因而,PSO算法流程表述如下:STEP 1,随机初始化微粒,包括位置信息、速度信息、群体规模和微粒的维数;STEP 2,对每个微粒的适应度进行评价;STEP 3,对每个微粒经历过的最好的位置pbest与其适应值进行比较,如果优于当前值,则进行替换,将之作为当前最好位置;STEP 4,再将每个微粒所经历的全局最好位置gbest与其适应值作比较,如果也是优于当前值,则对gbest的索引号重新设置;STEP 5,根据方程(3-1)和(3-2)对微粒的速度和位置进行调整,检查是否符合结束条件,是,则停止迭代,如果没有,再返回到STEP 2.

4 本文提出的检测算法

计算分块图像间的相似度,通过计算分块图像LBP直方图间的距离得到,而用于表示直方图距离的方法有欧几里德距离、中心距法、闵可夫斯基距离法等,本文采用K-S(Kolmogorov-Smirmov)距离[23],即:

其中 H1i和 H2i分别表示子图像中各分块的值,N 为的个数,Dks值越大则疵点的可能性越大,反之,可能性小.但是也不能排除疵点范围大,相邻两个块同属疵点区域的中能,这样Dks值反而小,而多尺度下的分块可以减少这种可能,即在不同分辨率下逐级排除疵点.

在多尺度、多分辨率分析方面,小波变换和Gabor变换,因这两种方法的处理过程与人眼视觉过程近似,可用于检测不同尺度的疵点,但它们的高复杂度、大计算量的特点,对于实时性要求较高的大规模生产下对疵点检测就不太适用了,本文采用Goutsias和Heijmans[24]提出的扩展金字塔变换,这种金字塔变换保留了传统金字塔变换的多分辨率分析特性,对信号空间的要求可以是非线性空间,同时,对信号进行分解的滤波器可以是非线性的.

4.1 算法模型

对输入图像建立坐标系,水平向右为x轴正向,垂直向下为y轴正向,左上角顶点为坐标原点,一幅M×N个像素的图像,其左上角的像素定为第(1,1)个像素,右下角的像素定为第(M,N)个像素,而PSO中的微粒位置与像素点的坐标相对应,因而微粒维数D为2.对于第i个微粒在迭代时,其位置为=(,),其中k表示第k迭代,表示像素点与x轴的距离,表示像素点与y轴的距离.微粒的运动范围

4.2 扩展金字塔变换

假设Vj(j∈Ζ)表示j层的信号空间,定义分解算子和合成算子如下:

分解算子将信号从低层变换到高一层,向上逐层减少信号信息,合成算子对信号的处理则是由高到低的进行映射,是分解算子的逆算子,金字塔变换在这两个算子满足下式的情况下即可实现.

上式表示:对于任意信号xj+1∈Vj+1,先用合成算子对它向下一层合成,然后再用分解算子向上一层分解,得到的信号与xj+1恒等.但是先分解后合成的结果是原始信号的近似,即

4.3 算法描述

本文提出的基于PSO和LBP的疵点检测算法描述如下:

Step1:将输入图像进行扩展金字塔变换,得到多个不同分辨率的子图像;

Step2:对每个子图像分块并计算其ULBP值,获取对应的直方图并进行排序;

Step3:对每个子图像,初始化PSO算法中的各参数,使用式(4-1)计算微粒的适应度值进而评价微粒,对微粒进行更新、迭代.

Step4:如果迭代次数到达设定阈值或搜索到全局最优位置则停止迭代,输出结果.

在对微粒进行初始化时,需要设置微粒的数量、维度、最小和最大的飞行速度及3个权重值,而对于各微粒的初始位置和速度则随机生成,初始位置确定当前微粒所在的分块区域,由Dks计算微粒的适应度值.

5 实验结果

本文提出的算法的测试平台为Pentium4、2.66 GHz、512MB内存.实验在MATLAB7.1上实现,进行了9组实验,图2、3为其中的两组实验,每组实验图像大小不一,采用先将原始图像样本划分成16×16的子图像块后,再分别含有瑕疵的子图像块和不含瑕疵的图像块进行测试.实验结果表明正常样本的准确率为99.56%,对有瑕疵的样本检测准确率为96.37%.

如图2、3中所示(a)原图分别为(1140×1140)和(512×512),图2(a)的正常子图像块样本有4916个,含瑕疵的样本块有160个;图3(a)的正常子图像块样本有914个,含瑕疵的样本块有110个.其中图(b)~(e)是不同分辨率下的ULBP纹理特征,实验中采用三层分解,检测结果在(a)中标记,均是在LBP直方图的基础上分块使用PSO进行寻优得到.在PSO寻优过程中,对迭代进行控制的加速因子均取值2,控制惯性权重的参数取3.图4仅给出了其他的疵点图及其LBP纹理图,在检测中对于空心糙如图2(a)和蛛网糙如图3(a)及缺经等的检测效果比较理想,但对于图4(a)的油渍在一层分解的情况下检测率略低,而加入其他不同尺度下的LBP及分块处理后能检测出来.织物瑕疵在图像中的表现差别比较大,将图像进行分块、分尺度处理后,算法对瑕疵区域的识别敏感性得到提高,对于本研究所述方法,实验中对不尺度情况下的瑕疵图进行对比,尽管有油渍织物直接在大尺度情况下检测效果不太好,但进行分块和其他尺度结合下能检测出来;实验也证实了,对于同一类瑕疵,进行旋转和改变光照条件情况下,未使用ULBP算法及传统LBP算法时的检测识别率明显低于采用ULBP后的检测效果.

图2 检测结果1Fig.2 Detection result 1

图3 检测结果2Fig.3 Detection result 2

图4 其它疵点及ULBP纹理图Fig.4 Other defects and theirs ULBP texture

6 结论

本研究以分块分尺度下利用ULBP算法和PSO结合的形式对瑕疵图像进行处理,从实验结果看到该算法可适用于多种瑕疵检测,且克服了瑕疵图像在生产中不宜大量获取情况下进行检测的问题.

针对带有疵点的织物图像在疵点区域其纹理、灰度有别于规律性的正常纺织结构,提出了一种多尺度下基于PSO和ULBP的疵点检测算法,对图像进行多尺度变换后,利用ULBP计算速率高且具有光照不变性和旋转不变性的特点进行纹理特征描述,在此基础上采用PSO算法对分块的LBP直方图进行疵点检测,在保证速度的情况下,本文提出的算法能较好地定位瑕疵区域.

猜你喜欢

疵点分块瑕疵
基于Cascade RCNN 和二步聚类的织物疵点检测
钢结构工程分块滑移安装施工方法探讨
关于4×4分块矩阵的逆矩阵*
喷丝板疵点检测系统设计
登记行为瑕疵与善意取得排除的解释论
基于FPGA的图像疵点处理设计与实现
哦,瑕疵
哦,瑕疵
懒交互模式下散乱不规则分块引导的目标跟踪*
毫无瑕疵的推理