孫海蓉,潘子杰,2,晏 勇,2
(1.華北電力大學(xué) 控制與計算機工程學(xué)院,河北 保定 071003;2.華北電力大學(xué) 河北省發(fā)電過程仿真與優(yōu)化控制工程技術(shù)研究中心,河北 保定 071003)
光伏組件是光伏發(fā)電系統(tǒng)的核心組成部分。為了充分利用太陽能,通常需要將多個光伏組件串聯(lián)或并聯(lián)組成更大的光伏陣列置于室外,當(dāng)光伏組件受高壓線、砂礫、灰塵、建筑物等不透明物體遮擋到一定程度時,部分電池片將會產(chǎn)生局部過熱現(xiàn)象,即熱斑效應(yīng)[1]。不同嚴(yán)重程度的熱斑效應(yīng)將導(dǎo)致不同后果,輕則降低光伏發(fā)電效率,重則損壞光伏組件內(nèi)部結(jié)構(gòu)甚至引發(fā)火災(zāi)[2]。因此,及時識別并定位熱斑區(qū)域?qū)档桶l(fā)電成本和提高發(fā)電安全性具有重要意義。
圍繞光伏熱斑識別與定位這一課題,國內(nèi)外相關(guān)領(lǐng)域?qū)W者對此做了大量研究。近年來,隨著深度學(xué)習(xí)算法的不斷發(fā)展與深入,基于圖像處理和深度學(xué)習(xí)的紅外圖像故障檢測方法憑借其低成本、高效率等優(yōu)點受到越來越多的關(guān)注。文獻[3]在原始Faster RCNN的基礎(chǔ)上,結(jié)合圖像預(yù)處理、遷移學(xué)習(xí)、改進特征提取網(wǎng)絡(luò)模型以及錨框選區(qū)方案,得到熱斑缺陷檢測模型,準(zhǔn)確率較高但訓(xùn)練時間偏長。文獻[4]以深度置信網(wǎng)絡(luò)(DBN)為基礎(chǔ),通過學(xué)習(xí)大量樣本,得到訓(xùn)練樣本與無缺陷模板之間的映射關(guān)系,從而實現(xiàn)太陽能電池片的缺陷檢測,該方法對樣本量需求較大且不具體針對熱斑缺陷。文獻[5]對電池片紅外圖像進行狀態(tài)分類與編碼,提出基于傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)(CNN)的熱斑檢測模型,實現(xiàn)了在電池片產(chǎn)生極高溫并造成損壞前診斷出熱斑故障,該網(wǎng)絡(luò)模型還有較大優(yōu)化空間。文獻[6]基于機器視覺的方法對太陽能電池片表面缺陷檢測方法所涉及的各個環(huán)節(jié)進行了綜述,證明了該方法的有效性,但在特征提取方面還有待改進。
基于以上研究與缺少相關(guān)數(shù)據(jù)集的現(xiàn)況,本文以光伏熱斑紅外圖像為研究對象,采用深度卷積自編碼網(wǎng)絡(luò)模型以克服樣本量過少的問題。該模型以卷積神經(jīng)網(wǎng)絡(luò)為基礎(chǔ),將卷積操作與自編碼器相結(jié)合形成深度卷積自編碼網(wǎng)絡(luò)結(jié)構(gòu),能夠更好的學(xué)習(xí)并提取小樣本數(shù)據(jù)集的有效特征,進而通過迭代訓(xùn)練得到光伏熱斑識別與定位的模型。
圖1展示了通過紅外成像設(shè)備獲得的光伏陣列紅外圖像,包括一塊完整的光伏組件和5塊分裂的光伏組件以及最右端的色彩條,每塊組件都有或多或少的電池片已產(chǎn)生熱斑效應(yīng)。由于不同工作狀態(tài)下的電池片溫度和輻射出的電磁波不盡相同,經(jīng)過紅外成像設(shè)備對波長的處理后直觀表現(xiàn)為紅外圖像的顏色差異[7]。
圖1 光伏紅外圖像Fig.1 Photovoltaic infrared image
為準(zhǔn)確識別并定位光伏紅外圖像中的熱斑區(qū)域,需對原始紅外圖像進行預(yù)處理:首先分離光伏組件與背景區(qū)域,將原始圖像通過濾波降噪、圖像分割、透視變換等操作形成如圖2所示10*6的組件區(qū)域[8];然后根據(jù)組件規(guī)格對其做進一步的等距離分割,得到60個電池片單元圖像;最后對電池片狀態(tài)進行分類并制作為數(shù)據(jù)集用于網(wǎng)絡(luò)訓(xùn)練。整個圖像預(yù)處理流程圖如圖3所示。
圖2 光伏組件單元圖像Fig.2 Photovoltaic module unit image
圖3 光伏紅外圖像預(yù)處理流程圖Fig.3 Photovoltaic infrared image preprocessing flow chart
光伏紅外圖像中電池片的不同顏色代表其不同的工作狀態(tài),隨著溫度的升高,電池片依次表現(xiàn)為藍色、綠色、黃色、紅色和白色。訓(xùn)練網(wǎng)絡(luò)需要將這五種顏色的電池片打上1~5的狀態(tài)標(biāo)簽,其對應(yīng)關(guān)系如圖4所示,其中類型1對應(yīng)的電池片溫度最低,類型5對應(yīng)的電池片溫度最高,且定義為熱斑區(qū)域。
圖4 光伏電池片狀態(tài)類型Fig.4 Photovoltaic battery chip status type
經(jīng)過篩選和預(yù)處理后,得到3 900張光伏紅外電池片圖像,其中電池片的命名結(jié)合了原光伏電池圖片名和電池片在光伏組件的位置[9],如第7張光伏組件紅外圖像的第三行第三列的電池片命名為IR007-2-2,并將電池片的大小統(tǒng)一改為64pix*64pix,便于后續(xù)神經(jīng)網(wǎng)絡(luò)中圖像的批量輸入和光伏組件熱斑的精準(zhǔn)定位。原始的3 900張電池片中,5種類型的電池片數(shù)量嚴(yán)重分布不均,類型1和類型5的數(shù)量最少,處于中間狀態(tài)的2、3、4類型數(shù)量遠遠多于1和5,為解決類別不平衡問題,分別從每類電池片中隨機抽取300張即共1500張電池片單元圖像作為本次實驗的小樣本數(shù)據(jù)集,部分?jǐn)?shù)據(jù)集如圖5所示,其中訓(xùn)練集、驗證集、測試集的比例為8∶1∶1。
圖5 部分?jǐn)?shù)據(jù)集展示Fig.5 Partial dataset display
基于樣本數(shù)據(jù)量較小的特點,本文首先構(gòu)建一個簡單卷積神經(jīng)網(wǎng)絡(luò)模型,通過交叉驗證的思想訓(xùn)練小樣本光伏熱斑圖像,經(jīng)優(yōu)化得到一個訓(xùn)練效果最好的卷積神經(jīng)網(wǎng)絡(luò)模型;然后丟棄其全連接層,保留其卷積池化結(jié)構(gòu)作為卷積自編碼器模型的編碼器部分,在編碼器結(jié)構(gòu)的基礎(chǔ)上通過反操作構(gòu)造出解碼器,再對小樣本光伏熱斑圖像進行預(yù)訓(xùn)練并保留訓(xùn)練效果最好的編碼器結(jié)構(gòu)和權(quán)重;最后在此結(jié)構(gòu)后增加原始卷積神經(jīng)網(wǎng)絡(luò)的全連接層并訓(xùn)練,得到最終的深度卷積自編碼網(wǎng)絡(luò)模型[10]。
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)作為深度學(xué)習(xí)的代表算法之一,是一類包含卷積計算且具有深度結(jié)構(gòu)的前饋神經(jīng)網(wǎng)絡(luò),常被用于計算機視覺、自然語言處理等領(lǐng)域[11]。其結(jié)構(gòu)主要包括輸入層(Input Layer)、卷積層(Convolution Layer)、池化層(Pooling Layer)和全連接層(Fully Connected Layer),卷積層和池化層通常被并稱為卷積層[12]。
本文首先采用卷積神經(jīng)網(wǎng)絡(luò)模型對小樣本光伏熱斑圖像進行學(xué)習(xí)和識別,其卷積池化結(jié)構(gòu)如圖6所示,包括1個輸入層,2個卷積層,2個池化層。同時為了優(yōu)化神經(jīng)網(wǎng)絡(luò),在模型中加入了Dropout層和Batch Normalization(BN)層。Dropout方法可以破壞節(jié)點之間的相關(guān)性,使網(wǎng)絡(luò)學(xué)到更有泛化性的特征,有效防止過擬合。而BN算法使得每一層輸入都規(guī)范到一個N(0,1)的高斯分布,從而固定每一層輸入信號的均值和方差,能有效防止梯度爆炸或消失問題,增強網(wǎng)絡(luò)魯棒性[13]。
圖6 卷積神經(jīng)網(wǎng)絡(luò)的卷積池化結(jié)構(gòu)Fig.6 Convolution pooling structure of convolutional neural network
通過灰度化將輸入層圖像的大小設(shè)置為64*64*1,第一層卷積層采用64個kernel_size為3*3的卷積核,padding項選擇Same,激活函數(shù)選擇ReLU(Rectified Linear Unit),且在激活函數(shù)前增加BN層以減弱數(shù)據(jù)偏移或增大的負面影響;第二層池化層采用最大池化(Max Pooling)方式,步長為2,kernel_size為2,然后加入Dropout層以防止過擬合,Dropout值大小為0.15;第三層卷積層采用16個kernel_size為3*3的卷積核,其他參數(shù)同層1;第四層池化層參數(shù)同層2,Dropout值大小仍為0.15。
卷積神經(jīng)網(wǎng)絡(luò)的全連接層包括3個線性層,對卷積操作后的特征圖進行降維和分類,其結(jié)構(gòu)如圖7所示。第5層和第6層的線性層分別包含1 024和512個神經(jīng)元,激活函數(shù)均采用ReLU,Dropout值大小均設(shè)為0.15;第7層采用多分類回歸模型Softmax進行分類。
圖7 全連接層結(jié)構(gòu)Fig.7 Fully connected layer structure
2.3.1 自動編碼器
自動編碼器(AutoEncoder,AE)是一種典型的輸入等于輸出的無監(jiān)督神經(jīng)網(wǎng)絡(luò)模型,簡稱自編碼器[14]。一個簡單的全連接神經(jīng)網(wǎng)絡(luò)自編碼器模型如圖8所示。以隱藏層為界限,左邊為編碼器(Encoder),右邊為解碼器(Decoder),訓(xùn)練過程中,輸入經(jīng)過編碼后再解碼,即將輸入壓縮為特征,再將特征還原為輸入。其中,隱藏層是整個自編碼器的核心,其神經(jīng)元數(shù)目遠遠低于輸入層,相當(dāng)于用更少的特征去表達輸入數(shù)據(jù),從而達到降維壓縮的功能,這在圖像分類任務(wù)上具有重要意義[15]。
圖8 簡單自編碼器結(jié)構(gòu)Fig.8 Simple autoencoder structure
z=f(x)=s(wx+b)
(1)
式中:x∈Rn×1表示輸入數(shù)據(jù),n表示輸入數(shù)據(jù)的維度;z∈Rn×1表示隱層的特征表達,r表示隱層的神經(jīng)元數(shù)目;w∈Rr×n表示隱層的輸入權(quán)值;b∈Rr×1表示隱層輸入偏置;s表示激活函數(shù),本文采用的是ReLU函數(shù),它會將輸入中小于0的數(shù)據(jù)置為0,大于0的數(shù)據(jù)保持不變,具有一定的對數(shù)據(jù)的稀疏表達能力,其函數(shù)表達式如式(2)所示[17]:
f(x)=max(0,x)
(2)
式中:x表示輸入數(shù)據(jù),f(x)表示輸出數(shù)據(jù)。
解碼過程即隱層的特征表達z通過解碼過程映射為輸入數(shù)據(jù)x,函數(shù)表達式如式(3)所示:
x=g(z)=s(w′z+b′)
(3)
式中:w′∈Rn×r,b′∈Rr×1。
2.3.2 卷積自動編碼器
簡單全連接神經(jīng)網(wǎng)絡(luò)在使用時對一維信號沒有影響,但是對二維圖像或視頻信號,全連接層會損失空間信息,且在訓(xùn)練時參數(shù)十分復(fù)雜,需要更長的訓(xùn)練時間,因此,無法滿足大多實際情況的需求[18]。卷積自動編碼器(簡稱卷積自編碼器)則利用了傳統(tǒng)自編碼器的無監(jiān)督學(xué)習(xí)方式,又結(jié)合了卷積神經(jīng)網(wǎng)絡(luò)中的卷積池化操作來實現(xiàn)特征提取,能夠很好地保留二維信號的空間信息,且訓(xùn)練速度更快,重構(gòu)誤差更低[19]。
由卷積神經(jīng)網(wǎng)絡(luò)組成的卷積自編碼器用卷積層替換了簡單自編碼器的全連接層,與圖像的二維拓撲結(jié)構(gòu)恰好吻合,可以避免圖像重構(gòu)導(dǎo)致二維信息的損失。本文采用的卷積自編碼器模型如圖9所示,左側(cè)為卷積網(wǎng)絡(luò),右側(cè)為反卷積網(wǎng)絡(luò)[20]。該模型的編碼器部分即為左側(cè)的卷積網(wǎng)絡(luò),其結(jié)構(gòu)與卷積神經(jīng)網(wǎng)絡(luò)的卷積池化部分相同,具有兩層卷積池化操作,故對應(yīng)的解碼器部分即右側(cè)的反卷積網(wǎng)絡(luò)需先進行反池化操作再進行反卷積操作。由于編碼器部分中卷積層的卷積核數(shù)量(也稱為輸出的特征數(shù))依次為64和16,故解碼器部分中反卷積層的卷積核數(shù)量依次為16和64,池化方式和參數(shù)與編碼器部分相同,激活函數(shù)同樣選擇ReLU激活函數(shù)。
圖9 卷積自編碼器模型Fig.9 Convolutional autoencoder model
本次實驗運行環(huán)境為64位的win10系統(tǒng),內(nèi)存8GB,CPU2.8GHZ,基于Python語言編寫,使用的深度學(xué)習(xí)框架為Keras。數(shù)據(jù)集一共1 500張電池片紅外圖像,5種類型各自300張,其中訓(xùn)練集1 200張,驗證集150張,測試集150張。
卷積神經(jīng)網(wǎng)絡(luò)模型的卷積池化結(jié)構(gòu)和全連接結(jié)構(gòu)分別如圖6和圖7所示。使用小樣本光伏熱斑圖像數(shù)據(jù)集對該模型進行訓(xùn)練和分類,結(jié)果如圖10所示。
圖10 卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練結(jié)果Fig.10 Training results of convolutional neural network
由圖10(a)可知,當(dāng)?shù)螖?shù)小于20時,訓(xùn)練集損失迅速下降,驗證集損失先升高后下降,隨著訓(xùn)練次數(shù)的增加,訓(xùn)練集損失穩(wěn)定下降,但驗證集損失下降緩慢,最后停滯于0.8。在圖10(b)中,訓(xùn)練集準(zhǔn)確率快速上升,驗證集準(zhǔn)確率在20次迭代后才開始上升,隨后趨于穩(wěn)定,沒有隨訓(xùn)練集準(zhǔn)確率的升高繼續(xù)升高。經(jīng)過分析可知,由于樣本集數(shù)量過少,卷積神經(jīng)網(wǎng)絡(luò)出現(xiàn)了過擬合現(xiàn)象。此外,在測試集中的平均準(zhǔn)確率為83.35%,相對較低。
卷積自編碼器的網(wǎng)絡(luò)模型如圖9所示。首先使用卷積自編碼器模型對樣本數(shù)據(jù)進行訓(xùn)練,迭代次數(shù)Epoch設(shè)為200次,Batchsize設(shè)為64,優(yōu)化器選擇Adam,學(xué)習(xí)率Ir設(shè)置為0.001,損失函數(shù)選擇均方差損失函數(shù)MSE[21],卷積自編碼器訓(xùn)練結(jié)果如圖11所示。
圖11 卷積自編碼器訓(xùn)練結(jié)果Fig.11 Training results of convolution autoencoder
通過對卷積自編碼器模型進行優(yōu)化,將其輸入與輸出間的損失降至最低,訓(xùn)練集降至0.000 455,驗證集降至0.001 2,即編碼器部分能最大程度的對小樣本光伏熱斑圖像特征進行壓縮和表達。
保留預(yù)訓(xùn)練好的卷積自編碼器模型中編碼器部分的結(jié)構(gòu)和權(quán)重,丟棄解碼器部分,再加上卷積神經(jīng)網(wǎng)絡(luò)的全連接層,構(gòu)成本文采用的深度卷積自編碼網(wǎng)絡(luò)模型,其結(jié)構(gòu)與原始卷積神經(jīng)網(wǎng)絡(luò)相同,但卷積池化層參數(shù)已更新為使卷積自編碼器模型損失降至最低時的編碼器權(quán)重參數(shù)。使用小樣本光伏熱斑圖像數(shù)據(jù)集對該新構(gòu)建的模型進行訓(xùn)練和分類,得到訓(xùn)練結(jié)果如圖12所示。
圖12 深度卷積自編碼網(wǎng)絡(luò)訓(xùn)練結(jié)果Fig.12 Training results of deep convolutional autoencoder network
由圖12(a)和圖12(b)可知,深度卷積自編碼網(wǎng)絡(luò)模型在迭代次數(shù)達到20次之前,驗證集損失隨訓(xùn)練集損失的降低顯著降低,驗證集準(zhǔn)確率隨訓(xùn)練集準(zhǔn)確率的升高顯著升高,在20次時準(zhǔn)確率就已達到90%,收斂速度明顯更快,準(zhǔn)確率也明顯升高。
卷積神經(jīng)網(wǎng)絡(luò)和深度卷積自編碼網(wǎng)絡(luò)的結(jié)構(gòu)參數(shù)如表1所示,識別準(zhǔn)確率對比如表2所示。
表1 網(wǎng)絡(luò)模型結(jié)構(gòu)參數(shù)Tab.1 Network model structure parameters
表2 兩種網(wǎng)絡(luò)模型準(zhǔn)確率對比Tab.2 Comparison of accuracy of two network models
相同網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)下,經(jīng)過200次迭代后,深度卷積自編碼網(wǎng)絡(luò)模型的驗證集準(zhǔn)確率比卷積神經(jīng)網(wǎng)絡(luò)高出8.07%,測試集準(zhǔn)確率比卷積神經(jīng)網(wǎng)絡(luò)高出7.98%。卷積神經(jīng)網(wǎng)絡(luò)模型在訓(xùn)練集和驗證集上的準(zhǔn)確率差異明顯大于深度卷積自編碼網(wǎng)絡(luò)模型,說明深度卷積自編碼網(wǎng)絡(luò)模型在小樣本光伏熱斑圖像數(shù)據(jù)集上泛化能力和魯棒性更強,且能有效減少過擬合現(xiàn)象,加快收斂速度。
為了實現(xiàn)對熱斑電池片的及時維護與更換并驗證上述網(wǎng)絡(luò)模型的有效性,需進一步在熱斑圖像識別的基礎(chǔ)上對其進行精準(zhǔn)定位,將熱斑電池片實時標(biāo)記于光伏組件并輸出其具體位置。首先加載已經(jīng)訓(xùn)練好的深度卷積自編碼網(wǎng)絡(luò)模型,然后輸入并遍歷待檢測的電池片對其進行狀態(tài)識別,返回符合類型5的電池片的圖片名稱,進而得到該熱斑電池片的具體位置信息并在相應(yīng)的光伏組件中進行標(biāo)記。具體算法流程圖如圖13所示。
圖13 熱斑定位算法流程圖Fig.13 Flow chart of hot spots location algorithm
隨機選取兩張光伏組件圖片,采用本文已訓(xùn)練好的深度卷積自編碼網(wǎng)絡(luò)模型對組件單元模型中的熱斑進行識別與定位,同時輸出熱斑電池片的所處位置分別為:9-2,9-3,9-4,9-5,9-6和8-6,9-4,9-5,9-6,10-5,10-6。最終的定位結(jié)果如圖14所示。
圖14 光伏熱斑定位結(jié)果Fig.14 Results of photovoltaic hot spots location
本文針對小樣本光伏熱斑圖像數(shù)據(jù)集采用深度卷積自編碼方法代替?zhèn)鹘y(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)方法對光伏熱斑進行識別與定位。通過實驗對比分析有以下結(jié)論:
(1)深度卷積自編碼網(wǎng)絡(luò)在小樣本光伏熱斑圖像數(shù)據(jù)集上的測試準(zhǔn)確率比傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)高出7.98%,大大提高了熱斑識別和定位的準(zhǔn)確率,對大型光伏發(fā)電系統(tǒng)的熱斑檢測具有重要意義。
(2)本文采用的深度卷積自編碼網(wǎng)絡(luò)模型能夠在一定程度上避免過擬合現(xiàn)象,縮短訓(xùn)練時間,提高小樣本圖像識別的準(zhǔn)確率,具有更強的泛化能力和魯棒性,可以將該方法改進并嘗試應(yīng)用于除光伏熱斑識別領(lǐng)域外的其它圖像識別問題。