宋曉宇,馮加華,袁 帥,陳智麗
(沈陽建筑大學信息與控制工程學院,遼寧 沈陽110168)
隨著能源的緊缺和環(huán)境的惡化,太陽能作為一種可再生的清潔能源,成為了近年來發(fā)展最快,最具活力的研究領域。在太陽能光伏發(fā)電系統(tǒng)中,太陽能光伏陣列是核心單元之一,光伏陣列由多個太陽能硅片組成[1]。硅片的生產工藝復雜,在生產過程中容易產生如裂紋、缺角、破損等缺陷,這些缺陷嚴重的影響了太陽能硅電池的使用年限和發(fā)電效率,因此有必要對太陽能電池片表面缺陷進行檢測,以提高太陽能電池片的使用壽命。
太陽能電池片分為單晶硅太陽能電池片,多晶硅太陽能電池片和非晶硅太陽能電池片。多晶硅太陽能電池片表面缺陷形成原因復雜多變,缺陷種類多,不同缺陷表現(xiàn)出不同特征,并且多晶硅太陽能電池片表面紋理相較于單晶硅太陽能電池片表面紋理更加復雜,這些問題都給多晶硅太陽能電池片表面缺陷檢測帶來了挑戰(zhàn)。目前國內外主要的特征提取缺陷檢測方法是提取缺陷圖像的幾何特征,不變矩特征,紋理特征和灰度特征[2-4],這些方法直接在空間域提取特征??紤]到有些圖像特性在空間域并不明顯,但是在變換域中卻表現(xiàn)的更加明顯,一些方法將缺陷圖像轉換到變換域中提取特征,常用的方法有Fourier變換,Gabor變換和Wavelet變換等[5-6],這些變換雖然在一定程度上可以提高缺陷識別準確率,但是變換的基向量固定不變,與被檢測的缺陷圖像沒有直接關聯(lián),導致提取的特征不能完全反映圖像特性,因此如果能從缺陷圖像中自適應估計出某種變換和基向量,通過這種變換提取到的特征將會比上述通用變換提取的特征更能反映圖像特點,缺陷識別準確率也將進一步提高。
近年來,獨立成分分析(ICA)[7]在圖像處理領域得到了廣泛應用,ICA算法從盲源分離問題發(fā)展而來,是一種基于信號高階統(tǒng)計特性的分析方法。 ICA算法通過擴展,演變?yōu)橥負洫毩⒊煞址治?TICA)[8]算法。ICA和TICA應用于圖像數(shù)據(jù)時,通過建立原始圖像統(tǒng)計生成模型,對圖像進行無監(jiān)督學習,自適應地估計出基向量和其對應濾波器。TICA相較于ICA的優(yōu)勢在于,TICA估計的基向量具有一定拓撲順序,使得TICA比ICA的圖像表示更能反映圖像特性。
針對上述方法存在的不能自適應提取圖像特征,缺陷識別率易受基向量拓撲順序影響等問題。本文提出了一種基于拓撲獨立成分分析(TICA)的特征提取缺陷檢測方法。首先利用DE算法改進TICA算法,通過改進的TICA算法提取圖像特征。然后采用ReliefF算法和K-means算法進行特征選擇,最后利用隨機森林分類器進行分類識別。實驗結果表明,本文算法相比于傳統(tǒng)TICA算法,增強了圖像特征提取能力,提升了缺陷分類準確率,目前準確率為96.0%,提高了2.8%。
ICA算法是解決盲源分離問題一種常用的算法,其目的是從給定混合信號中提取相互獨立的信號源,其基本模型為
(1)
式中x=[x1,x2,…,xn]Τ為原始數(shù)據(jù),s=[s1,s2,…,sn]Τ獨立信號,A=[a1,a2,…,an]為混合矩陣。
在ICA模型的假設中,所有源信號si相互獨立,但是當ICA算法應用于實際問題時,往往得不到完全相互獨立的分量。通常情況下,一個隨機向量很難嚴格線性分解為相互獨立的成分。因此,Hyv?rinen等[8]放寬了源信號相互獨立的假設,提出了TICA算法。
TICA算法利用鄰域函數(shù)定義源信號si的拓撲順序,在拓撲順序中相鄰的分量具有高階意義上的相關性,而相距較遠的分量則被認為相互獨立。
TICA模型中,成分si被建模為
(2)
TICA模型求解步驟如下:
步驟1:對樣本數(shù)據(jù)矩陣X進行預處理,利用主成分分析(PCA)算法對X進行白化操作。選取協(xié)方差矩陣C=E{XXΤ}的K個最大特征值,組成對角矩陣D,特征值對應的特征向量組成矩陣E,根據(jù)(3)式得到預處理后的數(shù)據(jù)z
(3)
步驟2:隨機初始化向量bi,根據(jù)以下梯度學習規(guī)則更新bi。
(4)
(5)
(6)
由上述TICA模型求解步驟可知,TICA求解結果對矩陣B的初始值具有較強的依賴性,這限制了TICA算法在全局方向上求解的能力。為解決這個問題,引入差分進化算法(DE)[10]對矩陣B進行優(yōu)化。
差分進化算法(DE)是一種基于群體差異的啟發(fā)式隨機搜索算法,在隨機種群基礎上,對種群中個體進行變異,交叉,選擇等操作,每次迭代后留下適應度高的個體形成新種群,經過不斷的迭代循環(huán),DE算法能夠朝著全局最優(yōu)解逼近。因此,引入DE算法優(yōu)化矩陣B,使TICA模型在優(yōu)化后能夠沿著全局最優(yōu)的方向求解,DE算法優(yōu)化TICA算法步驟如下:
步驟1:隨機初始化種群
P=[p1,p2,p3,…,pNP]
(7)
步驟2:變異
vi(g+1)=pr1(g)+F(pr2(g)-pr3(g))
(8)
式中F為縮放因子,g為迭代次數(shù),vi(g+1)為變異后個體,r1≠r2≠r3。
步驟3:二項式交叉
(9)
式中j=1,2,…d,jrand為[1,d]內隨機數(shù),CR∈(0,1)為交叉概率,ui(g+1)為交叉操作后個體。
步驟4:選擇
(10)
當TICA算法用于處理實際圖像數(shù)據(jù)時,通常將原始圖像矩陣變換為列向量x,并將x表示為一組基向量ai的線性疊加,這種方式和大多數(shù)圖像處理方法相同,都是將原始圖像轉換到變換域進行處理。
提取特征向量的重點是獲取基向量,求解模型能夠得到混合矩陣A和分離矩陣W,A的列向量ai即為所求基向量,將一維基向量還原成二維圖像,可得到如圖1所示的基向量圖像。
5G是當前最受關注的產業(yè)之一,也是最確定的發(fā)展方向,家電廠商更需要準確判斷市場環(huán)境,及時保持家電對熱點技術、功能的研發(fā),為消費者帶來真正實用、好用的智慧家電。
圖1 缺陷圖像的基向量
圖1中(a),(b)分別為ICA和TICA基向量圖像,可以看出ICA和TICA基向量能夠體現(xiàn)缺陷類別的顯著特征,并自適應于缺陷圖像的特點。相比于Wavelet,Gabor變換等方法,TICA和ICA基向量自由度更高,具有更多不同相位,能夠適應于任意方向的缺陷圖像。顯然,利用TICA和ICA方法分析缺陷圖像要比Wavelet,Gabor變換等方法更有效。
雖然圖1中TICA基向量和ICA基向量非常相似,但是TICA基向量具有明顯的拓撲組織。TICA基向量分布在一個沒有邊界的二維圓環(huán)面中,其中方向和位置相似的基向量相互形成鄰域。因此,TICA提供了一種對原始圖像的有序表示。
S=WX
(11)
式中S為提取的特征向量si組成的矩陣,大小為n×m。
由圖1(b)可以看出基向量中存在著一些冗余和與缺陷特點無關的基向量,例如,第一,二行的第一列為冗余基向量,第五行第五列為無關基向量。因此,在提取的特征向量中,則存在著一些冗余和無關特征,降低了缺陷識別準確率,影響了算法運行效率。通過特征選擇能夠去除特征向量中冗余和無關特征,精簡特征向量,進一步提高缺陷識別準確率。
首先,利用ReliefF算法[12]將所有特征按照正負類分類能力的不同賦予相應權值,ReliefF算法是一個在Relief算法[13]基礎上發(fā)展而來的特征權重賦值算法,按照特征與正負類之間相關性為每一個特征賦予權值。
ReliefF算法的具體思路是先從訓練集中隨機抽取一個樣本x,接著從訓練集中分別抽取k個與樣本x同類,不同類的樣本。然后對于特征向量中每一個特征,計算其與同類,不同類樣本之間的距離,如果兩類距離均值相差較大,說明該特征對樣本具有較好的區(qū)分能力,則增加該特征權重,反之,則降低該特征權重。重復上述操作m次,將得到的均值為該特征最終的權重,對特征向量中每一個特征進行上述操作,可以為每一個特征賦予權重。實驗中初始特征向量維數(shù)為150,k為10,m為20,將權重小于0.05的特征視為與分類無關的特征,去除無關特征后,特征向量維數(shù)為127。
然后,采用K-means算法根據(jù)特征權重對剩下的特征進行聚類,保留聚類結果每一簇中權重最大的特征。這是K-means算法一種較為特殊的應用,聚類對象不是樣本而是特征,采用歐式距離作為距離度量,聚類終止條件為質心不再發(fā)生變化或達到最大迭代次數(shù),實驗中最大迭代次數(shù)為50,當聚類簇數(shù)為40時,缺陷分類準確率最高。
隨機森林算法是一種基于決策樹的機器學習算法,相較于決策樹算法,隨機森林的優(yōu)點在于其分類精度更高,泛化能力更強,并且不容易出現(xiàn)過擬合,因此本文采用隨機森林作為分類器。隨機森林算法通過Bootstrap抽樣技術將多個決策樹組合成森林,當樣本進入隨機森林時,森林中的每一棵決策樹會產生相應分類結果,最后采用眾數(shù)投票方式決定樣本最終分類結果,得票數(shù)最多的類別即為樣本分類結果,最終分類結果形式如式(12)所示
(12)
式中H(x)為最終分類結果,h(x)為單個決策樹分類結果,C為分類類別,I(.)為表示性函數(shù)。
本文將太陽能電池片分為裂紋、缺角、破損和正常四個類別,實驗中將數(shù)據(jù)集分為訓練集和測試集,訓練集用于訓練模型,測試集用于驗證模型性能。對于訓練集,首先,通過TICA算法無監(jiān)督地提取特征向量,然后,利用ReliefF算法和K-means算法進行特征選擇,最后,將特征選擇后的特征子集送入隨機森林分類器中進行訓練。對于測試集,首先,利用特征子集中特征對應的濾波器與圖像進行濾波,提取特征向量,然后,將特征向量送入訓練好的隨機森林分類器中進行分類,驗證模型的性能。隨機森林分類器幾個主要參數(shù)通過網(wǎng)格搜索算法確定,其中隨機森林中決策樹數(shù)量為180,決策樹最大深度為15,葉子節(jié)點上最少樣本數(shù)為2,隨機數(shù)產生器的種子為42。
本文采集不同批次的多晶硅圖像1600張,用于模型訓練和測試,其中無缺陷圖像,裂紋圖像,缺角圖像和破損圖像各400張,每張圖像大小為240×240像素,采用五折交叉驗證方法訓練模型,訓練過程中,數(shù)據(jù)集每一類缺陷平均分為五份,每一次訓練使用其中四份作為訓練集,另外一份作為測試集,如此重復五次,取五次識別準確率的平均準確率作為最終識別準確率。
4.1.1 柵線去除
原始圖像中柵線和缺陷存在交集,因此,柵線可能會對缺陷檢測造成影響,為保證缺陷檢測的準確性,需去除原始圖像中的柵線。圖2中(a),(b),(c),(d)分別為原始無缺陷圖像,裂紋缺陷圖像,缺角缺陷圖像和破損缺陷圖像。
圖2 原始硅片圖像
實驗中,采用形態(tài)學平滑[14]方法去除圖像柵線,首先,利用45°,90°,和135°三個方向結構元素,對圖像中像素點分別累加三個方向的灰度值,其中結構元素長度為16像素,寬度為1像素。然后,選擇三個累加灰度和中最小的結構元素,作為給定像素點的結構元素。最后,將結構元素中最大灰度值替換給定像素點灰度值。圖3中(a),(b),(c),(d)分別為圖2中對應圖像去除柵線后圖像。
圖3 去柵硅片圖像
4.1.2 圖像增強
圖像增強的目的是提高機器對圖像中缺陷的敏感度,換而言之,將圖像中缺陷特征有選擇地進行突出,衰減其它不需要的特征。在圖像增強過程中,首先,對圖像進行腐蝕操作,腐蝕使用5×5模板,模板中第三行和第三列中元素為1,其它元素為0,然后,對腐蝕后的圖像進行拉普拉斯銳化操作,突出圖像中缺陷細節(jié),銳化使用3×3模板,模板中心元素為5,四個頂角元素為0,其它元素為-1。圖4中(a),(b),(c)分別為去除柵線裂紋圖像,腐蝕裂紋圖像和銳化裂紋圖像,可以看出缺陷圖像經過圖像增強操作后,圖中缺陷細節(jié)得到了明顯增強。
圖4 圖像增強過程
圖5分別給出了傳統(tǒng)ICA算法,TICA算法,DE算法優(yōu)化后ICA算法,TICA算法的分類準確率,將DE算法優(yōu)化的ICA,TICA算法分別記為DE_ICA和DE_TICA,特征向量維數(shù)范圍為[10,150]。圖中ICA算法,TICA算法最高分類準確率分別為89.8%,93.2%,而DE_ICA和DE_TICA的分類的準確率則分別提高到了91.3%和94.1%。同時,DE_TICA比DE_ICA的分類準確率更髙,并且達到最高準確率時向量維數(shù)也更少,DE_TICA達到最高分類準確率時維數(shù)為53,DE_ICA則是61。
圖5 DE算法優(yōu)化前后分類準確率
圖6中RK_TICA為DE_TICA特征選擇后的分類準確率。RK_TICA和DE_TICA初始特征向量維數(shù)都為150,經過ReliefF算法去除無關特征后維數(shù)為127,K-means算法聚類的特征維數(shù)范圍為[10,126]。大多數(shù)情況下,RK_TICA分類準確率明顯高于DE_TICA,并且,RK_TICA將最高分類準確率提高到了96.0%,達到最高分類準確率的特征向量維數(shù)從53降低到了40。
圖6 特征選擇后分類準確率
可見,無論TICA算法是否經過優(yōu)化,對缺陷的分類性能都要優(yōu)于ICA算法。同時,相比于傳統(tǒng)TICA算法,DE_TICA和RK_TICA的分類準確率更高,達到最高分類準確率時特征向量的維數(shù)更少,說明本文采用的DE算法優(yōu)化和特征選擇操作能夠明顯提升TICA算法的性能。
表1為當特征向量維數(shù)為40時,不同缺陷的分類結果,從表1中可以看出裂紋缺陷,缺角缺陷,破損缺陷和正常圖像的識別率分別為96.0%,96.5%,94.0%和97.5%,總體識別率為96.0%。可見本文算法對缺陷具有較強的識別能力,并且不僅僅局限于單一缺陷,而是對多種不同缺陷都具有較好的識別能力。
表1 缺陷分類結果
為了驗證本文方法的有效性,采用文獻[15]中王宇提出的改進VGGNet方法,文獻[16]中劉磊提出的SVM方法,文獻[17]中錢曉亮等提出的Visual Saliency方法和本文RK_TICA方法進行對比測試。實驗使用的計算機硬件配置為Intel Core i5四核3.3GHz CPU處理器、8G內存,采用Python編程實現(xiàn),結果如表2所示。
表2 識別方法對比
其中,VGGNet方法,SVM方法,Visual Saliency方法的分類準確率,識別時間分別為91.3%,0.430s,94.5%,0.527s和86.7%,0.483s,而本文的RK_TICA方法則是96.0%,0.358s。綜合來看,無論是分類準確率還是分類時間,本文方法的性能都要優(yōu)于其它方法。
本文提出了一種基于拓撲獨立成分分析(TICA)的特征提取方法,用于多晶硅太陽能電池片表面的缺陷檢測。該方法在缺陷圖像集的無監(jiān)督學習基礎上,采用基于DE優(yōu)化的TICA算法,在全局方向上估計基向量,得到自適應性強、具有明顯拓撲順序的基向量,使其適應于所研究圖像的缺陷特點。所提算法的特征選擇方式減少了特征向量維數(shù),降低了算法時間復雜度,有利于算法提高效率和實時處理。實驗結果表明,本文方法識別準確率得到了明顯提高,并進一步提高了實時處理效率,驗證了本文算法的有效性。