張曉艷,向 勉,朱 黎,周丙濤,劉洪笑,段亞窮
(湖北民族大學(xué)智能科學(xué)與工程學(xué)院,湖北 恩施 445000)
太陽能作為一種清潔能源,比化石能源使用得更廣泛[1]。光伏產(chǎn)業(yè)經(jīng)過快速發(fā)展,裝機(jī)容量一直在持續(xù)增長,已經(jīng)成為我國可以參與國際競爭的新興產(chǎn)業(yè)[2]。由于光伏組件長時間在室外進(jìn)行工作,容易受到風(fēng)雨的侵蝕,火災(zāi)的發(fā)生,沙土的覆蓋,以及人影樹影的遮擋等影響,無法避免出現(xiàn)一些故障[3]。這些故障如果沒有被及時檢測到,所產(chǎn)生的損失無法估量,對光伏產(chǎn)業(yè)的發(fā)展不利。因此,采用有效方法檢測光伏故障并對其進(jìn)行分類是十分有必要的。
本文設(shè)計的基于Vision Transformer 的光伏異常紅外圖像檢測的方法,通過把原圖劃分成多個塊(patch)展平成序列,然后將其輸入進(jìn)原始Transformer 模型的編碼器Encoder 部分,最后接入一個全連接層,從而實(shí)現(xiàn)圖片故障類型的分類。該方法對光伏組件故障類型進(jìn)行8 種分類,包括電池故障、泵組故障、二極管故障、多級激光二極管故障、熱點(diǎn)故障、多熱點(diǎn)故障、脫機(jī)方式故障、遮蔽故障。其中數(shù)據(jù)集經(jīng)增強(qiáng)后圖片數(shù)量多達(dá)4 萬多張,能夠更好地訓(xùn)練模型,并且明顯地提高了其檢測的準(zhǔn)確率。
Vision Transformer 整體可以分為3個部分,分別是:Linear Projection of Flattened Patches(Embedding層)、Transformer Encoder(Transformer Encoder編碼器)、MLP Head(延時頭),其中Transformer Encoder、Patches Position Embedding 層屬于特征提取的部分,主要的作用是平均分塊處理輸入的圖片,在劃分圖片塊時是按照固定的區(qū)域大小進(jìn)行劃分的,再將這些已經(jīng)劃分好的圖片塊組合成序列,這一系列操作完成后,將其傳入到Transformer Encoder 區(qū)域內(nèi)進(jìn)行特征提取,利用自注意力機(jī)制,從而檢測每個圖片塊的重要程度。MLP Head 屬于分類部分,在分類區(qū)Vision Transformer 的工作是利用特征提取區(qū)域所提取的特征進(jìn)行分類,在序列中添加了一個額外的可學(xué)習(xí)的classification token,和其他所提取的特征進(jìn)行特征交互,融合其他圖片序列的特征,最后再進(jìn)行全連接分類。Vision Transformer 模型的整體框架如圖1所示。
圖1 Vision Tranformer的整體框架
本文所采用的模型是Vision Transformer_basepatch16,此模型的每個模塊數(shù)據(jù)的形狀是[16,16,3],通過映射得到一個向量,這個向量也就是卷積核個數(shù)token,其中token的長度是768。由圖2可知,將一張光伏組件的圖片按固定大小分成很多小的模塊,把輸入圖片(224×224)按照卷積核16×16大小的模塊進(jìn)行劃分,從而得到196個小模塊。然后就是把這個特征層組合成為序列,模型以非常簡單的方式進(jìn)行組合,具體方式是用高寬維度來進(jìn)行平鋪,[14,14,768]在高寬維度平鋪后,得到一個[196,768]的特征層。實(shí)驗(yàn)是直接通過一個卷積層來實(shí)現(xiàn)的。通過卷積[224,224,3]→[14,14,768],進(jìn)而把H和W兩個維度展開鋪平,[14,14,768]→[196,768],這個時候剛好變成了一個二維矩陣,這個二維矩陣適用于Vision Transformer 模型。最后,在輸入到Transformer Encoder 之前,已經(jīng)得到了具有圖片信息、位置信息以及分類信息的特征。
在經(jīng)過Embedding 層時得到shapeEmbedding 層是[197,768]之后,模型再把序列信息傳到Transformer Encoder 中進(jìn)行特征提取,這是Transformer模型不同于其他模型的Multi-head Self-attention 結(jié)構(gòu),利用自注意力機(jī)制,可以計算輸入圖片特征各部分的不同重要程度,也就是圖片各個部分的特征,所以在經(jīng)過Encoder 層之后除了卷積本身得到的一些特征,其中還包含一些Attention 的信息。其中使用縮放點(diǎn)積注意力機(jī)制的公式計算相似度,計算公式如式(1):
式中:A為注意力機(jī)制(Attention);S為softmax 函數(shù);Q為一組Query 集合組成的矩陣(查詢);K為一組Key 集合組成的矩陣(索引);V為一組Value集合組成的矩陣(內(nèi)容),具體的計算步驟:首先是計算不同輸入向量之間的得分,其次是把梯度穩(wěn)定性的分?jǐn)?shù)進(jìn)行標(biāo)準(zhǔn)化,然后再使用softmax函數(shù)把分?jǐn)?shù)轉(zhuǎn)化成概率,繼而計算加權(quán)矩陣,最后把全部計算過程統(tǒng)一整理成一個函數(shù)即為上式。
多頭注意力機(jī)制是Transformer的非常重要的組成部分,將多個單頭注意力機(jī)制連接起來即為多頭注意力機(jī)制,計算公式如式(2):
式中:H為head(頭);M為Multi-Head(多頭);C為Concat(聯(lián)結(jié));W為線性變化時的參數(shù)矩陣。具體的計算步驟:首先把Q、K、V3個參數(shù)進(jìn)行多次拆分,每組拆分的參數(shù)用于高維空間的不同的子空間中從而計算注意力權(quán)重。然后再進(jìn)行多次并行計算,最后統(tǒng)一整理所有子空間中關(guān)于注意力的信息。
構(gòu)建Transformer 的MLP Block,具體方法就是用全連接、GELU激活函數(shù)還有Dropout組成,比較重要的是,第一個全連接層會把輸入節(jié)點(diǎn)個數(shù)翻4倍即為[197,768]→[197,3072],第二個全連接層會還原回原節(jié)點(diǎn)個數(shù)即為[197,3072]→[197,768]。
在經(jīng)過MLP Head 層時,Vision Transformer 所處理的內(nèi)容是通過所提取到的特征進(jìn)行分類,也就是對本文所研究的8 種故障類型進(jìn)行分類,特征提取時需要在圖片序列上添加[class]token,并且提取出[class]token 所生成的對應(yīng)結(jié)果和其他的特征一起進(jìn)行特征交互,和其他圖片序列的特征進(jìn)行融合,然后用Multi-head Self-attention 結(jié)構(gòu)提取特征后的[class]token來進(jìn)行全連接分類。
本文數(shù)據(jù)集InfraredSolarModules 來源于ICLR 2020的AI地球科學(xué)研討會上,是一個機(jī)器學(xué)習(xí)數(shù)據(jù)集,包含在太陽能發(fā)電場中發(fā)現(xiàn)的不同異常的真實(shí)圖像。用于檢測異常的紅外太陽組件數(shù),該原始數(shù)據(jù)集未經(jīng)過數(shù)據(jù)增強(qiáng)之前由7217 張紅外圖像組成,每張圖像大小為24×40 像素,總共是有8 種故障類型,分別是cell、cell-Multi、Diode、Diode-Multi、Hot-Spot、Hot-Spot-Multi、Offline-Module、Shadowing。數(shù)據(jù)由“猛禽”地圖團(tuán)隊匯總,并由配備中波或長波紅外(3~13.5 m)和可見光譜成像系統(tǒng)的有人駕駛飛機(jī)和無人機(jī)系統(tǒng)收集。圖像分辨率為3.0~15.0 像素/cm。異常被裁剪到單個模塊,并被分成類。
實(shí)驗(yàn)環(huán)境是:所有的模型都基于Python 3.7 和Pytorch 1.11.1 框架,電腦采用Windows10 系統(tǒng),內(nèi)存為16 GB,CPU為AMD Ryzen 7 5800H with Radeon Graphics,GPU 為NVIDIA GeForce RTX 3050 Laptop GPU,使用CuDA11.3 和CuDNN8.2.1。實(shí)驗(yàn)具體模型參數(shù)設(shè)置如表1所示。
表1 Vit、Xception、VGG16模型參數(shù)
由于原數(shù)據(jù)集的樣本相對較少,而對于圖片分類的任務(wù)而言,需要大量樣本才具有準(zhǔn)確性,所以本文做了5種方式的數(shù)據(jù)增強(qiáng),分別是左右翻轉(zhuǎn)、上下翻轉(zhuǎn)、增強(qiáng)亮度、降低亮度,改變銳度,將數(shù)據(jù)集的圖片擴(kuò)充到了43302 張。運(yùn)用大量的數(shù)據(jù)集進(jìn)行訓(xùn)練,提高了模型的魯棒性和泛化能力。本文將34638張圖片劃分為訓(xùn)練集,8664張圖片劃分為測試集。其中1張圖片的數(shù)據(jù)增強(qiáng)效果如圖2所示。
圖2 數(shù)據(jù)增強(qiáng)示例
本文通過使用準(zhǔn)確率、精確度、召回率和F1來驗(yàn)證Vision Transformer 模型的性能優(yōu)于傳統(tǒng)模型Xception 和VGG16 模型,其中準(zhǔn)確率A、精確度P、召回率R和F1的計算公式見式(3)、(4)、(5)、(6):
式中:TP為有故障圖像的數(shù)量正確分類;TN為無故障圖像的數(shù)量正確分類;FP為有故障圖像的數(shù)量錯誤分類;FN為無故障圖像的數(shù)量錯誤分類。準(zhǔn)確性表示由本文提出的模型產(chǎn)生正確分類的概率。精度表示檢測到的故障圖像占所有故障圖像的比例。召回率表示被本文的模型正確檢測到的故障圖像的比例。F1分?jǐn)?shù)表示查準(zhǔn)率和查全率的調(diào)和均。對比圖3(a)、(b)、(c)、(d)可知,無論是準(zhǔn)確率、精確度、召回率還是F1,本文所提出的模型均明顯高于其他2個常規(guī)模型。由圖3 (a)可知,Vision Transformer(Vit)模型準(zhǔn)確率最高可達(dá)95.787%,高于Xception模型最高值11.9%,比VGG16模型增加了17.74%。由圖3(b)可知,Vision Transformer 模型精確率最高可達(dá)96.441%, 高于Xception 模型最高值12.125%,比VGG16 模型增加了18.242%。由圖3(c)可知,Vision Transformer 模型精確率最高可達(dá)95.462%,高于Xception 模型最高值11.805%,比VGG16模型增加了19.948%。由圖3(d)可知,Vision Transformer 模型精確率最高可達(dá)95.857%,高于Xception 模型最高值12.347%,比VGG16模型增加了19.524%。
圖3 Vit、Xception、VGG16對比圖
本文基于Vision Transformer 模型,設(shè)計了光伏組件紅外圖像故障檢測的方法,提高了檢測的準(zhǔn)確率。Vision Transformer 模型主要就是先將圖像進(jìn)行分塊處理,然后進(jìn)行圖像塊嵌入和位置編碼工作,最后利用Transformer 編碼器和MLP 進(jìn)行分類處理。適用于大規(guī)模數(shù)據(jù)集的光伏組件紅外圖像故障檢測。
光伏組件紅外圖像故障檢測的方法能夠促進(jìn)光伏產(chǎn)業(yè)的發(fā)展,應(yīng)用到實(shí)際生產(chǎn)之中,可以提高故障檢測的效率,在組件發(fā)生故障的時候及時進(jìn)行處理,減少由于故障帶來的損失,以確保光伏電站的正常運(yùn)行。本文所用方法受紅外圖像分辨率、攝像頭參數(shù)影響,還有很大的改進(jìn)的空間。