文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.190053
中文引用格式: 周建凱,,許盛之,趙二剛,,等. 基于深度學習的電池片缺陷識別研究[J].電子技術(shù)應用,,2019,45(5):66-69,,77.
英文引用格式: Zhou Jiankai,,Xu Shengzhi,Zhao Ergang,,et al. Cell defect recognition based on deep learning[J]. Application of Electronic Technique,,2019,,45(5):66-69,,77.
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)絡(luò)(Convolutional Neural Network,,CNN)在圖像識別[4]和檢測上備受重視。2018年DEITSCH S等提出自動檢測單一光伏電池EL圖像缺陷的方法[5],,分別用支持向量機和卷積神經(jīng)網(wǎng)絡(luò)進行訓練及預測,,平均準確率分別達到了82.44%和88.42%。另外,,隨著深度學習的網(wǎng)絡(luò)結(jié)構(gòu)趨于更深,,增加了訓練及實際應用的時間,因此,,對網(wǎng)絡(luò)模型的壓縮的研究顯得尤為重要[6],。
本文針對傳統(tǒng)缺陷識別算法的不足,,通過深度學習算法對EL圖像進行分類,進而識別出有缺陷和沒有缺陷的電池片,。經(jīng)過實驗證明,,改進的VGG16[7]網(wǎng)絡(luò)具有很好的準確率,并且大幅降低了神經(jīng)網(wǎng)絡(luò)由于層數(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)絡(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é)果造成很大影響,。在預處理階段還對輸入圖片進行了去噪處理,。
2 基于VGGNet的缺陷識別分類網(wǎng)絡(luò)
神經(jīng)網(wǎng)絡(luò)在20世紀就已經(jīng)被發(fā)現(xiàn),經(jīng)過十多年的發(fā)展,,研究人員提出了各種不同的網(wǎng)絡(luò)結(jié)構(gòu),,從AlexNet到VGGNet、GoogLeNet和ResNet,,隨著網(wǎng)絡(luò)深度和寬度的增加以及不同功能層的引入,,其在圖像識別的準確率不斷提高。一方面,,當增加網(wǎng)絡(luò)層數(shù)后,,網(wǎng)絡(luò)可以進行更加復雜的特征提取,理論上可以取得更好的結(jié)果,。但隨著網(wǎng)絡(luò)深度的增加,,會出現(xiàn)退化的問題,由于深層網(wǎng)絡(luò)存在著梯度消失或者爆炸的問題,,深度學習模型很難訓練,。因此,設(shè)計一個實用的EL圖像缺陷識別分類網(wǎng)絡(luò),,需要結(jié)合理論分析和實驗驗證,。
卷積神經(jīng)網(wǎng)絡(luò)作為一種特殊的深層的神經(jīng)網(wǎng)絡(luò)模型,它的核心思想是將局部感知,、權(quán)值共享以及下采樣結(jié)合起來,,通過深度神經(jīng)網(wǎng)絡(luò)的逐層計算來學習圖像的像素特征、低級特征,、高級特征直至類別的隱式表達關(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ù)集上取得了當時很好的效果,。因此不少分類問題采用的卷積神經(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ò)訓練方法
實驗所用計算機內(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)絡(luò)基礎(chǔ)之上,使BP網(wǎng)絡(luò)的隱藏層激活值以一定的比例變?yōu)?,,即按照一定的比例,,隨機地讓一部分隱藏層節(jié)點失效。存在dropout的神經(jīng)網(wǎng)絡(luò)計算過程如下:
圖6給出了在不同dropout概率時對缺陷識別的準確率,,從圖中可以看出,,當dropout概率在0.3時準確率最高。在訓練的過程中,,概率越小,,網(wǎng)絡(luò)的參數(shù)較多,對于訓練集樣本不足夠大情況下,,容易出現(xiàn)過擬合的現(xiàn)象,;概率越小,由于所訓練的神經(jīng)網(wǎng)絡(luò)節(jié)點數(shù)不足,,并不能有效地擬合訓練數(shù)據(jù),,導致最終的識別準確率下降,所以找到合適的概率對于模型的訓練效果至關(guān)重要,。
3.4 不同網(wǎng)絡(luò)結(jié)構(gòu)的識別效果分析
基于VGG16的卷積神經(jīng)網(wǎng)絡(luò)雖然在現(xiàn)有數(shù)據(jù)集上取得了良好的限制,,但訓練時間過長,通過對dropout概率的研究也表明網(wǎng)絡(luò)中存在著冗余參數(shù),,因此為了提高訓練的速度,,本文對網(wǎng)絡(luò)進行縮減,計算不同網(wǎng)絡(luò)層數(shù)時的參數(shù)總量,,記錄下訓練時的時間以及在測試集上的準確率,,如表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ù)目縮減之后,,訓練的時間大大縮減。卷積操作承擔著圖像特征提取的任務(wù),,卷積層數(shù)量的縮減雖然會稍微降低識別的結(jié)果,,但是能大大加速模型的訓練速度,這對于工業(yè)上的電致發(fā)光圖像缺陷識別有重要意義,。
4 結(jié)論
本文提出將卷積神經(jīng)網(wǎng)絡(luò)用于太陽電池單元電致發(fā)光圖像缺陷識別,,它能夠很好地提取電池片的缺陷,進行正確的分類,。在2 624張樣本上,,用全卷積VGG16網(wǎng)絡(luò)進行訓練,經(jīng)過大量的參數(shù)調(diào)節(jié),,識別的準確率達到93.95%,。在此基礎(chǔ)上本文研究了模型壓縮后的訓練速率以及識別準確率,得出在減少網(wǎng)絡(luò)層數(shù)之后,,模型的訓練速率大大加快,,并且不會使準確率明顯下降。下一步的研究中,,將在簡化網(wǎng)絡(luò)結(jié)構(gòu)的基礎(chǔ)上,,提高模型性能和識別準確率,以便用于實際的電池片缺陷識別當中,。
參考文獻
[1] 施光輝,,崔亞楠,劉小嬌,,等.電致發(fā)光(EL)在光伏電池組件缺陷檢測中的應用[J].云南師范大學學報(自然科學版),,2016,36(2):17-21.
[2] TSAI D M,,WU S C,,LI W C.Defect detection of solar cells in electroluminescence images using Fourier image reconstruction [J].Solar Energy Materials and Solar Cells,2012,,99(none):250-262.
[3] ANWAR S A,,ABDULLAH M Z.Micro-crack detection of multicrystalline solar cells featuring an improved anisotropic diffusion filter and image segmentation technique[J].Eurasip Journal on Image & Video Processing,,2014,2014(1):1-17.
[4] 許少尉,,陳思宇.基于深度學習的圖像分類方法[J].電子技術(shù)應用,,2018,44(6):116-119.
[5] DEITSCH S,,CHRISTLEIN V,,BERGER S,et al.Automatic classification of defective photovoltaic module cells in electroluminescence images[J].arXiv preprint arXiv:1807.02894,,2018.
[6] 馬治楠,,韓云杰,彭琳鈺,,等.基于深層卷積神經(jīng)網(wǎng)絡(luò)的剪枝優(yōu)化[J].電子技術(shù)應用,,2018,,44(12):119-122,,126.
[7] SIMONYAN K,ZISSERMAN A.Very deep convolutional networks for large-scale image recognition[J].arXiv preprint arXiv:1409.1556,,2014.
[8] BUERHOP-LUTZ C,,DEITSCH S,MAIER A F,,et al.A benchmark for visual identification of defective solar cells in electroluminescence imagery[C].35th European PV Solar Energy Conference and Exhibition,,2018.
作者信息:
周建凱,許盛之,,趙二剛,,俞 梅,張建軍
(南開大學 電子科學與工程系 光電子薄膜器件與技術(shù)天津市重點實驗室,,天津300350)