朱刘盅,李竞择,吴 磊,季伟伟,严万万,胡姊娟
(1.河海大学 商学院,江苏 南京 210098;2.江东科技有限公司,江苏 南通226400;3.南京理工大学 计算机科学与工程学院,江苏 南京 210094)
光纤是用来导光的透明介质纤维,靠着体积小、重量轻、原材料来源广、价格低廉等优点,近几年大量应用于通信技术,已经取代铜导线成为长距离的通讯线路材料,在现代电信网中起着十分重要的作用。
光纤通信作为二战以来最有意义的四大发明之一,奠定了网络信息传输的基石,承载了全球90%以上的数据流量[1]。并且,光纤通信技术具有传输频带宽、容量大、损耗低、抗干扰能力强等特点,经过飞速发展,已经成为世界新技术革命的重要标志和未来信息社会中各种信息的主要传送工具[2]。
与此同时,随着计算机科学技术的发展,人们把更多的目光投向了机器视觉领域。非接触、高效率、便捷客观等优点,使得机器视觉在工业缺陷检测方面得到更广泛的应用[3-5]。比如孙卫红等[6]提出通过像素点互补算法增强图像裂缝的对比度,更好地检测桩护壁裂缝区域。胡浩等[7]对缺陷区域的灰度、灰度梯度及形态进行分析分类,提高了小瓦磁缺陷检测率。Zhang等[8]利用二维图像搜索转换为一维特征匹配,提出了一种改进的图像相减方法,用于卷筒纸胶印的缺陷检测。根据检测原理的不同,缺陷检测方法可以分为统计方法、过滤方法[8]、模型方法、结构方法和基于学习的方法[9]。统计方法包括共生矩阵、形态学[10]、自相关函数等,通过计算图像像素的灰度分布来获取缺陷信息[11,12]。过滤方法采用傅里叶变换[13]、Gabor滤波等滤波方法[14,15]去除图像噪声,增强缺陷特征以完成检测。结构方法通过分析纹理信息,采用纹理分割和纹理识别进行缺陷检测。而基于学习的方法通常以支持向量机(Support vector machine,SVM)[16]、视觉几何组(Visual geometry group,VGG)[17]network模型、残差神经网络(Residual neural network,ResNet)[18]、AlexNet[19]等神经网络为基础,使用已知样本训练的分类器来区分缺陷样本和非缺陷样本。
在光纤制造过程中,也会产生瑕疵,而当前工厂多采用人工判断方式,此方法往往存在标准不统一、人员不固定、外观数据无法追溯、效率低下等问题。并且封装的光纤缺陷检测方法很少,所以本文提出了一种基于Gabor滤波器的光纤缺陷检测系统,利用Gabor小波良好的空间局部性与方向选择性,对光纤图像在水平方向滤波以消除背景纹理对瑕疵检测的影响并增强瑕疵特征,再对图像进行形态学操作进一部增强瑕疵特征,通过阈值分割提取瑕疵特征,然后对图像进行分块处理,结合灰度信息与形状信息对瑕疵区域进行筛选,达到瑕疵检测的目的。本文的主要工作包括:
(1)使用一组包括中值滤波和Gabor滤波的滤波器来消除垂直背景纹理的影响,增强缺陷特征。
(2)由于标签、小气泡等原因,在过滤和膨胀操作后仍存在一些不属于提取缺陷的非缺陷特征。本文将过滤后的图像分割成相同大小的子块,根据子块缺陷特征所包含的区域可以将这些子块分为缺陷块和非缺陷块。
(3)本文从所有小块中选择缺陷区域,此区域由缺陷块及其邻近区域组成,然后根据原始图像对应的形状、面积、位置甚至灰度值筛选出真正有缺陷的区域。根据定义的公式计算每个缺陷区域的权重,从而判断一幅图像中是否存在缺陷。
(4)最后,将本文提出的方法与传统方法和两种基于学习的方法对比,并对实验结果进行了分析。
本文的数据集是从实际生产环境中采集的光纤图像,每个图像都由一个特殊的相机所捕捉,可以看作是缠绕在轴上的光纤表面的扩展视图。图1展示了几个光纤图像的样本,其中图1(a)是一个合格的图像,图1(b)~(d)是有缺陷的图像,每张图片尺寸为4 096×10 000。这个数据集包含正常图像和8类缺陷图像,缺陷类别包括疵点、堵点、机械损伤、气泡、油污、磕伤凹槽、胶水、异物。
图1 光纤图像样本
实验所用的数据集包含正常图像与4类瑕疵图像,即疵点、机械损伤、油污、磕伤凹槽。根据光纤排线规律,瑕疵多为纵向,部分典型瑕疵如图2所示。在实际获得的光纤图像中,会有背景纹理、光纤头、指纹以及标签等噪音混杂其中,对瑕疵的提取及检测带来极大干扰。
图2 部分典型瑕疵
本文提出了一种基于Gabor滤波器的瑕疵检测方法。首先,利用中值滤波器进行去噪,然后使用Gabor滤波器在增强瑕疵特征的同时减轻背景纹理的影响。然后,通过形态学操作与二值化方法初步提取瑕疵特征,再对光纤图像分割进行分块操作,根据每个块包含瑕疵特征的多少将其划分为瑕疵块与正常块。最后,考虑到分散的特征与瑕疵块缺少形状与位置特征,选取瑕疵块的连通域作为瑕疵区域。由于单一的特征不能有效地表示瑕疵,所以需要根据多个判定公式,提取瑕疵区域及其在原图上的灰度图作为联合特征,再根据提取到的联合特征,为每个瑕疵区域赋予权重,比对整幅图像的权重与阈值,将权重大于阈值的图像判定为有瑕疵的光纤图像。图3为本瑕疵检测系统的流程图。
图3 光纤瑕疵检测系统的流程图
Gabor变换是一种重要的时频分析方法,在空间域是一个正弦波与高斯核函数的卷积,在频率域是经过平移的高斯函数[20],核函数定义为
g(x,y;λ,θ,σ,γ)=
(1)
实数部分
(2)
虚数部分
(3)
其中x′与y′由下式确定
x′=xcosθ+ysinθ
(4)
y′=-xsinθ+ycosθ
(5)
式(1)~式(5)中,λ为余弦函数的波长,θ为平行条带的方向因子,σ为高斯函数的标准差,γ为空间纵横比,ψ控制余弦函数的相位偏移。
中值滤波是一种非线性滤波,利用像素点领域灰度值的中值来代替像素点的灰度值,让周围的像素值接近真实值,从而消除孤立的噪声点,并且中值滤波在消除椒盐噪声的同时能较好保留图像的边缘细节。在实验的光纤图像中,存在一些由标签、反光等造成的噪声,与椒盐噪声类似,因此本文选取窗口大小为5的中值滤波器,可以很好地滤去图像背景中的噪声。
光纤图像经过中值滤波后,很好地滤去了背景中灰度突变的噪声。考虑到光纤图像存在竖直方向上的背景纹理,因此采用尺度为13、角度为90°的二维实Gabor滤波器对光纤图像进行滤波,可以实现在滤去光纤图像纵向纹理信息的同时增强瑕疵特征,然后再对图像进行二值化处理与形态学滤波提取瑕疵特征,具体效果如图4所示。
图4 初步提取到的瑕疵特征
在提取瑕疵特征值的过程中,仍存在一些如光纤头、指纹等非瑕疵特征,这些非瑕疵特征经过二值化后与瑕疵特征颜色一致,但形状、大小、方差等方面存在差别,因此需进一步对提取到的瑕疵特征进行筛选。
首先,本文对经过特征提取的图像I进行分块处理,将其分解为a×a像素的块Imn,m和n为当前坐标,用于确定小块在原图像中的具体位置,块Imn的瑕疵密度定义为
(6)
根据每块Imn的瑕疵密度不同,按照统计学方法求得阈值ρs,将块瑕疵密度大于ρs的Imn置为瑕疵块Ak,否则置为正常块。经过一系列的实验,取ρs为0.23,具体效果如图5所示。
图5 瑕疵区域检测
为了保留形状信息与位置信息,对每个瑕疵块Ak,取其连通区域Ft。图6展示了子块Imn、瑕疵块Ak与连通域Ft的关系。图中包含了2个连通域,白色子块代表瑕疵块Ak,黑色子块代表正常块,Ak及其邻域组成连通域Ft如图所示。
图6 子块、瑕疵块与连通域的关系
然后考虑用Gabor滤波器提取到的瑕疵及其对应原图的灰度值对Ak与Ak对应原图的子块Ik做乘法运算,对每一个瑕疵块Ak,计算瑕疵权重Wk,k=1,2,…,n。每块连通区域的瑕疵权重Wk按如下公式计算
(7)
根据式(8)计算整幅图像的瑕疵权重W
(8)
Wd的表达式为
(9)
式中:w3为权重值,Rd表示面积较小且离散的区域,c为常数。计算每张图像的W,当瑕疵权重W超过标准瑕疵权重时,判定光纤产品不合格,经过一系列的计算与实验,取c为5,μ为20。
本文数据集包含311幅光纤图像,包括正常图像与4类瑕疵图像。瑕疵类别包括机械损伤、磕伤凹槽、疵点、油污。正常图像的数量为304,瑕疵图像的数量为7,表1展示了瑕疵数量的分布情况。每幅图像的分辨率为4 096×100 000,利用5折交叉验证法评估不同方法的检测效果。
表1 瑕疵数量的分布
为了更好地评判算法的效果,本文定义FNR(False negative rate)为漏检率,用于衡量瑕疵样本被误判为正常样本的比率;定义FPR(False positive rate)为误检率,用于衡量正常样本被误判为瑕疵样本的比率。FNR与FPR用如下公式计算
(10)
(11)
式中:FN是假反例的数量,TN是真反例的数量,FP是假正例的数量,TP代表真正例的数量。
本文采用方差表示样本波动,VarianceFNR与VarianceFPR定义为如下公式,其中k为使用的测试样本数量
(12)
(13)
将本文提出的方法与3种检测方法的效果比对进行评估,分别是阈值分割法、基于VGG16的方法以及基于ResNet50的方法。基于阈值分割的方法会先设置一个阈值来粗略地提取瑕疵特征,然后利用形状特征滤去如光纤头的噪声。基于VGG16与基于ResNet50的方法使用子块来训练分类器,然后计算整幅图像瑕疵块的比例。
考虑到训练的有效性以及检测的效率,每幅光纤图像被分为156×64的小块,每个小块的分辨率为64×64,这样一幅图像会被分割成9 984个小块,选取所有包含瑕疵的小块,共40 258块。为了保证数据的均衡,随机选取100幅正常图像,随机在每幅图像中挑选416个小块,将这些小块以及所有包含瑕疵的小块送入5折交叉验证法。表2展示了不同方法瑕疵检测的结果。
表2 不同方法在瑕疵检测任务上的对比
盒图可以更直观地展现一组数据的离散程度,图7展示了4种方法检测结果的盒图,宽代表均值,高表示标准差。瑕疵样本测试集上的盒图如图(a)所示,正常样本测试集上的盒图如图(b)所示。
如表2和图7所示,因为缺陷特征不能通过阈值分割完全提取出来,这使得在检测过程中丢失太多信息,所以阈值分割的方法识别效果很差。其次,实验数据集为现场实际采集,所以训练集的数目有限,这就导致用VGG16或ResNet-50训练的分类器无法学习缺陷中包含的所有特征,所以它们的效果也不如本文的方法。此外,判断每幅图像,基于深度学习的方法需要近万次检测,以VGG16为例,需要考虑卷积核输出特征映射的长度以及卷积层中输出通道的数量,因此尽管单个测试花费很短的时间,但是仍然需要几乎1 min来检测图像。本文提出的方法虽然也涉及到分块等预处理操作,但它只包括对像素的运算,时间复杂度仅为O(n4)。最重要的是,光纤图像中还存在一些与缺陷特征相似但不属于缺陷的特征,基于阈值分割的方法和基于深度学习的方法都不能有效区分这些特征。因此可以证明本文提出的方法比这3种比较方法都更准确、更稳定。
图7 测试集上检测结果的盒图
本文提出了一种基于Gabor滤波器的光纤缺陷检测系统。首先,为了消除背景纹理的影响,增强缺陷特征,使用了一组包括中值滤波和Gabor滤波的滤波器,经过形态学运算和阈值分割,可以初步提取缺陷特征。其次,将滤波后的图像分成大小相同的子块,根据每个子块包含的缺陷特征的数量,将这些子块分为有缺陷块和无缺陷块。最后,由于缺陷经常表现为一个区域,它们可以被看作是一组有缺陷的块,此区域由多个缺陷块和它的邻居组成,所以可以根据原始图像的灰度和缺陷区域的形状、位置进行筛选后,对图像进行判断。实验结果表明,本文提出的方法与阈值分割法、基于VGG16的方法以及基于ResNet50的方法相比能够更准确、有效地检测光纤缺陷。