王茜茜, 蔣鵬輝
(1.創能電力設計有限公司 設計部, 安徽 合肥 230000;2.上海博英信息科技有限公司 設計部, 上海 200240)
太陽能電池作為清潔能源的重要一員,以綠色、便捷、儲能大等優勢備受企業和人們的歡迎。在太陽能電池的使用過程中,電池片區域易受周邊環境影響,出現部分缺陷,影響太陽能電池的性能[1]。為保證太陽能電池能夠正常使用,有必要對太陽能電池片進行缺陷檢測。
對此,許多學者對太陽能電池片缺陷的檢測進行了研究分析。龔芳等[2]根據紅外成像特性及太陽能電池電片的發光原理設計了一種濾波器,使圖像正常區域經濾波后能有一定反應從而凸顯缺陷區域。宋玉琴等[3]利用機器視覺技術完成了對太陽能電池片缺陷的在線檢測。秦文麗[4]利用OpenCV程序判斷出太陽能電池片是否有色斑。劉懷廣等[5]利用卷積神經網絡和聚類的方法對太陽能電池片缺陷進行篩選定位,能較為準確地檢測隱裂缺陷。
為實現對太陽能電池片缺陷的準確檢測,本文提出了一種基于圖像處理與深度學習的缺陷檢測方法。首先,對太陽能電池片圖像進行全局直方圖均衡化處理,增加圖像灰度值的動態范圍,調節圖像整體的對比度,使圖像細節部分變得更為清晰;然后,對太陽能電池片的兩類缺陷數據集與正常數據集進行增強,提升神經網絡模型的泛化能力;最后,搭建卷積神經網絡進行訓練,并預測太陽能電池片上的缺陷。
太陽能電池片缺陷檢測流程如圖1所示,包括圖像獲取、全局直方圖均衡化、數據集增強、搭建神經網絡、訓練模型、結果預測。

圖1 缺陷檢測流程
本次實驗采集到的太陽能電池片原始圖像如圖2所示。由圖可知,受圖像采集環境的影響,導致采集到的太陽能電池片圖像較為暗淡,其中斑紋缺陷特征與背景較為相似,破損缺陷則與電池片棧線特征較為相似。為了使缺陷特征更為突出,需要對圖像進行增強處理。全局直方圖均衡化[6]作為圖像增強的一種方法,是根據直方圖對像素點的灰度值進行變換,屬于圖像點操作范疇,可以對圖像中的各個區域做到平均增強,對提升圖像整體對比度有較好的效果。

圖2 太陽能電池片原始圖像
全局直方圖均衡化處理過程為:列出圖像變換前后的灰度級i,j=0,1,…,L-1,L為灰度級數,統計處理前圖像各個灰度級像素數ni,計算出原始圖像的總像素個數,利用式(1)計算累計直方圖之后,再利用式(2)計算變換后的灰度值并取整,統計變換后各灰度級的像素數nj,利用式(3)計算變換后的直方圖[7]。

式中:k為圖像的第k級灰度值;p(k)為圖像中各級灰度級出現的頻數;pj為計算變換后圖像的灰度值;n為圖像的總像素個數。
為驗證全局直方圖均衡化處理對本次實驗采集圖像的增強效果,與經典圖像增強方法——伽馬變換[8]進行橫向對比。圖像增強結果如圖3所示。
從圖3可以看出,經過伽馬變化后,圖像的對比度得到了增強,使得缺陷特征區域較為突出,但會使圖像的細節紋理變得稍微模糊。而經過全局直方圖均衡化處理的圖像增強后,整體對比度得到顯著增強的同時,圖像的細節紋理受影響較小。以圖3(a)、(d)、(g)為例,對經過全局直方圖均衡化處理后的圖像進一步分析,列出了其灰度直方圖[9]如圖4所示。

圖3 太陽能電池片圖像增強結果
由圖4可見,伽馬變換是對圖像灰度級較高的部分進行了增強,而全局直方圖均衡化處理后的圖像,其各個區域的灰度級得到平均增強,同時缺陷區域顯示也更為清晰,這有利于后續在神經網絡中的特征提取。

圖4 圖像增強前后灰度直方圖對比
本次實驗共采集太陽能電池片圖像1 980張,分別為破損、斑紋和正常3種。為增強數據集[10]的多樣性,通過對數據集進行旋轉、增加噪聲、翻轉等操作進行增強。增強后,經全局直方圖均衡化處理與未經處理的數據集總量均達到5 940張,分別將數據集樣本按照7∶2∶1的比例劃分,具體情況如表1所示。

表1 樣本數量劃分
本次實驗在服務器上進行訓練,所搭載的圖形處理器型號為Tesla P100-PCIE-16GB,處理器內存為16 GB。訓練使用以TensorFlow 為后端的keras框架,其中訓練迭代次數設置為100,批樣本數量為32。
本文數據集中圖像寬×高×維度規格均為300×300×3,考慮神經網絡的速度與適配性,將其預處理為256×256×3的規格后,再經多次卷積 池化作用,每層卷積層均使用Relu函數進行激活,經過全連接層變換后,再由Softmax函數激活,將適應性矩估計算法作為優化器進行優化后輸出[11]。神經網絡模型結構如圖5所示,本文所搭建的神經網絡模型進行可視化之后[12],如表2所示。

圖5 神經網絡模型結構

表2 本文神經網絡模型結構
為驗證在同一網絡下,經過全局直方圖均衡化處理與未經過處理的數據集的學習效果,分別對兩種數據集進行訓練、測試,結果如圖6所示。由圖可見,經過全局直方圖均衡化處理后的數據集與未經過處理的數據集在同一結構、同一參數、同一優化器的網絡訓練下,經過全局直方圖均衡化處理的訓練集準確率在99.64%附近收斂,且在迭代至40次左右就開始收斂,速度較快,測試集準確率在96.38%附近收斂。未經過全局直方圖均衡化處理的數據集不僅收斂速度慢,且收斂后的準確率也較低,進而驗證了經全局直方圖均衡化處理后的圖像在進行卷積的過程中,特征提取的效率更高,提取到的圖像特征更為精確。

圖6 神經網絡訓練結果
在訓練和測試結束之后,即可調用訓練完成的神經網絡模型對驗證集中的太陽能電池片的缺陷種類進行預測[13]。為驗證該模型對太陽能電池片缺陷的檢測效果,利用混淆矩陣[14]表示驗證結果,混淆矩陣原理如表3所示。表中,TP為正樣本被預測成正樣本的總數;TN為負樣本被預測成負樣本的總數;FP為負樣本被預測成正樣本的總數;FN為正樣本被預測成負樣本的總數。混淆矩陣作為常用的模型檢驗工具,不僅可以用來評估模型,還可以將檢測結果顯示得更加直觀[15]。

表3 混淆矩陣原理
而混淆矩陣中各2級指標計算式分別為

式中:AC為準確率;PR為精確率;RE為召回率;F1為F1分數。
在調用神經網絡模型進行驗證后,驗證集檢測的混淆矩陣結果如圖7所示。利用混淆矩陣中的數據與式(4)~(7)即可計算出準確率、精確率、召回率、F1分數等2級指標的數值,如表4所示。

圖7 驗證集檢測混淆矩陣

表4 驗證集預測結果
本文利用全局直方圖均衡化技術與神經網絡相結合的方法,對太陽能電池片圖像的破損與斑紋缺陷進行了檢測。結果表明:經過全局直方圖均衡化處理后的圖像,在利用神經網絡訓練時能夠獲得更好的結果。對破損、斑紋以及正常類型的識別平均能夠達到92.93%的準確率、89.17%的精確率、89.18%的召回率和、88.26%的F1分數值。綜合來看,本文提出的方法能夠對太陽能電池片的缺陷進行有效的檢測識別。