APP下载

基于BRDPSO 算法的织物表面瑕疵检测*

2022-06-16张家玮李岳阳罗海驰

计算机与数字工程 2022年5期
关键词:分类器灰度瑕疵

张家玮 李岳阳 罗海驰

(1.江南大学江苏省模式识别与计算智能工程实验室 无锡 214122)(2.江南大学轻工过程先进控制教育部重点实验室 无锡 214122)

1 引言

纺织工业是我国历史悠久的传统产业,也是中国工业化进程中的支柱性产业[1]。但在织物的生产过程中,表面瑕疵是最容易出现的质量问题之一。目前,部分企业仍选择传统的人工目测法,这种方法易受主观因素影响,不仅检测速度慢,准确率也不能达到企业标准。随着市场对产品要求的不断提高,大部分企业都急需寻找一种效率更高的瑕疵检测方法。

常用的织物瑕疵检测算法过程主要包括图像预处理、图像特征提取和分类器分类三个部分,其中图像特征提取和分类器的模型构建是关键的步骤。许多文献已经表明,特征并非越多越好,冗余和不相关的特征会严重影响瑕疵检测的精度和效率。因此使用离散粒子群算法(BPSO)、主成分分析(PCA)等方法从初始特征空间提取出有效特征的同时又能为后续识别工作降低计算复杂度,提高瑕疵检测的实时性[2~3]。另外也有大量的研究证明,设置错误的参数会导致分类器性能大幅降低,因此使用;量子粒子群算法(QPSO)等对分类器的参数进行优化是提高瑕疵识别准确率的有效途径之一[4]。

对于特征提取和分类器模型构建,不少学者使用两步操作的方法,即先使用BPSO 算法或者PCA算法对特征向量进行降维处理,减少特征维度,再使用PSO 算法或遗传算法(GA)优化分类器模型参数[5]。但这会浪费大量的训练时间,同时特征选择和分类器模型参数寻优这两者之间不是独立的,而是相互影响和相互联系的,特征选择与参数寻优同步进行可以更好地检测出瑕疵图像[6]。

因此,本文提出二进制随机漂移粒子群(BRDPSO)算法,并将此算法结合随机森林(RF)分类器实现同步特征选择与参数优化,以保证分类器检测的实时性、准确性与可靠性。同时将所提出的BRDPSO-RF 算法应用在织物表面瑕疵检测方面,实验证明了算法的有效性。

2 二进制随机漂移粒子群算法

2.1 粒子群优化算法

粒子群优化算法(Particle Swarm Optimization,PSO)是1995 年由Eberhart 和Kennedy 等提出的一种源于对鸟群捕食行为进行模拟的算法[7]。优化问题的解被称为搜索空间,而搜索空间中的每一只鸟,被称为“粒子”。每个粒子都对应一个适应值。在迭代的时候,这些粒子通过“自我认知”与“社会认知”追寻群体中的最优粒子以得到问题的最优解。

2.2 随机漂移粒子群优化算法

随机漂移粒子群算法(Random Drift Particle Swarm Optimization,RDPSO)是由Jun Sun 等提出的一种PSO变体,其灵感来自放置在外部电场中的金属导体中的自由电子模型[8]。通过自由电子模型可以知道,电子具有无规则随机热运动与定向漂移运动,这两者运动引导电子到外部电场中具有最小势能的位置[9]。假如将电场中潜在的势能函数视为优化问题的目标函数,电子的位置视为问题的一种解决方案,那么电子的移动吸引过程便如同优化算法求解最优解的进化过程[10]。在RDPSO 算法中,电子被视为“粒子”。因而粒子的更新方程式:

所有粒子个体最好位置的平均值mbest的更新方程如下:

式中:N是粒子群中的粒子数量,Pbest是粒子的个体最好位置。

吸引子pi,j的更新方程如下:

式中:Gbest是所有粒子的全局最好位置,是服从均匀随机分布的随机数。

本文为了解决实际问题中的离散空间优化问题将二进制编码引入RDPSO 算法中,提出了二进制随机漂移粒子群算法(Binary Random Drift Particle Swarm Optimization,BRDPSO)。

2.3 二进制随机漂移粒子群算法

在BRDPSO 算法中,粒子包含两个部分,即随机森林待优化参数部分和特征掩码部分,如图1 所示,粒子前5 位十进制数表示的K1~K5分别代表随机森林需要优化的5 个参数,后n 位二进制串表示特征掩码,“1”表示被选中,“0”表示未被选中,Fn值由特征向量维数决定。

图1 粒子结构图

BRDPSO算法的适应度函数Fit可表示为

式中:Accuracy是随机森林检测的准确率;ones是BRDPSO 算法选择的特征数;all代表原始的特征向量维数;wa是准确率权重;wf是特征子集权重,两者满足下面的关系:

在BRDPSO 算法中,十进制参数部分的更新方式同RDPSO 算法,而二进制位串部分采用新的更新方式。

平均最好位置mbest的二进制位串部分的求解方法如图2所示,假设现共有4个粒子,每个粒子有8 位二进制位串,根据这4 个粒子个体最好位置Pbest,通过统计群体中粒子二进制位串编码的每一位出现0,1 的概率大小,出现0 的次数多,则mbest对应的为0;反之,则为1;当对应位出现的0和1 次数一样的时候,随机选择为0 或者为1[11]。比如,图2 中4 个粒子个体最好位置Pbesti的第5位和第8位分别有两个1和两个0,所以mbest的对应位是随机产生的。在后续描述BRDPSO 算法中,将平均最好位置mbest的二进制位串部分的求解函数记为Get_mbest(Pbest)。

图2 mbest 的二进制位串部分的求解方法

第i个粒子的吸引子Pi的二进制位串部份的更新方式类似于遗传算法中的交叉操作,可以使用单点交叉或多点交叉。在本文中使用的是两点交叉,更新方式如图3所示。

图3 Pi 的二进制位串部份的更新方式

假设Pbesti和Gbest均由8 位二进制串组成。首先随机将Pbesti和Gbest分为3部分。要求每一部分至少有2 位二进制串,且最多不超过3 位。再通过交叉操作得到pi1和pi2两个子代,其中,pi1的前3 位来自Pbesti,第3~5 位来自Gbest,最后2 位来自Pbesti;pi2的前3 位来自Gbest,第3~5 位来自Pbesti,最后2 位来自Gbest。最后随机选择pi1或pi2作为第i个粒子的吸引子pi的二进制位串部份。在后续描述BRDPSO 算法中将pi的二进制位串部份的求解函数记为Get_p(Pbesti,Gbest)。

在BRDPSO 算法的二进制位串部分,每一个粒子的位置都被限定为0 或1。而0 或1 的位置选择则由粒子速度决定。此时速度不再表示位置变化的大小,它反映的是该粒子在某一维取1 的概率。因此,由式(1)更新速度得到后,需要通过转换函数限制概率值在[0,1]之间,本文采用sigmoid函数,即:

故二进制粒子位串部分粒子位置更新公式如下:

式中:rand()是在(0,1)区间上服从均匀分布的随机数。

3 实验过程

本文提出的基于BRDPSO-RF 算法的织物表面瑕疵检测,其具体流程描述如下。

1)对获取到的全部织物图像进行预处理,包括图像灰度化、中值滤波和同态滤波,以达到图像增强和去除噪声的效果;

2)对预处理后的图像应用基于纹理特征的方法(包括灰度梯度共生矩阵、灰度共生矩阵和局部二值模式LBP)提取特征,得到原始特征数据集;

3)将原始特征数据集随机划分为训练集数据和测试集数据;

4)构造二进制随机漂移粒子群-随机森林(BRDPSO-RF)模型,利用训练集训练模型,以得出最优特征子集和最佳随机森林RF分类器参数;

5)根据步骤4)得到的最优特征子集和最佳随机森林RF 分类器参数,构建新的BRDPSO-RF 模型,对测试集进行瑕疵检测。

3.1 图像预处理

实验中所用的织物均由文献[12]作者提供,织物的图像大小均为256×256 像素,色织物的花色背景包括方格纹、星形纹和点纹,瑕疵类型包括断头疵、破洞、粗细不同的污渍等。图4 所示的是其中具有代表性的瑕疵图像。

图4 原始图像

本文的算法只基于图像的灰度信息,所以先将彩色图像灰度化。然后使用中值滤波方法去除图像噪声,同时保护图像的边缘信息。最后使用同态滤波方法减小光照不均的影响,并达到增强图像对比度和细节的目的。预处理后的图像如图5所示。

图5 预处理后的图像

3.2 特征提取

本文使用灰度梯度共生矩阵、灰度共生矩阵和LBP提取图像的纹理特征。

灰度梯度共生矩阵(gray-gradient co-occurrence matrix,GGCM)反映一幅图像各像素点的灰度和梯度的关系,图像的灰度是其构成的基础,而梯度则是构成图像边缘轮廓的主要元素,将二者结合起来使用,能够很好地表征图像的纹理特征[13]。本实验选取出了灰度梯度共生矩阵中15 个常用的统计特性,用来描述灰度图像纹理特征。

1973 年Haralick[14]等提出了用灰度共生矩阵(Gray-level co-occurrence matrix,GLCM)来描述纹理特征。本实验选取对比度、相异性、同质性、相关度、能量和ASM这6 个特征量来表示纹理特征。选取方式为:在θ(0◦,45◦,90◦,135◦)这4 个方向计算灰度共生矩阵,并得到了4组6维特征向量,通过求平均值得到了最后的唯一一组6 维特征向量用以表示基于灰度共生矩阵提取的纹理特征向量。

局部二值模式LBP(Local Binary Patterns,LBP)是由Ojala提出的一种基于灰度描述图像纹理特征的不相关算子,它通过描述图像任意一点与其周围点的灰度值大小关系来表征图像的局部纹理特征[15]。本实验使用旋转不变LBP 提取了256 维纹理特征向量。

3.3 同步特征选择与参数优化过程

第一步:初始化粒子群,假设粒子的数量为N,维度(搜索空间)为D,并将当前粒子位置赋给粒子个体最好位置,即,其中i=1,2,…,N。

第二步:根据上面式(3)计算平均最好位置mbestj的随机森林模型参数部分的值,由Get_mbest(Pbest)得到二进制位串部分的值。

第三步:根据式(5)计算每个粒子的适应度函数值。

第四步:粒子个体最优位置更新方式如下:

根据式(5)的适应度函数计算方法,准确率越高越好,选取的特征数量越少越好,因此适应值越大越好。

粒子全局最优位置是所有粒子个体最优位置的最佳值,其更新方式如下:

式中:g为所有粒子个体最优位置的最佳值所对应的粒子编号。

第五步:根据式(4)计算吸引子pi的随机森林模型参数部分的值,并由Get_p(Pbesti,Gbest)计算pi的二进制位串部分的值。

第六步:根据式(1)更新粒子的速度。

第七步:粒子位置的随机森林模型参数部分的值根据式(2)更新,并根据式(8)更新粒子位置的二进制位串部分的值。

第八步:重复第二步~第七步,直至达到最大迭代次数,得到最终的Gbest。训练完成后,Gbest的前5 维为最佳的随机森林参数组合,后n维是最优特征子集,其中“1”表示选择此特征,“0”表示不选此特征;

第九步:将挑选出的特征向量作为新的特征数据集,同时采用优化后的随机森林参数,构造BRDPSO-RF 模型,对测试集进行织物表面瑕疵检测,输出最终的准确率、漏检率和运行时间。

4 实验结果分析

4.1 评价指标

在织物瑕疵检测中,瑕疵检测的准确程度和检测算法的实时性是非常重要的指标。所以本文选取检测准确率(ACC)、漏检率(Miss)以及检测时间(Time)来衡量算法的有效性。ACC和Miss的计算公式如下:

式中:TP代表正确检测到的无瑕疵样本的数量,TN代表正确检测到的有瑕疵样本的数量,FP代表把有瑕疵样本检测为无瑕疵的数量,P代表无瑕疵样本的全部数量,N代表有瑕疵样本的全部数量。

4.2 实验结果及分析

算法采用Python 语言实现,开发环境为Jupyter Notebook,运行环境为Windows 10。样本图像是文献[12]作者提供的75张大小均为256×256 像素的图像,其中花色背景有三种,分别是方格纹、星形纹和点纹;瑕疵类型有5 种,分别是断头疵、破洞、粗细不同的污渍、跳花以及打结。本文先使用重叠的方式对样本图像进行分割,并将分割后得到的大小为64×64 像素的小图像作为最终样本数据。

本文粒子群的参数设置如表1所示。

表1 粒子群的参数设置

表1 中的热系数α和漂移系数β分别满足如下更新方程式:

式中:T是最大迭代次数,t是当前迭代次数;α1和α0分别是α的最大值和最小值;β1和β0分别是β的最大值和最小值。

RF分类器的参数范围设置如表2所示。

表2 RF分类器的参数取值范围设置

式中:h代表每次迭代挑选出的特征向量数目。

实验中取wa=0.9 ,并将本文提出的BRDPSO-RF模型与未进行特征选择,未进行参数优化的RF 模型;只进行特征选择,未进行参数优化的BRDPSO-RF1 模型;采用全部特征,只进行参数优化的RDPSO-RF模型;分开进行特征选择和参数优化的BRDPSO-RF2 模型以及PCA-RF 模型进行对比。表3 示出了在不同背景下,不同模型在5 种类型瑕疵检测上的结果对比。

从表3 中可以看出,本文提出的BRDPSO-RF模型在准确率和漏检率方面更优于其他模型。在平均准确率上提高了2.86%~10.27%,其中在瑕疵类型为污渍的图像检测上更是将准确率提升到了96.91%;在漏检率上减少了0.49%~13.26%。从运行时间这方面来看,只进行特征挑选的BRDPSORF1模型更优于其他模型,但是运行时间不止与模型本身有关,还与随机森林分类器的参数和CPU的使用情况相关。因而综合来看,从检测的准确率,漏检率,特征向量选择能力以及运行效率等方面综合考虑,本文提出的BRDPSO-RF 模型均优于以上提及的模型。

表3 不同模型在5种类型瑕疵检测上的结果对比

5 结语

本文从同步特征选择与参数优化的角度出发,创新性地提出了二进制随机漂移粒子群(BRDPSO)算法,并将该算法与随机森林算法相结合,构造BRDPSO-RF 模型,然后将该模型应用于织物表面瑕疵检测中。文中详细地给出了BRDPSO 算法的迭代方程,并结合随机森林(RF)算法给出了解决织物表面瑕疵检测问题的步骤。最后,通过与单独优化方法、分开优化方法和未优化方法进行对比实验,证明本文提出的同步特征选择与参数优化BRDPSO-RF 模型可以去掉冗余的特征,减少特征数量,从而达到减少计算量,保证在实际使用时系统检测瑕疵的实时性要求,并且具有最优的检测准确率和漏检率。

猜你喜欢

分类器灰度瑕疵
分类器集成综述
少样本条件下基于K-最近邻及多分类器协同的样本扩增分类
基于二值化灰度图像的大豆蛋白液喷雾相对雾化程度的研究
学贯中西(6):阐述ML分类器的工作流程
天津港智慧工作平台灰度发布系统和流程设计
Arduino小车巡线程序的灰度阈值优化方案
哦,瑕疵
基于AdaBoost算法的在线连续极限学习机集成算法
毫无瑕疵的推理
考眼力