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