李慶,謝一首,鄭力新,張裕坤,莊禮鴻
(華僑大學 工業智能化技術與系統福建省高校工程研究中心,福建 泉州 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.