朱 毅,嵇小輔
(江南大學(xué) 物聯(lián)網(wǎng)工程學(xué)院 輕工過程先進控制教育部重點實驗室,江蘇 無錫 214122)
隨著太陽能光伏行業(yè)與半導(dǎo)體行業(yè)的快速發(fā)展[1],作為其主要原料,硅錠的市場需求也日益增長。目前,國內(nèi)硅錠生產(chǎn)廠商主要采用自動流水線來加工硅錠,圓柱形毛棒經(jīng)截斷機橫向截斷后,經(jīng)開方機切割成大小相等的方形硅塊,再經(jīng)拋光機進行研磨拋光后得到成品硅錠。由于硅棒的物理特征與加工機床的限制,硅錠在加工過程中出現(xiàn)端面隱裂的情況時有發(fā)生,嚴(yán)重影響了生產(chǎn)線的安全性能和生產(chǎn)效率。目前,生產(chǎn)企業(yè)大多采用人工方法將端面隱裂硅錠從生產(chǎn)線直接移除,這種方法增加了生產(chǎn)成本,提高了人工依賴度,同時降低了安全性能,嚴(yán)重影響了自動生產(chǎn)線的生產(chǎn)效率。
隨著計算機技術(shù)的快速發(fā)展,機器視覺技術(shù)在工業(yè)上的應(yīng)用也越來越廣泛[2-3],常用的檢測算法有直方圖統(tǒng)計[4]、灰度共生矩陣[5]、邊緣檢測[6-7]等。在檢測方法方面,Peng使用區(qū)域生長法對缺陷進行分割[8],耿玉標(biāo)、Song利用多特征與監(jiān)督學(xué)習(xí)來對缺陷進行檢測[9-10]。在工程實踐方面,王宇利用變異系數(shù)法來檢測太陽能電池硅片裂紋,但該方法對多雜質(zhì)的多晶硅檢測效果較差[11],Zhan使用循環(huán)神經(jīng)網(wǎng)絡(luò)檢測瀝青路面表面裂紋,該方法需要大量樣本進行標(biāo)注,對于樣本較少的工業(yè)場合不合適[12]。Jiang使用Soble算子與patch統(tǒng)計結(jié)合的方法來檢測紡織物的瑕疵[13],但是該算法不適用于背景環(huán)境復(fù)雜的應(yīng)用場景。與上述方法相比,本文所提算法只需要少量樣本即可建立背景模型,具體實施時可根據(jù)現(xiàn)場情況對背景模型進行實時更新,有利于情況復(fù)雜多變、樣本較少等應(yīng)用場合;同時本文根據(jù)硅錠端面隱裂缺陷最大占比來進行粗濾波處理,減少了端面雜質(zhì)對檢測的影響,進一步提高了檢測精度。
背景差分算法常用于目標(biāo)檢測與瑕疵缺陷檢測,本文針對硅錠隱裂缺陷深淺不一、現(xiàn)場環(huán)境苛刻等特點,對常見的背景差分算法進行了改進。本文首先設(shè)計滿足檢測條件要求的視覺檢測平臺來消除檢測環(huán)境的干擾,采用中值濾波的方法來對圖像進行濾波預(yù)處理,采用圖片樣本庫訓(xùn)練得到背景模型,并對常見差分算法進行了改進,在進行差分的同時對隱裂缺陷進行增強處理,根據(jù)最大隱裂缺陷比例不超過百分之十,進一步將背景從前景中移除,再對圖像進行二值化,提取出缺陷區(qū)域并對其進行形態(tài)學(xué)閉操作來消除細(xì)小空洞,最后對提取出的區(qū)域進行連通域分析并根據(jù)提取出的缺陷區(qū)域面積來在線判斷端面是否隱裂。同時本文針對所檢測硅錠端面的背景環(huán)境特性以及車間的生產(chǎn)環(huán)境,使用自動與手動相結(jié)合的方法來對背景圖像進行更新。論文設(shè)計的硅錠端面隱裂檢測算法在麗江某硅錠生產(chǎn)車間進行了驗證,算法的識別召回率、精確率、識別時間等指標(biāo)都很好地滿足了現(xiàn)場運行需求。
整個檢測系統(tǒng)由硬件部分與軟件部分兩部分組成,其中硬件部分主要負(fù)責(zé)圖像的采集、硅錠在流水線上的自動流轉(zhuǎn)以及為軟件系統(tǒng)的運行提供硬件條件,由視覺檢測平臺與工控機兩部分組成;軟件部分主要負(fù)責(zé)對圖像的識別與顯示、人機交互、數(shù)據(jù)存儲與通信、重要參數(shù)修改等功能,主要功能集中在上位機檢測界面中。系統(tǒng)的總體框架如圖1所示。
圖1 系統(tǒng)總體框架
檢測系統(tǒng)的硬件部分主要由視覺檢測平臺與工控機兩部分組成,其中視覺檢測平臺主要負(fù)責(zé)對待檢測硅錠端面圖像的采集與傳送、硅錠的流轉(zhuǎn);工控機作為檢測平臺運行的載體,負(fù)責(zé)圖片的獲取、存儲、處理并給出硅錠端面檢測結(jié)果。
現(xiàn)場需檢測的成品硅錠為方形,長度范圍為1 000~9 000 mm,端面大小為,要求檢測精度為0.5 mm。視覺檢測平臺的好壞直接決定著檢測效果,根據(jù)硅錠端面尺寸規(guī)格、檢測精度要求和現(xiàn)場環(huán)境等特點,本文設(shè)計了圖2所示的視覺檢測平臺,視覺檢測平臺由防塵罩、機械爪、工業(yè)相機、光電傳感器組成,具體設(shè)計原則及器件選型如下:
1)為減少車間灰塵所帶來的影響,在檢測工位四周設(shè)計了防塵罩。
2)成品硅錠端面非常光滑,為防止燈光直射情況下出現(xiàn)反光影響檢測效果,將視覺檢測平臺四周的防塵罩設(shè)計成灰色(圖2所示的CAD圖中對防塵罩進行了透視處理,以便觀察防塵罩內(nèi)部結(jié)構(gòu)),同時為保證檢測時的光線,將上方的防塵罩設(shè)置為白色透明。
3)為了實現(xiàn)對硅錠位置的精準(zhǔn)定位,在流水線上裝有多個光電傳感器。
4)為保證同一工位上不同長度的硅錠都有合適的相機焦距,將工業(yè)相機安裝于高精度的機械爪上,當(dāng)光電傳感器檢測到硅錠到位后,PLC根據(jù)硅錠實際長度控制機械爪到達合適位置,確保相機到端面的距離固定。
5)工業(yè)相機作為主要的檢測裝置,需要根據(jù)檢測精度需求進行選型。根據(jù)待檢測硅錠的特點以及檢測要求,本文選擇大恒MER-220-9GM/C型的黑白相機,分辨率,幀率9幀/s,像素尺寸1.85 μm×1.85 μm,像素深度8 bit、12 bit,曝光時間23 μs~1 s,CMOS芯片,可直接連接HALCON等第三方軟件,通過千兆以太網(wǎng)直連工控機向工控機傳輸圖像。
圖2 視覺檢測平臺
工控機為軟件運行提供必要條件,需要根據(jù)實際情況選擇配置參數(shù)。從工業(yè)軟件運行穩(wěn)定性的角度出發(fā),工控機選用研華IPC-610L,Windows10 x64操作系統(tǒng),CPU為Intel酷睿I5-10500型,考慮到需要存儲大量圖片和數(shù)據(jù),硬盤選用500 G固態(tài)硬盤與1 T機械硬盤的組合方式,主板為Intel H420E型,內(nèi)存為DDR416GB,工控機自帶4個網(wǎng)卡,額外再增加兩個100 M網(wǎng)卡作為備用。
系統(tǒng)硬件部分的工作流程如圖3所示。加工完成的成品硅錠順著流水線流轉(zhuǎn),當(dāng)視覺檢測平臺中的光電傳感器檢測到硅錠到達檢測工位后,機械爪將根據(jù)硅錠的長度自動調(diào)整到兩端面前的合適位置,工業(yè)相機實時采集硅錠端面圖像并通過千兆以太網(wǎng)將圖片傳送給工控機,工控機上運行的檢測系統(tǒng)對圖像進行實時采集、處理、檢測并將檢測結(jié)果通過工控機上的網(wǎng)口發(fā)送給PLC,PLC根據(jù)檢測結(jié)果來控制機械爪對待檢測硅錠實施相應(yīng)的動作。
圖3 硬件系統(tǒng)工作流程
本系統(tǒng)軟件部分采用C#與Halcon聯(lián)合編程實現(xiàn),需要完成人機交互、圖片采集、圖像處理、實時通訊等功能,其中人機交互部分利用.net平臺下的相關(guān)組件來實現(xiàn),圖像檢測部分主要由Halcon編程來實現(xiàn),調(diào)試成功后導(dǎo)出能在.net平臺下運行的.cs代碼,并通過C#編程技術(shù)對該文件進行調(diào)用。最終兩部分功能都集中在上位機檢測平臺中,具體檢測流程如圖4所示,當(dāng)上位機接收到一幅圖像后便對圖片進行檢測,在檢測完成后將檢測結(jié)果發(fā)送給執(zhí)行機構(gòu)的同時將檢測結(jié)果顯示在上位機界面并保存至本地數(shù)據(jù)庫中。
圖4 軟件系統(tǒng)工作流程
工業(yè)現(xiàn)場環(huán)境較為苛刻,存在著各種干擾。故在對圖像進行處理前需要先對圖像進行濾波,常見的濾波算法有均值濾波算法、高斯濾波算法、中值濾波算法。均值濾波算法是將待檢測點的像素值用鄰域內(nèi)的像素均值來代替,通過減少圖像灰度值的尖銳變化來減少噪聲,雖然簡單易實現(xiàn),但在處理尖銳灰度的同時也會使圖像邊緣模糊化,損失圖像的邊緣特性,從而影響對端面隱裂不明顯硅錠的檢測[14];高斯濾波算法是用一個掩膜掃描圖像中的每一個檢測點,將檢測點的像素值用掩膜內(nèi)像素值的加權(quán)平均來代替,與均值濾波相比,高斯濾波在對圖像進行濾波的同時不會破壞圖像的細(xì)節(jié)部分,也是一種線性平滑濾波算法,但高斯濾波大多只適用于處理高斯噪聲,對點狀椒鹽噪聲往往效果不佳[15];中值濾波算法是將檢測點的像素值用鄰域內(nèi)的像素中值來代替,能在對圖像進行濾波的同時保護圖像的尖銳部分,對于孤立的噪聲像素即點狀椒鹽噪聲、脈沖噪聲的效果極好;考慮到車間中的噪聲大多以點狀椒鹽噪聲為主,同時中值濾波算法在平滑噪聲時可以保護圖像的尖銳部分[16],故本文選用的掩膜對硅錠端面圖像進行中值濾波,具體過程如圖5所示。
圖5 中值濾波過程
通過對圖2視覺檢測平臺采集到的圖片中值濾波后如圖6(a)所示,圖片中含有部分背景像素點,為了減少需處理的像素數(shù)并提高檢測算法的處理速度,需要在提取隱裂缺陷前先對圖像進行預(yù)處理,提取出感興趣的區(qū)域(ROI,region of intereset)。從圖6(a)中能看出硅錠端面灰度值明顯高于背景點的灰度值,故預(yù)處理過程如下:
1)選取合適閾值對中值濾波后的圖像進行二值化;
2)對二值化之后的區(qū)域進行閉操作,消除區(qū)域內(nèi)細(xì)小的空洞;
3)為防止背景中個別小亮塊的干擾,對區(qū)域進行連通域分析,選取面積最大的一塊區(qū)域,再求取區(qū)域的最大外接矩形;
經(jīng)過處理之后得到的ROI圖像如圖6(b)所示。
圖6 提取ROI
2.2.1 背景模型的建立
背景差分算法要求待檢測樣本中前景目標(biāo)與背景環(huán)境之間有著明顯的區(qū)別,同時不同樣本背景環(huán)境之間的差別也應(yīng)盡可能的小[17-18]。對于前者,隱裂缺陷區(qū)域像素點相對于正常區(qū)域像素點會偏暗;對于后者,車間中的光線穩(wěn)定,且同一流水線上所生產(chǎn)的硅錠都是大小一致型號相同,不同待檢測樣本之間的背景差異也是非常小的。故硅錠端面檢測環(huán)境滿足背景差分算法的要求,可將硅錠端面隱裂缺陷的檢測過程類比成對一個固定背景環(huán)境下的目標(biāo)檢測,將硅錠端面隱裂區(qū)域類比成目標(biāo)檢測中的待檢測目標(biāo),將硅錠端面正常區(qū)域類比成背景環(huán)境。
考慮到車間光線穩(wěn)定,受光照等環(huán)境因素影響較少,故采用魯棒性更好的中值法來建立背景圖像模型:
I(x,y)=Median(In(x,y))
(1)
其中:In(x,y)表示第n張圖片中點(x,y)的像素灰度值,I(x,y)表示計算N張圖片中對應(yīng)像素點的中值。為了方便后續(xù)計算,求出背景圖片中點(x,y)與每一張樣本圖片對應(yīng)點(x,y)的標(biāo)準(zhǔn)差,計算方式為:
(2)
其中:σ(x,y)表示N張樣本圖片中點(x,y)與中值之間的標(biāo)準(zhǔn)差。得到的背景圖片如圖7所示。
圖7 背景圖像
常見的背景差分算法是直接將背景圖像像素值與待檢測圖像對應(yīng)點像素值求差[19],計算方式為:
(3)
其中:Im(x,y)表示待檢測圖片,考慮到待檢測圖片中背景像素點與背景圖片中對應(yīng)像素點灰度差會比較小,而在隱裂缺陷處差值會比較大。故本文對常見的差分算法中I(x,y)>Im(x,y)的情況進行改進,在進行圖片差分的同時對像素值差異較大的隱裂缺陷部分進行像素增強,具體的計算方式為:
ΔI(x,y)=ω|I(x,y)-Im(x,y)-γσ(x,y)|
(4)
其中:σ(x,y)為式2所求標(biāo)準(zhǔn)差,ω與γ為兩個常數(shù),本文取ω=20,γ=3,差分增強后的圖片如圖8所示。
圖8 原圖與差分增強圖
2.2.2 背景模型更新
由于工廠光線環(huán)境比較穩(wěn)定,故并不需要實時的對背景圖像進行更新,但由于各種原因可能會導(dǎo)致背景環(huán)境突變(切換不同功率的燈管),而大突變的出現(xiàn)取決于車間的實際生產(chǎn)情況,很難提前預(yù)判,所以只進行背景模型自動更新容易受到工廠大環(huán)境的干擾,難以實現(xiàn)檢測要求。故本文在結(jié)合工廠車間實際生產(chǎn)情況下,采用定時自動更新與人工手動更新相結(jié)合。定時自動更新通過在上位機檢測系統(tǒng)設(shè)置自動更新時間(自動更新時間可手動修改),軟件系統(tǒng)按照界面提前所設(shè)時間實現(xiàn)自動更新;人工手動更新通過在上位機檢測系統(tǒng)的界面預(yù)留手動更新按鈕來實現(xiàn),當(dāng)工廠因燈光或者其它未知因素導(dǎo)致了車間生產(chǎn)環(huán)境突然巨變后,工人可通過點擊手動更新按鈕來實現(xiàn)背景模型手動更新。
2.2.3 改進閾值分割法
在進行背景差分增強后,隱裂缺陷與正常區(qū)域之間有了鮮明的對比度,但圖片中仍然存在著少量的背景點,此時直接對圖像進行閾值分割容易將部分背景點誤認(rèn)為是隱裂缺陷,造成誤檢測,影響檢測精確率。故本文采取一種粗濾波處理來減少誤檢測,通過對大量隱裂硅錠端面進行觀察后,發(fā)現(xiàn)隱裂缺陷區(qū)域像素點占比往往低于百分之十,同時在進行差分增強后隱裂缺陷區(qū)域灰度值會高于其它正常區(qū)域。鑒于上述兩個事實,增強差分圖像還可以進行進一步的優(yōu)化處理,本文在進行閾值分割之前先求取一個閾值來進行粗分割,具體計算如式(5)所示:
(5)
其中:B(x,y)表示粗濾波之后的圖像,其中大于Ts的為前景加背景,小于Ts的為背景,在經(jīng)過預(yù)分割之后圖片被分為前景、前景加背景兩部分。
為選取出合適的閾值Ts來完成粗分割,本文參考最大類間方差法。假設(shè)增強差分圖中總的像素灰度級別為L,即增強差分圖中任意一點的像素灰度值均為[0L-1],假設(shè)其中灰度值為i的數(shù)量為ni,則增強差分圖的總像素數(shù)為:
(6)
通過選取一個閾值Ti來將增強差分圖分成兩部分C1、C2,其中C1是灰度級別為[0Ti-1]的一組像素點,表示純背景;C2是灰度級別為[Ti-1L-1]的一組像素灰度點,表示前景加背景;則C2中累計的像素點個數(shù)可表示為:
(7)
用Pm來表示硅錠端面隱裂缺陷的最大占比,本文取Pm為百分之十,則像素點差值可表示為:
sub=|C2-(1-Pm)×N|
(8)
類似于最大類間方差法,讓粗濾波閾值Ti在灰度級別范圍[0L-1]中依次取值,最終使sub最小值的Ti則為粗濾波閾值。
對粗濾波之后的圖像采用最大類間方差進行閾值分割,最大類間方差法的思想是選取一個閾值讓前景區(qū)域與背景區(qū)域之間方差最大化以達到區(qū)域分割的目的。為使缺陷區(qū)域更加完整,對閾值分割后的圖形使用形態(tài)學(xué)閉操作來填補缺陷之間的空洞。具體做法是先對圖像進行形態(tài)學(xué)膨脹操作,然后再對圖像進行形態(tài)學(xué)腐蝕操作[20],膨脹操作是對區(qū)域進行擴大,區(qū)域在經(jīng)過膨脹后邊緣會變得平滑,像素會增多,原本不相連的部分可能會相連,而腐蝕操作則是一個相反的過程,經(jīng)過腐蝕后區(qū)域像素值會減少,原本相連的部分可能會不相連。膨脹與腐蝕的原理均是先采用一個合適大小的自定義結(jié)構(gòu)元素,讓結(jié)構(gòu)元素在二值化圖像上移動,然后將二值化圖像對應(yīng)的像素點與結(jié)構(gòu)元素的像素進行對比,得到的并集則為膨脹之后的圖像像素,得到的交集則為腐蝕之后的圖像像素。處理過程分別如圖9(a)、9(b)所示。由于經(jīng)過處理后圖片中剩下的背景點大多是孤立的,故可在經(jīng)過形態(tài)學(xué)閉操作后根據(jù)圖形的連通域來對缺陷點分區(qū)域,將區(qū)域內(nèi)像素點的個數(shù)與設(shè)定值進行比較來判斷端面是否隱裂。此時系統(tǒng)的檢測流程如圖10所示。
圖9 形態(tài)學(xué)閉操作過程
圖10 硅錠端面檢測流程
為了對本文所提算法進行驗證,采用模式識別常用的召回率(Rc,reca rate)、精確率(Pr,precisionrate)、處理時間等3個指標(biāo)來進行評價,分別定義為:
(9)
(10)
其中:TP表示有缺陷且被正確識別出來的樣本數(shù)目,TN表示有缺陷但沒有被識別出來的樣本數(shù)目,F(xiàn)P表示識別錯誤的樣本數(shù)目。從上述公式可知,隨著召回率的不斷上升,會使精確率有所降低,故對于二者的平衡與取舍是各種缺陷檢測所必須考慮的問題。對于成品硅錠而言,如果有缺陷但是沒有被識別出來會嚴(yán)重影響后續(xù)的打包效率,甚至?xí)斐闪魉€堵料,嚴(yán)重影響車間的產(chǎn)量,此時召回率顯得更為重要。故結(jié)合車間實際生產(chǎn)情況,本文的方案是在保證精確率前提下進一步提高召回率。
為了對本文所設(shè)計的視覺檢測平臺、軟件流程、檢測算法等進行進一步驗證,在麗江某硅錠廠房搭建了圖2所示視覺檢測平臺。平臺使用大恒MER-220-9GM/C型工業(yè)相機作為圖像采集裝置,上位機程序運行在1.1節(jié)所示配置參數(shù)的工控機上,工控機與上位機通過網(wǎng)線直連進行通訊。該廠房平均日產(chǎn)硅錠700根,通過實際調(diào)試測試后,系統(tǒng)在現(xiàn)場測試運行了30天,期間總生產(chǎn)硅錠210 103根,每根硅錠兩個端面均需單獨拍照檢測,共檢測了420 206張照片,其中實際正常照片417 056張,隱裂缺陷照片2 700張。
本次實驗所設(shè)計的上位機檢測界面如圖11所示,通過該界面可以實現(xiàn)參數(shù)設(shè)計、圖像處理、查看檢測結(jié)果、手動更新背景圖像等功能。通過參數(shù)設(shè)計功能可以對中值濾波掩膜大小、差分增強參數(shù)ω與γ、求取粗濾波閾值時硅錠端面隱裂缺陷的最大占比Pm等參數(shù)進行設(shè)置;當(dāng)上位機采集到一張完整圖像后就會調(diào)用圖像處理程序得到處理結(jié)果;為了方便溯源,上位機檢測界面提供了查看已經(jīng)檢測的硅錠端面圖片的功能,上位機檢測系統(tǒng)會將檢測結(jié)果不同的圖片分類保存到兩個不同的文件夾中(默認(rèn)保存一周,具體保存時間可設(shè)置),可以通過上位機檢測界面查看固定時間內(nèi)的硅錠端面圖片的檢測結(jié)果;手動更新背景圖像主要是在工業(yè)現(xiàn)場環(huán)境出現(xiàn)強烈突變后,通過點擊手動更新按鈕實現(xiàn)對背景圖像的更新,同時也可在上位機界面上設(shè)置背景模型自動更新的周期。
圖11 上位機檢測界面
為了進一步驗證本文所提檢測算法的有效性與優(yōu)越性,本文對預(yù)處理之后的圖片分別利用普通背景差分算法與文獻[11]所提算法進行檢測,并將檢測結(jié)果與本文所提算法進行比較。從表1檢測結(jié)果中能看到,不論是召回率還是準(zhǔn)確率本文所提算法都具有更好的識別效果。其中對于少部分隱裂硅錠,由于機床加工特性原因?qū)е码[裂缺陷很不明顯,容易造成算法誤判。
表1 實驗結(jié)果
從采集到的圖片中隨機選取幾張,得到的檢測結(jié)果如圖12所示,能明顯看出普通背景差分算法法會保留部分背景,不能將隱裂缺陷完整的提取出來;文獻[11]所提算法雖然能提取出隱裂缺陷的大概輪廓,有著較高的召回率,但是會保留大量的背景,容易將正常區(qū)域識別成隱裂缺陷從而出現(xiàn)誤檢測,精確率難以保證,相比之下本文所提算法既可以完整的提取出硅錠端面的隱裂缺陷,同時也不會出現(xiàn)對背景部分的誤識別,在保證高召回率的同時也有著較高的精確率,具有更好的識別效果。
本文針對硅錠機加工自動生產(chǎn)線對硅錠端面隱裂缺陷檢測困難、人工檢測效率低等問題,設(shè)計了一種基于機器視覺的硅錠端面自動檢測系統(tǒng),并將設(shè)計好的系統(tǒng)用于工業(yè)現(xiàn)場進行了運行測試。在試運行期間檢測系統(tǒng)軟件部分穩(wěn)定運行,沒有出現(xiàn)過死機,同時試運行期間隱裂缺陷檢測召回率為98.5%,精確率為96.4%,平均檢測耗時180 ms,滿足工業(yè)生產(chǎn)需求,提高了自動生產(chǎn)線的生產(chǎn)效率,也提高了成品硅錠的質(zhì)量,為其余車間的改造提供了方向。但本文只對硅錠端面隱裂缺陷進行了檢測,沒有實現(xiàn)對缺陷的分類,在之后的研究中可以進一步實現(xiàn)對端面隱裂缺陷的分類,同時在后續(xù)的進一步研究中也可將缺陷類型與機床加工故障相對應(yīng),通過分析一段時間內(nèi)各種缺陷類型出現(xiàn)的頻率來反映加工機床可能出現(xiàn)的故障,及時地對加工機床進行處理來減少進一步的損失。