本文來源公眾號“集智書童”,侵權刪,干貨滿滿。YOLOv5重出江湖!?
原文鏈接:https://mp.weixin.qq.com/s/vb7HsA0fKDgRc3uC8Z-2yw
在工業生產過程中,由于低效率、不統一的評估、高成本以及缺乏實時數據,傳統的手動檢測焊接缺陷不再被應用。
為了解決表面貼裝技術中焊接缺陷檢測的低準確率、高誤檢率和計算成本問題,提出了一種新方法。該方法是一種專門針對焊接缺陷檢測算法的混合注意力機制,通過增加準確度并降低計算成本來提高制造過程中的質量控制。混合注意力機制包括提出的增強多頭自注意力機制和協調注意力機制,以增加注意力網絡感知上下文信息的能力,并提高網絡特征利用率。協調注意力機制增強了不同通道之間的連接,減少了位置信息損失。混合注意力機制增強了網絡感知長程位置信息和學習局部特征的能力。
改進的算法模型具有良好的焊接缺陷檢測能力,mAP達到91.5%,比Yolov5高4.3%,并優于其他比較算法。與版本相比,平均精確率、精確度、召回率和每秒幀數指標也有所提高。在滿足實時檢測要求的同時,檢測準確度的提高是可以實現的。
1?Introduction
表面貼裝器件(SMD)引腳在自動生產過程中容易產生焊接缺陷,如引腳短路和引腳偏移,如圖1所示。在焊接缺陷檢測中,傳統的手動檢測方法已不再適應工業生產的發展。手動檢測效率低、評估不統一、成本高且缺乏實時數據。
計算機視覺是計算機硬件和軟件的結合,與工業相機和光源一起捕捉圖像。它在各種工業場景中得到應用,用于自動化制造并提高產品質量。基于計算機視覺的焊接缺陷檢測系統具有實時、連續和無接觸的特點。這種方法可以取代手動檢測并提高結果的準確性。目前,計算機視覺在缺陷檢測中已得到廣泛應用。因此,使用計算機視覺檢測焊接缺陷已成為主流趨勢。近年來,深度學習技術作為計算機視覺的一個分支得到了迅速發展。正在開發的自動化焊接缺陷檢測方法還比較缺乏。焊接缺陷檢測方法可以分為三個主要組,即基于特征的方法,統計方法和深度學習方法。
深度學習方法由于其卷積神經網絡(CNN)結構,可以從焊接接頭圖像中學習有效信息和規則,解決人工設計規則難以提取有效特征的問題。深度學習神經網絡(DNN)的結構可以分為單階段和兩階段網絡。盡管兩階段DNN比單階段更準確,但淺層特征需要謹慎利用,以避免在特征提取階段丟失信息,導致檢測率降低。此外,單階段方法在實時性能方面表現良好,但檢測效果對小缺陷區域和低分辨率圖像不佳。在缺陷檢測的特征提取模塊中,目標特征信息丟失過多,導致小缺陷檢測率不理想,從而造成嚴重的漏檢問題。深度學習方法使用深度神經網絡提取特征,但隨著深度神經網絡層數的加深,一些淺層信息容易丟失,導致小尺寸目標的漏檢。為解決這一問題,采用多尺度特征融合方法在特征提取過程中融合深層和淺層特征,增強不同網絡層之間的信息傳輸。因此,優化特征融合方法可以提高小尺寸目標的檢測準確性。
Feature Pyramid Network(FPN)通過多次上采樣輸入圖像,獲取不同尺度的特征圖像。它將高 Level 的抽象語義信息與特征提取過程中的低級細節,如從上到下提取的輪廓紋理信息相結合,以實現特征提取增強的目標。然而,盡管FPN系統地提取了低級和高級特征,但其特征融合能力仍然無法滿足需求,使得淺層特征信息難以保留。
為了在高層和低層特征之間解決缺失信息的問題,劉等人設計了一種Path Aggregation Network(PANet),在特征金字塔的底部連接自下而上的增強路徑。這個過程是為了縮短信息融合的傳輸路徑,以增加特征金字塔架構的檢測能力。雙向特征金字塔網絡(BiFPN)是在PANet的基礎上構建的,其中只有一個輸入的節點被刪除,以減少參數計算的數量。通過額外的跳躍傳輸路徑,直接將輸入和輸出層特征連接,以增強淺層特征的融合能力。BiFPN為每個層賦予自適應學習的權重,并通過權重分配使網絡感知不同層的重要性。
多尺度特征融合在小型目標檢測中得到廣泛應用,通過結合高層語義信息和低層詳細信息,顯著提高了小型物體的檢測性能。然而,FPN的構建主要分為跨層連接和并行分支。雖然這種機制提高了性能,但增加了額外的參數計算和存儲空間。因此,需要研究設計一種能夠增強缺陷檢測器特征融合能力的金字塔特征網絡架構。作者提出了一種混合注意力機制來提高特征金字塔網絡的特征融合能力。作者將增強的FPN應用到YOLOv5檢測模型中。本文設計了比較實驗和消融實驗,以驗證所提出方法在焊接缺陷數據集上的有效性。本文的整體流程圖如圖2所示。
本文的主要工作和創新點如下。
-
提出了一種新穎的增強多頭自注意力機制(EMSA),以增強網絡感知上下文信息的能力,擴大網絡特征利用率范圍,并使網絡具有更強的非線性表達能力。
-
本文將坐標注意力機制(CA)與EMSA相結合,設計了一種混合注意力機制(HAM)網絡,以解決特征金字塔網絡中淺層特征損失問題,增加網絡感知遠程位置信息和學習局部特征的能力。
-
混合注意力機制改進了FPN,并提高了其將功能和網絡通道之間的信息傳遞進行融合的能力。
-
改進的FPN被應用到YOLOv5檢測模型中,這提高了YOLOv5的焊接缺陷檢測能力,顯著解決了小缺陷的低檢測率問題,同時增強了缺陷檢測模型的通用適用性。
2?Related Work
2.1 Feature Pyramid Network
Feature Pyramid Network(FPN)是一種常用的特征融合方法,用于目標檢測,它是一種提取金字塔特征表示的網絡模型。通常在目標檢測的特征融合階段使用。在對 Backbone 網絡進行底向上特征提取操作后,將FPN連接到相應層的前后相鄰特征圖,從上到下、橫向依次結合 Backbone 網絡特征層次中的兩個相鄰層,構建一個特征金字塔。盡管FPN簡單且有效,但仍有某些方面的缺陷。在每一層的特征融合之前,不同層之間存在語義鴻溝,直接融合將對多尺度特征表示能力產生負面影響。在特征融合過程中,金字塔網絡高級特征信息在縮放過程中可能會丟失。
基于FPN結構的Path Aggregation Network(PANet)在YOLO目標檢測框架及其變體中得到了廣泛應用。該網絡具有兩條特征融合路徑,即自上而下和自下而上。這種方法減少了深層和淺層特征之間的融合距離,優化了FPN網絡的特征融合方法,提高了目標檢測效果。然而,由于添加了自下而上的路徑,低級特征信息可能會在網絡層加深時丟失,額外的路徑增加了計算復雜性和網絡參數,降低了網絡模型的檢測速度。雙向特征金字塔網絡(BIFPN)引入了跳躍連接,利用跳躍連接在特征輸入和輸出層之間傳遞信息。因為操作在同一層,這種方法可以與較少的參數結合更多的特征。為了實現更多的特征融合,BIFPN計算同一層參數多次,將每條雙向路徑視為一個特征網絡層。
自適應空間特征融合(ASFF) 是在2019年提出的一種具有自適應能力的特征融合算法。它可以通過權重選擇自適應地獲取重要信息,從而提高特征融合的有效性。通過學習不同特征圖之間的連接,ASFF可以解決特征金字塔中不同大小的特征之間的不一致問題。它具有易實現、低成本和廣泛應用的優點。錢等人[1]提出了一種中心化特征金字塔(CFP),它基于全局顯式中心化特征規則,可以在目標檢測模型中使用。這種方案提出了一種通用的內層特征調整方法,使用輕量級多層感知機(MLP)捕獲全長度距離相關性,并強調使用內層特征規則,可以有效地獲取全面但差異化的特征表示。CFP網絡可以有效提高YOLOv5和YOLOX的目標檢測能力。它在公共數據集MS-COCO上提高了mAP值1.4%,但計算復雜性相對較高。
FPN在多個涉及缺陷檢測的實例中得到了應用。Chen等人[14]使用YOLOv3進行SMD LED芯片缺陷檢測,使用基本FPN作為特征融合模塊。它對缺失組件、缺失線和反向極性缺陷的檢測率合理,但對表面缺陷的檢測率較低。原因是表面缺陷的大小相對較小且分布位置不確定,因此難以檢測。Yang等人[17]使用YOLOv5進行鋼材表面缺陷檢測,使用Path Aggregation Feature Pyramid Network(PAFPN)作為特征融合模塊檢測鋼材表面六種缺陷,實現了良好的實時檢測結果,但對小型缺陷目標的檢測率較低。Du等人[15]使用增強的YOLOv5進行PCB缺陷檢測,使用BiFPN作為特征融合模塊檢測PCB表面缺陷。mAP50指數達到95.3%,但對任務孔和開路缺陷的小型缺陷的mAP值較低。任務孔缺陷是指由于PCB上的焊盤插座中缺乏焊料而形成的孔效應。開路缺陷指的是PCB上的電路斷開。
Han等人[10]設計了一種YOLO改進方案,用BiFPN代替原始PAFPN,并在BiFPN中使用自注意力機制將上采樣和下采樣處理模塊嵌入,以提高表面缺陷檢測任務中模型的檢測率。然而,檢測較小缺陷的能力較弱。因此,為了提高缺陷檢測網絡的檢測性能,有必要設計一種增強的注意力機制來提高FPN的特征融合能力,從而減少對小尺寸缺陷的漏檢率。近年來,許多研究利用注意力機制來增強缺陷檢測框架的檢測能力。注意力機制是一種使神經網絡能夠專注于特定目標的功能。
2.2 Attention Mechanism
眾多的輸入信息包括任務所需的關鍵和無關信息。注意力機制可以關注這些關鍵信息,同時過濾無關信息。注意力機制的靈感來源于人類視覺系統,它可以快速瀏覽圖像,定位感興趣的目標區域,并增強對目標區域的關注,從而獲取該區域的重要信息并抑制來自其他無關區域的干擾。胡等人提出了一個名為Squeeze and Stimulation(SE)的注意力模塊。這個注意力模塊通過挖掘特征通道之間的互依賴關系來自適應地修正每個通道的權重參數,使網絡能夠關注更多的關鍵特征信息。吳等人[17]擴展了空間維度,并設計了卷積塊注意力模塊(CBAM)。
通過順序構建通道注意力模塊(CAM)和空間注意力模塊(SAM),增強了網絡分離和增強特征信息的能力。有效通道注意力(ECA)模塊[18]使用一維卷積操作來提取通道之間的依賴關系,實現跨通道交互。它解決了SE由于壓縮維度減少而無法有效提取通道之間依賴關系的問題。ECA具有較低的計算復雜性,對網絡速度的影響較小。
張等人[19]將ECA嵌入YOLOv5的特征融合網絡中,用于太陽能電池表面缺陷檢測,增強了PAFPN融合太陽能電池表面缺陷特征的能力,從而進一步提高缺陷檢測率。在數據集上的mAP50值為84.23%。然而,ECA對較小特征圖的計算開銷較大。
為了更好地檢測鋼表面的表面缺陷,錢等人[18]將CA機制引入檢測網絡。mAP值為79.23%,而召回值為62.4%。CA機制需要計算整個特征圖的注意力權重,因此無法捕捉長程依賴關系。為了解決小面積檢測中的長程依賴關系,收集語義信息至關重要。另一方面,視覺Transformer(ViT)完全依賴自注意力來捕捉長程全局關系,其準確性優于卷積神經網絡(CNN)。ViT在2020年被引入計算機視覺領域,并在視覺領域取得了良好的性能。
2.3 Vision Transformer
視覺Transformer在計算機視覺領域取得了良好的性能,因為它使用了多頭自注意力(MSA)機制。MSA機制是一種與CNN不同的特征提取方法,可以建立全局依賴關系并擴展圖像的感知場。與CNN相比,ViT的感知面積更大,可以收集更多的上下文信息。
然而,由于過濾器效率低下,一些對檢測至關重要的信息被移除。ViT沒有利用特征定位、翻譯不變性和圖像尺度的先驗知識。ViT捕獲充分信息的能力比CNN弱,且不能利用圖像本身特征定位、翻譯不變性和圖像尺度的先驗知識。ViT模型設計采用縮放點積注意力機制。ViT首先將圖像分成非重疊、固定大小的圖像塊,并將圖像塊 flatten 成一維向量進行線性投影,以實現特征提取。
Swin Transformer是另一種Transformer類型。Swin Transformer利用局部注意力和位移窗口多頭自注意力機制(SW-MSA)實現局部和全局特征之間的交互,在各種視覺任務中取得良好結果,并解決了ViT局部信息易受損害的問題。
自注意力機制和注意力機制之間的區別在于, Query 和鍵來自不同的來源,而自注意力機制的 Query 和鍵來自同一組元素。朱等人設計了一個用于無人機圖像中微小目標檢測的Transformer預測頭YOLOv5(TPH-YOLOv5)模型。該模型使用Transformer檢測低分辨率特征圖,增強網絡提取不同局部信息的能力,并實現高密度目標更好的性能。然而,將Transformer模塊分布在模型的多個部分導致了顯著的計算工作量。
3 Proposed Enhanced Feature Pyramid Network
3.1 Hybrid Attention Feature Pyramid Network Architecture
在焊接接頭缺陷檢測任務中,有些小缺陷難以檢測。增強FPN的特征融合能力可以幫助提高小缺陷的檢測效果。為了增強FPN的特征融合能力,本研究提出了一種混合注意力特征金字塔網絡(HA-FPN),如圖3(a)所示。
在基本FPN中添加混合注意力機制(HAM)可以增強FPN感知上下文信息的能力。同時,它還擴大了對特征信息的利用,解決了位置信息嚴重損失的問題。HAM網絡結構如圖3(b)所示。
3.2 Hybrid attention mechanism
混合注意力機制(HAM)模塊是基于Transformer結構的。首先,輸入特征經過深度卷積(DWConv)殘差塊以實現參數共享并增強局部特征的學習。
接下來,使用Layer Normalization(LN)進行規范化處理。然后,通過兩個注意力機制模塊,即增強多頭自注意力(EMSA)和坐標注意力(CA),對輸出進行處理。最后,經過LN層進行規范化,并最終通過MLP層輸出處理結果。
整個處理過程如圖1所示。
在公式(1)中,X表示輸入特征,Y表示輸出特征,X1、X2和X3是中間特征。DWconv表示深度可分卷積,LN表示層規范化,CA表示坐標注意力,EMSA表示增強多頭自注意力。MLP是多層感知機。
3.2.1 (1)Enhanced Multi-head Self Attention
提出了一種新穎的EMSA模塊,如圖3(b)所示,用于同時獲取上下文信息和全局特征,使用CA機制捕捉準確的位置特征并有效地捕捉通道間的信息。
然后,執行由EMSA和CA捕獲的信息特征的融合,以增強特征金字塔網絡的特征融合能力。
設計概念基于Transformer中的MSA機制,如圖4(a)所示。EMSA的結構如圖4(b)所示。EMSA的整個處理過程如圖3.2所示。
在公式(3.2)中,表示輸入特征,表示輸出特征,和表示中間特征。Q、K和V分別表示 Query 矩陣、Key矩陣和Value矩陣。線性是線性變換操作,SiLU是Sigmoid線性單元激活函數,FC表示全連接處理,d是標量因子。
首先,Q、K和V組件通過全連接(FC)層形成,然后對三個組件分別進行線性變換。將變換后的Q和K矩陣相乘,然后對它們進行一系列非線性處理。然后,使用全連接層輸入SiLU激活函數,這與神經元內的信號傳輸模型非常相似,因此更符合某些生物實現機制,更好地模擬人腦的信息處理機制。經過全連接層后,使用Tanh激活函數進行處理,輸出結果是一個與線性變換的V組件相乘的矩陣。
最后,將全連接層與原始輸入特征相融合,以獲得最終輸出結果。與原始的MS-A相比,EMSA具有更多的非線性變換,這可以使注意力網絡具有更強的上下文感知能力,進一步增強網絡對特征利用范圍的使用,并使網絡具有更強的非線性表達能力。
3.2.2 (2)Coordinate attention
本研究將坐標注意力(CA)機制引入HAM,以增強FPN的位置信息融合能力。CA機制可以有效地增強不同通道之間的關聯,并提高網絡對遠程位置信息的感知能力。CA機制的操作過程如圖5所示。
對于輸入H(輸入特征圖的高度)W(輸入特征圖的寬度)C(輸入特征圖的通道數),首先,從圖像的高度和寬度維度進行全局平均池化,得到具有尺寸H1C和1WC的特征圖;然后,將兩個尺寸的特征圖拼接在一起,并通過共享卷積從通道維度降低維數,得到尺寸為1(W+H)C/r的特征圖。經過非線性層處理后,非線性表達能力得到提高。
接著,為了增加維數,使用11卷積,將特征圖從寬度和高度維度恢復到A和B尺度,并通過HardSigmaid分配權重。為了加速CA機制的處理速度,使用HardSigmoid替換原來的Sigmoid激活函數進行權重分配。HardSigmoid不需要指數運算,因此其計算速度比Sigmoid快。最后,特征圖的尺寸變為HWC。
3.3 Improved Feature Fusion Network In YOLOv5
作者將HAFPN作為特征融合模塊使用在YOLOv5中,替換了原來的PAFPN結構。
原始特征融合網絡架構如圖6(a)所示。它包括卷積(Convolution)、批量歸一化(Batch Normalization)和SiLu激活函數(CBS)、跨階段部分(CSP)瓶頸結構,其中包含3個卷積(C3)和空間金字塔池化快速(SPPF)。
與FPN相比,PAFPN具有更好的網絡準確性,但對于焊接接頭中一些小缺陷的檢測效果不佳,網絡尺寸較大且參數較多。作者提出的強化方法增強了FPN網絡的特征融合能力,以提高識別準確性,同時確保檢測速度。原始特征融合網絡架構如圖6(b)所示。
4?Experiment
4.1 Experimental Environment
實驗的硬件和軟件環境如表1所示。
4.2 Datasets
焊接接頭缺陷數據集包含3154張缺陷焊接接頭圖像,這些圖像是通過Couple-Charged Device(CCD)工業相機獲得的。其中兩種缺陷類型,分別是無效和足部偏移。其中,1680個是無效缺陷,1474個是足部偏移缺陷。數據集被隨機分為訓練集、驗證集和測試集,其中訓練集、驗證集和測試集的比例分別為80%、10%和10%,用于模型訓練、驗證和測試。數據集的準備方法是參考進行適應和修改的。
4.3 Evaluation criterion
本次實驗的評價指標包括公式(4.1)計算的精確度(Precision)、公式(4.2)計算的召回率(Recall)、公式(4.3)計算的平均精確度(Mean Average Precision,mAP)以及每秒幀數(Frames Per Second,FPS)。在公式中,TP表示正確預測的陽性樣本數量,FP表示錯誤預測的陽性樣本數量,FN表示實際為陽性但預測為陰性的樣本數量。P表示精確度,R表示召回率。
4.4 Experiments and analysis of results
4.4.1(1) Comparative experiment
為了驗證本研究中提出的混合注意力機制的效果,使用 Heatmap 可視化方法比較了不同注意力機制在缺陷區域的聚焦能力,如圖7所示。
如果不使用注意力機制,YOLOv5對焊接接頭缺陷的注意力較弱。添加多個注意力機制后,顯示了一定的改進。其中,SE和ECA的缺陷注意力改進較小,甚至出現了下降效果。CBAM和CA注意力對缺陷注意力有增強作用。Transformer和Swin Transformer對小尺寸的移動缺陷的注意力較差。
本研究中提出的混合注意力機制顯著增加了缺陷位置的 Heatmap 覆蓋效果。它對小缺陷的聚焦能力更關鍵,位置定位更準確,證明了混合注意力可以結合上下文內容聚焦更多像素,證明了混合注意力的有效性。
為了驗證HAFPN算法的優越性,作者在同一數據集上比較了不同FPN算法的缺陷檢測性能。CSPDarknet53始終作為特征提取 Backbone 網絡。比較的特征融合算法包括FPN、PAFPN、A。
Table 1. 實驗環境2. 所有缺陷的檢測指標均高于FPN、PAFPN、BiFPN和CFPNet。不足缺陷的精度略低于ASHF。HAFPN的整體精確度、召回率和mAP值均優于其他網絡,其中精確度為3.8%、9.4%、1.3%、9.7%、6.9%更高,召回率為0.5%、4.8%、0.7%、1.5%、1.2%更高,mAP值為3%、4.3%、0.9%、3.2%和3.4%更高。
本研究使用HAFPN改進YOLOv5缺陷檢測模型,并在焊接接頭缺陷數據集上與不同檢測模型進行比較。比較模型包括一階段檢測模型如YOLOv4 [DCL21],YOLOv5 [G22],YOLOv7 [WBL23]和YOLOv8 [G23],改進后的YOLOv5檢測模型如STC-YOLOv5,TPH-YOLOv5和兩階段檢測模型Faster R-CNN [RHGS15]。
表3記錄了實驗結果。與YOLO系列算法相比,作者的模型在整體精確度、召回率和mAP指標上取得了最佳表現。在檢測速度方面,盡管FPS低于原始YOLOv5模型,但高于其他模型,其精確度、召回率和mAP分別為9.4%、4.8%和4.3%,比YOLOv5高9.4%、4.8%、4.3%。
與Faster R-CNN相比,召回值較低,但速度快三倍,提出的算法具有有效的實時性能。與STC-YOLOv5和TPH-YOLOv5相比,作者的模型在精確度上增加了6.4%、2.4%,召回率增加了3.1%、2.2%,mAP增加了2.8%、0.6%,FPS增加了22.5%、31.6%。
作者使用改進后的YOLOv5網絡對原始YOLOv5網絡的檢測性能進行了視覺比較,如圖8所示。
在12個引腳中,前9個存在缺陷。可以發現,原始YOLOv5網絡在檢測小尺寸的不足缺陷目標時,對于移位缺陷(前兩個引腳)的檢測存在遺漏。改進后的網絡檢測能力得到了增強,避免了遺漏和誤檢的發生。在圖8(b)中,所有缺陷都被正確檢測到,實現了更好的檢測結果。
4.4.2 (2) Ablation Study
為了驗證改進方法中注意力模塊對網絡檢測性能的影響,作者設計了使用CSPDarknet53作為 Backbone 的網絡剪枝實驗。將CA和EMSA添加到FPN和PAFPN的兩個特征金字塔中,比較了它們在網絡檢測效果上的差異,如表4所示。
如表2所示,在FPN中,將EMSA添加到FPN導致精確度、召回率和mAP分別提高了3.3%、0.2%和2.1%。在將EMSA和CA的混合注意力機制添加到PAFPN中后,精確度、召回率和mAP分別提高了2.9%、4.2%和3%。在將EMSA和CA的混合注意力機制添加到PAFPN中后,精確度、召回率和mAP分別提高了2.4%、4%和1.7%。
5?Conclusions
為了提高工業場景中SMT焊點缺陷檢測的準確性并減少缺陷焊點的漏檢率和誤報率,作者提出了一種深度學習的增強多頭自注意力機制用于SMT焊點缺陷檢測方法,以提高特征利用率,并使網絡具有更強的非線性表達能力。作者將CA機制與EMSA機制相結合,構建了一種混合注意力機制網絡。該混合注意力機制用于增強FPN,提高其融合特征的能力,并增強網絡通道之間的信息傳輸。增強后的FPN應用于YOLOv5模型,從而提高了YOLOv5對焊點缺陷的檢測能力,特別是解決了小尺寸缺陷的低檢測率問題,同時提高了缺陷檢測模型的泛化能力。
本方法通過改進注意力機制增強了網絡的特征融合能力。實驗結果顯示,作者的方法在焊點缺陷數據集上實現了91.5%的mAP,比比較模型高4.3%。與流行的自注意力改進模型STC-YOLO和TPH-YOLOv5相比,mAP分別提高了2.8%和0.6%,FPS指數分別提高了159.8,比STC-YOLO和TPH-YOLOv5分別高22.5和31.6。這表明作者的模型在實時性方面表現良好,對工業場景的應用有益。下一步將是繼續改進網絡,使其模型參數更輕量化,同時進一步提高焊點缺陷的檢測準確性。
參考
[1].YOLO ALGORITHM WITH HYBRID ATTENTION FEATURE PYRAMID NETWORK FOR SOLDER JOINT DEFECT DETECTION
論文下載鏈接:YOLO algorithm with hybrid attention feature pyramid network for solder joint defect detection (arxiv.org)
THE END!
文章結束,感謝閱讀。您的點贊,收藏,評論是我繼續更新的動力。大家有推薦的公眾號可以評論區留言,共同學習,一起進步。