景军锋, 郭 根
(西安工程大学 电子信息学院, 陕西 西安 710048)
化学纤维作为一种人工合成材料,凭借其特殊的物理性质,被广泛应用于各行业,如航天航空[1]、汽车制造[2]、建筑[3]等领域。为便于运输,化学纤维由丝状经卷绕、缠绕在纸管上形成丝饼,从缠绕到封装过程中,会形成各种缺陷,这些都将直接影响纺织品的质量和物理性质,毛羽就是其中之一。为解决上述问题,在缠绕和封装之间,增设了丝饼外观检测流程,以保证产品质量。
毛羽对于织物的表面光洁度、手感、织物上染性、服用舒适性以及保暖性都有直接影响[4]。毛羽的数量将直接影响丝饼的等级层次,对于丝饼毛羽检测,多数检测只是针对纱线毛羽检测,而对纱线缠绕成丝饼后形成的二次毛羽,检测方法甚少。目前,丝饼毛羽检测都是人工借助简单设备,依靠人眼来实现检测,但由于视觉疲劳和主观因素的影响,会出现漏检和等级不均现象,甚至会对丝饼造成二次损伤。
随着机器视觉检测技术的发展和不断完善,已经在许多领域被广泛应用并取得重大成果。机器视觉技术使计算机能够有效地感知、处理及理解视觉信息,最终让机器效仿人眼去处理图片信息,甚至在某些方面能够超越人类[5]。本文运用机器视觉技术,对丝饼表面毛羽进行检测。通过背光打光方式采集丝饼毛羽原始图像,根据其形状特征以及整幅图片的对比度信息,提出基于卷积核的丝饼毛羽特征提取方法,然后运用阈值分割和轮廓检测获得丝饼毛羽的轮廓点信息,最后利用单方向凸包检测方法对毛羽进行统计。
丝饼毛羽检测硬件平台如图1所示。检测时需要对丝饼侧面、上表面、下表面3处毛羽进行检测,分别对应于图1中1号、2号和3号相机。将条形平行背光光源与相机共面排列,且3组平面均相切于对应的丝饼表面。所有光源由一个多通道光源控制器控制其亮度,通过CMOS相机采集丝饼毛羽图片,然后通过交换机将图像数据传输至计算机,由计算机完成图像处理算法。3处相机安装时,可通过旋转相机,使得毛羽凸起方向相同,毛羽图片只是尺寸不同,本文中主要以1号相机采集图片为例介绍算法,其他与之类似。
图1 图像采集系统Fig.1 Image acquisition system
丝饼毛羽检测方法按照图2所示流程实现。主要包括以下几个步骤:1) 获取丝饼毛羽的原始图像;2) 运用卷积方法对采集所得图像进行细节特征提取,初步获得毛羽特征;3) 对初步所得毛羽特征图进行阈值分割,去除噪声,突出毛羽特征;4) 对毛羽二值图像进行轮廓检测,获取二维轮廓点特征;5) 对满足条件的轮廓点进行单方向凸包检测,确定毛羽位置并进行计数。
图2 检测流程Fig.2 Detection process
二维卷积是一种通过与像素邻域进行运算而获得新图片的数学工具[6]。卷积的本质是产生加权值之和的过程,加权值阵列一般用矩阵表示,其大小为奇数,这种卷积矩阵称为卷积核[7]。卷积核作用于原图像,会使图像的特征信息发生改变。许多图像处理技术都是基于二维卷积运算,其主要作用是使原图像中边缘信息发生变化,例如对比度增强[8]、目标跟踪[9]、平滑滤波[10]、边缘检测[11]、噪声消除[12-13]、颜色识别[14]、图像分割[15]等。对于不同的操作,卷积核的值和大小也会随之改变。
针对丝饼表面毛羽的以下2个特征,提出一种用于毛羽特征提取的卷积核构建方法:1)丝饼毛羽本身是一种很细的被检测物,可视作为边界线;2)丝饼毛羽图像中背景和毛羽对比度较高,卷积作用后,边界信息会发生相应变化。
上述2个特性,决定了丝饼毛羽可通过卷积运算的方式进行特征提取,继而提出一种大小为5×5的卷积核,用于获取丝饼毛羽特征,该卷积核的作用效果可看作是噪声消除的逆过程,噪声消除的效果是擦除原图中一些细节特征,而本文提出的卷积核作用则相反,其效果类似于高通滤波器。该卷积核k结构特征如式(1)所示。
(2)
由于丝饼毛羽主要在竖直方向凸起,因此通过水平扫描提取毛羽特征,体现在卷积核内则是上下方向对应核值较小,左右方向核值较大。丝饼毛羽原始图像与该卷积核通过卷积运算,可直接从原始图像中提取出含有少量噪声的毛羽特征,经过简单阈值处理就可实现噪声消除。
丝饼毛羽原图经过卷积后依然存在很多噪声,这些噪声就是原来图像中不明显的细节,经过卷积后使其变得明显,为消除噪声对毛羽检测的影响,采用阈值分割对卷积后的图像进行处理,得到增强后的毛羽特征图像,采用式(3)方法将丝饼毛羽图片进行二值化操作。
(3)
式中:Fx,y为图像像素点(x,y)的灰度值;T为阈值,通过最大类间方差法可确定T值。
为获取丝饼毛羽的轮廓信息,通过文献[16]方法获取毛羽的二维轮廓点特征,该方法是一种拓扑结构分析方法,主要通过边界跟踪来实现轮廓检测。对经过阈值增强的毛羽图片进行轮廓检测,在追踪之前,将所有的非零像素点x,y的值记为fx,y并初始化为1,点x,y在第N次被追踪时确认为边界,则fx,y=N,N为边界被检测的次序数,亦是同一边界点的编号,追踪步骤如下。
步骤1,在毛羽图片中,选择满足以下条件之一的1个点作为起始追踪点。
条件1:如果fx,y=1且fx-1,y=0,则x,y为毛羽的外边界追踪起始点,且N=N+1,记x-1,y为(x2,y2);
条件2:如果fx,y≥1且fx+1,y=0,则x,y为毛羽的内边界追踪起始点,N=N+1,记x+1,y为(x2,y2);
条件3:若以上2个条件均不满足,则转到步骤3。
步骤2,从毛羽图片的x,y开始按照以下方法追踪边界,该步骤主要是寻找丝饼毛羽图片中点x,y右侧的拓扑结构:
1)在x,y的8个邻域内,从(x2,y2)开始顺时针旋转,在毛羽图片中寻找非零像素点,并将第1个找到的点记为(x1,y1);如果x,y的8个邻域内没有非零像素点,说明点x,y在毛羽图片中是一个噪声点,所以该点被检测的次序数没有意义,即用负数来代表fx,y=-N,并跳转到步骤3;
2)将1)中(x1,y1)记作(x2,y2),x,y记作(x3,y3);
3)从(x2,y2)的下一个像素开始,逆时针旋转寻找非零像素点,并将第1个找到的点记为(x4,y4);
4)按照以下规则记录(x3,y3)的值,该步骤主要是寻找丝饼毛羽图片中点x,y下方的拓扑结构:
如果在3)中检测出(x3,y3+1)是零像素点,那么f(x3,y3)=-N;
如果在3)中检测出(x3,y3+1)是非零像素点,且(x3,y3)此时被记录为1,那么f(x3,y3)=N;
不满足以上2个规则,f(x3,y3)值不变;
5)若fx4,y4=fx,y,fx3,y3=f(x1,y1),则说明毛羽图片中点x,y的拓扑结构已经检测完,转到步骤3;否则将(x3,y3)记作(x2,y2),(x4,y4)记作(x3,y3),并转到3)。
步骤3,从x+1,y开始扫描追踪起始点,如果扫描至丝饼毛羽图像右下角,则算法终止。若fx,y>0,那么点x,y为丝饼毛羽轮廓点。由于所得轮廓点数量较多,因此按照以下步骤筛选:
毛羽就是在丝饼表面凸起的部分,毛羽统计与凸包检测非常相像,而且丝饼毛羽是由于纱线在缠绕时,由于张力过大而导致纱线断开,所以不会有毛团现象,每个凸包仅对应1根毛羽。李必栋等[17]将离散点划分为5个平面区域,并对离散点排序,然后根据各区域单调链性质,剔除冗余点,最后用Graham进行凸包生成。刘凯等[18]通过双极限点筛选平面内凸包点,进而根据预选凸包点将平面分为4块,根据这些点的行、列坐标值检测凸包点。文献[17-18]均是对整个平面进行凸包检测,由于毛羽的凸起方向总是在丝饼表面上方,因此只对毛羽二维轮廓点进行单方向凸包检测。凸包的数学性质就是凸点的左右两侧梯度方向相反,根据凸包的数学特征,提出一种用于毛羽统计的单方向凸包检测算法,检测方法如图3所示。单方向毛羽凸包检测,首先对满足凸包检测的L个毛羽轮廓点沿X轴升序排列,目的是为了保证所得Y轴方向的梯度有意义。由于最左端和最右端会出现凸包信息不完整,所以不同位置的轮廓点(x,y),凸包检测方法亦不相同:
1) 对于i=0,y0的左边没有可比较的梯度值:Δ0=y1-y0;若 Δ0<0,则(x0,y0)为凸包点。
2) 对于00且Δi<0,则(xi,yi)为凸包点。
3) 对于i=L-1,yL-1的右边没有可以比较的梯度值,ΔL-2=yL-1-yL-2,若ΔL-1>0,则(xL-1,yL-1)为凸包点。
图3 单方向凸包检测方法Fig.3 Unidirectional convex hull detection method
采用acA2500-14gm型BASLER面阵相机作为图像采集设备,相机分辨率为2 592像素×1 944像素,镜头焦距为6.0 mm,光圈为F1.8-F22.0,图像处理软件采用python和openCV混合编程实现,处理过程是在内存8 GB、CPU工作频率3.20 GHz的计算机上完成的,实验采用图像的大小为200像素×150像素。
当前对于毛羽分割最常用的算法就是阈值分割,于是选择几种常用于毛羽分割的阈值方法与本文提出的卷积核分割方法进行对比,图4为对于不同特征的丝饼毛羽(记为毛羽Ⅰ、毛羽Ⅱ和毛羽Ⅲ)运用不同的分割方法对比结果。
通过对比图4分割结果可看出,常用的阈值分割方法对于丝饼毛羽分割结果并不是很理想,其主要原因是阈值分割适用于背景和目标有鲜明对比的场合,但是由于丝饼尺寸较大,构建纯净的单色背景比较困难,因此,使得毛羽无法与背景形成较明显的对比。构建卷积核的丝饼毛羽分割方法,可适应图4(a)~(c)不同光照强度、图4(a)细毛羽和图4(c)粗毛羽的情况,所以卷积核毛羽分割方法具有较强的适应性。对于图4(b)中复杂背景的毛羽图片,无需复杂的图像处理,该方法也可直接分割得到毛羽。
图4 毛羽分割对比Fig.4 Comparison of hairiness segmentation. (a) Hairiness Ⅰ; (b) Hairiness Ⅱ; (c) Hairiness Ⅲ.
为验证单方向凸包毛羽检测算法的有效性,选择不同粗细毛羽和不同背景的毛羽图片进行测试,实验结果如图5所示。
图5 毛羽检测结果Fig.5 Results of hairiness detection. (a) Hairiness Ⅰ; (b) Hairiness Ⅱ; (c) Hairiness Ⅲ.
图5(a)~(c)分别为细毛羽、复杂背景、粗毛羽3种典型丝饼毛羽特征。图5(b)为在毛羽位置非常相近的情况下,单方向凸包检测算法仍然可检测出毛羽。从左边和右边凸包信息不完整情况下的检测结果,可看出,在没有完整的凸包被检测的情况下,提出的毛羽检测算法依然可以对毛羽做出判断,并完成计数,进一步证明单方向凸包检测算法可以实现丝饼毛羽的准确检测,具有较强的鲁棒特性。
以丝饼毛羽作为研究对象,提出一种特定卷积核和单方向凸包相结合的丝饼毛羽检测算法,完成对丝饼毛羽检测和计数。首先,运用特定的卷积核构建方法获得卷积核,然后对原始丝饼毛羽图像运用卷积处理,提取毛羽特征,通过轮廓检测得到丝饼毛羽轮廓点,最终用单方向凸包检测算法对丝饼毛羽进行计数。本文方法可实现不同特征丝饼毛羽图像的有效检测,而且其中卷积核毛羽分割方法相比传统的阈值毛羽分割方法有较好的适应性,可提高算法的鲁棒特性,为进一步根据毛羽数量对丝饼进行分级提供帮助。
FZXB