叢龍森,孫康寧,何志飛,劉廣臣
(1.魯東大學(xué)數(shù)學(xué)與統(tǒng)計(jì)科學(xué)學(xué)院,山東 煙臺(tái) 264025;2.魯東大學(xué)物理與光電工程學(xué)院)
太陽(yáng)能作為可再生能源,已經(jīng)成為了供人類(lèi)使用的主要能源之一。光伏發(fā)電是將太陽(yáng)能轉(zhuǎn)化為電能的有效形式。我國(guó)現(xiàn)有太陽(yáng)能光伏薄膜發(fā)電系統(tǒng)裝機(jī)量占全世界總裝機(jī)量約26.3%,裝機(jī)建設(shè)規(guī)模居世界第一。我國(guó)光伏設(shè)施多建在地勢(shì)復(fù)雜的山區(qū),檢修壓力十分突出,對(duì)于已裝光伏發(fā)電板的維護(hù)與故障檢測(cè),有著很大的智能運(yùn)維技術(shù)需求。
因此我國(guó)在智能識(shí)別光伏板臟污、異物、裂痕領(lǐng)域有待于深入探索。YOLO系列算法是指一個(gè)完全基于深度學(xué)習(xí)的one-stage 回歸類(lèi)方法,其中YOLOv5算法在采用原來(lái)YOLOv4 算法的基礎(chǔ)上又進(jìn)一步融進(jìn)了其他的算法特性與開(kāi)發(fā)思路,使其在運(yùn)算速度與精度上有了很大程度的提升。YOLO系列算法在生活領(lǐng)域的應(yīng)用十分廣泛,國(guó)內(nèi)科研中,閔燚,羅釗[1]、夏利民,鄧克捷[2]首先提出了基于融合特征視頻的關(guān)鍵幀提取,并結(jié)合了HSV,HOG 等系統(tǒng)理論,并獲得了重要的研究成果。王雪[3]提出了關(guān)于光伏故障的診斷方法。羅旭鴻,劉永春,楚國(guó)銘[4]等人提出了基于改進(jìn)YOLOv5 無(wú)人機(jī)圖像目標(biāo)檢測(cè)算法,減少了無(wú)人機(jī)圖像目標(biāo)檢測(cè)算法中的漏檢與誤檢。
本文針對(duì)YOLO系列算法對(duì)小目標(biāo)檢測(cè)精度低的問(wèn)題,利用EIoU Loss 函數(shù)改進(jìn)了傳統(tǒng)YOLOv5 算法的損失函數(shù),同時(shí)增加了一組小目標(biāo)檢測(cè)層并優(yōu)化YOLOv5 網(wǎng)絡(luò)結(jié)構(gòu)Head 部分,獲得有更大面積的語(yǔ)義信息和精確的位置信息的特征圖像,從而提高檢測(cè)性能。
本文的研究工作從實(shí)際出發(fā),建立精準(zhǔn)度較高的光伏表面故障智能化識(shí)別模型,對(duì)于光伏發(fā)電系統(tǒng)的維護(hù)提供了一定的技術(shù)輔助支持。
在復(fù)雜地形情況下,光伏板會(huì)遇到不同的故障問(wèn)題。通過(guò)視頻監(jiān)控對(duì)光伏板定期進(jìn)行視頻的采集和記錄,并對(duì)原始圖像進(jìn)行處理之后,對(duì)數(shù)據(jù)進(jìn)行預(yù)處理。
對(duì)光伏板上的常見(jiàn)故障進(jìn)行分類(lèi),可分為臟污、異物、裂痕。在地勢(shì)復(fù)雜的山區(qū),因?yàn)榭耧L(fēng)積雪的天氣因素,或者偶然的人為因素,光伏板表面容易產(chǎn)生臟污與異物如圖1、圖2所示。因?yàn)樵O(shè)備因素,原料因素,天氣因素,工藝參數(shù)因素,易產(chǎn)生光伏板表面裂痕,如圖3所示。
圖1 光伏板臟污
圖2 光伏板異物
圖3 光伏板裂痕
本文使用監(jiān)控視頻對(duì)某光伏發(fā)電廠的故障光伏板進(jìn)行視頻采集,獲取約30分鐘視頻。對(duì)于采集到的原始視頻利用幀間差分法提取視頻關(guān)鍵幀并進(jìn)行篩選分類(lèi),分為臟污、異物、裂痕類(lèi)型,并對(duì)圖像集利用標(biāo)記軟件標(biāo)注出故障具體位置與類(lèi)別。把Labelimg軟件中標(biāo)簽故障圖像集數(shù)據(jù)由xml格式文件直接輸出轉(zhuǎn)化為利用YOLOv5 算法自動(dòng)生成并可被直接用于讀取數(shù)據(jù)源的txt格式文本數(shù)據(jù)后,將標(biāo)簽故障圖像集內(nèi)容再重新按照比例按照7:2:1 比例劃分為訓(xùn)練集、驗(yàn)證集和測(cè)試集。
YOLOv5 是一種單階段目標(biāo)檢測(cè)算法,可以實(shí)現(xiàn)快速檢測(cè)和高精度。YOLOv5模型主要是被拆分為了下面這四個(gè)子部分:骨干網(wǎng)絡(luò)(Backbone)、頸部(Neck)、頭部(Head)和輸入端(input)。YOLO 將對(duì)回歸目標(biāo)區(qū)域的分布特征和對(duì)回歸區(qū)域目標(biāo)類(lèi)別的分布特點(diǎn)的預(yù)測(cè)的模型數(shù)據(jù),集成輸入到了另一個(gè)功能相對(duì)更單一的神經(jīng)網(wǎng)絡(luò)模型中,并通過(guò)直接輸入以整數(shù)張的圖片數(shù)據(jù)來(lái)作為在網(wǎng)絡(luò)輸出中的數(shù)據(jù)輸入,在網(wǎng)絡(luò)的輸出數(shù)據(jù)層可以直接地輸出被回歸到的目標(biāo)區(qū)域上的所有目標(biāo)類(lèi)別數(shù)據(jù)信息和目標(biāo)位置信息。輸入端具有自適應(yīng)圖像縮放和自適應(yīng)錨框計(jì)算操作功能。此外,我們還采用Mosaic 數(shù)據(jù)增強(qiáng)方法,通過(guò)對(duì)初始數(shù)據(jù)進(jìn)行隨機(jī)排列、隨機(jī)縮放拼接和隨機(jī)裁剪來(lái)豐富數(shù)據(jù)集,極大地提高了數(shù)據(jù)訓(xùn)練的精度和魯棒性。YOLOv5 的骨干網(wǎng)仍然是CSPDarkNet。但在骨干網(wǎng)絡(luò)Backbone 結(jié)構(gòu)的基礎(chǔ)上,又被相應(yīng)地增加了到了focus結(jié)構(gòu),它基本上是直接采用了切片式的操作的方式把原先幾個(gè)相對(duì)高分辨率的特征圖進(jìn)行拆分合并而成產(chǎn)生了更多個(gè)甚至更為低的分辨率的特征圖,減少掉了下一個(gè)采樣所能造成的信息質(zhì)量的損失,解決掉了目標(biāo)識(shí)別的能力的相對(duì)較弱的網(wǎng)絡(luò)瓶頸問(wèn)題,YOLOv5的網(wǎng)絡(luò)架構(gòu)組成可如圖4所示。
圖4 YOLOv5s網(wǎng)絡(luò)架構(gòu)
輸入端:在模型訓(xùn)練的階段,提出來(lái)了的一些模型改進(jìn)和思路,主要是包括如何利用翻轉(zhuǎn)、旋轉(zhuǎn)、裁剪、降噪等各種方法多方位的進(jìn)行數(shù)據(jù)的增強(qiáng)、自適應(yīng)錨框的計(jì)算、自適應(yīng)的圖片的縮放。
骨干網(wǎng)絡(luò)[7]:融合了其他檢測(cè)算法設(shè)計(jì)中使用的一些新技術(shù)想法,主要內(nèi)容包括:Focus結(jié)構(gòu)與CSP結(jié)構(gòu)。
Neck網(wǎng)絡(luò):目標(biāo)檢測(cè)網(wǎng)絡(luò)在Backbone層與最后的Head 輸出層之間往往同時(shí)也插入了其他的一些層,在YOLOv5中增加了FPN+PAN結(jié)構(gòu)。
Head 輸出層:該層中的預(yù)測(cè)錨框機(jī)制與YOLOv4大致相同,主要改進(jìn)了訓(xùn)練時(shí)的損失函數(shù)GIOU_Loss,以及對(duì)預(yù)測(cè)錨框篩選時(shí)用到的函數(shù)DIOU_nms做出一些相應(yīng)的改進(jìn),極大地提高了算法的檢測(cè)精度。
幀間差分法,是一個(gè)利用對(duì)運(yùn)動(dòng)視頻圖象中連續(xù)兩幀或三幀圖像作差分,通過(guò)計(jì)算得到檢測(cè)目標(biāo)的方法。但在監(jiān)控下,出現(xiàn)了異常的目標(biāo)運(yùn)動(dòng),在連續(xù)的幀數(shù)像素之間會(huì)有比較明顯的差別,兩幀相減,通過(guò)相對(duì)位置像素點(diǎn)差的絕對(duì)值,判別移動(dòng)是否超過(guò)了閾值點(diǎn),從而可以研究視頻或圖象序列的物體運(yùn)動(dòng)特點(diǎn)。在本項(xiàng)研究中,我們采用三幀差分法,并將圖像的降噪處理融合進(jìn)關(guān)鍵幀提取的算法當(dāng)中:
首先,設(shè)(x,y)為視頻的像素點(diǎn)坐標(biāo),fk(x,y)為第k幀時(shí)像素點(diǎn)坐標(biāo)(x,y)對(duì)應(yīng)的灰度值。
然后,將第k 幀的相鄰兩幀第(k-1,k+1)幀分別與第k幀進(jìn)行差分運(yùn)算,并求它們之間的交集:
接著,對(duì)獲取的灰度圖進(jìn)行二值化處理(閾值為T(mén)):
最后,對(duì)D1(x,y)降噪,得到掩碼圖像DN(x,y)。
YOLOv5s 的邊框損失[5-6]算法包含置信度概率損失、邊界框概率回歸損失和目標(biāo)類(lèi)別概率回歸損失共三個(gè)小部分,YOLOv5s 使用CIOU 的值來(lái)作為參數(shù)計(jì)算預(yù)測(cè)框和真實(shí)邊界框間的邊框損失。矩形框損失函數(shù)公式如下:
其中,IoU 為物體的預(yù)測(cè)框和物體的真實(shí)框的交集的面積與并集的面積之比,ρ2(b,bgt)代表計(jì)算兩個(gè)中心點(diǎn)間的歐氏距離,b,bgt分別代表預(yù)測(cè)框和真實(shí)框的中心點(diǎn),c分別代表包含了相鄰的預(yù)測(cè)真實(shí)框中心的和的相鄰兩個(gè)真實(shí)框之間的每一個(gè)最小的封閉區(qū)域之間的對(duì)角線距離。其中a是其中一個(gè)權(quán)重函數(shù),用來(lái)度量長(zhǎng)寬比框之間的幾何相似性,w為實(shí)際框面寬,h為實(shí)際框面高,gt為真實(shí)框,p為可預(yù)測(cè)框。
CIOU 考慮了邊界框的重疊面積,到中心點(diǎn)距離還有長(zhǎng)寬比,但長(zhǎng)寬比v仍是不精確的模糊值,CIOU也不能很好地平衡正、負(fù)樣本的問(wèn)題。因此,本文選用EIoU 作為矩形框回歸的Loss 函數(shù),EIoU Loss 函數(shù)的計(jì)算公式如下:
其中,EIoULoss 共包含三種損失:中心距離損失,寬高損失,重疊損失,前半段參數(shù)與CIoU 一致,Cw和Ch是覆蓋兩個(gè)邊界框的最小外框的長(zhǎng)度與寬度。EIoU 在CIoU基礎(chǔ)上將寬高比進(jìn)行了詳細(xì)的處理,解決了寬高比過(guò)于模糊的問(wèn)題,有效地提升了回歸框的精度。
使用BCEWithLogitsLoss損失函數(shù)計(jì)算YOLOv5s的分類(lèi)與置信度損失,該函數(shù)將sigmoid 與BCELoss集成,并將sigmoid 激活自動(dòng)映射到輸入前的區(qū)間(0,1),然后對(duì)目標(biāo)和輸出進(jìn)行BCELoss 處理。BCEWithLogitsLoss計(jì)算公式如下:
其中,N為樣本的個(gè)數(shù);xn為樣本的預(yù)測(cè)概率,ln為第n個(gè)樣本對(duì)應(yīng)的loss 由sigmoid 激活處理,yn為對(duì)應(yīng)樣本類(lèi)別的真實(shí)概率,取值0 或1,w代表樣本的真實(shí)類(lèi)別。sigmoid函數(shù)計(jì)算公式如下:
目前,YOLOv5 算法被廣泛應(yīng)用于交通、農(nóng)業(yè)、醫(yī)學(xué)等領(lǐng)域,如車(chē)輛與行人的檢測(cè),森林防火等。在光伏板表面智能化故障識(shí)別中,YOLOv5 算法幾無(wú)應(yīng)用前例。
本次實(shí)驗(yàn)的具體運(yùn)行開(kāi)發(fā)環(huán)境信息如下:CPU 配置為Intel i7-11800H,GPU型號(hào)為NVIDIA RTX 3060,內(nèi)存為16 GB,操作系統(tǒng)為Windows10,安裝CUDA11.2、cuDNN 8.0.5 與tensorrt7.2.2.3 庫(kù)文件,開(kāi)發(fā)語(yǔ)言為Python3.8,Pytorch1.8.0框架。
在實(shí)驗(yàn)訓(xùn)練中,首先收集原始數(shù)據(jù)并進(jìn)行數(shù)據(jù)預(yù)處理[8],利用Labelimg 軟件將圖片中的異物轉(zhuǎn)為標(biāo)簽,被標(biāo)簽選中的異物將以坐標(biāo)的形式進(jìn)行數(shù)據(jù)量化處理。其次,根據(jù)光伏數(shù)據(jù)集的特性,選取YOLOv5 目標(biāo)檢測(cè)算法作為本文的視頻檢測(cè)基礎(chǔ)算法。然后,基于傳統(tǒng)的YOLOv5 算法,對(duì)目標(biāo)檢測(cè)算法進(jìn)行多尺度優(yōu)化,利用改進(jìn)后的YOLOv5 算法訓(xùn)練優(yōu)化后的數(shù)據(jù)集。最后,基于YOLOv5算法建立故障預(yù)測(cè)模型,經(jīng)檢驗(yàn),模型mAP、精度等重要指標(biāo)均超過(guò)YOLOv4 目標(biāo)檢測(cè)算法,目標(biāo)檢測(cè)效果良好,算法的實(shí)際應(yīng)用性強(qiáng)。基于YOLOv5s 算法的光伏表面故障智能化識(shí)別模型可投入實(shí)際應(yīng)用。
經(jīng)YOLOv5s 算法訓(xùn)練后的數(shù)據(jù)集與損失函數(shù)如圖5所示,mAP隨訓(xùn)練次數(shù)的變化如圖6所示。
圖5 數(shù)據(jù)集與損失函數(shù)的關(guān)系示意圖
圖6 mAP隨訓(xùn)練次數(shù)的關(guān)系示意圖
圖7 精準(zhǔn)率-召回率關(guān)系圖
在模型的訓(xùn)練過(guò)程中,由于模型數(shù)據(jù)大小適中,為避免使用過(guò)大的Bach-size 會(huì)降低模型訓(xùn)練時(shí)的隨機(jī)性,導(dǎo)致訓(xùn)練模型數(shù)據(jù)陷入了局部最優(yōu)化的情況,所以將Bach-size 調(diào)整為8 來(lái)增強(qiáng)模型的泛化性。設(shè)網(wǎng)絡(luò)訓(xùn)練的初始學(xué)習(xí)率為0.01,權(quán)重衰減設(shè)置為0.0005,迭代次數(shù)為300。采用隨機(jī)梯度下降優(yōu)化器設(shè)定動(dòng)量因子為0.937,其余參數(shù)根據(jù)YOLOv5團(tuán)隊(duì)開(kāi)發(fā)的超參數(shù)文件YOLOv5s.yaml默認(rèn)。
選擇的目標(biāo)檢測(cè)模型的參數(shù)評(píng)估指標(biāo)主要有mAP值,精度(Precision)和召回率(Recall)。一般訓(xùn)練結(jié)果主要觀察Precision,Recall 波動(dòng)情況,然后觀察mAP@0.5:0.95 評(píng)價(jià)訓(xùn)練結(jié)果。
⑴Precision:精確率,指正確預(yù)測(cè)的結(jié)果數(shù)占所有預(yù)測(cè)為正樣本的比率,其公式如下:
其中,TP 指將正類(lèi)預(yù)測(cè)為正類(lèi)數(shù)目,F(xiàn)P 指將負(fù)類(lèi)預(yù)測(cè)為正類(lèi)數(shù)目。
⑵Recall:召回率,指預(yù)測(cè)正確的結(jié)果數(shù)占真實(shí)結(jié)果總數(shù)的比例,其公式如下:
其中,F(xiàn)N指將正類(lèi)預(yù)測(cè)為負(fù)類(lèi)數(shù)目。
⑶mAP:所有數(shù)據(jù)的所有種類(lèi)的平均精度的平均值。其計(jì)算公式如下:
其中,AP指單類(lèi)別精度均值,而mAP@.5:.95表示在兩個(gè)不同IoU 閾值下(從0.5 到0.95,步長(zhǎng)0.05)上的平均mAP。
⑷平均精度(Average Precision,AP)
將召回率作為x軸,精準(zhǔn)率為y軸,得到的精準(zhǔn)率-召回率曲線,一般情況下的P-R 曲線是向右上方凸起的一條曲線,檢測(cè)性能在凸起點(diǎn)處達(dá)到平衡狀態(tài)。對(duì)于單一的目標(biāo)類(lèi)別檢測(cè),AP 的計(jì)算數(shù)值為P-R 曲線下的面積和。
⑸IoU:交并比,指的是真實(shí)框與預(yù)測(cè)框的交集面積占兩者總面積的一個(gè)比值,IoU 越大說(shuō)明檢測(cè)框的效果越好,通常認(rèn)為IoU>0.9,檢測(cè)效果良好。
本文為了量化基于YOLOv5s 算法的實(shí)時(shí)檢測(cè)光伏發(fā)電板故障模型的性能表現(xiàn),我們將算法在光伏故障數(shù)據(jù)集上進(jìn)行訓(xùn)練和測(cè)試。經(jīng)過(guò)訓(xùn)練后,本文中模型的精度為99.2%,召回率為98.4%,Map@0.5:0.95 為66.2%,3個(gè)指標(biāo)均高于YOLOv4檢測(cè)算法。
針對(duì)基于YOLOv5s 算法的實(shí)時(shí)檢測(cè)光伏發(fā)電板故障模型訓(xùn)練結(jié)果如表1所示。
表1 YOLO系列算法在光伏發(fā)電板故障數(shù)據(jù)集上的測(cè)試結(jié)果
檢測(cè)效果展示(如圖8、圖9):
圖8 YOLOv5模型檢測(cè)前故障圖像
圖9 YOLOv5模型檢測(cè)后的故障圖像
在檢測(cè)光伏發(fā)電版故障類(lèi)型為異物的情況下,交并比(IoU)的測(cè)試結(jié)果在0.80 以上,檢測(cè)效果良好,滿足未來(lái)實(shí)際應(yīng)用需求。
本文提出了基于YOLOv5s 對(duì)光伏發(fā)電板故障的實(shí)時(shí)監(jiān)測(cè)模型,針對(duì)光伏板上的目標(biāo)物體尺寸不一致、種類(lèi)繁多、易受背景干擾等問(wèn)題,首先對(duì)目標(biāo)檢測(cè)網(wǎng)絡(luò)架構(gòu)中的骨干網(wǎng)絡(luò)、Neck 網(wǎng)絡(luò)進(jìn)行了改進(jìn),將YOLOv5s 中未使用的淺層特征圖與現(xiàn)有的深層特征圖進(jìn)行融合,增加小目標(biāo)檢測(cè)層,對(duì)小目標(biāo)進(jìn)行針對(duì)性檢測(cè),有效減少語(yǔ)義與位置信息的丟失,提高了目標(biāo)識(shí)別的有效性。然后對(duì)損失函數(shù)進(jìn)行改進(jìn),引入EIoU 函數(shù),在降低負(fù)樣本權(quán)重、提高正樣本權(quán)重的同時(shí)提升回歸框的準(zhǔn)確性。最后,將YOLOv4與YOLOv5算法進(jìn)行對(duì)比實(shí)驗(yàn),證明了本文所提算法的精度在VOOC2007光伏板數(shù)據(jù)集上同其他算法相比具有一定的優(yōu)勢(shì),既實(shí)現(xiàn)了對(duì)光伏發(fā)電板快速檢測(cè),又兼顧了較高的精度,對(duì)于光伏發(fā)電板的實(shí)時(shí)監(jiān)測(cè)具有重要的現(xiàn)實(shí)意義。然而,由于網(wǎng)絡(luò)結(jié)構(gòu)的更改在一定程度上增加了模型訓(xùn)練后推理的時(shí)間成本,因此后續(xù)工作應(yīng)重點(diǎn)放在優(yōu)化模型參數(shù)上,在保證速度的同時(shí)讓其更好地應(yīng)用于不同條件下的環(huán)境。