孫鵬翔,畢 利,王俊杰
(寧夏大學 信息工程學院,銀川 750021)
“碳中和”工作被列為我國重點任務(wù)之一,作為清潔能源之一的太陽能資源具有極大的開發(fā)潛力。目前,光伏發(fā)電已經(jīng)成為我國新能源開發(fā)的重點扶持項目,其中西北地區(qū)的光伏發(fā)電占比較大。然而西北地區(qū)存在土地沙化且常年多風的情況,導致常年風沙、揚塵天氣居多;同時,該地區(qū)雨水較少,沙塵積累在光伏板表面的情況較多。積灰對光伏板的輸出功率影響較大[1],且光伏板表面溫度在積灰狀態(tài)下比清潔狀態(tài)高,當局部積灰過大時,容易形成熱斑,導致部件故障。目前,識別光伏板積灰程度主要依賴于光伏電站現(xiàn)場運維人員通過個人觀測,依據(jù)運維經(jīng)驗來定性積灰程度。該方法過度依賴人工,取決于運維人員的個人素質(zhì),存在準確性、實時性較差的問題,難以滿足分布式光伏發(fā)電系統(tǒng)智能運維和組件健康管理的發(fā)展需求。
針對光伏板積灰程度定性與識別的問題,國內(nèi)外學者展開了多方面的研究。Saidan 等[2]研究表明,暴露在自然環(huán)境下的光伏板,當積灰密度達到0.64 g/m2時輸出功率降低14.26%。范思遠等[3]通過多組對照實驗得出積灰對光伏組件能量輸出具有明顯抑制作用,光伏板發(fā)電量與積灰程度呈現(xiàn)指數(shù)型衰減。牛海明等[4]提出光伏板發(fā)電效率與積灰密度呈線性關(guān)系,相對透光率與積灰密度呈對數(shù)關(guān)系,為光伏板積灰程度定性提供了理論依據(jù)。趙波等[5]提出一種電池板積灰狀態(tài)檢測方法,構(gòu)建了電功率損失和積灰時間變化的漸進型預(yù)測模型,從電功率損失的角度對光伏板積程度進行了分析;然而實際應(yīng)用中,不同光伏板存在差異,本身的電功率損失不同,該方法泛化性較弱。吳春華等[6]提出一種不均勻積灰檢測算法,并結(jié)合遺傳算法優(yōu)化控制策略,求解不均勻積灰情況下的光伏板發(fā)電效率的最大優(yōu)化。周曉明等[7]建立了反射光強度與光伏板清潔度的關(guān)系,通過反射光強度分析光伏板積灰程度,最后設(shè)計并實現(xiàn)了光反射光伏板清潔度檢測儀,該方法成本開銷較大。綜上所述,傳統(tǒng)方法通過對發(fā)電效率損失和反射光強度進行建模,進而分析光伏板積灰程度;然而,對某個光伏板的建模分析很難推廣到所有光伏板,泛化性較弱;同時,采集反射光強度的成本開銷較大,不適用于多電站光伏板數(shù)量較多的真實運維場景。
現(xiàn)場調(diào)研表明,積灰導致光伏板顏色、紋理發(fā)生顯著變化,人工觀測光伏板積灰圖像可初步判定發(fā)電效率損失,為采用圖像識別算法來判定光伏板積灰程度提供了思路[8]。傳統(tǒng)圖像識別技術(shù)依賴人工提取數(shù)據(jù)特征,難以訓練大規(guī)模樣本;以卷積神經(jīng)網(wǎng)絡(luò)為代表的深度學習圖像識別算法,通過自動特征提取和自我學習特征訓練模型,效率較高[9]。
近年來,基于深度學習的圖像識別算法在電力設(shè)備狀態(tài)[10]與缺陷[11]檢測領(lǐng)域廣泛應(yīng)用。趙波等[8]由圖像識別展開研究,提出了基于卷積神經(jīng)網(wǎng)絡(luò)的光伏板積灰狀態(tài)識別模型,采用ResNet50(Residual Network 50),準確率達0.81,在實際運維中保證了實時性且開銷較小,但識別準確率難以滿足實際運維的需求。因此,本文提出一種改進的深度殘差網(wǎng)絡(luò)光伏板積灰識別模型,主要工作如下:
1)構(gòu)建多電站不同光伏板不同積灰程度的數(shù)據(jù)集,保證模型的泛化能力。
2)通過分解卷積提高模型精度的同時減少了Conv1 模塊的參數(shù);對下采樣進行微調(diào),有效避免了特征提取過程中的信息丟失,進而增強了模型的表征能力。
3)針對光伏板積灰分布不均、模型關(guān)注區(qū)域存在偏差的問題,融合坐標注意力(Coordinate Attention,CA)機制[12],增強模型對積灰區(qū)域的關(guān)注。采用監(jiān)督對比學習損失函數(shù),有效提高了光伏板積灰程度識別模型的準確率。
ResNet 通過堆疊殘差結(jié)構(gòu),有效解決了網(wǎng)絡(luò)過深導致的“退化”問題[13]。次代殘差網(wǎng)絡(luò)(NeXt Residual Network,ResNeXt)[14]與ResNet 相比,通過平行堆疊拓撲結(jié)構(gòu)替代原始三層卷積的block,在不增加參數(shù)量級的情況下,提高了模型準確率。ResNeXt 與ResNet 殘差結(jié)構(gòu)對比如圖1 所示。圖1(b)中的group為平行拓撲結(jié)構(gòu)堆疊數(shù)量。
圖1 ResNet與ResNeXt殘差結(jié)構(gòu)對比Fig.1 Residual structure comparison of ResNet and ResNeXt
較大卷積核進行卷積分解,由小卷積核替代,可以加深網(wǎng)絡(luò)層數(shù),有效提高網(wǎng)絡(luò)精度[15];同時,卷積分解后,相同感受野情況下,參數(shù)更少,計算復雜度更低。針對ResNeXt 的Conv1模塊中的大卷積核,為保持輸出特征圖大小相同,采用3組3×3卷積的級聯(lián)替換7×7卷積,如圖2所示。
圖2 Conv1模塊改進Fig.2 Conv1 module improvement
ResNeXt 的基礎(chǔ)block 依次為1×1 卷積、3×3 卷積、1×1 卷積;設(shè)置首個1×1 卷積的步長為2,實現(xiàn)下采樣,如圖3(a)所示。
圖3 下采樣改進Fig.3 Down-sampling improvement
事實上,在第一個卷積進行下采樣時,存在信息丟失的問題。假設(shè)5×5 的特征圖經(jīng)過步長為2、大小為1×1 卷積,將丟失3/5 的信息,如圖4 所示。淺灰色部分為參與卷積運算的信息,白色均不參與。針對1×1 卷積下采樣造成信息丟失的問題,對下采樣進行微調(diào),如圖3(b)所示,在3×3 卷積設(shè)置步長為2 進行下采樣,防止信息丟失。
圖4 1×1卷積下采樣Fig.4 1×1 convolutional down-sampling
在圖像特征提取中,注意力機制可以增強特征選擇?;谖恢玫淖⒁饬C制有兩種作用方式:一種是通過大尺度核卷積,如SE(Squeeze Excitation)[16]和CBAM(Convolutional Block Attention Module)[17]等;另一種是分解特征圖像,如坐標注意力(CA)[12]。
與大尺度核卷積操作獲得空間信息的方式相比,分解特征圖像更能充分利用捕獲到的位置信息,準確捕獲感興趣的區(qū)域,且有效捕捉通道間的關(guān)系。CA 機制模塊整體流程如圖5 所示,通過二維全局池操作將特征圖像分解為兩個一維編碼,有效地捕獲位置信息和通道關(guān)系,分析出目標的具體位置,輸出相關(guān)特征值。
圖5 CA機制模塊Fig.5 CA mechanism module
CA 機制結(jié)構(gòu)通過二維編碼獲得精確的位置信息,包含了坐標信息嵌入和坐標注意力生成2 步操作,能有效增強深度網(wǎng)絡(luò)的性能。CA 機制的處理過程中首先分別沿水平和垂直兩個方向?qū)γ總€通道進行編碼,計算過程為:
其中:xc為第c通道的特征圖。得到一對大小為c×1×w和c×h×1 的方向感知特征圖,具體為:
其中:zh為高度為h所有通道的輸出,zw為寬度為w所有通道的輸出,[zh,zw]為沿空間維度繼續(xù)結(jié)合操作,δ為非線性激活函數(shù),f為對空間信息在水平方向和垂直方向進行編碼的中間特征映射。然后沿著水平和垂直兩個維度分解為f h和f w,并使用1×1 卷積變換函數(shù)Fh和Fw分別將f h和f w變換為具有相同通道數(shù)的張量,計算過程為:
其中:σ為Sigmoid 激活函數(shù)。最后對輸出的gh和gw進行擴展,作為垂直、水平注意力的維度權(quán)重,輸出的特征圖像為:
其中:和是將gh和gw擴展,作為垂直、水平注意力的維度權(quán)重;xc為第c通道的特征圖;yc(i,j)為輸出的注意力加權(quán)后的圖像。
隨著對比學習的應(yīng)用發(fā)展,自監(jiān)督的表征學習也得到了顯著發(fā)展。在自監(jiān)督學習過程中,正樣本圖像通常是一個錨節(jié)點的數(shù)據(jù)增強,負樣本圖像通常從最小批次的訓練中選取,標簽在這過程中是不可用的。
與自監(jiān)督的方法相反,監(jiān)督的方法可以使用標記數(shù)據(jù)從現(xiàn)有的同類示例中生成正樣本圖像,與通常僅僅增加錨節(jié)點所能達到的效果相比,提供了更多的預(yù)訓練可變性。為彌補自監(jiān)督學習和監(jiān)督學習之間的差距,使對比學習能夠應(yīng)用于監(jiān)督環(huán) 境,Khosla 等[18]提出了 監(jiān)督對 比(Supervised Contrastive,SupCon)學習損失函數(shù),訓練過程如圖6 所示。
圖6 監(jiān)督對比學習損失函數(shù)Fig.6 SupCon learning loss function
為簡化正樣本圖像選擇的過程,SupCon 利用標記數(shù)據(jù)將來自同一類別的所有樣本作為正的樣本集與來自同一個批次剩余樣本的負的樣本集進行對比學習。監(jiān)督對比學習損失函數(shù)由3 個主要結(jié)構(gòu)組成:數(shù)據(jù)增廣模塊、編碼器模塊和映射模塊。數(shù)據(jù)增廣模塊Aug(·)是對每個輸入樣本x隨機生成兩個增廣樣本;編碼器模塊Enc(·)是將x和映射為表征向量r=Enc(x)∈RDE,并將r歸一化到RDE(DE=2 048)的單位球面上;映射模塊Proj(·)是將r映射為向量Z=Proj(r)∈RDP(DP=128)。監(jiān)督對比學習損失函數(shù)的表達式為:
本文改進后的整體網(wǎng)絡(luò)結(jié)構(gòu)如圖7 所示,由注意力(Attention)模塊、Conv1、Conv2、Conv3、Conv4、Conv5 模塊、全連接層以及Softmax 構(gòu)成。
圖7 改進后的整體網(wǎng)絡(luò)結(jié)構(gòu)Fig.7 Improved overall network structure
注意力模塊由平均池化、單個1×1 卷積變換、兩個1×1 卷積變換及Sigmoid 模塊組成,輸出結(jié)果作為Attention weights進行加權(quán)。
對原始ResNeXt 的Conv1 模塊中大卷積核進行分解,采用3 組3×3 卷積的串聯(lián)替代原始7×7 卷積;Conv2、Conv3、Conv4、Conv5 均由1×1 卷積、3×3 卷積、1×1 卷積組成,且平行拓撲結(jié)構(gòu)數(shù)量為32。其中:Conv2 模塊堆疊3 次,Conv3 模塊堆疊4 次,Conv4 模塊堆疊6 次,Conv5 模塊堆疊3 次。對原始ResNeXt 結(jié)構(gòu)中的下采樣進行微調(diào),原始下采樣在Conv2、Conv3、Conv4、Conv5 模塊中的首個1×1 卷積進行,調(diào)整至Conv2、Conv3、Conv4、Conv5 模塊中的3×3 卷積進行下采樣。網(wǎng)絡(luò)層參數(shù)設(shè)置如表1 所示。
表1 網(wǎng)絡(luò)參數(shù)設(shè)置Tab.1 Network parameter setting
表1 中,Attention 模塊的平均池化采用自適應(yīng)平均池化(Adaptive Average Pooling)。與常用平均池化不同,表1 中參數(shù)為池化后的輸出大小;same 表示通過補零操作使輸出尺寸與輸入尺寸一致,stride 為卷積步長。
針對光伏板積灰程度定量問題,參考文獻[19],根據(jù)光伏板傳感器采集的功率、溫度數(shù)據(jù)計算發(fā)電效率損失率。積灰程度與光伏板額定溫度下發(fā)電效率損失率關(guān)系如下:
式(8)中:α為光伏板額定溫度的發(fā)電效率,αd為積灰狀態(tài)額定溫度的發(fā)電效率,αp為不同積灰程度下的發(fā)電效率損失率。式(9)中:Pmax為額定溫度、輻照度下的最大輸出功率;Tb為光伏板實時溫度,Ts為額定溫度;R為光伏板功率溫度系數(shù);Ai為光伏板面積;Fn為輻照度。
根據(jù)發(fā)電效率損失率均值,劃分4 個等級的光伏板積灰程度,如圖8 所示。
圖8 光伏板積灰程度分類Fig.8 Classification of dust accumulation degree of photovoltaic panel
圖8 中,發(fā)電效率損失率αp≤8 為干凈,8<αp≤12 為輕度積灰,12<αp≤16 為中度積灰,αp>16 為重度積灰。
實驗數(shù)據(jù)來源于寧夏中科嘉業(yè)新能源研究院,采集2021年3—7 月光伏板不同程度積灰圖像,采集手段包括電站攝像頭拍攝和運維人員人工拍攝。采集多個電站數(shù)據(jù),過濾因模糊、過暗等因素形成的無效圖像;同時,為保證樣本分布均衡,根據(jù)積灰程度定量分析結(jié)果,篩選出4 類共計800 幅圖像,保持每個類別樣本數(shù)相同。
由于實驗數(shù)據(jù)較少,為防止過擬合現(xiàn)象,采用隨機縮放、隨機旋轉(zhuǎn)、隨機裁剪、平移變換、增強或減弱對比度、高斯噪聲進行圖像增廣,如圖9 所示。
圖9 圖像增廣Fig.9 Image augmentation
經(jīng)圖像增廣后,光伏板積灰數(shù)據(jù)集共計22 400 幅,每個類別5 600 幅,可有效防止過擬合現(xiàn)象發(fā)生。
訓練集和測試集按照8∶2 劃分,實驗采用Ubuntu 操作系統(tǒng),Intel i5-6600 處理器,16 GB 內(nèi) 存,GPU 為NVIDIA RTX2080 平臺,程序基于PyTorch1.8.0 環(huán)境采用Python 語言編寫。采用隨機梯度下降法,實驗中batch size 設(shè)置為16,表示每次迭代輸入到模型的樣本數(shù)量為16;學習率初始化為0.01,最小學習率為0.000 1,最大迭代次數(shù)為800,學習率更新策略為預(yù)熱階段(warm-up)采用一維線性插值法,預(yù)熱階段后采用余弦退火算法[20],學習率更新的偽代碼如算法1所示。
算法1 學習率更新算法。
為驗證網(wǎng)絡(luò)結(jié)構(gòu)改進對模型性能的影響,分別設(shè)置分解卷積和微調(diào)下采樣的對照實驗,分解卷積實驗結(jié)果如表2 所示,微調(diào)下采樣實驗結(jié)果如表3 所示。
表2 中,原始Conv1 為7×7 卷積,借鑒Inception 系列設(shè)計思路,采用3 組3×3 卷積的級聯(lián)替換7×7 卷積。與原始Conv1相比,分解卷積Conv1 參數(shù)減少81%,識別精度提升了1.2 個百分點,有效提高識別準確率的同時降低了計算復雜度。
表2 分解卷積的實驗結(jié)果Tab.2 Experimental results of decomposition convolution
表3 中,原始ResNeXt 在首個1×1 卷積進行下采樣,對下采樣進行微調(diào),將原始首個1×1 卷積時下采樣調(diào)整為3×3 卷積時下采樣,有效避免特征提取過程中的信息丟失問題。與原始ResNeXt 相比,下采樣微調(diào)ResNeXt 的準確率提高了1.6 個百分點。
表3 下采樣微調(diào)實驗結(jié)果Tab.3 Experimental results of down-sampling fine-tuning
為驗證注意力機制對模型的影響,在網(wǎng)絡(luò)結(jié)構(gòu)的不同位置嵌入注意力模塊,如圖10 所示。
圖10 不同位置嵌入注意力模塊Fig.10 Attention modules embedded in different positions
圖10 中,(a)為原始模型結(jié)構(gòu),(b)~(f)分別為不同位置嵌入注意力模塊,實驗結(jié)果如表4。
表4 中,針對不同位置嵌入注意力模塊,模型識別準確率有不同程度提升,其中,ResNeXt-CA(b)模型效果最佳,與原始ResNeXt 相比,ResNeXt-CA(b)的準確率提升了2.3 個百分點。
表4 不同位置嵌入CA注意力模塊的實驗結(jié)果Tab.4 Experimental results of embedding CA attention module in different positions
為進一步探究CA 機制對模型性能的影響,采用類激活可視化(Gradient-Class Activation Map,Grad-CAM)[21-22]的方法對模型的識別性能進行驗證。該方法通過熱力圖,可視化模型識別圖像類別的依據(jù),可清晰地說明類激活圖與識別分類的映射關(guān)系。
不同位置嵌入CA 機制的熱圖對比如圖11 所示,其中,熱圖中高亮的區(qū)域為預(yù)測類別的相關(guān)區(qū)域。
圖11 中,在光伏板積灰分布不均的場景下,原始ResNeXt 模型對積灰區(qū)域的關(guān)注存在偏差。針對這一問題,融合CA 后,關(guān)注偏差問題得到改善;同時,不同位置嵌入CA,對積灰區(qū)域的關(guān)注表現(xiàn)存在差異,其中,ResNeXt-CA(b)相較于其他模型對積灰區(qū)域更關(guān)注,進而模型對圖像的識別更精準。
圖11 不同位置嵌入CA注意力熱圖Fig.11 Heat maps of CA attention embedded in different positions
為驗證本文采用的CA 機制優(yōu)于傳統(tǒng)注意力機制,設(shè)置對照實驗,分別與SE 注意力[16]和CBAM[17]注意力對比,實驗結(jié)果如表5 所示。
表5 中,針對嵌入不同注意力機制,模型準確率有不同程度提升,其中,本文采用的ResNeXt-CA(b)效果最佳,與ResNeXt-CBAM 相比,準確率提升了0.7 個百分點,達85.8%。
表5 不同注意力機制的實驗結(jié)果 單位:%Tab.5 Experimental results of different attention mechanisms unit:%
為驗證監(jiān)督對比學習損失函數(shù)對模型的影響,設(shè)置對照實驗,實驗結(jié)果如表6 所示,與采用交叉熵損失函數(shù)的ResNeXt 模型相比,采用SupCon 損失函數(shù)的ResNeXt 模型識別準確率提高了2.1 個百分點。
表6 SupCon學習損失函數(shù)的實驗結(jié)果 單位:%Tab.6 Experimental results of SupCon learning loss function unit:%
為驗證改進后的ResNeXt50 模型,在光伏板積灰程度識別中優(yōu)于常用的深度學習算法和傳統(tǒng)識別算法,設(shè)置多組對照實驗,分別與隨機森林、K近鄰(K-Nearest Neighbors,KNN)、支持向量機(Support Vector Machine,SVM)、ResNeXt50[14]、ResNet50[13]、MobileNetV3[23]、InceptionV3[15]和Inception-ResNetV2[24]進行對比,實驗結(jié)果如表7 所示。
表7 中,與原始ResNeXt50 相比,改進后的ResNeXt50 識別準確率提升了7.2 個百分點,與Inception-ResNetV2、InceptionV3、MobileNetV3、ResNet50 相比,分別提升了4.8 個百分點、6.5 個百分點、6.8 個百分點和8.9 個百分點。在光伏板積灰程度識別中,優(yōu)于大部分主流模型,基本滿足光伏電站智能運維的需求。
表7 不同模型的實驗結(jié)果 單位:%Tab.7 Experimental results of different models unit:%
相較于原始ResNeXt50,改進后的ResNeXt50 模型參數(shù)量增加0.5 MB,單張圖像的推理時間增加0.2 ms,模型訓練時間增加1.3 min。兩個個模型的消耗對比如表8 所示。
表8 模型消耗對比Tab.8 Comparison of model consumption
針對光伏板積灰程度識別準確率較低的問題,本文在ResNeXt50 的基礎(chǔ)上進行改進,通過分解卷積和微調(diào)下采樣增強模型表征能力;同時,針對光伏板積灰分布不均,模型關(guān)注區(qū)域存在偏差,融合CA 機制,增強模型對積灰區(qū)域的關(guān)注表示;最后采用監(jiān)督對比學習損失函數(shù),提升了識別的準確性。
目前,受現(xiàn)場環(huán)境影響,采集的部分光伏板積灰圖像質(zhì)量較差,進而導致識別精度降低,后續(xù)研究將通過去噪、去霧等圖像處理技術(shù)提高采集圖像的質(zhì)量,提升模型在復雜環(huán)境下的識別準確率。