張五一,楊 揚,林 聰, 溫盛軍
(中原工學院, 鄭州 450007)
在簾子布生產(chǎn)過程中,布面疵點決定產(chǎn)品質量,布匹表面疵點檢測是生產(chǎn)過程中一個重要環(huán)節(jié)。長期以來,織物疵點的檢測工作幾乎都是由人工視覺來實現(xiàn)的,檢測結果受驗布人員主觀因素影響,導致誤檢率、錯檢率較高[1]?;趫D像分析的織物疵點自動檢測技術已代替?zhèn)鹘y(tǒng)的人工視覺,成為織物疵點檢測領域研究的熱點。
本文結合從企業(yè)得到的簾子布疵點圖像與國內(nèi)外相關研究文獻,利用Gabor濾波器組、最大熵閾值分割和BP神經(jīng)網(wǎng)絡原理,提出了一種新的簾子布疵點檢測方法。該方法采用Gabor濾波器組對圖像進行濾波,對濾波后的模值圖像使用最大熵閾值分割[2],提取疵點圖像輪廓的長、寬、長寬比和面積等特征值。將上述特征值作為BP神經(jīng)網(wǎng)絡的輸入,經(jīng)過大量的數(shù)據(jù)訓練,最終實現(xiàn)對疵點的識別和分類。實驗證明該方法能夠檢測、識別出絕大多數(shù)常見的疵點。
Gabor變換是一類重要的時頻分析方法,它是Gabor D在1946年研究聲波的傳播與壓縮時提出來的。Gabor濾波器的主要特征是:不同紋理一般具有不同的中心頻率和帶寬,根據(jù)這些頻率和帶寬設計一組Gabor濾波器,對紋理圖像進行濾波。每個濾波器只允許與其頻率相對應的紋理通過,其他紋理則受到抑制。從每個濾波器的輸出結果中提取疵點紋理特征,用于疵點分類[3-4]。Gabor濾波器實質上是一個帶通濾波器,其沖擊響應函數(shù)為
(1)
(x′,y′)=(xcosθ+ysinθ,-xsinθ+ycosθ)
(2)
(3)
(u′,v′)=(ucosθ+vsinθ,-usinθ+vcosθ)
(4)
圖1 Gabor核函數(shù)的二維圖像
用圖1中的8組濾波器對正常紋理(圖2a)和疵點分類為漿斑的簾子布圖像(圖2b)進行濾波處理,結果如圖3、圖4所示。
由圖4可知,當方向角與布匹紋理方向一致時,織物疵點處的圖像灰度變化顯著,由此可判斷出疵點的位置與紋理特性。
a 正常紋理圖片 b 漿斑紋理圖片
圖3 正常紋理圖像經(jīng)過Gabor濾波器組濾波后的圖像
熵是信息論中事件出現(xiàn)概率的不確定性的量度,能夠有效反映事件包含的信息,最大熵閾值化是一種自動的非參數(shù)、無監(jiān)督的閾值選擇法。它將分割后物體與背景灰度分布的信息熵之和作為最大優(yōu)化測度準則,來選擇圖像分割的閾值[5-7]。
圖4 漿斑疵點圖像經(jīng)過Gabor濾波器組濾波后的圖像
假設閾值T將圖像分為兩類:目標C0與背景C1,其中C0灰度空間為[0,T],C1灰度空間為[T+1,255],則C0和C1的信息熵H0(T)和H1(T)定義為
(5)
(6)
對應的最大熵測度準則φ(T)為
(7)
最佳的閾值T′應該滿足
φ(T′)=max
1≤T≤255{φ(T)}
(8)
OpenCV是一個開源的跨平臺計算機視覺庫,是由一系列 C 函數(shù)和少量 C++ 類構成的,同時提供Python、Ruby、Matlab等語言的接口,能夠實現(xiàn)圖像處理和計算機視覺方面的很多通用算法[8]。
由圖4可知,疵點大都集中在經(jīng)向方向,在其他方向上沒有明顯的紋理特征。根據(jù)實驗結果,同時為了減少計算量,本文采用相同模版大小的兩個方向角的Gabor濾波器組成濾波器組對常見疵點中的漿斑、接頭、經(jīng)線粘連進行濾波處理。
基于OpenCV的Gabor濾波器的濾波核函數(shù)如圖5所示。
(a) 方向角為的Gabor核函數(shù)二維圖像 (b)方向角為π的Gabor核函數(shù)二維圖像
對漿斑、接頭、經(jīng)線粘結3種常見的疵點進行測試,疵點圖像的大小為256×276個像素,測試結果如圖6—圖8所示,其中圖(a)表示原圖,圖(b)表示Gabor濾波后的模值圖,圖(c)表示最大熵閾值分割后的圖像,圖(d)表示疵點圖像的最小外接矩形。
BP神經(jīng)網(wǎng)絡,又稱反向傳播網(wǎng)絡,是一種研究較為成熟、應用較為廣泛的神經(jīng)網(wǎng)絡,主要用于模式識別、分類、數(shù)據(jù)壓縮、函數(shù)逼近等方面,其主要思想是從后向前(反向)逐層傳播輸出層的誤差,以間接地算出隱含層誤差。其工作原理是:當信號輸入時,傳到隱層節(jié)點,經(jīng)過激勵函數(shù)后,把隱層節(jié)點的輸出信號傳播到輸出層節(jié)點,經(jīng)過處理后給出輸出結果。它的學習過程是一種誤差反向傳播修正過程,由正向傳播和反向傳播組成。在正向傳播過程中,輸入信號從輸入層經(jīng)隱層單元逐層處理,并傳向輸出層,每一層神經(jīng)元的狀態(tài)只影響下一層神經(jīng)元的狀態(tài)。如果在輸出層不能得到期望的輸出,則計算輸出層的誤差變化值,然后轉向反向傳播,將輸出信號的誤差沿原來的連接通路返回,通過修改各層神經(jīng)元的權值,使得信號的誤差最小達到期望誤差[9]。
(a) (b) (c) (d)
(a) (b) (c) (d)
(a) (b) (c) (d)
在經(jīng)過圖像分割后,可以得到疵點所在區(qū)域的最小外接矩形,根據(jù)矩形大小可以求出疵點的長、寬、長寬比、面積等特征值。將上述特征值歸一化后分為兩類,一類作為訓練樣本,一類作為測試樣本。神經(jīng)網(wǎng)絡具有按照期望目標自動分類和識別的能力,可進行疵點的分類識別。本文利用三層BP神經(jīng)網(wǎng)絡(如圖9所示),選用訓練樣本對神經(jīng)網(wǎng)絡進行訓練學習,然后再將測試樣本輸入訓練好的神經(jīng)網(wǎng)絡進行分類識別。
圖9 三層BP神經(jīng)網(wǎng)絡的結構圖
圖10是運用120個訓練樣本進行BP神經(jīng)網(wǎng)絡的訓練學習結果,其中漿斑輸出值為0.5~1.5,接頭輸出值為1.5~2.5,經(jīng)線粘結輸出值為2.5~3.5。
用訓練好的BP神經(jīng)網(wǎng)絡對30個樣本特征進行辨識,結果如圖11所示。
圖10 訓練樣本輸入BP神經(jīng)網(wǎng)絡輸出圖
圖11 測試樣本輸入BP神經(jīng)網(wǎng)絡輸出圖
根據(jù)測試樣本輸出結果,可以得出疵點特征。進行疵點分類,分類識別率達94%。
本文結合Gabor濾波器、最大熵閾值分割算法和BP神經(jīng)網(wǎng)絡,提出了用OpenCV與Matlab實現(xiàn)簾子布疵點圖像的檢測與分類的方法。實驗證明,這種方法可實現(xiàn)漿斑、接頭、經(jīng)線粘結等主要疵點的檢測與分類。
參考文獻:
[1] 紀惠軍,張小棟,楊建民.基于機器視覺的織物疵點檢測技術探討[J].現(xiàn)代紡織技術,2011(2):11-15.
[2] 趙波,鄭立新. 改進的基于最大熵和Gabor濾波器的織物疵點檢測[J]. 微型機與應用,2011,30(13):29-35.
[3] 鄒超,汪秉文,孫志剛. 基于 Gabor 濾波器組的實時疵點圖像分割[J].計算機工程與應用,2010,46(12):185-187.
[4] 韓潤萍,孫蘇榕,姜玲. 基于 Gabor 濾波器組的織物疵點檢測方法[J].計算機工程與應用,2007,43(7):211-214.
[5] 張家樹. 灰度圖像的最大最小優(yōu)化熵閾值分割[J].電訊技術,1955,35(6):42-45.
[6] 沈晶,楊學志. 一種新的基于紋理分水嶺的紡織品缺陷檢測方法[J].中國圖象圖形學報,2009, 14(10):1997-2003.
[7] 卿湘運,段紅,魏俊民. 基于局部熵的織物疵點檢測與識別的研究[J].紡織學報,2004, 25(5):57-59.
[8] Bradski G,Kaehler A. Learning OpenCV [M]. 于任瑛,劉瑞禎, 譯. 南京:東南大學出版社,2009.
[9] 飛思科技產(chǎn)品研發(fā)中心. MATLAB 7 輔助控制系統(tǒng)設計與仿真[M]. 北京:電子工業(yè)出版社,2005.