吳烈權(quán),周志峰,朱志玲,張 維,王 勇
(1.上海工程技術(shù)大學(xué) 機械與汽車工程學(xué)院,上海 201620;2.上海司南衛(wèi)星導(dǎo)航技術(shù)股份有限公司,上海 201801;3.國網(wǎng)思極位置服務(wù)有限公司,北京 102211)
貼片二極管在電氣系統(tǒng)中有非常廣泛的使用,例如整流、穩(wěn)壓、續(xù)流、包絡(luò)線檢測等,而貼片二極管的表面缺陷嚴(yán)重影響了其電氣絕緣性能,所以貼片二極管表面缺陷檢測顯得尤為重要[1]。傳統(tǒng)目測法借助顯微工具進行人工檢測,工作強度大、效率低,且其檢測結(jié)果易受檢測人員的主觀因素影響。
傳統(tǒng)目標(biāo)檢測算法基于手工特征的模型通常較淺,語義性不高,同時基于滑動窗口的候選框選擇策略沒有針對性,時間復(fù)雜度高,窗口冗余,在特征提取和分類時運行速度慢,且對圖像多樣性的變化沒有很好的魯棒性。隨著數(shù)字圖像處理技術(shù)和卷積神經(jīng)網(wǎng)絡(luò)的興起,現(xiàn)階段有很多新興算法使用在目標(biāo)檢測領(lǐng)域。根據(jù)算法的流程,可以將現(xiàn)有的目標(biāo)檢測算法分為以擁有較高檢測精度的 R-CNN[2-4]系列為代表的Two-Stage 算法,和以擁有較快運行速度的SSD[5]和YOLO[6-9]系列為代表的One-Stage 算法。R-CNN 系列算法在精度檢測中的效果顯著,但是檢測速度較慢。在Bochkovskiy A 提出YOLO-V4 之前,YOLO 系列運行速度很快,但是其檢測精度相較于R-CNN 系列算法較差,而YOLO-V4 不僅兼顧了R-CNN 系列算法檢測精度高和SSD 算法運行速度快的優(yōu)點,且優(yōu)化了對小目標(biāo)的檢測精度。
目前,在表面缺陷、小目標(biāo)行人、多目標(biāo)航拍[10]等方面的檢測,都大量使用以YOLO-V4 為基本框架的算法,且在小目標(biāo)檢測中效果突出,因此針對貼片二極管的小目標(biāo)結(jié)構(gòu),本文選取YOLOV4 為基本架構(gòu)。文獻[11]提出了一種基于改進的YOLO-V4 算法的航空發(fā)動機部件表面缺陷檢測,PANet(路徑聚合網(wǎng)絡(luò))結(jié)構(gòu)中融合淺層特征與深層特征,同時優(yōu)化了Focal Loss,提高小目標(biāo)檢測精度。但為提高檢測速度,去除 PANet 中自下而上的路徑增強結(jié)構(gòu),犧牲low-level 特征具有許多微小細節(jié)和高定位精度。文獻[12]為解決小目標(biāo)行人檢測精度低、實時性差等問題,在特征融合部分引入 scSE(空間和通道的壓縮和激勵)注意力模塊,促使網(wǎng)絡(luò)學(xué)習(xí)到更有意義的特征信息,同時引用深度可分離卷積代替 YOLO-V4 算法殘差結(jié)構(gòu)中的傳統(tǒng)卷積,降低模型殘差和計算量。但深度可分離卷積需要保存的中間變量更多,會導(dǎo)致訓(xùn)練速度有所降低。
針對上述問題,本文算法通過FPN+PANet 使特征融合得到更豐富的特征信息,并引入三分支注意力機制模塊以剔除特征融合所形成的無用信息,提升檢測速度。在保留傳統(tǒng)卷積的同時,CSP1模塊采用DenseNet 替換原網(wǎng)絡(luò)中的ResNet,更有利于特征和梯度的傳遞,可以增強特征在網(wǎng)絡(luò)間的傳播,有效減少計算量,以提升檢測速度。
圖1 所示為YOLO-V4 算法框架。作為YOLO系列平衡檢測精度和運行速度的YOLO-V4 的體系架構(gòu),由 CSPDarknet53 作為主干網(wǎng)絡(luò),SPP 作為附加模塊用來擴大感受野,PANet 中的路徑聚合模塊作為混合和組合圖像特征的網(wǎng)絡(luò)層和 YOLOV3(基于錨點)的檢測頭組成,YOLO-V4 采用了新的數(shù)據(jù)增強算法(Mosaic 和SAT),使用遺傳算法選擇超參數(shù),使用交叉小批量標(biāo)準(zhǔn)化(CmBN)改進SAM、PAN,使用DropBlock正則化方法。
圖1 YOLO-V4 算法框架Fig.1 Algorithm framework of YOLO-V4
本文所用的改進的YOLO-V4 算法框架如圖2所示。首先輸入圖像進行預(yù)處理后,經(jīng)過CBM、CSP1_DenseBlock 和TAM 模塊獲得特征映射;DenseNet[13]弱化了梯度消失問題以及減少網(wǎng)絡(luò)特征冗余的情況;三分支注意力機制模塊實現(xiàn)了特征信息的跨緯度融合;FPN+PANet 對特征進行融合,在FPN 的基礎(chǔ)上加入了自底向上線路增強和自適應(yīng)特征池化。自底向上線路增強使更多邊緣的淺層特征得以保留,自適應(yīng)特征池化將單層特征換成多層特征,即每個ROI 需要和多層特征做ROI Align 操作,然后將得到的不同層ROI 特征融合;最后分別得到80×80,40×40,20×20 的特征映射;取代5 層CBL 的CSP2 降低網(wǎng)絡(luò)的運算量;最后由預(yù)測層分別對三種特征圖進行識別。
圖2 改進的YOLO-V4 算法框架Fig.2 Algorithm framework of improved YOLO-V4
特征提取能力在一定程度上影響算法的性能,隨著網(wǎng)絡(luò)的加深,性能會提高直至瓶頸,最后出現(xiàn)衰退。YOLO-V4 基于DarkNet53 特征提取網(wǎng)絡(luò)引入了CSP 結(jié)構(gòu),該結(jié)構(gòu)有2 個分支:1)普通卷積;2)通過Res unit 組件生成殘差邊。Res unit 模塊緩解網(wǎng)絡(luò)加深而梯度消失的現(xiàn)象,增強了卷積神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)能力,加快了網(wǎng)絡(luò)推理速度。Res unit的基礎(chǔ)殘差模塊如圖3 所示。圖3 中x表示輸入,H(x)為期望輸出,F(xiàn)(x)為殘差,期望輸出為H(x)=F(x)+x。當(dāng)F(x)=0時,H(x)=x,在梯度傳播過程中可以解決梯度消失現(xiàn)象,避免信息的遺漏。殘差單元將復(fù)雜的期望映射轉(zhuǎn)換為殘差映射,使得網(wǎng)絡(luò)更容易訓(xùn)練,網(wǎng)絡(luò)的層數(shù)也能大大加深。
圖3 基礎(chǔ)殘差模塊Fig.3 Basic residual module
基礎(chǔ)殘差單元解決了梯度消失現(xiàn)象,但是殘差結(jié)構(gòu)的下一層輸入僅來自上一層,沒有更多的特征信息。本文用DenseNet 模塊替代Res unit 模塊,DenseNet 模塊對特征信息做拼接,每層網(wǎng)絡(luò)輸入都包括前面所有網(wǎng)絡(luò)的輸出,從特征重用的角度提升網(wǎng)絡(luò)的性能。一個DenseNet 由3 個DenseBlock組成,單個DenseBlock 由多個BN 層、卷積層和ReLU函數(shù)組成。該結(jié)構(gòu)的每層都能直接從損失函數(shù)中得到梯度,直接獲取輸入信號,這樣可以訓(xùn)練出更深的網(wǎng)絡(luò),得到更多的特征信息,但同時也增大了網(wǎng)絡(luò)的計算量,降低了運行速度。因此本文在DenseNet的基礎(chǔ)上,設(shè)計了改進的DenseBlock 結(jié)構(gòu)來取代Res unit,如圖4 所示。由此,改進YOLO-V4 中只需要將原有的CSP 模塊中X個殘差組件替換成X個DenseBlock。
圖4 改進的DenseBlock 結(jié)構(gòu)Fig.4 Improved DenseBlock structure
同時為提高算法檢測速度,本文用改進的CSP2替換CBL×5 模塊,降低了網(wǎng)絡(luò)的運算量,具體結(jié)構(gòu)如圖5 所示。
圖5 改進的CSP2 結(jié)構(gòu)Fig.5 Improved CSP2 structure
視覺注意力機制是人類視覺所特有的大腦信號處理機制,利用有限的注意力資源從大量信息中篩選出高價值信息。注意力機制模塊與人類的視覺注意力機制模塊類似,主要目標(biāo)也是選擇更關(guān)鍵的信息。
本文在FPN+PANet 對特征融合的基礎(chǔ)上,引進了三分支注意力機制模塊[14],使輸入的圖像信息得到更高效的處理,并能有效地過濾無關(guān)特征。注意力機制模型輸入的是大量圖像信息X_i,根據(jù)上下文Y,給予X_i 不同的權(quán)重,輸出的Z是由X_i加權(quán)算數(shù)平均數(shù),在整個加權(quán)過程中剔除了大量無關(guān)信息。基于圖像的空間和通道維度,注意力機制可分為空間注意力機制和通道注意力機制,以及混合注意力機制??臻g注意力機制根據(jù)所需的圖片信息計算權(quán)重;通道注意力機制針對各通道的特征信息進行學(xué)習(xí),實現(xiàn)通道層面的重要性感知;混合注意力機制是將上兩種注意力機制進行融合,所得到的提取圖像特征信息的完整性、準(zhǔn)確性和可擴展性更強。YOLO-V4 僅用到了空間注意力機制,本文采用的是三分支混合注意力機制,如圖6 所示。
圖6 三分支混合注意力機制Fig.6 Three-branch mixed attention mechanism
其原理是對輸入特征映射信息進行旋轉(zhuǎn)變換,然后對不同維度的特征進行重要性學(xué)習(xí)并且編碼。三分支注意力機制模塊由空間、通道及空間權(quán)重計算3 個分支構(gòu)成。第一個分支和第二個分支均是通道C和空間H維度交互捕獲分支,輸入特征后經(jīng)過置換,分別在H維度和W維度上進行最大池化和平均池化,分別變?yōu)镠×C×W維度特征和C×H×W維度特征,然后均進行逐個元素相加;第三個分支為通道注意力分支,輸入特征后也經(jīng)過最大池化和平均池化,再接著7×7 卷積;3 個分支通過Sigmoid 來獲得權(quán)重,模塊最終通過對3 個分支輸出的特征進行相加平均處理,來實現(xiàn)跨維度交互。本文中的融合注意力機制可以忽略計算開銷,同時消除權(quán)重和通道之間的間接關(guān)系。
YOLO-V4 的正樣本損失函數(shù)如式(1)所示:
本文檢測對象是貼片二極管,貼片二極管的缺陷檢測問題可以視為二分類問題。本文實驗采集的貼片二極管圖片中難易樣本分類數(shù)量不均衡,使得模型從樣本訓(xùn)練中學(xué)習(xí)的有用信息有限,易造成過擬合,影響模型的泛化性。針對上述問題,本文引進Focal Loss 函數(shù),如式(2)和式(3)所示:
式中:Pt反映了與類別y的接近程度;為真實值;P為預(yù)測值;Pt越大說明越接近類別y,也說明分類的置信度越高,代表樣本越易分,γ >0時為可調(diào)節(jié)因子。
在Focal Loss 函數(shù)中另外引進一個權(quán)重因子,如式(4)所示。其中權(quán)重因子的大小一般為相反類的比重,即負樣本越多,它的權(quán)重越小,這樣可以降低負樣本的影響。
利用式(2)、式(3)和式(4)對式(1)進行優(yōu)化,得到式(5):
在本文中,根據(jù)所采集的貼片二極管圖像樣本的難易分類樣本和正負樣本數(shù)量,取α=0.25、γ=2[15]。
本文的貼片二極管檢測分為缺陷和無缺陷,在開始訓(xùn)練模型之前采集貼片二極管的樣本圖像為數(shù)據(jù)集,該數(shù)據(jù)集包括870 張貼片二極管圖片,隨機抽取600 張為訓(xùn)練子數(shù)據(jù)集,40 張為缺陷子數(shù)據(jù)集,230 張為測試子數(shù)據(jù)集用于訓(xùn)練、驗證和測試,然后利用標(biāo)注工具對圖像進行標(biāo)注,生成XML類型的標(biāo)注文件。本文算法基于pytorch 實現(xiàn),實驗所用計算機配置:CPU 為Intel Xeon W-2135,內(nèi)存大小為32 G,GPU 為GeForce RTX 2080Ti,顯存大小為10 G,操作系統(tǒng)為Ubuntu18.04。
為了使模型獲得更好的初始化參數(shù),本文所改進的YOLO-V4 算法在COCO 數(shù)據(jù)集上進行預(yù)訓(xùn)練。圖7 是本文算法在訓(xùn)練過程中平均損失率(avg_loss)和平均檢測精度值(mAP)隨算法迭代次數(shù)的變換曲線。隨著不斷迭代,avg_loss 不斷下降,mAP 在迭代40 次后基本不變化,達到最大值。此時,網(wǎng)絡(luò)模型收斂。
圖7 平均損失率和平均檢測精度曲線Fig.7 Curves of average loss rate and average detection accuracy
本文實驗中選擇主流的一階算法SSD、YOLOV3 和YOLO-V4 進行對比實驗。實驗中采用精確率P(precision)、召回率R(recall)、多分類平均精度mAP以及檢測速度FPs作為評價模型的性能指標(biāo),如式(6)所示:
式中:TP為真陽性;FP為假陽性;FN為假陰性;AP為平均精度;n為類別數(shù)。本文檢測對象只有貼片二極管,所以多分類平均精度值與平均精度值相等。
表1 是本文實驗?zāi)P团c其他熱門網(wǎng)絡(luò)模型的對比實驗結(jié)果。從表1 中可以看出,本文改進的YOLO-V4 算法在P、R、mAP上均高于目前流行的幾種網(wǎng)絡(luò)模型,僅在FPs方面略有下降。本文算法相較于SSD 的P、R、mAP分別高出9.55%,8.30%,9.98%;相較于YOLO-V4 的P、R、mAP分別高出2.98%,2.65%,2.92%。綜上所述,本文改進算法在檢測精度和漏檢率上都有提高,檢測效果較好。
表1 各種模型性能指標(biāo)對比Table 1 Performance indicators of various models
圖8 所示為本算法對貼片二極管表面缺陷檢測的實驗圖。從圖8 中可以看出,本算法對貼片二極管檢測的準(zhǔn)確率較高,且未存在漏檢、錯檢情況,能準(zhǔn)確檢測出存在表面缺陷的貼片二極管。
圖8 測試集部分圖像在本文算法上測試的結(jié)果Fig.8 Test results of part of images in test set on algorithm
本文在YOLO-V4 的基礎(chǔ)上提出了改進的YOLOV4 的貼片二極管表面缺陷算法。在改進的YOLOV4 算法中,CSP1 模塊采用DenseNet 替換原網(wǎng)絡(luò)中的ResNet,更好地增強了小目標(biāo)檢測精度,同時弱化梯度消失問題以及減少網(wǎng)絡(luò)特征冗余的情況。引進三分支注意力機制模塊,實現(xiàn)了特征信息的跨緯度融合,抑制了無效的貼片二極管特征信息,同時消除了權(quán)重和通道之間的間接關(guān)系。通過改進的Loss函數(shù)優(yōu)化損失,降低了樣本不平衡和難易樣本對檢測精度的影響。本文建立貼片二極管數(shù)據(jù)集,對改進的YOLO-V4 算法和SSD、兩種YOLO 系列的算法進行對比試驗。改進的YOLOV4 算法的檢測精確度達到了98.16%,相較于SSD算法其檢測精確度(P)提升了9.55%,相較于YOLO算法其檢測精確度(P)提升了2.95%,且多分類平均精度(mAP)達到99.45%。綜上所述,本文改進的YOLO-V4 算法能夠?qū)崟r準(zhǔn)確檢測貼片二極管表面缺陷。