周得永 , 高龍琴
(揚州大學機械工程學院,江蘇 揚州 225127)
太陽能作為綠色無污染的可再生能源正受到日益廣泛的關注且被廣泛應用。作為太陽能的發電載體,太陽能電池也得到了大規模的應用[1]。由于太陽能電池在生產過程中可能會產生斷柵、隱裂等缺陷,而這些缺陷對電池的轉換效率和使用壽命有著嚴重的影響,嚴重時將危害太陽能電池組件甚至整個光伏發電系統的穩定性,因此缺陷檢測是太陽電池生產過程中的重要環節。太陽能電池板電致發光(EL)測試技術因具有操作簡便、檢測速度快、成本較低等優點而成為目前光伏行業常用的缺陷檢測技術之一[2]。隨著人工智能技術的發展,許多優秀的深度學習目標檢測算法被提了出來。總的來說,深度學習圖像目標檢測算法大致可分為兩類:一類是基于區域推薦的目標檢測算法,這類算法首先利用區域推薦產生候選目標,然后使用卷積神經網絡進行處理。比較具有代表性的算法有RCNN、Fast RCNN、Faster RCNN、Mask RCNN等,這些算法的優點是精度比較高,缺點是因為計算量過大而不能夠對目標進行實時的檢測。另一類是基于回歸的目標檢測算法,這類算法將目標檢測作為回歸問題進行處理,直接預測目標的類別和位置。具有代表性的算法有SSD、YOLOv3等。這類算法的優點是能滿足實時應用的需求,缺點是相較于RCNN系列算法而言檢測精度偏低[3]。2018年Redmon等[4]提出的YOLOv3目標檢測模型相較于前代YOLO模型采用了更深層的網絡模型結構和多尺度檢測等技術,達到檢測速度與精度的平衡,提升了對小目標物的檢測效果[5]。
本文對太陽能電池板常見的斷柵、隱裂缺陷利用YOLOv3目標檢測模型進行檢測。利用K-means聚類算法對太陽能電池板缺陷數據集進行聚類后得到適合本數據集的先驗框,從而加速模型收斂。實驗表明YOLOv3檢測模型可以準確地檢測和識別太陽能電池板電致發光圖像中的缺陷。
1.1.1 骨干特征提取網絡
YOLOv3網絡結構如圖1所示。采用了Darknet-53作為骨干特征提取網絡,該網絡是一個純卷積神經網絡,使用了卷積層、批規范化層、激活層結合的結構作為網絡的基本組件。Darknet-53通過卷積層改變卷積核的步幅來實現特征圖尺寸變化。除此以外,Darknet53還借鑒了ResNet的殘差結構,使得網絡性能有了明顯的改善[6]。

圖1 YOLOv3網絡結構
1.1.2 多尺度特征融合
低層的特征語義信息比較少,但是目標位置信息準確。高層的特征語義信息比較豐富,但是目標位置信息比較粗略。YOLOv3借鑒FPN(Feature Pyramid Networks)的思想,利用上采樣將高層的特征語義信息和低層的特征語義信息進行特征融合,提高了對小物體的檢測精度。
1.1.3 模型預測
在檢測層結構中,分別對特征圖像進行了32倍降采樣、16倍降采樣以及8倍降采樣,從而生成了3種不同尺度的特征圖,在多尺度特征圖上進行檢測,提高了較小目標的檢測效果。
YOLOv3算法的損失函數包括定位損失、置信度損失和分類損失。通過查閱相關資料及其源碼,發現YOLOv3的損失函數除了定位損失中的寬高誤差損失外,其他誤差損失均使用二元交叉熵[7]。YOLOv3的損失函數如式(1)所示。

其中,帶*號的參數表示真實值,不帶*號的對應參數表示模型的預測值。xi,yi,wi,hi表示預測框中心點的橫縱坐標以及寬高。S表示劃分的網格數量,B表示先驗框個數。Ci表示置信度,Pi表示分類概率。表示第i個網格中的第j個先驗框有目標其值為1,否則為0。表示第i個網格中的第j個先驗框沒有目標其值為1,否則為0。在YOLOv3的損失函數中為了提高對小物體的檢測精度會乘上一個(2-wi×hi)的比例系數。
在暗箱中使用近紅外工業相機對通電后的太陽能電池板進行圖片采集。總共采集到太陽能電池板電致發光圖片1 024張。使用數據標記工具labellmg對圖片中的缺陷進行逐一標記,并生成xml格式的缺陷類別和位置信息文件。并按照8∶1∶1的比例將圖片劃分為訓練集、驗證集和測試集。
本文實驗環境如下:Windows10 64位操作系統,處理器Intel(R) Core(TM) i5-10300H CPU @ 2.50 GHz 2.50 GHz,顯卡GTX1650TI,運行內存16 G。編程語言為Python3.7.10,深度學習框架為Pytorch。
圖片的訓練和測試輸入尺度均采用416×416大小。YOLOv3網絡默認使用的先驗框參數是在COCO和PASCAL VOC兩個數據集聚類得到的[8]。針對太陽能電池板缺陷數據集,運用K-means聚類生成3種尺度的9個先驗框:(12×17),(18×12),(24×14),(35×11),(18×22),(34×15),(50×13),(66×12),(85×12)。小尺寸的先驗框在高分辨率特征圖上用于檢測小目標,大尺寸的先驗框在低分辨率特征圖上用于檢測大目標。YOLOv3網絡模型訓練總計迭代1 000次,初始的學習率設置為0.001,每迭代50次學習率下降0.8倍。 YOLOv3訓練過程中損失值變化曲線如圖2所示。
從圖2可以看出,隨著迭代次數的增加,曲線逐漸收斂。當迭代次數超過900時,損失值大小幾乎不再變化。就參數收斂的整體情況看,網絡訓練結果較為理想。

圖2 損失值變化曲線
在本文的實驗中,使用mAP(mean Average Precision)作為目標檢測精度的指標。mAP指的是多個類別平均準確率的平均值。AP指的是單個類別的平均準確率,衡量的是模型在某一類別上識別效果的好壞[9]。本文使用的AP為AP50,即預測框與真實框的交并比在大于50%的單類別的平均準確率[10]。mAP的值越大表示模型的總體識別準確率越高。
YOLOv3算法在測試集上斷柵的AP值為90.08%,隱裂的AP為73.55%,則YOLOv3算法對太陽能電池板缺陷檢測的mAP為81.81%。不同缺陷類別的平均準確率如圖3所示。YOLOv3算法對太陽能電池板電致發光圖片進行缺陷檢測的效果如圖4所示。可以看出,YOLOv3檢測模型對太陽能電池板電致發光圖像能實現比較準確的檢測與識別,整體檢測效果較為理想。

圖3 不同缺陷類別的平均準確率

圖4 YOLOv3檢測效果
為了提高太陽能電池板缺陷的檢測效率,本文提出了一種基于 YOLOv3 的圖像缺陷檢測與識別方法。實驗結果表明,本文使用的方法在太陽能電池板缺陷檢測上能夠取得較好的效果,尤其在斷柵的檢測上效果比較理想。但是,由于隱裂本身具有形狀不固定、尺寸較小的特點因而對隱裂的檢測精度較低。因此在以后的研究中,將重點解決太陽能電池板缺陷檢測中對隱裂的檢測問題,以獲得更高的檢測精度。