李庆,谢一首,郑力新,张裕坤,庄礼鸿
(华侨大学 工业智能化技术与系统福建省高校工程研究中心,福建 泉州 362021)
摘要:设计了一种利用机器视觉,并且结合LabVIEW多线程处理机制与Hough变换及Gabor算法的织物疵点检测系统。通过LabVIEW中基于数据流的生产/消费者并行软件编写模式与队列的结合,防止内存中的图像因为采集速度过快而被覆盖,造成数据丢失。在检测算法中使用Hough变换获取织物纹理方向角并作为Gabor滤波器的方向以检测织物疵点,再通过最大熵进行图像分割。实验结果表明,该处理机制与检测算法的结合具有良好的织物疵点检测效果。
关键词:LabVIEW;Hough;Gabor;织物疵点;机器视觉
0引言
华侨大学研究生科研创新能力培育计划资助项目(1400422004)织物在生产过程中产生的疵点是影响织物质量和品质的重要因素。当前,在纺织品领域内,织物疵点的检测还主要靠人工检测,工作人员需要在验布机旁用肉眼观察疵点并手工记录下来,这种方式不仅效率低、成本高,而且对人眼睛有害,容易因为人的情绪、疲劳等主观因素造成判断不准确。
目前,应用机器视觉来解决实际工程中的智能检测问题已成为一种主要的途径。例如,KUMAR A等人[1]采用Gabor函数以实现织物疵点的检测。当前大多数的织物疵点自动检测系统属于离线处理,其中较为典型的是以色列EVS公司的ITEX验布系统和瑞士Uster公司的Fabriscan自动验布系统。
1系统结构设计
低噪声、高分辨率的线阵相机非常适合在运动系统中进行视觉检测。因其采集速度极快,因此采集到的图像数据量会较大,为处理如此多的数据量,有研究人员采用DSP来处理图像数据[23],而这种方法的成本高昂,不适合推广。为减少成本,本文利用PC强大的硬件系统及其数据处理能力来代替DSP,使用LabVIEW及其图像处理软件包IMAQ Vision开发系统软件平台。
系统硬件平台结构如图1所示,包含织物检测机台、光源、相机及PC。其中相机为加拿大DALSA生产的P24908K40线阵相机,该相机分辨率为8 192 pixel/line,像素时钟为160 MHz(6.25 ns/pixel),采集速度可以达到19 531 line/s。与相机连接的采集卡为美国国家仪器有限公司的NI PCIe1433 Camerlink图像采集卡。
图1实验设备结构图由于织物的颜色较多,因此光源选择LED白光光源,它对不同的颜色都有比较良好的光学特性,其安装位置应尽量靠近被检测织物的表面。
相机镜头成像原理如图2所示,镜头中的成像与焦距满足的关系如式(1)所示:
其中,H′为CCD芯片长度,即0.007 mm×8 192;H为视野,f为焦距,l为物距。
由式(1)得焦距f满足下式:
镜头可以捕捉到的视角θ满足下式:
在本实验系统中,镜头选择施耐德ApoComponon 4.0/60,即焦距f为60 mm的镜头,检测织物的宽度H为1 600 mm,则物距l可由式(2)得出:
由视野和CCD像素可以得出横向分辨率为1 600 mm/(8 192 pixel/line)=0.195 mm/pixel,因此最大布匹检测速度为:
19 531 line/s×0.195 mm/pixel=3.8 m/s
当相机分辨率降低时,则允许的速度会随之提升,与此同时,对疵点的识别能力会下降。为保证横向和纵向分辨率一致,需要保证纵向每隔0.195 mm扫描一行。
2系统软件结构设计
系统的软件设计包含着数据传递和数据处理两部分。考虑到1 600 mm的布匹宽度,200 mm/s的检测速度,按照上文的0.2 mm横向分辨率,每行需要8 000个像素,则在1 s内会有1 000 lines被检测,由此可以算出需要处理的数据量为8 MB/s。对于一个实时系统,这是非常大的数据量,传统编程中的条件循环或复合循环结构已不适用,因此LabVIEW引入了状态机的概念[4]。在此系统中,最耗时的是检测算法。为了避免算法速度的限制而造成漏检,需要解决两个问题:其一是保证在来不及处理图像时,数据不丢失;其二是并行执行图像采集和处理两大核心任务,以提高系统效率,有效利用PC的性能。
由于图像数据的采集和处理需要并行执行,因此这两大核心任务需要放在LabVIEW中并行的两个while循环内。软件设计工程中,常用到“生产者-消费者”模式。生产者线程提供数据,然后将数据放置在一个容量固定的缓冲区中,消费者线程从缓冲区中获取数据并处理,然后释放缓冲区。当生产能力大于消费能力时,空缓冲区不断减小直至耗尽,则生产者必须停止生产,等待消费者释放出空缓冲区;当消费能力大于生产能力时,缓冲区内的数据逐渐减少直至无数据可用,则消费者将处于等待状态,直到有数据可用[4]。
为避免出现生产者生产数据时没有缓冲区可用而造成数据丢失,生产/消费者模式中需要一种特殊的数据传递方法——队列。它采用了传引用的方式,在不同的应用程序或线程中可以针对同一个队列进行操作,其FIFO模式可以保证图像数据按时间先后顺序处理。不同线程中访问同一个队列,需要避免出现竞争状态。
3系统检测算法设计
在布匹纹理检测中,需要对正常的纹理进行抑制,以凸显不正常的纹理,即疵点。本系统分别对布匹从上到下和从左到右两个方向进行Hough变换以查找直边,直边的方向角度就是经纱和纬纱角度。将纹理方向参数传递给Gabor滤波器进行滤波处理,再对所得Gabor模图像进行最大熵阈值分割、图像融合以及形态学处理,最终确定出疵点。算法流程如图3所示。
结果如图4所示,Hough变换查找的直边与布匹的纹理方向几乎一致。角度测量结果如表1所示。
具体算法如下:
表1纹理方向测量结果纹 理角 度/°纬纱8经纱105(1)采集图像及预处理
分别获取织物的标准图像α(x,y)和含疵点图像β(x,y),并对图像进行直方图均衡化处理和高斯滤波。
(2)Gabor滤波
利用Gabor滤波器gf(x,y),分别与α(x,y)及β(x,y)进行卷积,得:
αf(x,y)=α(x,y)*gf(x,y)
βf(x,y)=β(x,y)*gf(x,y)(5)
其中,f=1,2分别表示布匹中的两个纹理主方向。对卷积后的结果取其模作为输出图像:
Af(x,y)=|αf(x,y)|;Bf(x,y)=|βf(x,y)|(6)
得到图像如图5(a)、(b)所示。
(3)最大熵分割
对经过Gabor滤波后的含疵点的图像Bf(x,y)采用最大熵进行分割,得到二值图像Tf(x,y)。
(4)图像融合
对沿着纹理的两个主方向所处理后的分割图片进行融合,得到如图5(c)所示图像,融合后的图像为:
R(x,y)=T1(x,y)2+T2(x,y)2(7)
(5)形态学处理及孤立点去除
由于经过分割与融合后的图像中会出现不连续现象,因此需要经过腐蚀和膨胀操作,得到平滑清晰的图像P(x,y)。经过孤立点去除操作可以得到比较理想的疵点分割图Q(x,y),如图5(d)所示。
4实验结果与结论
图6断纱疵点检测本系统软件平台是在LabVIEW 2011专业版的环境下搭建的。实验中分别对断纱、破洞、勾丝等常见的疵点进行测试,测试结果如图6~图8所示[5]。
图6~图8中,(a)为灰度图像,(b)为均衡化后的图像,(c)、(d)分别为f=1、2时经过Gabor滤波的模值图像,(e)为最大熵分割并融合两个不同主方向的图像,(f)为进行形态学操作和孤立点去除后的图像,也是最终的疵点分割图像。
本文中引入Hough变换求得方向角并作为Gabor滤波器的方向进行滤波,然后用最大熵分割图像,再进行不同方向的图像融合。该算法降低了计算量,保证算法的效率,在实时性上具有优越性。本文的算法能够准确得出纹理方向并令Gabor滤波取得良好的效果,能够准确提取出疵点。
参考文献
[1] KUMAR A, PAND G K H. Defect detection in textured materials using gabor filters[J]. IEEE Transactions on Industry Applications,2002,38(2):425440.
[2] BAYKUT A, ATALAY A, ERCIL A, et al. Realtime defect inspection of textured surfaces[J]. RealTime Imaging, 2000,6(1):1727.