那峙雄,樊 濤,孫 濤,謝祥穎3,,來廣志
1.國網(wǎng)電子商務(wù)有限公司,北京100053
2.國家電網(wǎng)有限公司,北京100031
3.北京航空航天大學(xué),北京100191
隨著我國“碳達峰、碳中和”的政策不斷推進,清潔能源的發(fā)展迎來了快速增長。光伏發(fā)電與傳統(tǒng)發(fā)電技術(shù)相比,更加靈活且環(huán)保,尤其在西北地區(qū)地廣人稀,光照條件充足,給光伏發(fā)電的推廣應(yīng)用提供了良好的環(huán)境。為提高光伏電池的發(fā)電能力,在實際應(yīng)用中,常將一定數(shù)量的單片光伏電池以串、并聯(lián)的方式進行組合,形成光伏組件。然而光伏組件大規(guī)模生產(chǎn)過程中易產(chǎn)生隱裂,在長期發(fā)電過程中,組件隱裂會對發(fā)電性能造成影響,從而降低組件的使用壽命。因此在生產(chǎn)過程中對光伏組件進行隱裂檢測是提高光伏產(chǎn)品質(zhì)量的關(guān)鍵環(huán)節(jié)之一。常用的隱裂檢測方法依靠于電致發(fā)光(electroluminescence,EL)配合人眼觀測,EL 圖像能夠顯示組件表面的細微缺陷,但是這種方法需要投入大量人力,并且具有一定主觀性。隨著光伏發(fā)電產(chǎn)業(yè)規(guī)模的擴大,人工檢測方法逐漸難以匹配生產(chǎn)速度和需求,各大光伏組件生產(chǎn)廠商也急需對光伏隱裂檢測進行自動化升級。
如今以深度學(xué)習(xí)為代表的人工智能技術(shù)快速發(fā)展,計算機視覺中的圖像處理技術(shù)已經(jīng)應(yīng)用在各個領(lǐng)域,在電池片生產(chǎn)的隱裂檢測階段引入深度學(xué)習(xí)手段能夠降低人力成本,提高生產(chǎn)效率?;谏疃葘W(xué)習(xí)的檢測模型需要大規(guī)模數(shù)據(jù)的支持,少量的數(shù)據(jù)提供的經(jīng)驗十分有限,可能導(dǎo)致模型訓(xùn)練不充分導(dǎo)致過擬合現(xiàn)象,降低檢測精度。但是在實際生產(chǎn)線中,含有隱裂的樣本較少,收集并標(biāo)注組件圖像需要投入大量的人力成本,工業(yè)生產(chǎn)場景下不易滿足基于大規(guī)模數(shù)據(jù)集的深度模型訓(xùn)練條件。另一方面,光伏產(chǎn)品更新迭代迅速,不同產(chǎn)品外觀結(jié)構(gòu)均有所差異,已有模型未必適合新型產(chǎn)品,而針對每批產(chǎn)品重復(fù)訓(xùn)練模型也會浪費大部分歷史經(jīng)驗。
針對上述應(yīng)用需求,本文面向光伏單晶組件的隱裂檢測問題,提出了多損失融合的小樣本光伏組件隱裂檢測算法。在特征提取網(wǎng)絡(luò)引入了Transformer 的多頭注意力機制,針對數(shù)據(jù)集的特點設(shè)計了隱式分類損失衡量方法,并在訓(xùn)練階段與標(biāo)簽平滑后的交叉熵?fù)p失、三元組損失相融合,從不同角度優(yōu)化特征提取從而豐富隱裂語義信息。此外,本文通過衡量待測特征與少量樣本參照特征間的相似度完成少量樣本支持下的隱裂檢測。該方法可以使模型適應(yīng)訓(xùn)練集組件批次和隱裂的多樣性,減少對無關(guān)因素的關(guān)注,提取分辨隱裂的關(guān)鍵特征。本文的研究內(nèi)容可概括為以下三點:
(1)構(gòu)建了基于小樣本學(xué)習(xí)的隱裂檢測框架,能夠減少樣本收集和標(biāo)記的開銷,緩解缺陷樣本稀少的問題。
(2)針對電池片上隱裂分布不規(guī)則的問題,引入了基于特征的自注意力機制,增強模型的表達能力,保證模型在不同產(chǎn)品間的魯棒性。
(3)設(shè)計了多損失融合約束模型訓(xùn)練的策略,使得模型從不同類型的電池片中提取隱裂的共性特征,充分利用歷史采集數(shù)據(jù)。
基于光伏組件公開數(shù)據(jù)集與產(chǎn)線數(shù)據(jù)集,本文方法的實驗結(jié)果能夠優(yōu)于其他小樣本學(xué)習(xí)方法,驗證了本文方法的有效性。
在光伏組件隱裂檢測問題中,由于隱裂細微且出現(xiàn)不規(guī)律,采用人工判別需要耗費大量的人力。利用計算機視覺技術(shù)實現(xiàn)隱裂自動檢測能夠有效降低人力開銷,提高檢測效率。實現(xiàn)隱裂智能檢測的方法主要包括傳統(tǒng)的圖像處理方法和基于深度學(xué)習(xí)的方法兩方面。傳統(tǒng)圖像處理方法中手工設(shè)計的特征靈活性較低,對數(shù)據(jù)集的特點依賴性較強。隨著人工智能深度學(xué)習(xí)的進步,基于深度學(xué)習(xí)的檢測和分類方法在光伏電池隱裂檢測領(lǐng)域也得到了應(yīng)用,相比于傳統(tǒng)的特征提取方法能夠取得更高的檢測準(zhǔn)確率。Deitsch 等將VGG19(visual geometry group)的兩個全連接層替換為全局平均池化,通過最小化均方誤差構(gòu)建了基于深度卷積神經(jīng)網(wǎng)絡(luò)的隱裂檢測模型。Chen 等提出了一種兩階段的深度檢測方法,首先將原始EL 圖像按大小相等的網(wǎng)格切分為幾個局部,利用基于HAAR 小波特征和Canny 邊緣特征的方法提取可能存在隱裂的候選區(qū)域,將上述候選區(qū)域作為第二階段的輸入,通過卷積神經(jīng)網(wǎng)絡(luò)進行監(jiān)督訓(xùn)練。Zhang 等利用深層神經(jīng)網(wǎng)絡(luò)可以學(xué)習(xí)更多的可轉(zhuǎn)移特征以實現(xiàn)域自適應(yīng),將遷移學(xué)習(xí)引入到了隱裂檢測任務(wù)中,實現(xiàn)單晶組件的隱裂檢測任務(wù)到多晶組件的遷移。Ji 等提出了一種自標(biāo)記算法對EL 圖像進行二分,首先通過聚類頭給圖像設(shè)初始標(biāo)簽,并以ResNet50為基礎(chǔ)架構(gòu)建立隨機初始化的表征學(xué)習(xí)模型,然后通過Sinkhorn-Knopp 算法衡量圖像和標(biāo)簽之間的距離,進而給圖像分配標(biāo)簽,實現(xiàn)聚類。該方法能夠充分利用大量未標(biāo)記數(shù)據(jù),減少人工標(biāo)記的成本。
使用深度學(xué)習(xí)技術(shù)能夠檢測光伏組件的隱裂缺陷,然而深度模型對數(shù)據(jù)量要求較高,在少量樣本上易產(chǎn)生過擬合問題。在工業(yè)、醫(yī)藥等領(lǐng)域,收集并標(biāo)記大量樣本比較困難,耗時耗力,需求促進發(fā)展,近年來小樣本學(xué)習(xí)方法支持在缺乏大量數(shù)據(jù)訓(xùn)練的基礎(chǔ)上實現(xiàn)對新物體歸類,在有限有監(jiān)督數(shù)據(jù)集上仍能取得良好的效果。
一些小樣本學(xué)習(xí)方法還提出了訓(xùn)練模式、網(wǎng)絡(luò)結(jié)構(gòu)和優(yōu)化方法等方面的解決方案。Snell 等提出了原型網(wǎng)絡(luò),通過少量的幾個樣本找到相應(yīng)類別在特征空間的原型中心,計算待預(yù)測樣本到每一類原型的歐氏距離,在訓(xùn)練過程中最大化正確識別的概率。Sung 等提出了一種利用卷積神經(jīng)網(wǎng)絡(luò)預(yù)測特征間相似度的方法,通過輸出相似性得分進行分類。另一方面,歷史經(jīng)驗也能夠指導(dǎo)當(dāng)前任務(wù)的學(xué)習(xí),彌補訓(xùn)練數(shù)據(jù)稀少的問題。如Ye 等設(shè)計了一種通過集合自適應(yīng)方法對特征提取模型進行適配的方法,學(xué)習(xí)任務(wù)間的空間映射,利用已有模型提取與目標(biāo)任務(wù)相關(guān)的特征,提高在目標(biāo)任務(wù)上的準(zhǔn)確率。基于元學(xué)習(xí)的方法在小樣本問題上也有豐富的應(yīng)用,如Finn 等提出了一種跨任務(wù)、不受任務(wù)影響的初始化方法,學(xué)習(xí)一個較好的初始化權(quán)重,使得模型能快速適應(yīng)當(dāng)前任務(wù),在小規(guī)模樣本上迅速收斂并取得較好的效果。Ravi 等基于長短期記憶網(wǎng)絡(luò)(long short-term memory,LSTM)模擬梯度下降規(guī)則,學(xué)習(xí)一個易于后續(xù)微調(diào)的初始化參數(shù),自動生成搜索方向和步長,解決了傳統(tǒng)梯度下降的優(yōu)化算法在面臨小樣本時失效的問題。Ren 等在處理基于元學(xué)習(xí)的小樣本分類任務(wù)時,利用了未標(biāo)記的數(shù)據(jù),對原型網(wǎng)絡(luò)進行了半監(jiān)督擴展,利用已有類別的原型特征對未標(biāo)記數(shù)據(jù)進行預(yù)測,根據(jù)待測數(shù)據(jù)屬于各類別的概率更新每一類的原型,減少標(biāo)記成本。
上述小樣本學(xué)習(xí)方法能夠有效緩解樣本稀缺的問題,但是在數(shù)據(jù)集同類樣本的多樣性方面還有待研究。針對多種類型的電池片和隱裂,本文提出基于小樣本的多損失融合隱裂檢測方法,借助小樣本學(xué)習(xí)的優(yōu)勢,降低對訓(xùn)練樣本的依賴性,實現(xiàn)對新型光伏產(chǎn)品隱裂檢測任務(wù)的快速適配。
在光伏組件工業(yè)生產(chǎn)線上,能夠獲取的有隱裂數(shù)據(jù)量受限,從少量有標(biāo)簽樣本入手進行研究更貼合實際應(yīng)用需求。在進行小樣本分類時,共個類別,每類給出個已知標(biāo)簽的樣本,且值比較小,則可稱該類問題為-way-shot 的小樣本問題。進行基于少量樣本的分類時,共有×張已確定標(biāo)簽的圖像作為對照樣本,判斷待預(yù)測圖像屬于上述類中的哪一類。如圖1 所示,本文主要任務(wù)是判斷光伏組件上是否含有圈內(nèi)標(biāo)記所示的微小隱裂,可將圖像分為有隱裂和無隱裂兩類,構(gòu)造2-way-shot小樣本檢測問題,以判斷組件是否含有隱裂。
圖1 有隱裂電池片F(xiàn)ig.1 Cracked cells
本文中多損失融合的小樣本隱裂檢測算法流程如圖2 所示,本文各圖中的表示圖像批處理大小。首先對即將輸入到特征提取網(wǎng)絡(luò)的圖像進行預(yù)處理。以區(qū)分有無隱裂為主分類,在訓(xùn)練階段通過將模型的多頭注意力機制和多損失函數(shù)優(yōu)化配合,促使模型從多樣化組件數(shù)據(jù)中關(guān)注隱裂信息,且允許同屬隱裂的類型中仍可能包含多種子分類。進而有益于利用特征間相似度對未知樣本進行預(yù)測,實現(xiàn)小樣本支持下的隱裂檢測。
圖2 隱裂檢測算法流程圖Fig.2 Workflow of micro-cracks detection algorithm
為了將圖像映射到特征空間中,提取圖像蘊含的語義信息,本文首先基于歷史數(shù)據(jù)集提供的基類訓(xùn)練得到特征提取網(wǎng)絡(luò)。為增強模型的信息提取、表達能力,本文選擇了多層骨干網(wǎng)絡(luò),并引入多頭注意力機制使圖像特征提取網(wǎng)絡(luò)在多樣化的數(shù)據(jù)中側(cè)重于獲取能夠分辨有無隱裂的特征。
在殘差網(wǎng)絡(luò)出現(xiàn)之前,人們希望通過增加神經(jīng)網(wǎng)絡(luò)層數(shù)提取更豐富的特征,但是實驗證實,逐漸加深神經(jīng)網(wǎng)絡(luò),模型準(zhǔn)確率會先升高進而達到飽和,在此基礎(chǔ)上繼續(xù)增加層數(shù)反而會導(dǎo)致準(zhǔn)確率下降。這是由于在反向傳播過程中,較小的權(quán)值經(jīng)過多層傳播會產(chǎn)生梯度消失現(xiàn)象。在一個層數(shù)比較少且準(zhǔn)確率達到飽和的網(wǎng)絡(luò)后附加多個恒等映射層,可實現(xiàn)增加網(wǎng)絡(luò)深度,He 等以此為靈感,設(shè)計引入跳躍(shortcut)結(jié)構(gòu)的殘差網(wǎng)絡(luò),如圖3 所示,解決了由于網(wǎng)絡(luò)層數(shù)增加導(dǎo)致的梯度消失問題。為了通過增加網(wǎng)絡(luò)層數(shù)進而增強模型的信息提取能力,本文選用殘差網(wǎng)絡(luò)ResNet50作為特征提取網(wǎng)絡(luò)的骨干網(wǎng)絡(luò)。
圖3 殘差結(jié)構(gòu)示意圖Fig.3 Diagram of residual structure
光伏組件產(chǎn)品不斷更新?lián)Q代,它們的外觀和拍攝條件均存在差異,而隱裂檢測任務(wù)的關(guān)注點在于判斷是否有隱裂。因此本文通過在特征提取網(wǎng)絡(luò)中引入注意力機制來降低不同產(chǎn)品間無關(guān)因素的干擾,該注意力機制通過兩個串聯(lián)的注意力計算模塊(Transformer block)進行構(gòu)建。在損失函數(shù)的約束下,給骨干網(wǎng)絡(luò)的Layer3 輸出的全局特征圖附加側(cè)重于隱裂識別的注意力,增強模型對隱裂的關(guān)注度。上述模塊的結(jié)構(gòu)如圖4 所示,該模塊輸出的各元素能夠擁有全局信息,并且通過不同的頭獲取多層面的語義信息,通過前饋層(feed forward)對輸出向量進行特征轉(zhuǎn)換,豐富模型的表達能力。
圖4 注意力計算模塊示意圖Fig.4 Structure of Transformer block
為滿足注意力計算模塊的工作特性,首先對特征圖進行序列化,其流程如圖5 所示。維度調(diào)整后,將每個位置看作一塊,經(jīng)過注意力機制模塊后恢復(fù)為原特征圖大小,下采樣并升維后作為特征提取的補充部分,共同參與特征表示。
圖5 特征圖序列化Fig.5 Feature graph serialization
該損失是約束模型訓(xùn)練的最基礎(chǔ)的損失,通過交叉熵?fù)p失衡量由全連接層實現(xiàn)的分類器的輸出,其計算方法可描述為式(1),其中的q在與真實標(biāo)簽對應(yīng)時取1,否則取0。在本文的設(shè)計中也可用于對新產(chǎn)品是否含有隱裂進行直接預(yù)測,但考慮到歷史產(chǎn)品和新產(chǎn)品間差異較大,可將其作為參照預(yù)測。
另一方面,為了避免特征提取網(wǎng)絡(luò)對當(dāng)前任務(wù)產(chǎn)生過擬合而不適應(yīng)新的產(chǎn)品檢測任務(wù)或受到標(biāo)記不準(zhǔn)確的標(biāo)簽影響,在計算上述交叉熵?fù)p失時,引入了標(biāo)簽平滑策略,將待預(yù)測圖像屬于另一類的可能性也納入衡量范圍內(nèi),對交叉熵?fù)p失中的值q進行如式(2)所示的修改。
引入三元組損失的目的在于拉近特征空間中同一類的距離,推開不同類之間的距離,使同一類的特征形成聚類,該損失的衡量方式可描述為式(3),其中作為錨點,為與同一類的正樣本,為不同類的負(fù)樣本,表示特征間的歐式距離,本文設(shè)置該損失的邊距()值為0.3。在本文中三元組損失的應(yīng)用可以促使模型將有隱裂的不同產(chǎn)品拉近,相同產(chǎn)品中有無隱裂的兩類拉開。在基于小樣本進行預(yù)測時,有助于根據(jù)少量參照樣本將待預(yù)測圖像進行歸類。
由于訓(xùn)練集中有多種類型的組件,且不同類型產(chǎn)品和隱裂間仍具有一定差異,本文提出了隱式分類的設(shè)計,以是否有隱裂作為主分類,每類對應(yīng)個子分類,在本文將設(shè)置為3,則隱式分類器的輸出對應(yīng)6 個預(yù)測值,且經(jīng)過圖像輸入后可以產(chǎn)生6 個特征向量。在模型訓(xùn)練階段將是否有隱裂看作兩個子分類任務(wù),分別以有隱裂樣本為正樣本和以無隱裂樣本為正樣本,分別對應(yīng)分類器輸出的3 個值。如式(4)所示,在任意一個子分類任務(wù)中借鑒標(biāo)簽平滑技術(shù)的特點,對預(yù)測最大值給予較高權(quán)重,并與其他預(yù)測值均分剩余的權(quán)重1-,計算屬于該主類的所有子分類的分?jǐn)?shù)總和。
將該總和視為預(yù)測屬于該主類的總分進行Softmax歸一化,把分?jǐn)?shù)轉(zhuǎn)換到0~1 范圍內(nèi)以便計算如式(5)所示的二分類交叉熵?fù)p失,最后將兩個子分類任務(wù)的二分類交叉熵?fù)p失進行加和以代表該隱式分類損失。在訓(xùn)練過程中,該隱式分類損失能夠與注意力機制配合,促進模型提取有無隱裂的分辨特征,在同一類特征下仍可包含子分類,貼合訓(xùn)練集數(shù)據(jù)分布特點。
將上述三部分損失按權(quán)結(jié)合用于特征提取網(wǎng)絡(luò)反向傳播優(yōu)化參數(shù)。本文特征提取網(wǎng)絡(luò)輸出的特征向量可表示為,其維度為1×2 048。將有無隱裂兩類參照集中的樣本映射為特征向量f(=1,2,…,2)??紤]到組件隱裂也有不同的形狀、分布特點,同一主分類內(nèi)特征可能有細微差異,本文選擇保留每類的個參照特征,不對同一類特征向量進行壓縮,即取平均值,則在預(yù)測階段可與共2×個特征進行比較。如式(6)所示,本文采用余弦相似度衡量待測特征與各參照特征間的相似度,相似度值越大說明圖像與對應(yīng)類別越相似,進而如式(7)所示,可實現(xiàn)有限參照樣本下的單晶組件隱裂檢測。
上述多損失結(jié)合策略不僅可以從不同角度與注意力機制配合,約束模型從多樣化數(shù)據(jù)中提取有利于分辨隱裂的特征,還可以給預(yù)測階段帶來更多的判別依據(jù)。在更困難的場景下,比如要完成在沒有任何新產(chǎn)品樣本作為參照時的隱裂檢測任務(wù)時,本文方法利用直接預(yù)測得分,并衡量待測特征與歷史訓(xùn)練集提取的多個隱式分類對應(yīng)的特征間的相似度。在具體實現(xiàn)中,首先對相似度的值進行放大,再對其進行Softmax 歸一化,以增大相似度間差異,將相似度轉(zhuǎn)化為預(yù)測得分,進而可將相似度對應(yīng)得分與直接預(yù)測得分按權(quán)結(jié)合,緩解參照樣本缺失的問題。
本實驗采用兩部分?jǐn)?shù)據(jù)集,分別是公開隱裂數(shù)據(jù)集和某工業(yè)生產(chǎn)線提供的隱裂數(shù)據(jù)集。
公開數(shù)據(jù)集中包含多種類型的電池片產(chǎn)品,樣本的標(biāo)簽為浮點數(shù),表示每個樣本含有隱裂的可能性大小,本文提取單晶組件的標(biāo)簽確定為0 或1 的電池片樣本用于實驗,共901 張圖像,其中含有隱裂的圖像有313 張,不含隱裂的有588 張。工業(yè)生產(chǎn)線采集的隱裂數(shù)據(jù)集共1 797 張單晶電池片圖像,有隱裂的圖像數(shù)量較少,僅149 張,無隱裂的共有1 648 張。
利用上述兩部分?jǐn)?shù)據(jù)集構(gòu)建小樣本學(xué)習(xí)條件,選取歷史電池片數(shù)據(jù)集和新型待測電池片數(shù)據(jù)集??紤]到公開數(shù)據(jù)集中電池片類型豐富,且有隱裂樣本的規(guī)模相對大一些,將該數(shù)據(jù)集設(shè)置為訓(xùn)練集,經(jīng)過圖像預(yù)處理后用于訓(xùn)練特征提取網(wǎng)絡(luò)。為更貼合實際應(yīng)用場景,來自產(chǎn)線的數(shù)據(jù)集則作為測試集,提供參照樣本集和待預(yù)測的查詢集。
本文實驗基于深度學(xué)習(xí)框架PyTorch 和GeForce GTX 1080Ti 型顯卡,將圖像尺寸統(tǒng)一設(shè)置為224×224。在構(gòu)建特征提取網(wǎng)絡(luò)的階段采用網(wǎng)絡(luò)公開單晶電池片隱裂數(shù)據(jù)集,將數(shù)據(jù)集中901 張單晶電池片圖像打亂后按8∶2 劃分為訓(xùn)練集和驗證集兩部分。經(jīng)數(shù)據(jù)集劃分后,驗證集共包含181 張圖像,其中含有隱裂的有53 張,不含隱裂的有128 張,可見驗證數(shù)據(jù)中兩類樣本的分布較為不平衡。
訓(xùn)練過程中以0.5 的概率對圖像進行水平翻轉(zhuǎn)和垂直翻轉(zhuǎn)以擴增數(shù)據(jù),設(shè)置批處理大小為32,初始學(xué)習(xí)率為0.003,并采用隨機梯度下降算法(stochastic gradient descent,SGD)更新網(wǎng)絡(luò)參數(shù),SGD 的動量和權(quán)重衰減分別設(shè)置為0.9 和0.000 5。
大部分小樣本學(xué)習(xí)方法以構(gòu)造小樣本任務(wù)為基礎(chǔ)進行模型訓(xùn)練和測試,一個-way-shot小樣本分類的子任務(wù)中包含個類別,每類提供個參照樣本。為統(tǒng)一各實驗的測試標(biāo)準(zhǔn),基于測試集隨機構(gòu)造100 個小樣本子任務(wù)以計算評估指標(biāo)均值,每個子任務(wù)中有無隱裂的兩類產(chǎn)品均提供5 張參照樣本,15 張待預(yù)測樣本。
本文的任務(wù)相對更側(cè)重于識別出有隱裂的產(chǎn)品,以有隱裂為正樣本,則在衡量模型對有隱裂類別的識別效果時,(true positive)表示預(yù)測結(jié)果為有隱裂且與實際標(biāo)簽一致的真正例,(true negative)表示預(yù)測為無隱裂且與實際標(biāo)簽一致的真反例,(false positive)表示預(yù)測為有隱裂而實際為無隱裂的假正例,(false negative)則表示預(yù)測為無隱裂而實際為有隱裂的假反例。
如式(8)所示,直接采用準(zhǔn)確率()評估模型在驗證集上預(yù)測效果一定程度上會受到樣本數(shù)量多的一類的預(yù)測結(jié)果影響,為避免產(chǎn)生無隱裂的數(shù)據(jù)預(yù)測結(jié)果好而掩蓋了對有隱裂的數(shù)據(jù)預(yù)測能力較弱的問題,本實驗選擇加入召回率()和精確率()衡量模型的預(yù)測效果,如式(9)和式(10)所示,利用召回率衡量模型對有隱裂類別的識別能力,利用精確率衡量對有隱裂類別的預(yù)測準(zhǔn)確程度。最后,采用式(11)計算召回率和精確率的調(diào)和平均數(shù)(1-score),綜合判斷模型的隱裂識別能力。
特征提取網(wǎng)絡(luò)在驗證集上的預(yù)測準(zhǔn)確率可達92.27%,其中對有隱裂類型的預(yù)測召回率為84.91%,精確率為88.26%,1-score 為0.865,在不同類型損失組合下訓(xùn)練特征提取網(wǎng)絡(luò)的損失收斂曲線如圖6所示。直接應(yīng)用在測試集上,取特征提取網(wǎng)絡(luò)結(jié)構(gòu)中最后的輸出,即將每張輸入圖像映射成維度為1×2 048 的特征向量。通過衡量待測特征與2個參照特征間的余弦相似度可知待預(yù)測圖像更貼近于哪一類,進而完成基于少量樣本的圖像歸類。在固定每個子任務(wù)中待檢測樣本數(shù)目為15 的情況下,本文模型基于不同大小的參照樣本的檢測召回率和精確率結(jié)果詳見表1。
圖6 訓(xùn)練損失收斂曲線Fig.6 Loss convergence curve of training
表1 K-shot下檢測結(jié)果Table 1 Detection results under K-shot
表1 中=5 表示有無隱裂均給出5 張參照樣本,模型檢測效果中1-score 為0.797 69,在等于10和15時,1-score 相對于=5 分別增長了0.018 79和0.033 14。對比不同大小參照集下的模型效果可知,增加參照樣本數(shù)量有利于提升預(yù)測精確率,但檢測效果差距較小,可見本文模型能夠充分利用已有參照特征,滿足在樣本稀少的條件下檢測隱裂的需求。
本文直接使用特征提取網(wǎng)絡(luò)從參照樣本提取新產(chǎn)品特征,通過衡量從小樣本得到的參照特征與待預(yù)測特征間的相似度避免了利用少量樣本重新訓(xùn)練模型從而導(dǎo)致過擬合的問題。如圖7 所示,僅基于有無隱裂每類5 張的極少量的樣本對特征提取網(wǎng)絡(luò)進行調(diào)整后再直接預(yù)測有無隱裂,調(diào)整效果十分微弱且在幾輪迭代后有隱裂產(chǎn)品的召回率、精確率等指標(biāo)會下滑,即產(chǎn)生過擬合。
圖7 僅基于少量樣本調(diào)整模型時的檢測效果Fig.7 Detection effect based on small sample adjustment
為驗證本文方法中多頭注意力機制與多損失結(jié)合策略的有效性,本小節(jié)從網(wǎng)絡(luò)結(jié)構(gòu)和損失結(jié)合方式對檢測效果的影響兩個角度,基于每類5 張參照樣本,15 張待預(yù)測圖像,設(shè)計了如下消融實驗,結(jié)果如表2 所示。其中“交叉熵?fù)p失”表示只使用直接分類對應(yīng)的交叉熵?fù)p失約束模型訓(xùn)練,“+三元組損失”表示在交叉熵?fù)p失的基礎(chǔ)上引入三元組損失共同約束模型訓(xùn)練,“+三元組&隱式”表示直接分類損失、三元組損失以及隱式分類損失融合約束模型訓(xùn)練的策略。
表2 5-shot下消融實驗結(jié)果Table 2 Results of ablation experiment under 5-shot
在網(wǎng)絡(luò)結(jié)構(gòu)方面,首先為了說明適當(dāng)增加網(wǎng)絡(luò)層數(shù)有助于提高特征提取模塊提取特征的能力,本文選取由19 層神經(jīng)網(wǎng)絡(luò)層構(gòu)成的VGG19 與骨干網(wǎng)絡(luò)ResNet50 進行對比,在同樣采用“+三元組&隱式”的損失結(jié)合策略時,ResNet50 相比于VGG19 能將隱裂樣本召回率、精確率分別提升6.40個百分點、4.03個百分點,使1-score 增長0.051 91。本文將ResNet50結(jié)合交叉熵?fù)p失視為實驗基線。
為驗證多頭注意力機制(+Transformer Block)的有效性,本文在ResNet50 的5 個階段中最后一階段引入并測試了SE Block 和Non-local Block 對模型的提升效果。在采用“+三元組&隱式”策略時,引入SE Block、Non-local Block、Transformer Block 分別將模型的召回率提升了4.94 個百分點、6.14 個百分點、6.74 個百分點。可見在相同的損失策略下引入注意力機制能有效提升檢測效果,其中多頭注意力機制與多損失結(jié)合策略配合的效果較好。
在損失結(jié)合方面,三元組損失能夠有效拉近有無隱裂樣本的類間距離,在骨干網(wǎng)絡(luò)ResNet50和引入多頭注意力機制這兩種網(wǎng)絡(luò)結(jié)構(gòu)下,“+三元組損失”能使模型的1-score 分別升高0.076 03 和0.090 56。增加三元組損失的基礎(chǔ)上引入隱式分類損失能夠進一步提高模型隱裂檢測能力,相比于“+三元組損失”,兩種網(wǎng)絡(luò)結(jié)構(gòu)下召回率分別提升3.26 個百分點和8.60 個百分點,精確率分別提升5.35 個百分點和1.04 個百分點。電池片表面隱裂難以辨別,且正常電池片表面也可能有一些細微的劃痕,與表面完全干凈的電池片存在一定差異,而隱式分類允許主分類內(nèi)部存在多個子分類,對訓(xùn)練集內(nèi)部多樣化的電池片產(chǎn)品的包容性更強,可減少誤判有隱裂的情況。
本文方法將多頭注意力機制與多損失融合策略相結(jié)合,相比實驗基線將1-score 提升了0.148 19,召回率和精確率分別提高了19.44 個百分點和10.71個百分點,確保了隱裂檢測模型的可信度。
觀察實驗基線與本文方法對應(yīng)的兩模型依據(jù)相同輸入提取的激活圖,如圖8 所示,相對于實驗基線,本文的注意力機制結(jié)合多損失策略模型更能夠關(guān)注有隱裂電池片的隱裂部分,而基線對隱裂的定位能力較差,會遺漏隱裂信息。如圖9 所示,在處理無隱裂電池片時,注意力機制結(jié)合多損失策略能使模型減少對無隱裂區(qū)域的誤判。在多損失策略的約束下引入注意力機制,能促進模型減少對無關(guān)因素的關(guān)注,更準(zhǔn)確地定位有隱裂的區(qū)域,提取更多有關(guān)隱裂的可區(qū)分性強的特征。
圖8 有隱裂電池片激活圖Fig.8 Activation maps on cracked cells
圖9 無隱裂電池片激活圖Fig.9 Activation maps on normal cells
表3 展示了在相同的損失結(jié)合策略“+三元組&隱式”下不同網(wǎng)絡(luò)結(jié)構(gòu)對應(yīng)的模型的參數(shù)量、復(fù)雜度等屬性。在骨干網(wǎng)絡(luò)ResNet50 的基礎(chǔ)上引入了多頭注意力機制后模型參數(shù)量僅增加4.8×10,在相近的計算量和推理時間下,檢測效果得到明顯提升。
表3 模型屬性對比結(jié)果Table 3 Comparison results of model attributes
本文方法與另外4個小樣本學(xué)習(xí)方法對比的實驗結(jié)果如表4 所示,其中原型網(wǎng)絡(luò)(ProtoNet)使用歐氏距離度量特征相似度,每類的參照特征取均值生成原型特征以作為每一類的代表,該方法的1-score 為0.693 69。主動學(xué)習(xí)相似度衡量的方法(RelationNet)用卷積神經(jīng)網(wǎng)絡(luò)替換了人為預(yù)設(shè)的距離衡量策略,通過卷積神經(jīng)網(wǎng)絡(luò)探索更多的特征間的信息,擴充了相似度衡量的可能性。該方法的網(wǎng)絡(luò)結(jié)構(gòu)比較簡單,其1-score 為0.611 94。MAML方法需要學(xué)習(xí)大量的元任務(wù),其目標(biāo)是找到對各個任務(wù)都合適的初始化策略,使模型經(jīng)過少數(shù)次的微調(diào)后,在當(dāng)前任務(wù)上能取得較好效果。可避免模型對某個任務(wù)過擬合而無法適應(yīng)其他任務(wù),實現(xiàn)快速適應(yīng)。該方法的1-score 為0.680 26。學(xué)習(xí)適合小樣本問題的優(yōu)化器方法(OptNet)是基于MAML 方法的擴展,該方法利用LSTM 生成優(yōu)化器,學(xué)習(xí)適合小樣本問題的優(yōu)化方向和步長,1-score 為0.624 65。本文方法構(gòu)造的模型的召回率、精確率和1-score相比上述表現(xiàn)較好的ProtoNet分別升高了16.34 個百分點、5.07 個百分點和0.104,能夠在保證識別精確率的同時,有效地檢測出有隱裂的電池片。
表4 5-shot 下對比實驗結(jié)果Table 4 Comparison results under 5-shot
本文針對光伏電池產(chǎn)品更新迭代速度較快,隱裂訓(xùn)練數(shù)據(jù)量不足的問題,提出了基于小樣本的單晶光伏電池隱裂檢測方法。設(shè)計了多損失結(jié)合策略,實現(xiàn)以是否有隱裂作為主分類,不同類型產(chǎn)品作為子分類的目標(biāo)。模型在多損失約束下,通過多頭注意力機制使模型側(cè)重于多類電池片中隱裂信息提取,在適應(yīng)訓(xùn)練集中不同產(chǎn)品的多樣性的同時,確保提取到有隱裂和無隱裂電池片的具備辨別性的特征。在測試階段可以利用多損失的關(guān)注點不同,實現(xiàn)多種預(yù)測方式的按權(quán)組合,進而在極少的參照樣本支持下,可以保證達到較好的對隱裂產(chǎn)品的召回率。
在接下來的研究中,可以繼續(xù)細化隱裂的類型,而且考慮到不含隱裂的電池片占比較大、更易收集,可以利用不含隱裂的圖像生成更多的參照特征,降低無關(guān)因素的干擾。