孫建波,王麗杰,麻吉輝,高瑋
(1.哈爾濱理工大學(xué) 測控技術(shù)與通信工程學(xué)院,黑龍江 哈爾濱 150080;2.哈爾濱理工大學(xué) 黑龍江省激光光譜技術(shù)及應(yīng)用重點實驗室,黑龍江 哈爾濱 150080)
光伏組件多安裝于室外,長期工作過程中會受到復(fù)雜環(huán)境因素影響產(chǎn)生如組件脫落、表面破裂、開路、柵線老化[1]等不同程度的缺陷,導(dǎo)致局部發(fā)熱并在紅外圖像中呈現(xiàn)出“熱斑效應(yīng)”,對光伏發(fā)電的經(jīng)濟效益和安全運行都帶來了嚴重影響[2]。傳統(tǒng)的光伏電站巡檢方式多為人工巡檢,工作時難度高且效率低下,主要依賴光伏逆變器的電氣特性和組件外觀狀態(tài),檢測效率較低。
隨著光伏產(chǎn)業(yè)規(guī)模不斷擴大,搭載工業(yè)相機的無人機巡檢逐漸成為主流。一方面,傳統(tǒng)的紅外圖像處理方法將獲取的圖像信息進行聚類分析、幾何邊緣分割[3]、形態(tài)學(xué)處理等操作,能夠較為準確地判別故障模式。時亞濤[4]等采用傅里葉變換的方法去除光伏板母線,并重建圖像背景,最后用待檢圖像與背景圖像的差值得到缺陷類型。該方法對不同缺陷都有較高的識別準確率,但對小目標識別效果不佳,且未對缺陷類型進行明確分類。毛峽[5]等以紅外圖像局部標準差衡量局部灰度一致性,在該區(qū)域中根據(jù)矩形尺寸采用了形態(tài)學(xué)方法對光伏陣列背景區(qū)域進行去除,從而對熱斑圖像有效區(qū)域進行了分割,且分割效果優(yōu)于常規(guī)分割算法。另一方面,相較于傳統(tǒng)圖像處理算法,基于深度學(xué)習(xí)的目標檢測算法在檢測速度和識別準確率方面更加理想,其從結(jié)構(gòu)上可分為單階段(one-stage)檢測算法和二階段(two-stage)檢測算法。前者如SSD(single shot multiBox detector)[6]、YOLO(you only look once)[7]系列不用生成區(qū)域候選框,在網(wǎng)絡(luò)中基于區(qū)域回歸的方式進行特征提取,具有較高的檢測速度但定位精度較低。后者先由模型生成一系列候選框,再通過后續(xù)分類網(wǎng)絡(luò)進行分類,常見的如R-CNN[8]、Faster-RCNN[9]、Cascade RCNN[10]等,此類方法能在一定程度上提高精度,但檢測速率較低,為此,近年來領(lǐng)域內(nèi)大量科研人員開始致力于相關(guān)研究及探討。S.Wei[11]等提出了基于霍夫變換和Canny 算子結(jié)合的經(jīng)典圖像處理算法以及基于Faster-RCNN和遷移學(xué)習(xí)的卷積神經(jīng)網(wǎng)絡(luò)方法來檢測復(fù)雜環(huán)境下的光伏板熱斑,后者對熱斑的檢測效果更好,但模型較大,不能很好地部署到移動端。Bartler[12]等通過對故障光伏圖像進行畸變校正、分割、透視校正等預(yù)處理,將其輸入卷積神經(jīng)網(wǎng)絡(luò)用于訓(xùn)練,成功解決了數(shù)據(jù)不平衡問題,并取得了較高的分類準確率;程起澤[13]等提出了一種基于CNN-LSTM 的光伏組件缺陷檢測方法,相較于單純使用LSTM 模型訓(xùn)練時間縮短,同時保持了良好的準確率。
通過分析上述研究手段的優(yōu)劣及其適用條件,本文提出了一種基于損失改進和特征增強處理的YOLOv5s 光伏故障巡檢方法。使用性能更佳的EIOU 函數(shù)代替GIOU 函數(shù)計算回歸損失,該函數(shù)充分考慮了錨框?qū)捀叩谋壤?,同時自適應(yīng)調(diào)節(jié)置信度損失函數(shù)平衡參數(shù),使模型更加專注高質(zhì)量錨框的損失;結(jié)合Inception 結(jié)構(gòu)以及殘差結(jié)構(gòu)的特點,在每個檢測層前構(gòu)建InRe 特征增強模塊,以期提高特征提取能力。
研究中,利用搭載雙光相機的無人機對東北某光伏場站進行圖像采集。故障分析采用光伏板紅外圖像熱斑及缺陷分析為主、可見光圖像分析為輔的故障模式及效應(yīng)分析手段,執(zhí)行紅外圖像熱斑與缺陷識別分析,借此改變目前用于深度學(xué)習(xí)的光伏缺陷數(shù)據(jù)集多為可見光圖像的研究現(xiàn)狀。研究中,圖像數(shù)據(jù)采集的實驗設(shè)備設(shè)置為大疆Matrice200 無人機搭載ZENMUSE XT2 云臺方式,雙光相機采用FLIR 長波紅外非制冷熱成像相機機芯和可見光相機。對于沼澤、水面等地勢較平整的光伏場區(qū)域,采用路徑自主規(guī)劃算法;對于坡地區(qū)域事先手動選取光伏區(qū)域起始、結(jié)束點進行路徑規(guī)劃,再由無人機依據(jù)路徑進行巡檢。巡檢時,始終保持紅外相機云臺角度與傾斜的光伏板正對以獲得最大拍攝面積,為了克服陽光強烈時造成的反光干擾,及時調(diào)整飛行高度,水平飛行速度為4 m/s。
圖像數(shù)據(jù)采集后,通過對得到的紅外與可見光圖像進行對比分析發(fā)現(xiàn),故障主要包括熱斑和組件脫落兩種,其中熱斑數(shù)量較多,多位于組件柵格外側(cè)邊緣,圖1 給出了無人機采集的兩種常見故障模式熱斑和組件脫落的紅外圖像。
圖1 兩種常見光伏組件故障類型樣例Fig.1 Examples of two common PV module failure types
通過對采集的紅外圖像進行篩選,刪除成像效果不佳數(shù)據(jù),共得到尺寸為640×512 的故障樣本1062 張。為滿足深度學(xué)習(xí)訓(xùn)練要求,需對數(shù)據(jù)進行增強,研究中針對上述缺陷樣張進行翻轉(zhuǎn)(30°、60°、90°)、裁剪、平移等變換,共得到3200 張圖像樣本。將所得樣本按照4:1 的比例分成訓(xùn)練集和測試集,使用標注軟件LabelImg 對數(shù)據(jù)進行標注,標注類別有熱斑(hot spot)和組件脫落(damage)兩類,格式與VOC2007 數(shù)據(jù)集一致,建立紅外光伏板故障數(shù)據(jù)集。
YOLO v5 網(wǎng)絡(luò)由輸入(Input)、主干(backbone)、特征金字塔結(jié)構(gòu)(FPN+PAN)和檢測頭(YOLO head)組成,如圖2 所示。從運行機理分析,YOLO v5 基本遵循YOLO 系列的框架架構(gòu),并在此基礎(chǔ)上提出多點改進,包括數(shù)據(jù)輸入、特征金字塔、解耦頭等關(guān)鍵處理環(huán)節(jié)。
圖2中,在數(shù)據(jù)輸入階段,YOLO v5 對其進行了同YOLO v4 一樣的Mosaic 數(shù)據(jù)增強,這樣處理能同時將4 張圖片經(jīng)過隨機縮放、裁剪等操作拼接成一張圖片,豐富目標背景的同時減少計算成本。進一步地,圖片縮放后使用更加合理的黑邊填充比例,可減少信息冗余帶來的干擾。
YOLO v5 主干部分主體采用CSPDarknet 結(jié)構(gòu),其中的CSP 結(jié)構(gòu)將底層特征分解為兩部分,其中一部分經(jīng)過卷積加多個殘差結(jié)構(gòu)或多個卷積操作后與另外一部分拼接,從而學(xué)習(xí)到更加豐富的特征。模型根據(jù)CSP 模塊參數(shù)量配置共有Yolo v5s、Yolo v5m、Yolo v5l、Yolo v5x 四個版本,參數(shù)量由小到大,本文選用最為輕量級的Yolo v5s 模型,結(jié)構(gòu)如圖2 所示。引入Fcous 結(jié)構(gòu),將圖片進行切片操作,即每間隔一個像素取值,得到4 個特征層結(jié)構(gòu),在參數(shù)量上得到大幅優(yōu)化;添加SPP 結(jié)構(gòu),即對尺度分別為1×1、5×5、9×9、13×13 的4 個最大池化處理進行特征提取,該操作能在不影響運算速度的前提下實現(xiàn)不同尺度的特征融合。
圖2 YOLO v5s 結(jié)構(gòu)示意圖Fig.2 Structural diagram of YOLO v5s
特征金字塔部分,將主干中對輸入尺寸進行3、4、5 次壓縮的特征層組成圖像金字塔FPN+PAN 結(jié)構(gòu),以此實現(xiàn)特征多尺度自底向上和自頂向下的融合,使特征信息得到大幅增強。
如圖2 所示,YOLO v5 模型結(jié)構(gòu)中,解耦頭共設(shè)置3個,分別與特征金字塔FPN+PAN 結(jié)構(gòu)的3個輸出相連,對解耦頭進行解碼得到預(yù)測結(jié)果。所有激活函數(shù)采用效果更佳的SiLU 激活函數(shù),該函數(shù)在深層網(wǎng)絡(luò)中有著比Relu 函數(shù)更好的表現(xiàn)。回歸損失(location loss)采用GIOU loss,置信度損失(confidence loss)和分類損失(classification loss)均通過BCE 損失函數(shù)得到。
神經(jīng)網(wǎng)絡(luò)中的損失(loss)反映預(yù)測值和真實值的差異,YOLO v5 中損失有3種,分別是回歸損失(location loss)ed,分類損失(classification loss)es和置信度損失(confidence loss)ek,定義網(wǎng)絡(luò)的總損失l:
式中:a1、a2、a3分別代表3 個不同分辨率特征層的置信度平衡參數(shù)(balance parameter);ed由GIOU損失得到,表示為:
如圖3 所示,IOU 是預(yù)測框和真實框的交并比;S2表示包裹預(yù)測框和真實框的最小矩形面積;S1表示兩框相并的面積。
圖3 GIOU 示意圖Fig.3 Schematic diagram of GIOU
該損失函數(shù)解決了兩框沒有交集面積時IOU值為0 的問題。同時也存在兩個主要缺點:一是當兩框交集為0時,在橫向與縱向收斂較為緩慢,二是當兩框出現(xiàn)包含情況時,損失退化為IOU 損失,此時收斂依然困難。因此,為了提高模型的收斂穩(wěn)定性,研究中采用EIOU(efficient intersection over union)[14]代替GIOU 作為新的置信度損失,其定義如下:
該函數(shù)主要包含重疊損失LIOU,距離損失Ldis和寬高損失Lasp三部分,其中c表示能包裹兩框最小矩形的對角線距離,ρ(b,bgt)為兩框中心點距離,cw和ch分別表示能包裹兩框最小矩形的寬度和高度。ρ(w,wgt)和ρ(h,hgt)代表兩框?qū)捄透叩牟钪怠IOU損失不僅考慮了兩個矩形框的距離因素,也最小化了兩框?qū)捀叩牟町?,因此可在一定程度上提高較小目標的檢測準確率。
在式(1)中,a1、a2、a3和不同大小目標的數(shù)量有關(guān),考慮到原coco 數(shù)據(jù)集中小目標較多的特點,按照特征層由大到小的順序默認為0.4,1.0,4。具體到本文實驗對象中,樣本的不確定性會影響結(jié)果的準確性,因此,有必要根據(jù)樣本的數(shù)量自適應(yīng)設(shè)置平衡參數(shù)[15],其設(shè)置規(guī)則如下:
假設(shè)第i個檢測層中所有正樣本預(yù)測框數(shù)量為mi,同時,將mi中與真實框的IOU 值大于閾值q的預(yù)測框數(shù)量設(shè)為ni,則得到平衡參數(shù)表達式:
式中:r表示檢測層個數(shù);θ=0.1;μi為高質(zhì)量正樣本數(shù)占總的正樣本數(shù)比例。
改進的置信度損失充分考慮真實框大小和輸出層錨框大小,有利于使模型更加專注于重合度較高的預(yù)測框所帶來的影響。
在YOLO v5 模型中,淺層特征層有更小的感受野,位置信息較多,但語義信息較少,常用作檢測小目標;而深層特征層有更大的感受野,位置信息較少,但語義信息較多,常用作檢測大目標。因此有必要增強特征層對目標尺度的適應(yīng)性,提高對不同大小目標的魯棒能力。本文使用結(jié)合Inception結(jié)構(gòu)和Resnet 殘差連接優(yōu)點的Inception-ResNet 模塊[16]構(gòu)建特征增強模塊InRe,結(jié)構(gòu)如圖4 所示,對主干特征層進行不同尺度的卷積操作,所得結(jié)果都與輸入層拼接成作為圖像金字塔結(jié)構(gòu)的輸入。
圖4中,InRe 結(jié)構(gòu)分為多尺度卷積部分和殘差連接部分。前者共有3 個支路,分別進行卷積核為1×1 或3×3 的卷積組合操作。研究中,為了減少時間開支,將3×3 的卷積分解為1×3 和3×1 的卷積,之后將3 個通道的結(jié)果進行堆疊,得到不同大小的感受野信息。后者直接將輸入端經(jīng)過激活的結(jié)果與前者拼接,從而獲得更多的特征信息,在加深網(wǎng)絡(luò)的同時避免了梯度消失的發(fā)生。除堆疊處卷積外的所有卷積層后激活函數(shù)同樣采用SiLU 激活函數(shù),改進的模型整體結(jié)構(gòu)如圖5 所示。
圖4 InRe 特征增強模塊Fig.4 InRe feature enhancement module
圖5 改進后的YOLO v5s 模型Fig.5 Improved YOLO v5s model
本實驗的深度學(xué)習(xí)平臺關(guān)鍵參數(shù)如下:操作系統(tǒng)為Windows10,64 位;顯卡型號為NVIDIA RTX A4000,內(nèi)存16 GB;CPU 型號為Intel(R) Xeon(R)CPU E5-2686v@2.30 GHz;深度學(xué)習(xí)框架為Pytorch1.8.1,CUDA 版本為11.1。
訓(xùn)練時,圖片大小設(shè)置為640×640,直接從主干開始進行100 次epoch 訓(xùn)練,batchsize 設(shè)置為8,在倒數(shù)第40 個epoch 時關(guān)閉Mosaic 數(shù)據(jù)增強方法,并選用隨機梯度下降法(stochastic gradient descent,SGD)進行優(yōu)化,最大學(xué)習(xí)率為1e-2,最小學(xué)習(xí)率為1e-4,使用余弦衰減方式。
在數(shù)據(jù)分析階段,采用模型大小、參數(shù)量、FPS(frames per second)、平均準確率均值mAP(mean average precision)4 個參數(shù)對模型效果進行評價。其中模型大小可以反映模型的輕量化程度,參數(shù)量從時間上評價模型的復(fù)雜程度,F(xiàn)PS 代表每秒能夠檢測圖片的幀數(shù),該值越大,說明檢測速度越快。mAP 衡量模型識別準確率,計算過程如(5)~(7)所示:
式中:P表示準確率;R表示召回率;TP 代表判定出來的正樣本數(shù)量,F(xiàn)P 代表應(yīng)該為負但被判定為正樣本的數(shù)量,F(xiàn)N 代表應(yīng)該為正但被判定為負的樣本數(shù)量,AP 代表每一類的平均精確度,N為分類數(shù)量。
對于本文所提出的各種方法有效性,我們在YOLO v5s 的基礎(chǔ)上進行了消融實驗,各組實驗采用相同的超參數(shù)和訓(xùn)練策略,實驗結(jié)果如表1 所示。
表1 消融實驗Table 1 Ablation experiment
為了驗證損失函數(shù)改進帶來的效果提升,設(shè)置了實驗一、二、三、四,其中實驗一采用原YOLO v5s 算法。相較于實驗一,實驗二僅將回歸損失由GIOU 改為EIOU;實驗三自適應(yīng)調(diào)節(jié)置信度損失的平衡參數(shù);實驗四綜合兩種改進方法進行實驗。實驗二的結(jié)果表明,當回歸損失函數(shù)由GIOU 改為EIOU時,mAP 上升了3.1 個百分點,精度明顯改善,同時檢測速度增長了2.29 FPS,有較小幅度的提升;雖然實驗三的精度效果提升不明顯,但模型回歸效果有所改善,其訓(xùn)練和驗證過程損失圖像如圖6 所示。
從圖6 中可以看出在重新計算出置信度平衡參數(shù)后,損失函數(shù)更快接近收斂,最終穩(wěn)定在0.063左右。綜合兩種方法的實驗四則是在準確率和檢測速度方面均有提升,說明訓(xùn)練效果比未改進損失函數(shù)之前好。
圖6 損失變化Fig.6 Loss diagram
實驗五在實驗一的基礎(chǔ)上加入了特征增強模塊InRe,由于在3 個特征層都加入了該模塊,導(dǎo)致模型參數(shù)量增加,檢測速度有所下降,但明顯的變化是精度得到了提升,mAP 提高了4.24%,提升精度是最多的,說明InRe 模塊的引入,增強了特征層對目標尺度的適應(yīng)性,對一些對精度要求較高的光伏巡檢任務(wù)來說,加入該模塊成效顯著。
最后,實驗六融合了以上所有改進方法,融合后的模型效果精度達到了最佳,訓(xùn)練用時132 min,其訓(xùn)練過程損失和驗證過程損失如圖7 所示,可以看出網(wǎng)絡(luò)在訓(xùn)練過程中沒有出現(xiàn)過擬合現(xiàn)象。證明了模型經(jīng)過損失函數(shù)優(yōu)化和特征增強處理后在均值平均精度和檢測速度上都有著不錯的表現(xiàn)。
圖7 實驗六損失函數(shù)變化Fig.7 Loss diagram of experiment 6
為了進一步驗證模型在同類型算法中的表現(xiàn),將目前較為主流的單階段和二階段算法與本文所提出的算法進行比較,包括經(jīng)典的Faster-RCNN、SSD算法,以及同系列的YOLO v3、v4、v5s 算法和輕量級網(wǎng)絡(luò)YOLO v4-tiny、YOLO v5-mobileNet,對數(shù)據(jù)集圖像處理分析得到的結(jié)果如表2 所示。
從表2 中可以看出,原YOLO v5 算法通過特征增強模塊的引入及損失函數(shù)的改進提高了對小目標的識別能力,對于目標更小的熱斑的識別準確率明顯高于其他幾種算法,同時也犧牲了一小部分檢測速度,幀率相比于同系列的輕量化模型YOLO v4-tiny 和YOLO v5-mobileNet 稍有下降,但mAP卻分別高出了27.22 和23.94 個百分點。本文算法在綜合性能上都優(yōu)于其他模型,mAP 在所有模型中達到了最佳,因此精度上有著明顯的優(yōu)勢,完全適用于光伏故障巡檢任務(wù),也可部署在計算資源有限的無人機設(shè)備上。
表2 對比實驗Table 2 Comparative experiment
為了驗證本文算法在實際應(yīng)用中的表現(xiàn),從數(shù)據(jù)測試集中抽取了3 種場景的圖片,分別使用本文算法和原YOLO v5s 算法進行測試,如圖8 所示。
圖8 處理結(jié)果表明:在第一組圖片中,光伏陣列背景中存在多個干擾點,兩種模型都表現(xiàn)出較好的適應(yīng)性,沒有誤檢的情況發(fā)生,但原YOLO v5s算法出現(xiàn)了熱斑點漏檢,且本文算法擁有更高的置信度;在第二組圖片中,光伏陣列和背景之間灰度較為接近,且場景比組一更加明亮,原YOLO v5s算法同樣出現(xiàn)了漏檢,可以看出本文算法對小目標的檢測效果有所提升;第三組場景更為復(fù)雜,在與組二對比度相似的情況下,出現(xiàn)了邊緣的目標,本文算法依舊可以識別出來,說明模型具有較強的魯棒性。
圖8 檢測結(jié)果對比Fig.8 Comparison of test results
本文提出了一種基于損失改進和特征增強處理的YOLO v5s 光伏故障巡檢方法,通過改進回歸損失和增加自適應(yīng)置信度平衡系數(shù),一方面可以提升先驗框回歸效果,進一步提升了目標檢測準確率,另一方面可以使損失更快地收斂,減少模型訓(xùn)練時間;最后通過添加特征增強模塊InRe,在一定程度上使檢測層獲得了更多的語義信息和位置信息,mAP 因此提升效果明顯。
實驗及研究結(jié)果表明,本文提出的算法較原YOLO v5s 算法的mAP 提升了8.55 個百分點,同時,小目標檢測效果也得到了改善,對復(fù)雜場景識別也有較高的魯棒能力。后續(xù)進一步研究中將側(cè)重模型剪枝等輕量化處理,在保證精度的前提下使之能更好的部署到移動設(shè)備當中。