基于TensorFlow框架搭建卷積神經(jīng)網(wǎng)絡(luò)對電池片電致發(fā)光圖像進行缺陷識別。選取公開的數(shù)據(jù)集,其中包含了電池片的不同種類缺陷。在傳統(tǒng)的VGGNet網(wǎng)絡(luò)的基礎(chǔ)上使用全卷積神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練,并分析不同損失函數(shù)和dropout概率在數(shù)據(jù)集上的訓(xùn)練效果。經(jīng)過實驗證明,該算法實現(xiàn)了對電池片是否有缺陷的準(zhǔn)確識別。研究還得出壓縮網(wǎng)絡(luò)結(jié)構(gòu)對算法訓(xùn)練速率能有大幅提升,這使得簡化的模型更具有可遷移性,為大范圍的實時缺陷識別提供了一種有效方案。
0 引言
以太陽能為代表的新能源在近些年得到了廣泛的研究和應(yīng)用,特別是光伏發(fā)電技術(shù)。光伏太陽能的核心組件是光伏電池組件,除了電池材料自身存在的缺陷,生產(chǎn)時對電池片的多次加工也可能導(dǎo)致電池片的損壞,如過焊片、黑斑片、隱裂片等缺陷問題,加上安裝和使用過程中的機械損傷,都會影響組件的轉(zhuǎn)化效率和使用壽命。在實際應(yīng)用中,更會對光伏發(fā)電系統(tǒng)自身的安全構(gòu)成威脅。因此,研究光伏組件的缺陷檢測顯得尤為重要。
目前電池組件缺陷檢測的技術(shù)主要有[1]:紅外成像技術(shù)、光致發(fā)光成像技術(shù)、電致發(fā)光(ELectrofluorescence,EL)成像。EL成像是用于光伏組件缺陷檢測的非接觸式成像技術(shù),根據(jù)硅材料的電致發(fā)光原理進行檢測。給晶體硅電池組件加上正向偏壓,組件會發(fā)出一定波長的光,電荷耦合器件圖像傳感器(CCD)可以捕捉到這個波長范圍的光并在電腦上成像。但電池組件存在缺陷會減弱其發(fā)光強度,所以可以根據(jù)EL圖像中電池發(fā)光強度的不同來判斷電池組件是否存在缺陷。
在以往的研究中,2012年TSIA D M等[2]提出了利用獨立分量分析(ICA)基圖像識別缺陷的監(jiān)督學(xué)習(xí)方法,該方法在80個太陽電池單元的測試樣本上平均識別率為93.4%。2014年ANWAR S A和ABDULLAH M Z提出了檢測多晶電池微裂紋的算法[3],即基于各向異性擴散和形狀分類的圖像分割方法,在600張圖像上檢測微裂紋的精度上達到88%。深度學(xué)習(xí)特別是卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)在圖像識別[4]和檢測上備受重視。2018年DEITSCH S等提出自動檢測單一光伏電池EL圖像缺陷的方法[5],分別用支持向量機和卷積神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練及預(yù)測,平均準(zhǔn)確率分別達到了82.44%和88.42%。另外,隨著深度學(xué)習(xí)的網(wǎng)絡(luò)結(jié)構(gòu)趨于更深,增加了訓(xùn)練及實際應(yīng)用的時間,因此,對網(wǎng)絡(luò)模型的壓縮的研究顯得尤為重要[6]。
本文針對傳統(tǒng)缺陷識別算法的不足,通過深度學(xué)習(xí)算法對EL圖像進行分類,進而識別出有缺陷和沒有缺陷的電池片。經(jīng)過實驗證明,改進的VGG16[7]網(wǎng)絡(luò)具有很好的準(zhǔn)確率,并且大幅降低了神經(jīng)網(wǎng)絡(luò)由于層數(shù)過多而帶來的大量運算,縮減后的模型有更大的實用性。
1 實驗數(shù)據(jù)及預(yù)處理
實驗數(shù)據(jù)來自于BUERHOP-LUTZ C等人公開的數(shù)據(jù)集[8],該數(shù)據(jù)集提供了從光伏組件的高分辨率電致發(fā)光圖像中提取的太陽能電池圖像。圖片來自于44個不同的PV模塊,其中18個模塊為單晶型,26個為多晶型。圖片可以拆分為2 624個300×300像素的電池單元的EL圖像。這些圖像包含了常見的內(nèi)外缺陷,如黑心片、黑斑片、短路黑片、過焊片、斷柵片、明暗片、隱裂等類型,如圖1所示,出現(xiàn)的這些缺陷會對太陽電池組件的轉(zhuǎn)換效率和使用壽命造成嚴(yán)重影響。
原數(shù)據(jù)集中將單晶和多晶的電池單元進行注釋,并且按照缺陷的概率對每張圖片進行標(biāo)注,統(tǒng)計樣本的總數(shù)以及各類樣本分立情況,發(fā)現(xiàn)各類樣本數(shù)目相差較大,樣本分布的不平衡將導(dǎo)致訓(xùn)練后模型對各類別識別出現(xiàn)偏差。為了減少分布不平衡的差異,本文首先將概率為0%和33.33%的圖片作為無缺陷的正樣本,66.67%和100%的圖片作為有缺陷的負樣本,因此得到的樣本分布如圖2所示。
本文所使用的神經(jīng)網(wǎng)絡(luò)模型需要224 pixel×224 pixel大小的輸入圖像,由于給定數(shù)據(jù)集EL圖像大小都是300 pixel×300 pixel,在輸入前需要對通過壓縮來得到符合大小的圖片。對于樣本分布不平衡問題,本文使用了數(shù)據(jù)增強方法。采用的第一種數(shù)據(jù)增強方法是隨機水平和垂直翻轉(zhuǎn)圖像;第二種方法是對原始圖像隨機旋轉(zhuǎn)一定角度(不超過2°),旋轉(zhuǎn)所使用的插值方法為雙三次插值;第三種方法是調(diào)整圖像的亮度和對比度,因為光照強度的變化會對成像結(jié)果造成很大影響。在預(yù)處理階段還對輸入圖片進行了去噪處理。
2 基于VGGNet的缺陷識別分類網(wǎng)絡(luò)
神經(jīng)網(wǎng)絡(luò)在20世紀(jì)就已經(jīng)被發(fā)現(xiàn),經(jīng)過十多年的發(fā)展,研究人員提出了各種不同的網(wǎng)絡(luò)結(jié)構(gòu),從AlexNet到VGGNet、GoogLeNet和ResNet,隨著網(wǎng)絡(luò)深度和寬度的增加以及不同功能層的引入,其在圖像識別的準(zhǔn)確率不斷提高。一方面,當(dāng)增加網(wǎng)絡(luò)層數(shù)后,網(wǎng)絡(luò)可以進行更加復(fù)雜的特征提取,理論上可以取得更好的結(jié)果。但隨著網(wǎng)絡(luò)深度的增加,會出現(xiàn)退化的問題,由于深層網(wǎng)絡(luò)存在著梯度消失或者爆炸的問題,深度學(xué)習(xí)模型很難訓(xùn)練。因此,設(shè)計一個實用的EL圖像缺陷識別分類網(wǎng)絡(luò),需要結(jié)合理論分析和實驗驗證。
卷積神經(jīng)網(wǎng)絡(luò)作為一種特殊的深層的神經(jīng)網(wǎng)絡(luò)模型,它的核心思想是將局部感知、權(quán)值共享以及下采樣結(jié)合起來,通過深度神經(jīng)網(wǎng)絡(luò)的逐層計算來學(xué)習(xí)圖像的像素特征、低級特征、高級特征直至類別的隱式表達關(guān)系。2014年SIMONYAN K等人提出VGG網(wǎng)絡(luò),探索了CNN的深度與其性能之間的關(guān)系,成功地構(gòu)筑了16~19層深的神經(jīng)網(wǎng)絡(luò),輸入為224×224×3的圖片,經(jīng)過卷積和池化的處理輸出圖像所屬類別的概率[7],在具有1 000多個類別一百多萬張圖片的ImageNet數(shù)據(jù)集上取得了當(dāng)時很好的效果。因此不少分類問題采用的卷積神經(jīng)網(wǎng)絡(luò)都以此為基礎(chǔ)。
原始的VGG16網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示,由5組卷積層、3層全連接層、softmax輸出層構(gòu)成,每組卷積層之間使用max-pooling(最大化池)分開,所有隱層的激活單元都采用ReLU函數(shù)做非線性變換,用以加快網(wǎng)絡(luò)收斂。圖中,3×3 conv,64等表示卷積核尺寸為3×3,通道數(shù)為64的卷積層;pool/2表示滑動步長為2的池化層(這里為最大池化);fc 4096表示通道數(shù)為4096的全連接層;softmax表示softmax函數(shù)。對于每一組卷積操作,都包含多個特別小的3×3卷積核構(gòu)成的卷積層,采用小卷積核既可以減少參數(shù),又增加了非線性映射,從而增強網(wǎng)絡(luò)的擬合效果?;瑒硬介L為1,采用邊界填充的方式,使得每個卷積層的輸入/輸出特征圖的像素不變。池化層采用2×2的池化核。每一組的通道數(shù)從64開始擴大2倍,分別為64、128、256、512、512,使得更多的信息可以被提取出來。之后的3個全連接層通道數(shù)分別為4 096、4 096、1 000,最后通過softmax層得到圖片屬于每個類別的概率。在以下研究中,將最后的3層全連接層替換為卷積核為7×7和1×1的卷積層,通道數(shù)分別為4 096、4 096和2。
3 實驗及其分析
3.1 網(wǎng)絡(luò)訓(xùn)練方法
實驗所用計算機內(nèi)存為8 GB,使用英偉達GTX 1060顯卡加速模型訓(xùn)練,顯存為6 GB。軟件環(huán)境為Ubuntu 16.04 LTS 64位系統(tǒng),選用Python作為編程語言,采用TensorFlow深度學(xué)習(xí)開源框架,CUDA版本為9.0。
實驗選取圖片總數(shù)的80%進行訓(xùn)練,20%用來測試,即訓(xùn)練集圖片數(shù)量為2 099,測試集數(shù)量為525。采用批量訓(xùn)練的方法,將訓(xùn)練集和測試集分成多個批次(batch),每個批次的大小為16或32,在對每一個batch訓(xùn)練完之后,對所有的測試集圖片進行測試,迭代的次數(shù)記為steps。采用隨機梯度下降算法作為優(yōu)化器,學(xué)習(xí)率在訓(xùn)練中控制著參數(shù)的更新速度,這里使用指數(shù)衰減學(xué)習(xí)率,初始學(xué)習(xí)率為0.005,衰減速度為1 000,學(xué)習(xí)率衰減系數(shù)為0.9。訓(xùn)練得到的損失和準(zhǔn)確率如圖4所示。
通過大量實驗,發(fā)現(xiàn)CNN在缺陷識別上有不錯的效果,為了進一步提高分類的性能及減少訓(xùn)練所需的時間,下面將對不同的dropout概率和損失函數(shù)進行討論,以期望得到更優(yōu)的模型。
3.2 不同損失函數(shù)下的識別準(zhǔn)確率
損失函數(shù)用來估量模型的預(yù)測值與真實值的相差程度,這里比較了兩種常見的損失函數(shù)Hinge loss和Softmax loss。Hinge loss又稱為折頁損失函數(shù),其函數(shù)表達式為:
其中,L為損失,t=[t1,t2,…,tN]T表示目標(biāo)值;y=[y1,y2,…,yN]T,表示預(yù)測值輸出;1≤j≤N,N為輸出節(jié)點的數(shù)量。
這兩種損失函數(shù)隨著迭代次數(shù)變化的曲線如圖5所示。在訓(xùn)練的初始階段,Softmax loss要小于Hinge loss,但其下降的速度比較緩慢;訓(xùn)練200次以后Hinge loss迅速減小,說明模型收斂得更快,并且模型的魯棒性更好。從這里可以看出,在電致發(fā)光圖像缺陷識別的數(shù)據(jù)集上,二分類的Hinge loss具有更好的效果。
3.3 不同Dropout概率下的識別準(zhǔn)確率
在數(shù)據(jù)集有限的情況下,通常使用dropout來緩解過擬合的發(fā)生,在一定程度上起到正則化的效果。它是指在標(biāo)準(zhǔn)的BP神經(jīng)網(wǎng)絡(luò)基礎(chǔ)之上,使BP網(wǎng)絡(luò)的隱藏層激活值以一定的比例變?yōu)?,即按照一定的比例,隨機地讓一部分隱藏層節(jié)點失效。存在dropout的神經(jīng)網(wǎng)絡(luò)計算過程如下:
圖6給出了在不同dropout概率時對缺陷識別的準(zhǔn)確率,從圖中可以看出,當(dāng)dropout概率在0.3時準(zhǔn)確率最高。在訓(xùn)練的過程中,概率越小,網(wǎng)絡(luò)的參數(shù)較多,對于訓(xùn)練集樣本不足夠大情況下,容易出現(xiàn)過擬合的現(xiàn)象;概率越小,由于所訓(xùn)練的神經(jīng)網(wǎng)絡(luò)節(jié)點數(shù)不足,并不能有效地擬合訓(xùn)練數(shù)據(jù),導(dǎo)致最終的識別準(zhǔn)確率下降,所以找到合適的概率對于模型的訓(xùn)練效果至關(guān)重要。
3.4 不同網(wǎng)絡(luò)結(jié)構(gòu)的識別效果分析
基于VGG16的卷積神經(jīng)網(wǎng)絡(luò)雖然在現(xiàn)有數(shù)據(jù)集上取得了良好的限制,但訓(xùn)練時間過長,通過對dropout概率的研究也表明網(wǎng)絡(luò)中存在著冗余參數(shù),因此為了提高訓(xùn)練的速度,本文對網(wǎng)絡(luò)進行縮減,計算不同網(wǎng)絡(luò)層數(shù)時的參數(shù)總量,記錄下訓(xùn)練時的時間以及在測試集上的準(zhǔn)確率,如表1所示。
表1中,結(jié)構(gòu)1為完整的VGG16網(wǎng)絡(luò);結(jié)構(gòu)2將每組卷積的卷積層個數(shù)減少為1、1、2、2、2,通道數(shù)不變;結(jié)構(gòu)3將每組卷積的卷積層個數(shù)改為2、2、4、4、4,通道數(shù)不變,用來作對比;結(jié)構(gòu)4將每組卷積的卷積層個數(shù)改為2、2、2、2、2,通道數(shù)不變;結(jié)構(gòu)5~6每組卷積的個數(shù)均為1,結(jié)構(gòu)4的通道數(shù)為64、128、256、512、512、4096、4096、2,結(jié)構(gòu)5的通道數(shù)為32、64、128、256、256、2048、2048、2,結(jié)構(gòu)6的通道數(shù)為16、32、64、128、128、1024、1024、2。
從表1中可以看出網(wǎng)絡(luò)的參數(shù)主要集中在全連接層,在將全連接層的神經(jīng)元節(jié)點數(shù)目縮減之后,訓(xùn)練的時間大大縮減。卷積操作承擔(dān)著圖像特征提取的任務(wù),卷積層數(shù)量的縮減雖然會稍微降低識別的結(jié)果,但是能大大加速模型的訓(xùn)練速度,這對于工業(yè)上的電致發(fā)光圖像缺陷識別有重要意義。
4 結(jié)論
本文提出將卷積神經(jīng)網(wǎng)絡(luò)用于太陽電池單元電致發(fā)光圖像缺陷識別,它能夠很好地提取電池片的缺陷,進行正確的分類。在2 624張樣本上,用全卷積VGG16網(wǎng)絡(luò)進行訓(xùn)練,經(jīng)過大量的參數(shù)調(diào)節(jié),識別的準(zhǔn)確率達到93.95%。在此基礎(chǔ)上本文研究了模型壓縮后的訓(xùn)練速率以及識別準(zhǔn)確率,得出在減少網(wǎng)絡(luò)層數(shù)之后,模型的訓(xùn)練速率大大加快,并且不會使準(zhǔn)確率明顯下降。下一步的研究中,將在簡化網(wǎng)絡(luò)結(jié)構(gòu)的基礎(chǔ)上,提高模型性能和識別準(zhǔn)確率,以便用于實際的電池片缺陷識別當(dāng)中。
-
傳感器
+關(guān)注
關(guān)注
2545文章
50445瀏覽量
751052 -
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4733瀏覽量
100417 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5463瀏覽量
120890
原文標(biāo)題:【學(xué)術(shù)論文】基于深度學(xué)習(xí)的電池片缺陷識別研究
文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論