葛蕓萍
(黃河水利職業技術學院,河南開封 475004)
紡織品在生產過程中受原材料、靜電、溫濕度等因素影響,會產生各種各樣的疵點并嚴重影響紡織品的使用價值,因此在驗布過程中需要及時檢測出疵點[1]。人工方法對織物疵點檢測是在無眩光的背面窗旁或日光燈照明條件下通過經驗檢測。此方法簡單,但是存在效率低、漏檢率高等缺點,檢驗結果正確率較低。自動化檢測織物疵點已成為對織物質量進行控制和實現織造及驗布工序的關鍵環節,因此受到了紡織行業的關注。目前較為成熟的織物圖像疵點檢測算法有:小波變換(Wavelet transform,WT)檢測方法[2],如果邊緣周圍存在與疵點相似的痕跡,就很容易造成算法的誤判,對疵點定位效果明顯下降。均值濾波(Mean filtering,MF)檢測方法計算比較簡單[3],但是不能很好地保護圖像細節,對圖像邊緣的處理效果比較差。神經網絡(Neural network,NN)算法[4],訓練神經網絡需要大量的數據樣本,但是織物生產過程的復雜性,隨機出現的疵點很可能存在與訓練模型不一致,難以準確判斷疵點,同時神經網絡參數值難于確定。裂變粒子濾波(Fission particle filter,FPF)算法[5],粒子的多次裂變生成更多的粒子,粒子濾波獲得疵點區域的最佳分割閾值,但是粒子多次裂變的次數不易控制。雙混沌機制粒子群(Double chaotic mechanism particle swarm optimization,DCMPSO)算法[6],在粒子群的全局、局部尋優中采用不同的混沌機制,利于粒子群搜索到最優解,但是雙混沌機制增加了算法的復雜性,檢測速度較低。改進宇宙(Improved universe,IU)算法[7],通過設計宇宙空間拓撲結構以及宇宙進化策略使得檢測率上具有較大的優越性及良好的適應性,但是宇宙空間拓撲結構對宇宙之間移民、交互存在制約性,導致具有傾斜度的疵點無法檢測出。
本文采用并行綜合學習粒子群算法(Parallel comprehensive learning particle swarm optimization,PCLPSO)對疵點進行檢測,綜合學習策略保持種群多樣性,使群體的搜索范圍加大,并行分群策略算法能夠在增加全局搜索最優解的同時減少搜索時間。
在織物下方通過高頻率熒光燈光源照射[8],其上方的光學系統計算光敏面上成像單元ds的亮度信號Φ,見式(1):
(1)
式中:τ0為光學系統的透射率;π為圓周率;L為透光亮度;F為透鏡光圈數;ds為光敏面像元的單位面積。
為計算方便,需要把Φ進行轉換為電信號Q,見式(2):
Q=η·t·Φ
(2)
式中:t為曝光時間;η為光學系統響應系數。
再利用圖像采集卡采集織物圖像的灰度值,見式(3):
h=k·η·t·Φ
(3)
式中:h為通過光敏面形成的織物像素灰度值;k為圖像采集卡的圖像轉換系數。
光敏面成像單元的Φ信號決定了圖像采集卡所獲像素的灰度值,通過計算Φ信號的差值即可發現織物疵點,假設織物有疵點透光亮度為L1,織物無疵點透光亮度為L2,經過光學系統采樣、量化,則獲得織物圖像的灰度值,見式(4):
(4)
當織物有疵點時,其像元處產生透光率的變化為Δτ,并且與織物的灰度值變化成正比,見式(5):
(5)
因此Δτ即可獲得織物圖像的疵點,Δτ變化越大,說明疵點面積最大。
當獲得待檢測織物圖像疵點后,需要把疵點與周圍像素進行區分,以便檢測。但是疵點周圍可能存在一些噪聲[9-10],使得疵點表現不具有顯著性,因此需要把疵點進行顯著性增強。在織物圖像疵點顯著性增強中,基于像素方法由于需要統計大量的像素導致計算量比較大,同時也影響了運行效率。由于織物疵點往往集中在圖像的顯著區域,同時圖像灰度變化值比周圍非疵點區域圖像灰度變化值大,因此通過圖像灰度值差異來獲得顯著區域,即檢測出疵點區域。
將圖像劃分為若干個塊,把圖像所對應的塊pi與其余塊pj對比,灰度值之間的差異性計算,見式(6):
(6)
式中:pi為以像素i為中心的像素塊,pj為以像素j為中心的像素塊,dgray(pi,pj)為像素塊pi、像素塊pj灰度值的歐式距離,dposition(pi,pj)為像素塊pi和像素塊pj的歐式距離,gi為像素塊pi的灰度值均值,gj為像素塊pj的灰度值均值,(Xi、Yi)為像素塊pi的中心坐標,(Xj、Yj)為像素塊pj的中心坐標,c為調節系數,根據文獻以及驗證其值取3較好。
如果像素塊之間灰度值差異越大,塊之間的位置距離越遠,則d(pi,pj)值越大,越顯著。為了使計算簡便進行,把dgray(pi,pj)和dposition(pi,pj)歸一化在[0,1]之間。
在織物圖像中,如果計算圖像中全部與pi相似的像素塊,則產生大量的數據計算,因此在實際疵點檢測中,為了評估像素塊唯一性,不需要考慮與其他所有像素塊的不同,只需計算K個與pi相似的像素塊,根據Goferman算法[11],當K取64時檢測效果較好。在某尺度r下,則像素塊pi的單尺度顯著性值,見式(7):
(7)

單尺度顯著性計算無法避免背景部分對疵點區域的影響,通過多尺度顯著性計算使得疵點區域顯著性增強,假設像素塊pi顯著性檢測的n個多尺度集合為R={r1,r2,…,rn},將多尺度顯著性的均方根值計算為像素塊pi的顯著性值,見式(8):
(8)

利用距離上的信息降低離顯著區域遠的非顯著區域的顯著值,從而弱化背景紋理的影響,顯著性值計算見式(9):
(9)
式中:dfoci(i)為像素i與最鄰近的顯著像素的位置歐氏距離,且歸一化至區間[0,1]。
最后通過并行綜合學習粒子群算法尋優獲得疵點區域的分割閾值。
基本粒子群算法啟動時隨機產生一定數量的粒子,在搜索空間中尋找最合適的解決方案,更新速度和位置信息,見式(10):
(10)
式中:t為迭代次數,vi,j(t)為第i個粒子在第t次迭代時的第j維速度,xi,j(t)為第i個粒子在第t次迭代時的第j維位置,pi,j為當前最佳解,gg,j為歷史最佳解,ω為權重,c1、c1為相互獨立的隨機函數,c1、c2為調節pi,j、gg,j的加速參數。
pi,j、gg,j在優化過程中不斷更新,在算法的最后找到全局最優或接近全局最優的解,但是基本粒子群算法在運行后期存在收斂速度慢、易陷入局部最優的缺點。
2.2.1 綜合學習過程
當粒子i的最優值變化較小的時候,綜合學習粒子群算法對其速度更新見式(11):
vi,j(t+1)=ωvi,j(t)+c1r1[pfi(j)-xi,j(t)]
(11)
式中:pfi(j)為第i個粒子第j維位置參數對應的學習對象,fi=[fi(1),fi(2),…,fi(J)]表示粒子i將學習哪個粒子的歷史最優值,對于J維問題,隨機選取l維向群體最佳經驗gg,j學習,而剩下的J-l維則根據學習概率pc來決定是學習粒子自身的最佳經驗還是學習其他粒子的最佳經驗[12-13]。
假定第i個粒子的第j維位置存在局部吸引因子μij,見式(12):
(12)
每個粒子的學習概率pc決定局部吸引因子μij主要向哪個粒子學習,見式(13):
(13)
式中:pcmax和pcmin分別為學習概率最大值和最小值,e為算法間隔代數,M為粒子群的大小,本文pcmax=0.5,pcmin=0.05,e=10。
對于粒子i的每一維,首先產生一個隨機數u,如果u>pc,則從自身個體的最優值學習;否則,采用局部吸引因子比較方法隨機選取種群中另外一個粒子的相應維進行更新,其步驟為:
a)隨機從種群中選擇兩個速度未更新的粒子;
b)比較兩個粒子的局部吸引因子,選擇局部吸引因子較大的粒子;
c)把選擇步驟b)的粒子所在維的個體最優值作為學習依據。
2.2.3 并行搜索過程
為了減少搜索時間[14],采用并行搜索過程,并行綜合學習粒子群算法通過多群和合作策略提高了解的質量和全局搜索能力,提高計算效率。
在并行策略中,粒子群被分為多個子群體。每個子群代表一個群體,并且每個子群只有兩種群:主群和從群,主群主要進行全局搜索,獲得全局最優值,從群主要進行局部搜索,獲得局部最優值,主群和從群的個體都進行均勻分布,使得盡可能少的粒子能全面地表征整個空間所有潛在解的分布,并且各個子群的全局最優值與局部最優值可相互共享,分別將每個子群中粒子的坐標以各個坐標軸對應的最大值、最小值為邊界,構建出等同于峰值點數的各個并行空間。各個子群si,i∈(1,2,…,n)獨立運行,因此每個子群si均可探索整個搜索區域。
主群內部粒子個體更新搜索策略,見式(14):
(14)
然后,從群內部粒子個體更新搜索策略,見式(15):
(15)
在閾值分割疵點顯著區域過程中,把疵點區域的顯著性值作為粒子個體的適應度,見式(16):
(16)
式中:ζi為第i個粒子個體的適應度。
粒子群收斂狀態通過適應度方差σ2判斷,見式(17):
(17)
式中:ζavg為粒子群的平均適應度,ξ為歸一化因子。
ξ主要是限制群體適應度方差,計算見式(18):
ξ=max(1,max|ζi-ζavg|)
(18)
當ξ<0.015時,此時停止粒子群并行搜索、綜合學習,其算法步驟如下:
a)輸入待檢測圖像;
b)設置PCLPSO相關參數,包括粒子個數、最大迭代次數、劃分并行子群數量等;
c)粒子的位置、飛行速度隨機初始化;
d)按照式(11)、式(14)、式(15)更新粒子群;
e)若ξ<0.015或到最大迭代次數,則算法結束,運行步驟f);否則運行步驟d);
f)輸出疵點檢測結果。
實驗硬件配置內存為16 GB,CPU 3.0GHz、獨立顯卡2 GB,軟件為Matlab 7.0,工業相機在織物上方15 cm處垂直拍攝以獲取織物圖像。粒子重要參數:種群總數量為150個、最大迭代次數為400次、并行子群數量為8個、ω=0.8、c1=2.0、c2=1.5。
各種算法對不同疵點檢測,涉及到的算法有PCLPSO與WT、MF、NN、FPF、DCMPSO、IU,涉及到的織物圖像疵點有:破損、缺失、移位、斷經,疵點檢測結果如圖1所示。從圖1各種算法對比實驗可以看出,本文算法對織物不同疵點檢測效果較清晰,疵點區域的細節信息保留,在復雜的織物圖像中,本文算法不僅很好避免的背景紋理影響,而且疵點區域完整檢測出來,受噪聲干擾比較小,這是因為并行綜合學習粒子群算法對織物圖像疵點檢測時,疵點區域通過多尺度顯著性增強,把非顯著性區域弱化,從而有效地突出了織物疵點區域。其他算法對背景簡單的織物圖像檢測有效,在檢測背景噪聲比較明顯時效果較差。

圖1 各種算法對各種疵點檢測結果Fig.1 Detection results of various defects of different algorithms
3.2.1 疵點檢測準確率性能比較分析
為驗證算法的有效性,對疵點檢測準確率指標性能比較分析,見式(19)。
Z/%=Z1/Z2×100
(19)
式中:Z為準確率;Z1為檢測出疵點數;Z2為疵點 總數。
各種算法對破損、缺失、移位、斷經疵點檢測,分別進行40次蒙特卡羅仿真實驗,檢測準確率指標性能比較如圖2所示。從圖2可以看出,PCLPSO算法對各種疵點檢測準確率較高,其中破損疵點檢測準確率為88.15%,相比WT、MF、NN、FPF、DCMPSO、IU分別提高了1.91%、2.50%、4.32%、6.20%、8.16%、10.19%;缺失疵點檢測準確率為90.46%,相比WT、MF、NN、FPF、DCMPSO、IU分別提高了2.21%、4.12%、5.68%、7.05%、8.99%、10.99%;移位疵點檢測準確率為93.87%,相比WT、MF、NN、FPF、DCMPSO、IU分別提高了2.59%、3.72%、4.77%、6.19%、7.16%、8.39%;斷經疵點檢測準確率為86.54%,相比WT、MF、NN、FPF、DCMPSO、IU分別提高了1.81%、3.39%、4.52%、6.18%、8.18%、10.24%。

圖2 不同算法對各種疵點檢測準確率指標結果Fig.2 Defect detection accuracy index results of various defects of different algorithms
3.2.2 消耗時間指標性能比較
統計各種算法獲得疵點檢測準確率的消耗時間,分析結果如圖3所示。從圖3可以看出,本文PCLPSO算法對破損疵點檢測消耗時間為3.11 s;缺失疵點檢測消耗時間為2.81 s;移位疵點檢測消耗時間為2.42 s;斷經疵點檢測消耗時間為3.26 s;消耗時間均少于其他算法,這說明本文PCLPSO算法具有較強的處理性能。

圖3 不同算法對各種疵點消耗時間指標結果Fig.3 Time consuming index results of various defects of different algorithms
本文采用并行綜合學習粒子群算法對疵點進行檢測,通過織物透光率獲得織物圖像的疵點,多尺度顯著性增強疵點區域;綜合學習粒子增設局部吸引因子,多群和并行策略提高全局搜索能力。實驗仿真顯示本文算法識別疵點清晰,對破損疵點檢測準確率為88.15%,檢測消耗時間為 3.11 s;缺失疵點檢測準確率為90.46%,檢測消耗時間為2.81 s;移位疵點檢測準確率為 93.87%,檢測消耗時間為 2.42 s;斷經疵點檢測準確率為86.54%,檢測消耗時間為3.26 s,檢測指標優于其他算法,為織物圖像疵點檢測研究提供了一種新方法。