劉懷廣,丁晚成,黃千穩(wěn)
(1.武漢科技大學(xué) 冶金裝備及其控制教育部重點實驗室,湖北 武漢 430081;2.武漢科技大學(xué) 機器人與智能系統(tǒng)研究院,湖北 武漢 430081)
太陽能作為一種可再生的能源,以其清潔、安全、取之不盡、用之不竭等顯著優(yōu)勢,已成為發(fā)展最快的可再生能源之一[1]。光伏發(fā)電系統(tǒng)是將太陽能轉(zhuǎn)化為電能最直接的實現(xiàn)形式,而電池片是光伏發(fā)電系統(tǒng)中光電轉(zhuǎn)換的主體。由于電池片基體的易碎性,在電池片生產(chǎn)過程中,不可避免地會產(chǎn)生各種缺陷,如隱裂、劃傷等,這些缺陷會直接影響到太陽能電池的輸出功率和使用壽命[2]。目前,對電池片的檢測主要依靠的是機器視覺的檢測方法,在成像方案上主要有電致發(fā)光成像(electroluminescence,EL)和光致發(fā)光成像(Photoluminescence,PL)。其中因PL 技術(shù)不需要接觸電池片,且能對過程片(非成品電池片)進行檢測,更利于產(chǎn)品的質(zhì)量把控,逐漸成為電池片檢測的重要技術(shù)。
在前期的研究中,針對電池片激光孔角隱裂缺陷,我們提出了利用卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)檢測的算法,設(shè)計了3 種不同結(jié)構(gòu)的CNN 模型對缺陷進行分類,最優(yōu)分類準(zhǔn)確率達到了99.25%[3]。而針對電池片其他位置的檢測,特別是弱小缺陷的檢測,算法的分辨能力是個重要方面?,F(xiàn)有的電池片檢測算法主要利用缺陷和背景的差異性來檢測缺陷[4-5],但是由于PL 缺陷圖像存在形態(tài)微小、隱蔽性好等特點,背景的重構(gòu)和評價易引起缺陷誤檢與漏檢。
近年來,深度網(wǎng)絡(luò)強大的特征提取能力得到廣泛應(yīng)用[6]。這些算法主要分為二階段算法和一階段算法2 個分支。盡管二階段在精度上有優(yōu)勢,但是在兼顧效率和準(zhǔn)確性的工業(yè)檢測領(lǐng)域更傾向于后者[7]。Li 等人使用端到端的全卷積YOLO 網(wǎng)絡(luò)對帶鋼表面6 種缺陷類型進行檢測評估[8],達到了97.55%的準(zhǔn)確率和95.86%的召回率。Qiu 等人針對風(fēng)力機葉片的各種缺陷,提出了一種基于YOLO多尺度特征金字塔融合多層特征的小目標(biāo)檢測方法[9],平均準(zhǔn)確率為91.3%。文獻[10]~[11]針對YOLOv3-Tiny 實時檢測會丟失部分精度的問題,深化了YOLOv3-Tiny 網(wǎng)絡(luò),引入了注意力機制模塊,增強網(wǎng)絡(luò)的特征提取能力,該方法滿足實時性,并提高了檢測精度。
缺陷檢測中精度和速度是2 個重要的性能指標(biāo)。YOLOv3-Tiny 是目前目標(biāo)檢測速度較快的算法之一,但是在小目標(biāo)檢測中精度較低。而本文檢測的缺陷尺寸在電池片中占比較小,直接利用原網(wǎng)絡(luò)結(jié)構(gòu)檢測,易出現(xiàn)漏檢。因此,本文構(gòu)建了一種輕量化卷積神經(jīng)網(wǎng)絡(luò)模型,該模型加深了主干特征提取網(wǎng)絡(luò)結(jié)構(gòu),增加了更小目標(biāo)的預(yù)測尺度,從而增強了模型在特征提取和小缺陷目標(biāo)檢測方面的性能,以更好地完成電池片中的檢測任務(wù)。
太陽能電池片PL 成像是通過外部高能激光對硅片進行照射,價電帶上的電子吸收光子能量被激發(fā)躍遷至傳導(dǎo)帶,電子在經(jīng)過一段時間后又從傳導(dǎo)帶回到價電帶,產(chǎn)生熒光光子。硅片在電子能量轉(zhuǎn)換過程中形成各種能階,而其對應(yīng)能量激發(fā)出硅離子產(chǎn)生熒光成像,并能突顯出電池片內(nèi)部缺陷。其成像原理如圖1所示。
圖1 PL 技術(shù)成像原理Fig.1 Imaging principle of PL technology
PL 成像時由于激光孔與周圍柵線沒有被激發(fā)離子,從圖像上看,會形成黑色圓點加十字線,呈現(xiàn)出角點特征,如圖2所示。
圖2 電池片及PL 圖像Fig.2 Cell and PL image
由于硅片基體的易碎性、應(yīng)力集中等原因,在電池片激光孔附近易產(chǎn)生大小在0.5 mm~5 mm的內(nèi)部微細裂紋,稱為隱裂。電池片缺陷類型如圖3所示。隱裂在PL 圖中呈現(xiàn)出亮度較暗的方向線,如45°斜線(第1 種隱裂,如圖3(a)所示)或者是“X”交叉形(第2 種隱裂,如圖3(b)所示)。異物與電池片接觸所受摩擦力大小不均造成電池片表面出現(xiàn)劃痕,如圖3(c)所示。由于電池片中局部陰影發(fā)熱產(chǎn)生熱斑效應(yīng),造成電池片出現(xiàn)黑斑,如圖3(d)所示。這些缺陷容易造成電池片損壞,嚴(yán)重影響電池片的壽命和工作效率。因此,對隱裂、劃痕、黑斑的檢測是電池片檢測的重要內(nèi)容,也是實現(xiàn)電池片自動缺陷識別的重點和難點。
圖3 本文檢測的電池片缺陷類型Fig.3 Types of cell defects to be detected
YOLOv3-Tiny 網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。圖4 中主干特征提取網(wǎng)絡(luò)采用3×3 大小的卷積核,每進行一次卷積操作就進行一次池化操作。在檢測小目標(biāo)時存在如下不足:一是YOLOv3-Tiny 網(wǎng)絡(luò)結(jié)構(gòu)層次較淺,主干網(wǎng)絡(luò)卷積層僅有7 層,檢測精度較低;二是網(wǎng)絡(luò)模型的檢測尺度信息較少,僅有13×13、26×26 這2 個尺度來檢測電池片缺陷,容易造成微小缺陷的漏檢。
圖4 YOLOv3-Tiny 網(wǎng)絡(luò)結(jié)構(gòu)Fig.4 Network structure of YOLOv3-Tiny
為兼顧模型精度和速度,本文進行如下改進:一是在原網(wǎng)絡(luò)結(jié)構(gòu)的基礎(chǔ)上增加了1×1 與3×3 大小的卷積核,1×1 卷積核用于通道數(shù)調(diào)整,3×3 用于提取高維空間特征;二是在原網(wǎng)絡(luò)13×13、26×26 這2 個尺度缺陷預(yù)測的基礎(chǔ)上增加一上采樣層Upsample,形成13×13、26×26、52×52 的3 尺度預(yù)測模型,增強對小目標(biāo)特征提取的能力。改進后的網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。
圖5 改進的電池片缺陷檢測網(wǎng)絡(luò)結(jié)構(gòu)Fig.5 Improved cell defects detection network structure
改進后的網(wǎng)絡(luò)輸入為3 通道416×416,輸出分為3 個部分,分別為13×13 的輸出層及26×26、52×52 的2 個分支。主干網(wǎng)絡(luò)經(jīng)過22 層的特征提取,經(jīng)歷了較深的網(wǎng)絡(luò)層數(shù)感受野較大,適合于大目標(biāo)(如劃傷)預(yù)測,在這個特征圖譜上做第1 次預(yù)測Prediction1。
在主干網(wǎng)絡(luò)的第1 次預(yù)測路徑中,將第20 層13×13 的特征層使用1×1 卷積核調(diào)整通道數(shù)后,對輸出進行1 次上采樣,將上采樣特征與主干網(wǎng)絡(luò)的第13 個特征層在通道維度上相堆疊,卷積操作后得到尺寸為26×26 的輸出層。該輸出層經(jīng)歷了較淺的網(wǎng)絡(luò)層數(shù),對應(yīng)的感受野較小,適合于小目標(biāo)預(yù)測,在這個特征圖譜上做第2 次預(yù)測
Prediction2。
在第2 次預(yù)測路徑中,將第27 層26×26 的特征層使用1×1 卷積核調(diào)整通道數(shù)后,對輸出進行1 次上采樣,并將上采樣特征與主干網(wǎng)絡(luò)的第9 個特征層52×52 在通道維度上相堆疊,經(jīng)過卷積特征融合后,構(gòu)建1 個新的尺寸為52×52 的輸出層。該輸出層的特征信息來自淺層信息與第2 次預(yù)測特征圖譜的融合,擁有的圖像低維特征信息更多,對應(yīng)的感受野更小,適合于更小目標(biāo)預(yù)測,在這個特征圖譜上做第3 次預(yù)測Prediction3,如圖6所示。
圖6 融合淺層特征增強層Fig.6 Fusion of shallow feature enhancement layers
通過這樣的網(wǎng)絡(luò)設(shè)計,不僅能夠融合不同尺度的特征圖,還可以對淺層特征信息加工后具有深層語義理解的能力。
如前所述,不同大小的輸出層代表輸入層感受野也不一樣。為了能融合不同層次的輸出,本文對每個通道的輸出用9 個參數(shù)表達輸入層的預(yù)測框。分別為預(yù)測框中心點所在網(wǎng)格相對于該網(wǎng)格左上角的偏移tx、ty,預(yù)測框的寬和高tw、th,預(yù)測框的置信度pobj,第1 種隱裂得分s1,第2 種隱裂得分s2,劃痕得分s3,黑斑得分s4組成。具體表達如下:
式中:bx、by為邊界框中心點坐標(biāo);bw、bh為邊界框的寬和高;cx、cy為目標(biāo)框中心所屬網(wǎng)格的左上角坐標(biāo);σ(tx)、σ(ty)為中心坐標(biāo)相對于所屬網(wǎng)格左上角的偏移距離;pw、ph為預(yù)設(shè)邊框的寬和高。
在訓(xùn)練時不斷調(diào)整大小,將網(wǎng)格中預(yù)測框與標(biāo)簽中的目標(biāo)框進行匹配,選取與目標(biāo)框具有最大IoU(intersection over Union)值的邊界框作為輸出結(jié)果[12]。邊界框預(yù)測示意圖如圖7所示。
圖7 邊界框預(yù)測示意圖Fig.7 Schematic diagram of bounding box prediction
本文在Windows 操作系統(tǒng)下,使用Darknet 深度學(xué)習(xí)框架,實驗環(huán)境為NVIDIA GTX 1050、Intel(R)Core i5 7300HQ,opencv3.4,內(nèi)存8 G,安裝CUDA 10.0、cudnn7.4.1 實現(xiàn)GPU 加速,使用python 語言實現(xiàn)本文改進網(wǎng)絡(luò)算法。
本文在國內(nèi)某大型太陽能電池廠共收集了電池片圖像6 000 多張有代表性的缺陷樣本。為增加數(shù)據(jù)的多樣性,避免數(shù)據(jù)集過少發(fā)生過擬合,對部分缺陷樣本加入了亮度變換與翻轉(zhuǎn)等操作增強數(shù)據(jù)集。最終形成18 000 張樣本,共4 類缺陷,分別為第1 種隱裂、第2 種隱裂、劃痕、黑斑,每張圖片大小在630×635 pixel~665×695 pixel 之間,圖片中缺陷大小在64×64 pixel~85×200 pixel 之間。數(shù)據(jù)增強后的部分數(shù)據(jù)集如圖8所示。
圖8 數(shù)據(jù)增強后的部分數(shù)據(jù)集Fig.8 Partial data set after data enhancement
將數(shù)據(jù)集按一定的比例劃分為訓(xùn)練集、驗證集與測試集。為便于訓(xùn)練,數(shù)據(jù)集格式轉(zhuǎn)換成VOC格式,并對含缺陷圖片進行標(biāo)注,經(jīng)過整理后各類數(shù)據(jù)集數(shù)量如表1所示。
表1 數(shù)據(jù)集劃分Table 1 Division of data set
為獲得更好的模型訓(xùn)練效果,本文訓(xùn)練設(shè)置模型訓(xùn)練最大迭代次數(shù)為20 000 次,初始學(xué)習(xí)率為0.001,迭代10 000 次以后,學(xué)習(xí)率為0.000 1,批量設(shè)置為64,子批量設(shè)置為8。按照設(shè)置的訓(xùn)練參數(shù)完成訓(xùn)練后,改進前后網(wǎng)絡(luò)的損失函數(shù)下降情況如圖9所示。從圖9 中可以看出,改進后的網(wǎng)絡(luò)模型收斂效果優(yōu)于原始網(wǎng)絡(luò)。
圖9 損失函數(shù)曲線Fig.9 Curves of loss function
本文對不同類型缺陷進行了測試,并采用準(zhǔn)確率(precision,P)、召回率(recall,R)、平均精度AP 值(average precision,TAP)及綜合性能評價指標(biāo)mAP 值(mean average precision,TmAP)等進行評估[13]。
訓(xùn)練后的PR 曲線如圖10所示。圖10 中PR 曲線下方的面積就是對應(yīng)類別的AP 值,曲線下方面積越大,說明對應(yīng)的AP 值越高,檢測性能更優(yōu)。
圖10 PR 曲線比較Fig.10 Comparison of PR curves
分別計算改進前后模型在第1 種隱裂、第2種隱裂、劃痕、黑斑4 種缺陷上的AP 值如表2所示。
表2 2 種網(wǎng)絡(luò)模型的AP 值比較Table 2 Comparison of AP values of two network models
從表2 可以看出,改進后的模型在不同類型缺陷上的AP 值都有所提升。增長最多的是劃痕,增長約為17 個百分點,這說明改進后的網(wǎng)絡(luò)對于形態(tài)變化較大時的缺陷適應(yīng)性更好;而AP 值絕對增長最少的是第2 種隱裂,僅約為3 個百分點,這主要是因為第2 種隱裂缺陷圖片參與訓(xùn)練的數(shù)據(jù)集較多,缺陷形狀單一,檢測效果更佳。
為更直觀展示改進網(wǎng)絡(luò)模型的檢測效果,圖11為模型改進前后部分檢測效果對比。
從圖11 可以看出,改進后的模型明顯改善了漏檢情形(如圖中箭頭處),而且模型識別準(zhǔn)確率有所提高,能夠準(zhǔn)確檢測出不同類型的缺陷。
圖11 模型改進前后的檢測結(jié)果對比Fig.11 Comparison of detection results before and after model improvement
為驗證本文改進算法的效率,本文在相同實驗條件下,將SSD、YOLOv3、YOLOv3-Tiny 與本文網(wǎng)絡(luò)模型在測試數(shù)據(jù)集上測試,結(jié)果如表3所示。
從表3 可以看出,SSD 與YOLOv3 的TmAP值高于YOLOv3-Tiny 和本文網(wǎng)絡(luò)模型,但其網(wǎng)絡(luò)模型大,檢測速度慢[14-15],不適用于生產(chǎn)流水線上電池片的實時檢測。本文網(wǎng)絡(luò)模型較YOLOv3-Tiny 網(wǎng)絡(luò)模型的TmAP值提高了6.78 個百分點,表明改進后的網(wǎng)絡(luò)模型檢測性能有所提升。雖然由于增加特征增強層給計算帶來了一定的時間開銷,但在滿足25 fps 的前提下達到了目標(biāo)檢測實時性要求。
表3 不同網(wǎng)絡(luò)模型的性能比較Table 3 Performance comparison of different network models
總之,本文提出的模型能夠在兼顧效率和準(zhǔn)確性的前提下,能較好地完成檢測任務(wù)。該檢測模型用于現(xiàn)場測試,如圖12所示,運行良好。
圖12 在線檢測現(xiàn)場Fig.12 Online detection site
太陽能電池片缺陷微小的特點,給缺陷的高效檢測與識別帶來困難。本文在保證效率的前提下,提出了一種輕量化特征增強型卷積神經(jīng)網(wǎng)絡(luò)模型。該模型加深了主干特征提取網(wǎng)絡(luò)結(jié)構(gòu),另外增加一個預(yù)測尺度層,實現(xiàn)3 尺度預(yù)測,加強了淺層特征圖的語義信息,從而提高了小尺度缺陷的檢測精度。在測試數(shù)據(jù)集上mAP 達到87.55%的識別率,速度為40 fps,滿足實時檢測要求,這對于光伏產(chǎn)業(yè)缺陷自動識別問題中CNN 的使用具有重要意義。