孫 晨,鄧 寬
(1.鹽城工學(xué)院機械工程學(xué)院,江蘇鹽城 224051;2.金陵科技學(xué)院電子信息工程學(xué)院,江蘇南京 211169)
光伏發(fā)電是一種利用半導(dǎo)體界面光生伏特效應(yīng),將光能轉(zhuǎn)化為電能的技術(shù),是目前利用太陽能的主流方式。我國已規(guī)劃要加速光伏發(fā)電的部署,到2050 年光伏發(fā)電將達到全社會用電量的40%[1]。光伏電池片作為光伏組件的核心組成部分,在生產(chǎn)加工過程中易受材料、加工工藝等因素的影響,使硅片產(chǎn)生一些外部或內(nèi)部缺陷,如隱裂、虛焊、斷柵、擴散不均勻、破片等。這些缺陷極大地降低了組件的光電轉(zhuǎn)化效率和使用壽命,甚至影響整個光伏發(fā)電系統(tǒng)的安全性[2-3]。
電致發(fā)光(EL)成像檢測被廣泛用于光伏電池片的缺陷檢測中,其原理是給電池片施加正向偏置電壓,使其發(fā)出波段為950~1 150 nm 的近紅外光,利用近紅外相機捕捉成像,使存在于電池片內(nèi)部的缺陷清晰可見[4]。目前生產(chǎn)線上的EL 圖像通常由人工完成分析檢測,工作量大、成本高且易發(fā)生漏檢、錯檢。針對這類問題,國內(nèi)外研究人員提出了多種解決方法,文獻[5]將血管濾波的方法用于多晶硅太陽能電池的EL 圖像檢測,完成了電池片裂紋的定位及分割[5]。文獻[6]提出一種在異構(gòu)背景下缺陷特征增強的方法,在局部二值模式(Local Binary Patterns,LBP)的基礎(chǔ)上進行改進,采用中心像素信息中心對稱方式,并使用SVM(Support Vector Machines)分類器對低分辨率的光伏EL 圖像進行檢測[6]。
隨著深度學(xué)習(xí)的進一步發(fā)展,相關(guān)學(xué)者提出基于深度學(xué)習(xí)的EL 圖像檢測方法,文獻[7]則分別引入SVM 分類器和卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)進行訓(xùn)練及預(yù)測,實驗驗證了這兩種方法的有效性。文獻[8]提出使用GoogleNet 網(wǎng)絡(luò)對EL 圖像進行缺陷檢測,準(zhǔn)確率比SVM 方法提高了18%。進一步體現(xiàn)出CNN 網(wǎng)絡(luò)在EL 圖像缺陷檢測的優(yōu)越性。
該文系統(tǒng)通過訓(xùn)練深度學(xué)習(xí)網(wǎng)絡(luò)模型并部署到邊緣嵌入式AI 設(shè)備中,完成電池殘片的缺陷檢測,并通過機械臂依次分揀至指定區(qū)域。
光伏智能分揀系統(tǒng)的總體設(shè)計如圖1 所示,該系統(tǒng)主要由控制模塊、視覺模塊、分揀模塊三部分組成。

圖1 系統(tǒng)總體結(jié)構(gòu)
該系統(tǒng)主要硬件包括英偉達Jetson Xavier NX、近紅外相機、傳送帶、傳感器、升降直流供電模塊、驅(qū)動電機、機械臂等。
系統(tǒng)缺陷檢測及分揀的流程如圖2 所示。
光伏電池片經(jīng)由傳送帶進入視覺檢測模塊,當(dāng)傳送帶下方的傳感器檢測到電池片后,控制器發(fā)送指令使傳送帶停止,并使位于電池片上方的供電裝置下移,直至探針完全接觸電池片后,使用24 V 直流電源供電。經(jīng)由近紅外相機捕捉圖像,控制單元調(diào)用已嵌入的目標(biāo)檢測算法進行缺陷識別,并通過串口對機械臂發(fā)出控制指令,依次將存在缺陷的電池片分揀至一類、二類、三類區(qū)。
缺陷檢測屬于目標(biāo)檢測范疇,目標(biāo)檢測是在圖像中尋找出感興趣區(qū)域,并檢測出其坐標(biāo)位置和大小。目前主流的目標(biāo)檢測模型分為一階段網(wǎng)絡(luò)和二階段網(wǎng)絡(luò),一階段網(wǎng)絡(luò)主要有SSD(Single Shot Detection)、YOLO(You Only Look Once)、CenterNet[9]等。二階段網(wǎng)絡(luò)在目標(biāo)特征提取的基礎(chǔ)上加入?yún)^(qū)域推薦網(wǎng)絡(luò),是一種端到端的目標(biāo)檢測網(wǎng)絡(luò),相較于一階段網(wǎng)絡(luò)有著更高的精度。代表模型有R-CNN、Faster RCNN[10]。該文系統(tǒng)基于Faster RCNN 進行優(yōu)化改進,作為缺陷目標(biāo)的檢測算法。
該文采用ResNet50(Deep Residual Network 50)替換原始Faster RCNN[11]模型中的特征提取網(wǎng)絡(luò)VGG16(Visual Geometry Group 16),增加了網(wǎng)絡(luò)層數(shù),有效提升了模型的特征提取能力,同時也避免了隨著網(wǎng)絡(luò)深度增加而出現(xiàn)的梯度消失以及過擬合的情況。
具體結(jié)構(gòu)如圖3 所示,輸入的圖像通過一系列卷積生成公共特征圖,再經(jīng)由RPN(Region Proposal Network)網(wǎng)絡(luò)生成區(qū)域建議框,并映射至特征圖上,獲取對應(yīng)的特征矩陣,再經(jīng)感興趣區(qū)域池化將特征圖縮放為統(tǒng)一尺寸,最后通過全連接層后,同時輸出給分類層和邊框回歸層,前者用來判定建議框內(nèi)前景及背景信息,后者用來預(yù)測建議框尺寸和坐標(biāo)信息。

圖3 網(wǎng)絡(luò)結(jié)構(gòu)圖
光伏電池片缺陷形狀各異,且尺度差異較大。為進一步提升網(wǎng)絡(luò)模型對于小尺寸缺陷的檢測能力,在替換ResNet50 特征提取網(wǎng)絡(luò)的基礎(chǔ)上,再融入特征金字塔結(jié)構(gòu)(Feature Pyramid Network,F(xiàn)PN)[12],其由橫向連接、自頂向下和自下而上三個部分組成,具體如圖4 所示。

圖4 FPN網(wǎng)絡(luò)結(jié)構(gòu)圖
其中,S1-S5 是ResNet50 進行前饋計算的過程,通過特征提取輸出大小一致的網(wǎng)絡(luò)部分稱為一級(stage)。選擇每個stage 的最后一層特征圖作為上一級的輸入。F5-F2 為自頂向下過程,從最高層向下依次使用最近鄰2 倍上采樣,特征圖將擴大2 倍。
將自下而上的{S2,S3,S4,S5}進行側(cè)邊提取,并分別進行1×1 的卷積來降低通道維度,生成和上采樣結(jié)果同等尺寸的特征圖并與之融合,再使用3×3 的卷積核進行卷積,消除特征圖因橫向連接與上采樣進行特征融合時出現(xiàn)的混疊效應(yīng),得到特征映射集合{P2,P3,P4,P5}。
損失函數(shù)在深度學(xué)習(xí)中也至關(guān)重要,通過對預(yù)測樣本和實際樣本之間的誤差進行反向傳播來指導(dǎo)網(wǎng)絡(luò)進行參數(shù)學(xué)習(xí),使模型達到收斂狀態(tài),從而降低誤差。
Faster RCNN 網(wǎng)絡(luò)的損失由RPN 和Fast RCNN兩部分的損失組成。計算公式如式(1)所示:
其中,i代表該建議框的序號,pi代表第i個建議框含缺陷的概率,是前景背景判別標(biāo)簽,若建議框i為前景時則值為1,為背景時值為0。分類損失Lcls計算公式如下:
邊框回歸的損失公式如下:
其中,ti是一個建議框尺寸和坐標(biāo)信息的向量,即為RPN 網(wǎng)絡(luò)預(yù)測的偏移量,是真實的偏移量,R是smooth 損失函數(shù),其計算公式如下:
目前關(guān)于光伏電池的EL 圖像未發(fā)現(xiàn)合適的公開數(shù)據(jù)集,該文數(shù)據(jù)集使用便攜式EL 檢測設(shè)備自行采集和部分網(wǎng)絡(luò)進行收集,共計1 172 張,包括五種缺陷。按各類缺陷將光伏組件壽命及發(fā)電效率的影響程度作為評判指標(biāo),將其分為三大類:①嚴(yán)重影響;②在一定程度上影響;③對組件有輕微影響,具體數(shù)量如表1 所示。

表1 光伏電池缺陷類別
首先對圖像進行預(yù)處理如下:1)進行歸一化操作,轉(zhuǎn)換灰度化以降低計算量;2)采用優(yōu)化型的中值濾波算法[13]對EL 圖像進行降噪。經(jīng)處理后的圖像再利用LabelImg 進行軟件標(biāo)注,將圖像中的缺陷信息使用矩形框進行圈注,并制作成VOC 格式的數(shù)據(jù)集。針對樣本量不足的情況,使用鏡像翻轉(zhuǎn)、旋轉(zhuǎn)等操作進行數(shù)據(jù)增強。共計7 032 張,其中80%用于訓(xùn)練集,20%用于測試集。
首先在PC 端進行網(wǎng)絡(luò)模型訓(xùn)練,具體的訓(xùn)練實驗環(huán)境如下:CPU 為Intel Core i7-11700k、主頻為3.6 GHz、8核16線程,RTX 2080Ti 11 GB的GPU,16 GB的內(nèi)存,64 位Ubuntu18.06 操作系統(tǒng),Python 版本為3.7,選擇CUDA 10.2、cuDNN7.65的開發(fā)環(huán)境,PyTorch1.8.1的深度學(xué)習(xí)框架。
該文實驗采用各類別均值平均精度(mean Average Precision,mAP)作為目標(biāo)檢測模型性能的評價指標(biāo)。能夠綜合考慮精確度和召回率,計算公式如下:
其中,Nc代表類別數(shù),AP 是單類別平均精度(Average Precision,AP),AP 值越高,則代表模型對此類缺陷檢測效果越好,其公式如下:
其中,P代表精確率(Precision),R代表召回率。精確度和召回率由TP、FP、FN 這些參數(shù)計算所得。
其中,TP 代表為真陽性即網(wǎng)絡(luò)正確預(yù)測的正樣本數(shù)量;FP 為假陽性即預(yù)測結(jié)果為正樣本,實際上為負樣本的數(shù)量;FN 為假陰性即預(yù)測為負樣本實際上為正樣本的數(shù)量。
召回率計算公式如下:
關(guān)于實驗參數(shù)設(shè)置如表2 所示。

表2 實驗參數(shù)設(shè)置
經(jīng)過800 輪迭代訓(xùn)練,原始的Faster RCNN 網(wǎng)絡(luò)模型綜合缺陷類型的平均檢測精度為86.5%,在使用殘差網(wǎng)絡(luò)替換主干網(wǎng)絡(luò)并融入特征金字塔結(jié)構(gòu)后達到92.4%,精度提高了5.9%,具體訓(xùn)練結(jié)果演示如圖5 所示。

圖5 平均檢測精度折線圖
在PC 端進行訓(xùn)練的網(wǎng)絡(luò)模型需要部署在Jetson Xavier NX 平臺中。首先將模型轉(zhuǎn)換為ONNX(開放神經(jīng)網(wǎng)絡(luò)交換)格式,這是一種用于表示深度學(xué)習(xí)算法模型的標(biāo)準(zhǔn),可用作模型在不同框架之間相轉(zhuǎn)化的中間格式[14],模型轉(zhuǎn)化流程如圖6 所示。

圖6 模型轉(zhuǎn)化流程
另外,為充分調(diào)用邊緣設(shè)備的算力,提升模型推理速度,選用NVIDIA 推出的TensorRT 邊緣推理加速框架。將生成后的ONNX 模型導(dǎo)入TensorRT 中,并調(diào)用TensorRT 提供的相關(guān)API 將ONNX 模型轉(zhuǎn)化為TensorRT engine,使用簡化的包裝器(ONNXClassifier Wrapper)運行模型[15]。將機械臂、驅(qū)動電機等設(shè)備通過串口與控制器建立連接,搭建出完整的光伏電池片檢測與分揀的實物實驗平臺,如圖7所示[16-17]。

圖7 檢測分揀實驗平臺
采用搭建好的平臺,針對電池片隱裂、黑團、斷柵、暗片、短路這五類缺陷分別進行檢測,能有效識別出缺陷,并顯示出識別檢測結(jié)果,如圖8 所示[16-17]。

圖8 缺陷檢測結(jié)果圖
該文提出的光伏電池智能檢測系統(tǒng)以嵌入式AI設(shè)備Jetson Xaviver NX 作為上位機,將Faster RCNN網(wǎng)絡(luò)運用到光伏電池缺陷檢測中,并使用融合FPN的ResNet50 網(wǎng)絡(luò)取代原先的特征提取網(wǎng)絡(luò)。實驗結(jié)果顯示,其對于光伏電池缺陷檢測的平均精度達到92.4%,可以滿足光伏生產(chǎn)線的需要。