張玉婷,鄭茜穎,俞金玲
(福州大學物理與信息工程學院,福建福州 350000)
近年來,光伏能源在全世界大規(guī)模應(yīng)用,在光伏能源中,太陽能是最可靠、清潔和無污染的可再生能源[1]。太陽電池片是光伏發(fā)電的關(guān)鍵部分,電池片缺陷會嚴重地影響光伏發(fā)電系統(tǒng)的穩(wěn)定性以及壽命[2-3]。目前,裂紋缺陷主要依靠專業(yè)人員進行檢測識別,但是這種檢測方式缺乏快速性和魯棒性。因此,越來越多的國內(nèi)外學者提出把基于計算機視覺的技術(shù)[4]應(yīng)用到太陽電池片裂紋缺陷的自動檢測系統(tǒng)中。
根據(jù)圖像紋理特征之間的差異,現(xiàn)有的太陽電池片裂紋檢測方法可以分為以下三種:基于人工智能的檢測方法、基于均勻紋理的檢測方法和基于非均勻紋理的檢測方法。其中,基于人工智能的檢測方法主要是使用人工標記的數(shù)據(jù)集對分類器[5]和卷積神經(jīng)網(wǎng)絡(luò)[6-7]進行訓練,無需區(qū)別背景的均勻程度,但是這種檢測方法需要標記大量的圖像和訓練樣本[8],并且對非均質(zhì)紋理背景圖像的裂紋識別準確率有待提高?;诰鶆蚣y理的檢測方法,主要是通過傅里葉變換[9]、Gabor 變換[10-11]和離散小波變換[12-13]等方法識別裂紋缺陷,由于均勻紋理背景與裂紋缺陷之間的對比度較高,這些方法都可以有效地識別出裂紋,但是算法的復雜度較高,難以滿足在線檢測的實時性要求;基于非均勻紋理的檢測方法,目前主要是采用各向異性擴散系數(shù)法[14]、基于Hessian 矩陣的裂紋檢測[15]等方法進行裂紋檢測,但是這些方法具有一定局限性,在晶粒和裂紋高度混淆的情況下,裂紋誤檢率高。在之前提出的檢測方法上,設(shè)計了一種基于匹配濾波器和微分匹配均值濾波器的裂紋檢測方法,對多晶硅電池片進行裂紋檢測。
本文方法的具體實現(xiàn)過程如下:首先,將原始的RGB 圖像轉(zhuǎn)換為單通道的灰度圖,降低算法的計算復雜度;其次,對灰度圖像進行線性反轉(zhuǎn)等增強操作;再利用旋轉(zhuǎn)矩陣構(gòu)造出不同角度的匹配濾波器進行裂紋增強,為閾值分割提供基礎(chǔ);同時采用微分匹配均值濾波器對灰度圖像的空間特征進行濾波處理,為閾值計算提供依據(jù);然后,根據(jù)匹配閾值篩選完整的裂紋結(jié)構(gòu);最后,利用Hough 變換和形態(tài)學方法獲取連續(xù)的裂紋結(jié)構(gòu)。系統(tǒng)整體框架如圖1 所示,分為裂紋匹配和裂紋提取兩個部分。
圖1 系統(tǒng)框架
本文范例選取ELPV-dataset 數(shù)據(jù)庫中的圖像進行算法驗證。為了方便后續(xù)算法實現(xiàn),首先對裂紋圖像轉(zhuǎn)換為單通道灰度圖。為了更好地檢測裂紋特征,對灰度圖像進行線性反轉(zhuǎn)變換。
經(jīng)過實驗觀察電池片的電致發(fā)光成像(Electroluminescence,EL)的三維截面如圖2 所示:(a)是裂紋結(jié)構(gòu)灰度圖;(b)是裂紋結(jié)構(gòu)對應(yīng)的三維截面圖;(c)是晶粒結(jié)構(gòu)灰度圖;(d)是晶粒結(jié)構(gòu)對應(yīng)的三維截面圖??梢园l(fā)現(xiàn)裂紋三維圖像的特征與高斯曲線相似且截面圖像的梯度具有不對稱性,另外晶粒結(jié)構(gòu)與線性晶粒結(jié)構(gòu)都具有階梯幾何特征,這是因為多晶晶粒生長的本質(zhì)是以正四面體晶格排列成多晶核結(jié)構(gòu)。結(jié)合以上特點,本文采用高斯函數(shù)f(x,y)擬合裂紋截面圖像形狀以及階躍函數(shù)ε(x,y)模擬大塊的晶粒結(jié)構(gòu)邊緣,以便于裂紋檢測算法驗證。如圖3 所示:(a)是裂紋結(jié)構(gòu)模擬信號;(b)是晶粒結(jié)構(gòu)模擬信號;(c)是裂紋匹配濾波響應(yīng)圖;(d)是晶粒匹配濾波響應(yīng)圖;(e)是裂紋微分匹配均值濾波響應(yīng)圖;(f)是晶粒微分匹配均值濾波響應(yīng)圖。
圖2 指定結(jié)構(gòu)的灰度圖和三維截面圖
圖3 匹配濾波器和微分匹配均值的模擬信號響應(yīng)圖
2.2.1 匹配濾波器
匹配濾波器[16]是一種識別目標對象空間特征的算子,對于裂紋結(jié)構(gòu)具有強烈的響應(yīng)。采用匹配濾波器與待處理圖像相卷積以匹配裂紋特征,識別圖像中的裂紋結(jié)構(gòu),為后續(xù)提取完整的裂紋提供基礎(chǔ)。濾波過程具體表示為:
式中:Hi(x,y)表示匹配濾波器;(x,y)表示像素點位置;i表示旋轉(zhuǎn)角度;δ表示濾波器的尺度。因為高斯曲線在[-3δ,3δ]的區(qū)域接近99%,所以t為常數(shù)3,L是沿y軸平滑噪聲的長度,參數(shù)L的設(shè)置與δ的值互相影響,δ較小時,L的取值也相對較?。环粗嗳?;mi表示濾波器內(nèi)核均值,用于將濾波器均值標準化為0。
對于不同方向的裂紋檢測,匹配濾波器根據(jù)旋轉(zhuǎn)矩陣從不同角度尋找裂紋,旋轉(zhuǎn)矩陣Ri表示為:
2.2.2 微分匹配均值濾波器
雖然,匹配濾波器對于裂紋結(jié)構(gòu)有強烈的響應(yīng),但如圖3(c)~(d)所示,發(fā)現(xiàn)匹配濾波器會對裂紋結(jié)構(gòu)和晶粒結(jié)構(gòu)都產(chǎn)生強烈的響應(yīng)幅值,不能有效區(qū)分這兩種結(jié)構(gòu)。因此,根據(jù)圖3 所發(fā)現(xiàn)的裂紋截面曲線梯度具有不對稱性這一特點,提出通過兩個濾波器匹配裂紋的方案。式(1)中定義了匹配濾波器的內(nèi)核,可以推導出微分匹配濾波器的內(nèi)核公式Gi(x,y):
然后采用局部均值濾波器W與微分匹配濾波器的響應(yīng)結(jié)果Gi相卷積,增加兩種結(jié)構(gòu)響應(yīng)差值,提高算法的魯棒性。其中局部均值濾波器的大小為w×w,系數(shù)為1/w2。
如圖3(e)~(f)所示,微分匹配均值濾波器對裂紋結(jié)構(gòu)產(chǎn)生響應(yīng)趨近于無,但對晶粒結(jié)構(gòu)產(chǎn)生一定寬度的強烈響應(yīng)。為方便論述,本文記匹配濾波器的響應(yīng)圖為S,微分匹配均值濾波的響應(yīng)圖為G。
綜上分析,得出以下結(jié)論:裂紋結(jié)構(gòu)在S中存在高幅值,但在G中卻是低幅值;晶粒結(jié)構(gòu)在S中存在高幅值,但在G中也是高幅值。因此提出根據(jù)G得出閾值T,然后把T應(yīng)用于S來檢測裂紋結(jié)構(gòu)。如果G的幅值很低,則說明周圍存在裂紋結(jié)構(gòu),T會相應(yīng)變小以保證檢測到裂紋結(jié)構(gòu);如果G的幅值很高,則說明周圍存在晶粒結(jié)構(gòu),T會相應(yīng)地變大以篩選晶粒結(jié)構(gòu)。T的公式如下:
式中:μs為S的均值;q為常數(shù),根據(jù)實驗經(jīng)驗設(shè)置為3。最后裂紋匹配圖F由式(6)得出:
式中:S(x,y)為S的像素值矩陣;T(x,y)為計算出的閾值矩陣。
裂紋匹配步驟如下:
Step1 將本文選取的裂紋范例圖像與匹配濾波器相卷積,得到響應(yīng)圖S,其結(jié)果以及相應(yīng)的三維強度圖如圖4 所示。
圖4 匹配濾波器的響應(yīng)圖以及對應(yīng)三維強度顯示圖
Step2 將范例圖像進行微分匹配均值濾波,得到響應(yīng)圖G,如圖5(a)所示。
Step3 然后對G進行歸一化處理,再根據(jù)閾值公式計算閾值T。
Step4 最后將T應(yīng)用于匹配濾波器的響應(yīng)圖S,得到閾值篩選結(jié)果如圖5(b)所示。
對比圖4 和圖5 可以看出,匹配濾波確實在一定程度上強化線性裂紋結(jié)構(gòu)的對比度,但是同時也增強了一些晶粒結(jié)構(gòu)。而本文算法中線性晶粒結(jié)構(gòu)的去除效果明顯提高,同時為后面的裂紋提取保留了完整的裂紋結(jié)構(gòu)。
圖5 微分匹配均值濾波響應(yīng)圖和閾值篩選結(jié)果圖
將閾值篩選后的圖像用Hough 算法去除柵線,得到如圖6(a)所示的裂紋結(jié)構(gòu)圖,再通過形態(tài)學方法連接裂紋結(jié)構(gòu),得到最終結(jié)果,如圖6(b)所示。
圖6 檢測結(jié)果
ELPV-dataset 是現(xiàn)有公開的、較為全面的太陽電池片EL圖像數(shù)據(jù)庫,可以利用這個數(shù)據(jù)庫比較相關(guān)算法的有效性,本文選取這個數(shù)據(jù)庫的數(shù)據(jù)測試本文算法性能。
本文選取認可度較高的像素點分類方法對裂紋檢測方法進行性能評估,該標準是將算法檢測結(jié)果和專家標準數(shù)據(jù)進行比較。像素統(tǒng)計有以下四種情況:真陽性(TP)、假陽性(FP)、真陰性(TN)、假陰性(FN)。如表1 所示,可以通過像素點分類結(jié)果計算出正確率(Acc)、誤檢率(Err)、靈敏度(Sn)。正確率(Acc)和靈敏度(Sn)的數(shù)值越接近1 表示算法的性能越好,誤檢率(Err)的數(shù)值越接近0 表示算法的性能越好。
表1 性能評估指標
為了充分地檢驗本文算法的綜合性能,對ELPV-dataset數(shù)據(jù)庫中的幾組代表性圖像進行驗證對比。將本文算法、基于marr-hildreth 的檢測算法[17]、基于Hessian 矩陣的檢測算法以及基于sobel 的檢測算法[18]進行對比實驗分析算法性能,實驗結(jié)果如圖7 所示。其中圖7(a)為EL 圖像,(b)為marrhildreth 算法檢測結(jié)果,(c)為sobel 算法檢測結(jié)果,(d)為Hessian 算法檢測結(jié)果,(e)為本文算法檢測結(jié)果,(f)是專業(yè)人員人工檢測的結(jié)果。
圖7 本文算法與其他算法檢測結(jié)果的對比
可以看出,基于marr-hildreth 的方法和基于sobel 的方法都只能檢測到裂紋結(jié)構(gòu)較為清晰的部分,且對于強度相似的晶粒結(jié)構(gòu)誤檢率較高,裂紋檢測的完整性較差?;贖essian矩陣的方法檢測效果有提升,裂紋檢測的完整性有所改善,但是對于強度相似的晶粒結(jié)構(gòu)的誤檢率仍然較高。本文提出的算法不僅能夠檢測出完整連貫的裂紋結(jié)構(gòu),還很好地解決了強度相似度較高的晶粒結(jié)構(gòu)誤檢率高的問題。
表2 是本文算法針對ELPV-dataset 數(shù)據(jù)庫中圖像的3 個檢測性能指標的計算結(jié)果。由表可得,本文算法的平均準確率為0.999 6,靈敏度為0.965 6,誤檢率為0.000 0。本文算法在數(shù)據(jù)庫中有很好的檢測準確率、靈敏度和很低的誤檢率,具有良好的檢測性能。
表2 本文算法測試結(jié)果
同時,本文還計算了基于marr-hildreth 的檢測算法、基于Hessian 矩陣的檢測算法以及基于sobel 的檢測算法在數(shù)據(jù)庫中的檢測準確率、靈敏度和誤檢率,并與本文算法進行比較,結(jié)果如表3 和圖8 所示。結(jié)合表中的數(shù)據(jù)可以看出,本文算法在檢測準確率、靈敏度和誤檢率上都有很大的改善。
表3 算法性能比較
圖8 算法性能比較
本文分析了多晶硅太陽電池片現(xiàn)有的裂紋檢測方案,根據(jù)經(jīng)典高斯函數(shù)的匹配濾波器高信噪比的特性,結(jié)合微分均值濾波器以及匹配閾值方案,提出了新的裂紋檢測方案。設(shè)計了基于高斯函數(shù)的匹配濾波器以擬合裂紋的輪廓,提高裂紋的識別率;用微分均值濾波器以及匹配閾值方案篩選解決了部分線性晶粒結(jié)構(gòu)產(chǎn)生的偽響應(yīng)問題;通過微分均值濾波器在裂紋響應(yīng)和階躍響應(yīng)之間產(chǎn)生明顯的強度響應(yīng)差距,為匹配閾值方案濾除偽響應(yīng)提供了良好的檢測基礎(chǔ)。將本文的算法應(yīng)用于ELPV-dataset 數(shù)據(jù)庫中的測試結(jié)果與標準結(jié)果進行對比,實驗表明本文算法可以很好地處理裂紋檢測過程中出現(xiàn)的紊亂背景干擾問題以及晶粒誤檢問題,同時具有很好的正確率,總體裂紋檢測效果優(yōu)于對比算法。