陳 杰,侯少攀,崇 鋒,李 江,李 君
(1.國家電投集團青海光伏產(chǎn)業(yè)創(chuàng)新中心有限公司,陜西西安 710061;2.青海黃河智慧能源科技有限公司,青海西寧 810007)
新能源技術(shù)在近些年受到了廣泛的關(guān)注,在新能源領(lǐng)域,太陽能是被認可和得到廣泛應(yīng)用的技術(shù)。與傳統(tǒng)能源相比,光伏發(fā)電作為清潔能源,其衛(wèi)生程度較高,對環(huán)境的污染較小,未來的發(fā)展前景良好。光伏電池組件作為光伏太陽能的核心組件,電池材料的自身可能會存在缺陷,并且加工電池片時也可能會導(dǎo)致電池片受損,如焊片、黑心片、斷柵片等問題,這些缺陷問題不但會減少光伏組件的發(fā)電效率和使用壽命,而且有可能引起火災(zāi)等不必要的事故。因此,對光伏組件缺陷診斷的研究越來越重要。
如今檢測電池組件缺陷的技術(shù)主要有紅外成像技術(shù)、光致發(fā)光技術(shù)、電致發(fā)光成像技術(shù)(EL)、可見光檢測技術(shù)。電致發(fā)光檢測的原理是通過直流電源向組件注入正向偏置電流,通過適當?shù)男旁氡葋慝@得高質(zhì)量的電致發(fā)光結(jié)果。探測器會收集光伏組件有源部分所發(fā)出的特定波長的發(fā)光輻射。被收集到的電致發(fā)光會被處理成對比圖像,揭示出具有不同發(fā)光活性的區(qū)域。所以可根據(jù)EL 圖像判斷電池組件中是否存在人眼無法檢測到的缺陷。
目前,國內(nèi)外對光伏組件故障診斷比較典型的成果有:文獻[1]通過計算最小外接矩形在光伏電池板所占的比例來判斷是否缺陷,該論文主要用的方法是傳統(tǒng)的圖像處理算法和HSV 空間模型;文獻[2]采用傳統(tǒng)的圖像處理算法,通過模板匹配、圖像金字塔結(jié)構(gòu)、霍夫直線檢測、干擾直線濾波等算法提取光伏組件,最后使用邊緣檢測等算法進行故障診斷,也取得了不錯的診斷效果。使用傳統(tǒng)方法進行缺陷識別準確率較低,所以文章使用深度學習的算法來進行缺陷診斷。
試驗中所使用的樣本來自于BUERHOP-LUTZ C等人公開的數(shù)據(jù)集[3]。該樣本由18個單晶型模塊和26個多晶型模塊組成。共計2 624個300×300像素的電池組件EL 圖像。這些圖像中的負樣本由黑心片、黑斑片、短路黑片、明暗片、隱裂片等組成。其代表性特征如圖1所示。

圖1 負樣本中包含的電池片缺陷
該數(shù)據(jù)集按照缺陷的概率對圖片進行了標注,但因其正負樣本分布不均,數(shù)據(jù)集相對較少,所以將缺陷概率小于50%的圖片作為無缺陷的正樣本數(shù)據(jù),將缺陷概率大于50%的圖片作為有缺陷的負樣本。共計1809張無缺陷的正樣本圖片,815張有缺陷的負樣本圖片。并且因為其每種故障的樣本較少,無法進行多分類,所以本試驗將所有故障視為一類,進行有故障和無故障分類。
對于數(shù)據(jù)集樣本不足和分布不均的情況,為避免產(chǎn)生過擬合的現(xiàn)象。文章對訓練集圖像采用圖像增強技術(shù)來擴充樣本數(shù),有3種方法:①將原本的訓練集水平翻轉(zhuǎn)和垂直翻轉(zhuǎn);②將原始的訓練集隨機進行角度翻轉(zhuǎn);③通過改變原始圖像的亮度、對比度和飽和度來擴充樣本數(shù)。并且使用圖像去噪的技術(shù),降低圖像的噪聲以避免無關(guān)因素的干擾。因該網(wǎng)絡(luò)結(jié)構(gòu)的輸入需使用三通道的圖像,所以最后對其進行單通道向三通道的轉(zhuǎn)換。
軟件環(huán)境為Windows 64 位系統(tǒng),使用的編程語言為Python,采用的深度學習框架為Pytorch,CUDA 版本為11.4。
在樣本不足的情況下,通常采用80%的樣本為訓練集,20%的樣本為測試集,經(jīng)過計算選用2276張樣本圖像為訓練集,348張樣本圖像為測試集。
隨著神經(jīng)網(wǎng)絡(luò)的不斷發(fā)展,越來越多的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)涌現(xiàn),如今較為主流且常見的卷積神經(jīng)網(wǎng)絡(luò)模型主要有AlexNet、VGGNet、GoogleNet 和ResNet。盡管當網(wǎng)絡(luò)的深度越來越深,圖像的特征會提取的越來越細致,圖像識別的效果會越來越好。但如AlexNet、VGGNet、GoogleNe,隨著其網(wǎng)絡(luò)深度一味的增加會出現(xiàn)梯度消失和梯度爆炸等問題,影響網(wǎng)絡(luò)模型的訓練。ResNet 網(wǎng)絡(luò)出現(xiàn)于2015年,并且在2015年ImageNet 的分類任務(wù)上取得了第一名的成績,ResNet網(wǎng)絡(luò)能夠有效解決網(wǎng)絡(luò)過深所產(chǎn)生的梯度消失問題,原因是其擁有殘差結(jié)構(gòu)。并且ResNet 網(wǎng)絡(luò)不僅引入了殘差結(jié)構(gòu),還引入了堆疊式殘差結(jié)構(gòu),堆疊式殘差結(jié)構(gòu)可有效提高網(wǎng)絡(luò)的性能和效果。殘差模塊由多個小尺度的kernel 組成。并且ResNet 網(wǎng)絡(luò)整個特征提取部分都是使用全卷積的,這可大幅提高計算的速度。
ResNet 引入了殘差模塊從而解決了網(wǎng)絡(luò)退化,如圖2所示,其主要分為兩條路。右邊的路將輸入原封不動的傳到輸出,左邊的路是3層神經(jīng)網(wǎng)絡(luò),無需擬合復(fù)雜的底層映射,只需擬合殘差,殘差模塊最壞的結(jié)果是輸入與輸出相等。但殘差只會比恒等映射模型更好,最后將殘差與恒等映射相加,再使用非線性激活函數(shù)。而傳統(tǒng)的線性結(jié)構(gòu)難以擬合“恒等映射”。

圖2 殘差網(wǎng)絡(luò)結(jié)構(gòu)
在數(shù)據(jù)集有限的情況下,無法有效訓練網(wǎng)絡(luò)模型中的參數(shù),所以采用遷移學習是最好的選擇。遷移學習的本質(zhì)是將一個領(lǐng)域的知識遷移至目標領(lǐng)域,這樣目標領(lǐng)域可取得很好的學習效果[4]。簡單的來說就是運用已有的知識來學習新的知識,核心是找到已有知識和新知識間的相似性。遷移學習在面對一些基本的規(guī)則時,模型無需重新學習,這極大降低了時間成本并且還能有效提高測試集的準確率。文章所使用的遷移學習模型是在ImageNet[5]上訓練的,ImageNet 數(shù)據(jù)集包含了120萬張圖片,使用此訓練集上預(yù)訓練好的模型,可有效地在不同分類任務(wù)上使用[6-7]。本研究使用在ImageNet 上訓練好的ResNet 模型來對光伏故障進行診斷。
注意力機制是一種模仿人類視覺和認知系統(tǒng)的方法,主要是使神經(jīng)網(wǎng)絡(luò)在處理輸入的數(shù)據(jù)時集中注意于相關(guān)的部分,并且弱化其他區(qū)域的信息,從而能夠有效提高模型的性能和泛化能力[8]。CBAM 注意機制是將空間注意力機制和通道注意力機制相結(jié)合,如圖3所示??臻g注意力機制的目的是為讓模型更集中在空間形狀更重要的特征上,使得模型加強及減弱空間某些位置的特征,具體模型架構(gòu)如圖4所示,其主要對輸入圖像使用MaxPool 和AvgPool 聚合空間特征信息,得到特征圖,并通過7×7的kernel 進行卷積計算后,通過Sigmoid 函數(shù)激活,得到空間注意力特征。

圖3 CBAM注意機制

圖4 空間注意力機制
式中,σ為Sigmoid激活函數(shù)。
在卷積中,一般會有多個通道的特征輸出,有些通道的特征對最終的目標影響更大,通道注意力模塊如圖5所示,其為每個通道分配一個權(quán)重值,并調(diào)整不同通道間的特征,其主要通過最大池化和平均池化獲取圖像的特征描述符,通道注意力特征圖Mc(F)表達式為:

圖5 通道注意力機制
式中,MLP為多層感知機,σ為Sigmoid激活函數(shù),W0和W1分別為權(quán)重,為平均池化運算,為最大池化運算。
為有效提取到EL 圖像中的紋理、細節(jié)和輪廓特征,本研究在ResNet34的基礎(chǔ)上加入卷積注意力模塊,結(jié)果如圖6所示,準確率為80.7%。

圖6 分類準確率與損失率
在訓練的過程中,每次的正向傳播都會得到輸出值和真實值的損失值,這個損失值越小,表示模型越好。梯度下降算法就是用來幫助尋找最小的損失值,從而可反推出在損失值最小的情況下所對應(yīng)的權(quán)值w和偏置項b,以達到使模型優(yōu)化的效果。
如今較為主流的梯度下降算法主要有SGD 和Adam 算法。SGD 算法保持一個單一的學習速率(稱為alpha),其用于所有的權(quán)重更新,并且在訓練的過程中學習速率不會發(fā)生改變。每一個網(wǎng)絡(luò)權(quán)重都保持著一個相同的學習速率,隨著學習的展開而單獨進行調(diào)整。King ma 和LeiBa 這兩位學者于2014 年12月,提出了Adam 優(yōu)化器[9],Adam 結(jié)合了AdaGrad和RMSprop 兩種優(yōu)化算法的優(yōu)點。對梯度的一階矩估計和二階矩估計進行綜合的考慮,計算出更新步長。Adam 算法中的修正偏差步驟可極大地緩解算法初期冷啟動的問題。Adam 算法的內(nèi)容如下。
Require:學習率ε,衰減速率ρ,動量系數(shù)μ,初始參數(shù)θ。小常數(shù)σ,用于被小數(shù)除時的數(shù)值穩(wěn)定。初始化累計變量r=0,v=0。
當停止標準未滿足時:
這兩種梯度下降算法的損失率隨著訓練輪數(shù)變化的曲線如圖7所示。在訓練階段,Adam 的損失率一直小于SGD。從這里可看出,在訓練時使用Adam具有更好的效果。

圖7 不同梯度下降算法的Loss
當在數(shù)據(jù)集有限的情況下,模型可能會出現(xiàn)過分擬合的現(xiàn)象從而導(dǎo)致無法準確地預(yù)測訓練數(shù)據(jù)或真實數(shù)據(jù),這種現(xiàn)象就是過擬合。雖然神經(jīng)網(wǎng)絡(luò)憑借其大量的神經(jīng)元和龐大的網(wǎng)絡(luò)結(jié)構(gòu)在分類等計算機視覺任務(wù)上表現(xiàn)的非常出色,但過大規(guī)模的網(wǎng)絡(luò)也產(chǎn)生了過擬合的問題,當訓練數(shù)據(jù)有限的情況下,網(wǎng)絡(luò)會缺乏應(yīng)有的泛化性。Nitish Srivastava 等人針對這一現(xiàn)象,提出了使用Dropout 的方法[10]。
Dropout 的含義是在深度網(wǎng)絡(luò)的訓練中,以一定的概率使神經(jīng)元節(jié)點隨機失活。因為Dropout 的隨機失活使得每次訓練小批量的數(shù)據(jù)時,都相當于每次的迭代都在訓練不同的網(wǎng)絡(luò)。簡單的來說,Dropout 就是隨機抑制神經(jīng)元的前向和反向的傳播[11]。
沒有使用Dropout 時:
使用Dropout 時:
圖8是當其它條件相同,僅Dropout 不同時,該模型對測試集識別的準確率。從圖8 中可得出,當Dropout 為0.3時,測試集識別的準確率最高。在樣本數(shù)據(jù)有限的條件下,神經(jīng)網(wǎng)絡(luò)的參數(shù)較多,Dropout過小會出現(xiàn)過擬合的現(xiàn)象。當Dropout 概率過大時在神經(jīng)網(wǎng)絡(luò)的全連接層網(wǎng)絡(luò)的節(jié)點數(shù)量較少,并不能很好地擬合數(shù)據(jù),會使得缺陷識別的效果不好。所以選擇一個合適的Dropout 概率對減小過擬合的影響有非常重要的意義。

圖8 不同Dropout時測試集的準確率
試驗訓練參數(shù)見表1。

表1 訓練參數(shù)
試驗設(shè)置的初始學習率為0.005,訓練迭代120次,在第85次時,模型在測試集上的準確率最高為84.4%。模型訓練過程的損失和準確率曲線如圖9所示。

圖9 分類準確率與損失率
因本次試驗的各類故障樣本不足,無法實現(xiàn)多分類。下一步的研究將先增加數(shù)據(jù)集的樣本數(shù),在樣本數(shù)充足的情況下訓練神經(jīng)網(wǎng)絡(luò),從而可實現(xiàn)多分類。
文章提出使用殘差網(wǎng)絡(luò)對太陽能電池組件的電致發(fā)光進行圖像的缺陷識別,其能夠有效提取故障電池片的特征,進行正確的分類,對光伏電站的運維具有重要意義。在2 624張樣本上,使用加入CBAM的ResNet34 網(wǎng)絡(luò)進行訓練,通過對其Dropout 和隨機下降梯度算法的調(diào)整,在測試集上的準確率可達到84.4%,未進行調(diào)整的模型準確率為75%,準確率提高了9.4%。另外因種類的數(shù)據(jù)集較少,不能實現(xiàn)多分類,下一步將繼續(xù)拍攝基于電致發(fā)光的光伏組件故障圖片,以便在實際的應(yīng)用中實現(xiàn)電池片組件的缺陷識別。