?

改進的YOLOv5s太陽能電池片缺陷檢測算法

2024-03-05 08:15彭雪玲林珊玲林志賢郭太良
液晶與顯示 2024年2期
關鍵詞:算子注意力太陽能

彭雪玲, 林珊玲*, 林志賢, 郭太良

(1.福州大學 先進制造學院, 福建 泉州 362252;2.中國福建光電信息科學與技術實驗室, 福建 福州 350116)

1 引言

隨著太陽能技術的不斷發展,太陽能電池片已成為一種廣泛應用的清潔能源。然而,隨著生產規模的不斷擴大,電池片制造過程中可能出現的劃傷、損壞等缺陷問題也越來越嚴重[1]。這些缺陷不僅影響了電池片的性能和壽命,還可能導致設備故障和安全隱患。因此,快速、準確地檢測太陽能電池片缺陷成為保障太陽能電池片生產質量和提高能源利用率的重要問題。許多學者對太陽能電池片缺陷檢測進行了研究分析。Su等[2]利用電致發光(Electro Luminescence,EL)方法對太陽能電池片進行自動缺陷檢測。EL方法可以檢測出缺陷的存在,但對于缺陷的具體位置和精確定位能力有限。EL圖像顯示的是整個電池片的發光情況,很難直接確定缺陷所在具體區域。Demant等[3]提出了一種基于局部描述符和支持向量機的分類識別方法,實現了對小晶粒硅片光致發光(Photo Luminescence,PL)圖像和紅外(InfaredRay,IR)圖像的有效檢測。該方法需要人工設計和選擇適當的局部描述符來提取太陽能電池片圖像的特征,導致特征提取的魯棒性和通用性有限。Tsai等[4]提出一種基于傅里葉圖像重建技術的多晶硅太陽能電池缺陷檢測方法,通過將帶缺陷的頻率分量設置為0來去除EL圖像中可能的缺陷。傅立葉圖像重建技術主要用于圖像重建和頻域分析,對于準確的目標定位和位置信息提取能力有限,它更適用于整體圖像的分析和特征提取,而不是具體目標的定位和定量分析。Sezen等[5]通過設計一種基于新型深度卷積神經網絡(Convolution Neural Network,CNN)的視覺缺陷檢測方法計算太陽能電池片表面質量損失,并通過表面檢測對這些損失進行分類。深度CNN方法在目標定位精度方面存在一定的限制,它通常更適用于圖像分類和特征提?。?],而準確的目標定位和邊界框回歸能力可能不如目標檢測算法。

近年來,深度學習技術在圖像識別領域得到了廣泛應用[7]。然而,這些方法仍然存在一些問題和挑戰,首先,電池片圖像數據通常非常復雜和多變,包括不同光照條件、角度、背景等干擾因素。傳統的卷積神經網絡在對這些變化進行建模時存在一定的局限性,導致檢測準確率降低。其次,深度學習模型的解釋性較差[8],難以解釋模型對于太陽能電池片缺陷的判別依據。這對于生產質量控制以及對缺陷原因分析等方面的需求帶來了一定困擾。此外,由于深度學習模型的訓練要求極其苛刻[9],因此計算資源和耗費的時間會受到一定的影響,從而阻礙了一些實際的應用。綜上所述,盡管深度學習和卷積神經網絡在太陽能電池片檢測方面取得了一些進展[10],但仍然存在一些問題和挑戰,包括對復雜圖像的建模能力、解釋性不足以及計算資源需求較高等方面的限制[11]。YOLOv5是一種高效、精度較高的目標檢測算法[12],已被廣泛應用于物體檢測領域,但應用于太陽能電池片檢測仍存在準確率不高和檢測速度偏慢等問題。本文旨在解決太陽能電池片缺陷檢測問題,提出了一種改進的太陽能電池片缺陷檢測算法。該算法基于YOLOv5s,通過對太陽能電池片圖像的處理和訓練,實現了對太陽能電池片缺陷的檢測。實驗結果顯示,該算法在缺陷檢測的準確性和速度方面都取得了顯著提升,為太陽能電池片的生產和質量控制提供了高效可靠的解決方案。

2 YOLOv5s目標檢測模型

YOLOv5的發布引起了學術界和工業界的廣泛關注,并且在實踐中取得了顯著的成就。YOLOv5s是一種輕量級的目標檢測網絡模型[13],擁有最少的參數和計算量,使其在資源受限的環境下表現出色,可以滿足太陽能電池片缺陷檢測的實際需求。此外,該模型占用的內存較少,方便移植到移動設備中?;谏鲜鲈?,本研究采取YOLOv5s作為基礎模型。YOLOv5的架構由3個關鍵組件組成:主干特征提取網絡(Backbone)、增強特征融合網絡(Neck)和檢測頭(Head)。主干特征提取網絡由4個模塊構成:Focus、CBS、C3和SPP[14]。首先,采用Focus模塊,使用快速下采樣技術對輸入數據進行處理。隨后,經過卷積層的疊加,CBS模塊和C3模塊提取不同尺度的特征信息。最后,SPP模塊不僅規范了特征的尺度,還擴大了特征的感受范圍。

增強特征融合網絡結合了特征金字塔網絡(Feature Pyramid Network,FPN)和路徑聚合網絡(Path Aggregation Network,PANet)。FPN結構將深層特征圖中的粗粒度語義信息傳遞給淺層特征圖。PANet結構將淺層特征圖中的細粒度位置信息傳遞給深層特征圖。這兩種結構的聯合應用實現了多尺度特征融合,使網絡能夠同時融合不同尺度的特征圖,從而充分利用豐富的位置信息和語義信息。這樣的設計顯著增強了網絡的特征融合能力,提高了目標檢測的精度和魯棒性。

檢測層包含了3個尺度的預測頭,分別對應對原始圖像進行不同倍數下采樣后提取的特征圖。不同尺度的預測頭基于預先設定的錨框在相應的特征圖上進行目標檢測。

盡管YOLOv5s目標檢測算法在通用目標檢測數據集MSCOCO和VOC上已經達到了很高的檢測精度,但它并非專門針對太陽能電池片缺陷檢測而設計。因此,對于有劃痕、輕微損壞等小目標的電池片缺陷檢測精度仍有待提升。為此,本文以YOLOv5s-6.0版本為基準模型,通過相應的改進和優化,最終得到更適用于太陽能電池片缺陷檢測的檢測模型。

3 改進的YOLOv5s模型

3.1 主干網絡的改進

YOLOv5s在小目標檢測方面存在效率低下的問題,主要原因是其過大的下采樣倍數以及一些池化操作導致高層次特征圖的分辨率過低。這導致在高層次特征圖上僅有極少像素用于表示具有劃痕和損壞等小缺陷的電池片,從而影響了模型的檢測能力。

針對上述問題,本文引入了上下文轉換模塊(Contextual Transformer Block,CoT)[15](圖1)。引入上下文編碼和動態多頭注意力機制的CoT模塊,可以有效收集相鄰像素之間的豐富上下文信息,進而提升了對小缺陷的檢測精度。相比傳統的C3模塊,CoT模塊能夠更細致地感知和利用局部鄰域鍵之間的靜態上下文信息,使模型能夠更準確地定位和分類劃痕和損壞等類型的小缺陷。

圖1 上下文轉換模塊Fig.1 Contextual Transformer (CoT) block

CoT模塊在處理太陽能電池片數據集中的目標時,能夠有效建模目標與相鄰區域的物體、背景以及遠距離目標之間的復雜關聯。相較于傳統的自注意力機制(圖2),CoT模塊結合了靜態和動態上下文表示,充分利用輸入鍵間的上下文信息,從而提升了模型對背景復雜的電池片的全局信息檢測能力。這一特性使模型能夠更好地理解整體背景和目標之間的關系,為小缺陷的檢測提供更準確的上下文支持。

圖2 傳統自注意模塊Fig.2 Conventional self-attention block

此外,CoT模塊的計算復雜性較低,在實際應用中具備了優勢。CoT模塊不僅提升了模型的性能,還減少了計算資源的使用,提高了算法的效率,使CoT模塊成為在太陽能電池片缺陷工業檢測中的理想選擇。

綜上所述,CoT模塊在太陽能電池片缺陷檢測中展現了明顯的優勢。它通過充分利用上下文信息和動態多頭注意力機制,提高了對小缺陷的檢測精度。同時,它具備較低的計算復雜性,適用于實際的工業檢測場景。這一改進為太陽能電池片缺陷工業檢測提供了更可靠、高效的解決方案。

3.2 CBAM注意力機制

在進行太陽能電池片缺陷檢測時往往會受到光照、污染物、溫度變化等因素的影響,造成識別率低和誤報率高的問題。為了提高檢測的準確性并降低干擾,本文將卷積注意力模塊[16](Convolutional Block Attention Module,CBAM)引入Head部分以增強模型的特征表達能力。

CBAM(圖3)是一種將通道注意力(圖4)與空間注意力(圖5)有機結合的技術,它可以有效提升注意力的效率,從而實現更高效的學習。這些模塊的作用是自適應地調整特征圖的通道權重和空間分布,以提取更具區分性的特征。在太陽能電池片缺陷檢測中,CBAM注意力機制能夠對關鍵特征進行加強,同時抑制背景信息等干擾因素的影響。這種注意力機制能夠學習到太陽能電池片缺陷的上下文信息,使模型更加關注缺陷區域,并提高模型對不同類型缺陷的識別能力。

圖3 卷積注意力模塊Fig.3 Convolution attention module

圖4 通道注意力模塊Fig.4 Channel attention module

圖5 空間注意力模塊Fig.5 Spatial attention module

引入CBAM注意力機制可以提升太陽能電池片缺陷檢測的準確性,并降低環境干擾因素對檢測結果的影響。通過增強關鍵特征的表達能力,CBAM注意力機制將有助于提高缺陷的識別率和減少漏檢率,從而為太陽能電池片生產過程中的質量控制提供更可靠的支持。

3.3 上采樣方式的改進

YOLOv5s在其特征融合網絡中使用了最近鄰插值來進行上采樣。然而,這種簡單的方式僅根據像素點的位置來確定上采樣核,未充分利用特征圖中的豐富語義信息。最近鄰插值上采樣所有特征點,忽略了周圍特征對結果的影響,導致上采樣后特征圖質量降低。這可能對太陽能電池片缺陷檢測的準確性和魯棒性產生負面影響,增加檢測結果的誤判和漏檢的可能性。

為了解決該問題,本文采用CARAFE[17]這一輕量級通用上采樣算子,具體示意圖見圖6。CARAFE算子主要包括兩部分:上采樣核心預測模塊和特征重組模塊。上采樣核預測模塊分析編碼輸入特征圖,以推斷不同位置的特征點所需的上采樣核。特征重組模塊充分利用上采樣核預測模塊生成的上采樣核,實現高效的上采樣操作。相對于最近鄰插值上采樣,CARAFE算子在目標檢測任務中顯示出更好的性能,并在太陽能電池片缺陷檢測方面具有明顯優勢。通過利用語義信息和周圍特征點的影響,CARAFE算子在上采樣過程中能夠實現更精確的特征重建,從而提高上采樣后特征圖的質量和表達能力。

圖6 CARAFE模塊結構Fig.6 CARAFE module structure

與傳統的最近鄰插值上采樣相比[18],CARAFE算子在整合背景語義信息時,考慮了更大的感受野范圍,能夠更好地融合局部和全局的語義信息。此外,CARAFE算子利用自適應生成的上采樣核,實現了對不同特征點的精細上采樣操作,減少了特征信息的丟失,確保了特征信息的完整性。

CARAFE算子中的特征重組模塊起到至關重要的作用,它專注于提取相關特征點在局部區域內的信息,并使得通過重組后的特征圖更加豐富,蘊含更多的語義信息。在太陽能電池片數據集上的實驗結果表明,使用CARAFE算子進行上采樣可以提高特征圖質量,實現更準確的缺陷檢測和識別。尤其在太陽能電池片中存在微小且復雜的缺陷紋理和形態特征,CARAFE算子能夠更好地捕捉這些細節信息,為定位和分類提供更可靠的結果。

此外,CARAFE算子作為一種輕量級的通用上采樣算子,具有較低的計算復雜度和參數量。相比于其他復雜的上采樣方法,如雙線性插值或反卷積,CARAFE算子在保持模型輕巧和高效的同時,能夠有效提升特征融合性能。對于太陽能電池片缺陷檢測任務而言,尤其在資源受限的環境下,CARAFE算子能夠滿足實際應用的需求,保證檢測模型的準確性和實用性。

綜上所述,CARAFE算子相對于最近鄰插值上采樣在目標檢測任務中的優勢顯而易見。通過更好地利用語義信息和周圍特征點的影響,CARAFE算子改進了特征圖的質量,為太陽能電池片缺陷檢測帶來更準確的結果。同時,CARAFE算子具有輕量級、高效性和實用性的特點,適用于資源受限環境下的應用。因此,CARAFE算子在目標檢測任務和太陽能電池片缺陷檢測中具備廣闊的應用前景。

3.4 損失函數的改進

在太陽能電池片缺陷檢測任務中,YOLOv5s的損失函數包含3個部分,分別是分類損失、置信度損失和回歸損失[19]。傳統的完整交并比(Complete Intersection over Union,CIoU)損失函數僅考慮了重疊區域的大小,未充分考慮邊界框的位置和形狀信息。然而,邊界框的位置和形狀信息對于太陽能電池片缺陷檢測是至關重要的,它們能夠準確描述缺陷的位置和形狀,并評估缺陷的嚴重程度。為解決這一問題,本文采用了一種改進的損失函數,即加權交并比[20](Weighted Intersection over Union,WIoU)損失函數。

WIoU損失函數在計算邊界框之間的重疊度時,考慮了邊界框的尺寸和位置信息,不僅關注重疊區域的大小,還考慮了邊界框的相對位置和形狀。這使得WIoU對邊界框的完整性更加敏感,能夠更準確地衡量預測框和真實框之間的匹配程度。此外,WIoU引入了一個權重因子,根據不同區域的重要性進行調整。對于重要區域,如太陽能電池片缺陷的關鍵部位,WIoU會賦予更高的權重,以提高對關鍵區域的檢測準確性,減少對次要區域的過度關注。

相較于傳統的CIoU損失函數,WIoU具有以下優勢。首先,WIoU能夠更好地適應太陽能電池片缺陷檢測任務的需求。通過考慮不同區域的重要性和邊界框的完整性,WIoU能夠更準確地評估預測框和真實框之間的匹配程度,從而提高檢測的準確性和魯棒性。其次,WIoU在處理小目標時表現更好。小目標的邊界框通常具有較小的重疊區域[21],傳統的CIoU在計算時容易受到邊界框尺寸的影響,可能導致誤判。而WIoU通過引入權重因子,能夠更好地平衡小目標的重疊度計算,提高對小目標的檢測精度。

綜上所述,WIoU損失函數相比于CIoU在太陽能電池片缺陷檢測中具有更好的適應性和準確性。它考慮了不同區域的重要性、對邊界框的完整性更敏感,并在處理小目標時表現更好,能夠提高缺陷檢測的精度和魯棒性。

3.5 改進后的網絡模型

基于以上描述,改進后的YOLOv5s網絡結構如圖7所示。

圖7 改進的YOLOv5s網絡結構圖Fig.7 Improved YOLOv5s network structure

4 實驗結果與分析

4.1 實驗配置

所有實驗的環境配置如表1所示。訓練過程中使用PVdatasets數據集初始化參數,涵蓋了類別初始設定、類別名稱定義以及訓練路徑等要素。同時,圖像輸入尺寸被設定為640×640,迭代輪次設置為300,學習率設置為0.001。這樣的配置旨在優化模型性能并提高目標檢測的準確率。

表1 實驗環境配置Tab.1 Experimental environment configuration

4.2 數據集介紹

PVdatasets數據集[22]是包含5個類別的開放性數據集,包括損壞(broken)、亮點(hot-spot)、黑邊(black_border)、劃痕(scratch)、斷電(no_electricity)5種類型的缺陷,如圖8所示,共分為3列對缺陷類型進行描述,左邊圖是含有缺陷的PV數據集圖片;右邊是對這個缺陷細節放大的圖片,共標注3 981個感興趣目標區域。數據集中的圖像大小為600像素×600像素,本文按照訓練集與驗證集9∶1的比例進行拆分。

圖8 數據集缺陷類型。 (a) 有破損區域的電池片; (b) 有明顯的亮點區域的電池片; (c) 具有黑色或灰色邊界區域的電池片; (d) 有劃痕的電池片 ; (e)不導電,顯示黑色區域的電池片。Fig.8 Dataset defect type. (a) Cell with broken areas; (b) Cell with obvious bright areas; (c) Cell with black or gray border areas; (d) Scratchy cell; (e) No-electricity, showing the black area of the cell.

4.3 模型性能評估指標

為了驗證所提方法的性能,采用平均值精度(mean Averrage Precision,mAP)指標驗證多類別的檢測精度,mAP是所有類別平均精度(Averrage Precision,AP)的平均值,其計算公式如式(1)~(3)所示:

其中:AP表示平均精度,TP表示真正例,FP表示假正例,FN表示假反例,TN表示真反例。

4.4 消融實驗和對比實驗

4.4.1 消融實驗

為了分析各模塊改動以及模塊組合對算法性能優化的影響程度,進行了一系列消融實驗,共設計了8個實驗方案,這些實驗在所述實驗環境中按序進行訓練,并取各訓練輸出的最佳權重文件在驗證集上進行實驗,實驗的epoch都設置為300,所得的實驗數據如表2所示。其中√表示加入該模塊,×表示沒有加入該模塊,檢測耗時是在batchsize設置成1的情況下單張圖片預測所需要的時間。由表2可知,主干網絡使用CoT后,mAP值提升了2.7%,而檢測耗時僅增加了1.2 ms;加入CBAM注意力機制后,可以更好地進行特征融合,總體性能都有提升;上采樣方式采用CARAFE后,提升了特征提取能力,mAP值提升了1.7%;損失函數采用WIoU后,解決了原損失函數出現的問題,使得Recall和mAP值分別提升了2.5%和0.5%。綜合多種改進,相比于原模型,檢測耗時雖然增加了1.2%,但Precision、Recall、mAP@0.5分別提高了5.5%、4.1%、3.3%??梢?,本文改進算法滿足改進需求,優于原算法。為了能更加清楚地觀測到改進后的有效性,根據訓練過程保存的結果,繪制如圖9所示的改進前后兩個模型訓練的mAP@0.5對比曲線。

表2 消融實驗Tab.2 Ablation experiments

圖9 mAP@0.5的對比Fig.9 Comparison of mAP@0.5

4.4.2 對比實驗

在特征提取網絡中引入不同類型的注意力機制對性能進行評估,結果見表3。評估指標包括mAP@0.5、Precision、Recall和參數量。更高的mAP@0.5、Precision、Recall數值代表更出色的檢測性能,而更小的模型參數對于輕量化檢測更為有利。對比表3的數據可以看出,在原始網絡的基礎上引入CBAM注意力機制后,mAP@0.5提高了1.7%。此外,CBAM注意力機制具有最小的模型尺寸。盡管引入NWD注意力機制后,mAP@0.5有所提升,但其他性能指標表現不夠理想。綜合來看,CBAM注意力機制更適合于輕量化太陽能電池片缺陷檢測任務。

表3 不同注意力機制檢測性能對比Tab.3 Comparison of detection performance of different attention mechanisms

為了進一步驗證本文算法改進的有效性,并驗證改進算法在精度、檢測速度和參數量方面的提升,進行了一系列實驗對比。在PV-Multi-Defect數據集上對比了經典目標檢測算法,如Faster RCNN、SSD和YOLOv3的檢測效果,并對比了YOLOv7、YOLOv7_tiny,和本文算法的檢測效果,實驗結果見表4。

表4 對比實驗Tab.4 Comparison experiments

通過比較表4中不同算法模型的實驗結果,可以明顯觀察到本文提出的改進版YOLOv5s算法在檢測精度、召回率以及mAP值方面明顯優于其他算法。與檢測精度最接近的EfficientDet相比,本文所提算法的參數量減少了62.8M,mAP@0.5提升了18.7%。YOLOv7_tiny的精度和參數量相較于YOLOv5s略好,但是相較于FPS,YOLOv5s有明顯優勢。YOLO旨在實現實時目標檢測,因此FPS是一個關鍵的性能指標。更高的FPS意味著網絡能夠在更短的時間內處理更多的圖像幀,從而提供更快的實時檢測能力。因此,本文選擇原始YOLOv5s作為基準網絡進行改進,表4清晰地顯示出原始YOLOv5s在參數量和檢測精度方面的顯著優勢。

總之,本研究提出的改進版YOLOv5s算法具有最佳的檢測精度和顯著的整體表現,從而論證了該算法的優勢。為了更直觀地評估改進效果,在圖10中對比了改進前后的檢測結果。在圖10(a)中的第二張圖中,原始的YOLOv5s算法誤將原始標注為“scratch”的區域識別為“broken”,導致存在誤檢現象。而在圖10(a)的第4張圖中,原始的YOLOv5s算法在最初標注為3個“sc5ratch”的情況下,僅檢測到了其中兩個。通過觀察圖10(c)可以清晰地看到,改進后的YOLOv5s算法不再存在漏檢和誤檢的問題。在PV-Multi-Defect數據集檢測任務中,本研究對YOLOv5s算法進行了改進,有效解決了原算法的漏檢和誤檢問題,同時顯著提高了對太陽能電池片表面缺陷的平均識別精度。這些結果表明,改進版YOLOv5s算法在太陽能電池片缺陷檢測領域具有極大的潛力和實際應用價值。

圖10 改進前后的檢測效果對比。 (a) 原圖; (b) YOLOv5s檢測效果圖; (c) 改進后的YOLOv5s檢測效果圖。Fig.10 Comparison of detection results before and after improvement. (a) Original drawing; (b) YOLOv5s detection effect drawing; (c) Improved YOLOv5s detection effect drawing.

5 結論

本文提出了一種改進的YOLOv5s太陽能電池片缺陷檢測算法。通過一系列改進,提高了模型的檢測精度、輕量化和實時性能。首先,在主干部分引入CoT模塊以增強特征的表達能力和感受野范圍,從而更準確地捕捉太陽能電池片缺陷的細節和上下文信息。其次,使用CARAFE算子作為輕量級的通用上采樣方法代替了原本的最近鄰插值方式。這樣的變化不僅提高了上采樣后特征圖的質量和表達能力,還為目標檢測任務帶來了更精確的結果。另外,在模型的Head部分還引入了CBAM注意力機制。CBAM的應用使模型能夠自動調整特征圖的通道和空間維度,從而提高了對關鍵信息的關注能力,進而提高了缺陷檢測的準確性。采用WIoU作為邊界框的損失函數也是一種改進方法。WIoU考慮了邊界框的位置和形狀信息,使預測框和真實框能夠更好地匹配,從而提高了缺陷檢測的精度和魯棒性。實驗結果表明,改進后的模型在太陽能電池片缺陷檢測任務中性能有很高的提升,平均精度達到了90.1%,模型的參數量僅為7.8M,檢測速度達到了76 FPS。實驗結果充分展示了改進方法的有效性和實際可行性,為太陽能電池片缺陷檢測提供了一種可靠且高效的解決方案。

猜你喜歡
算子注意力太陽能
應用廣泛的太陽能無人機
讓注意力“飛”回來
擬微分算子在Hp(ω)上的有界性
各向異性次Laplace算子和擬p-次Laplace算子的Picone恒等式及其應用
一類Markov模算子半群與相應的算子值Dirichlet型刻畫
太陽能可以這樣玩
“揚眼”APP:讓注意力“變現”
Roper-Suffridge延拓算子與Loewner鏈
A Beautiful Way Of Looking At Things
太陽能虛擬窗
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合