蔡聰藝
(漳州職業(yè)技術(shù)學(xué)院,福建 漳州 363000)
金屬作為工業(yè)產(chǎn)品的重要原材料之一,在加工過(guò)程中不可避免地會(huì)出現(xiàn)裂紋、劃痕等損傷,金屬表面的損傷會(huì)帶來(lái)產(chǎn)品的質(zhì)量和美觀缺陷,嚴(yán)重的會(huì)導(dǎo)致企業(yè)的品牌質(zhì)量下降、成本增大等問題[1-2]。傳統(tǒng)的人工檢測(cè)主觀因素影響較大,存在漏檢、成本高以及效率低等突出問題。隨著機(jī)器視覺技術(shù)和圖像處理技術(shù)的發(fā)展,基于計(jì)算機(jī)圖像分析處理的金屬表面缺陷自動(dòng)檢測(cè)系統(tǒng)已經(jīng)得到了廣泛應(yīng)用,該系統(tǒng)能夠有效地提高檢測(cè)的精度和速度。
早期的金屬表面缺陷檢測(cè)主要分為傳統(tǒng)的圖像處理方法和基于人工提取特征的機(jī)器學(xué)習(xí)方法[3],與傳統(tǒng)的人工檢測(cè)相比,機(jī)器視覺技術(shù)在一定程度上改善了人工檢測(cè)效率低、準(zhǔn)確度差的缺陷。但是容易受到周圍環(huán)境的影響,因此難以大范圍應(yīng)用。隨著計(jì)算機(jī)視覺技術(shù)的不斷發(fā)展,采用深度學(xué)習(xí)方法來(lái)檢測(cè)金屬表面缺陷受到了國(guó)內(nèi)外學(xué)者的廣泛關(guān)注,文獻(xiàn)[4]提出了基于聚類的Faster R-CNN算法,利用K-MeansII聚類生成錨點(diǎn)方案,提高零件表面的檢測(cè)精度;文獻(xiàn)[5]利用YOLOv3檢測(cè)鋁型材表面缺陷,將原始圖像與預(yù)處理后的圖像融合,增強(qiáng)魯棒性;文獻(xiàn)[6]結(jié)合金字塔與殘差融合的方法對(duì)YOLOv3算法進(jìn)行改進(jìn),提高了鋼材表面劃痕的檢測(cè)精度?;赮OLO系列的改進(jìn)算法在數(shù)據(jù)處理和網(wǎng)絡(luò)篩選方面均具有較好的效果,可以通過(guò)增強(qiáng)原始數(shù)據(jù)抽取、對(duì)數(shù)據(jù)集進(jìn)行聚類劃分、引入損失函數(shù)等方法來(lái)提高缺陷檢測(cè)的準(zhǔn)確性。然而,在金屬表面缺陷檢測(cè)中,仍然存在缺陷尺度過(guò)小導(dǎo)致的檢測(cè)不靈敏、結(jié)果無(wú)效和漏檢等問題。
本文結(jié)合現(xiàn)有深度學(xué)習(xí)目標(biāo)檢測(cè)的方法,在原有的YOLOv5網(wǎng)絡(luò)上結(jié)合了PSO算法優(yōu)化網(wǎng)絡(luò)的頸部部分,同時(shí)應(yīng)用了自適應(yīng)錨框計(jì)算并使用反向傳播神經(jīng)網(wǎng)絡(luò)對(duì)圖像進(jìn)行訓(xùn)練,得到最終的深度卷積神經(jīng)網(wǎng)絡(luò),以期進(jìn)一步提高小目標(biāo)情況下的缺陷檢測(cè)精度。
YOLOv5是YOLOv4的迭代版,是以Darknet-53為特征的網(wǎng)絡(luò)結(jié)構(gòu)作為特征提取網(wǎng)絡(luò),提高了檢測(cè)的精度、速度,目前普遍應(yīng)用于視頻和實(shí)時(shí)目標(biāo)等的檢測(cè)中[7]。與之前的YOLO模型相比,YOLOv5的模型所占內(nèi)存大幅度減小,可以說(shuō)YOLOv5以最小的網(wǎng)絡(luò)擁有了最快的速度和AP精度,圖1是YOLOv5的結(jié)構(gòu)示意圖。
圖1 YOLOv5結(jié)構(gòu)示意圖
從圖1可以看出,YOLOv5由輸入端、基準(zhǔn)網(wǎng)絡(luò)端、Neck網(wǎng)絡(luò)、Head輸出端和代表輸入圖像的輸入端組成。輸入端階段通常包括圖像預(yù)處理階段,在此階段,輸入圖像被縮放到網(wǎng)絡(luò)的輸入端并歸一化。在網(wǎng)絡(luò)訓(xùn)練階段,YOLOv5使用Mosaic數(shù)據(jù)提高了操作增強(qiáng)模型的訓(xùn)練速度和網(wǎng)絡(luò)精度[8]。此外,對(duì)基準(zhǔn)網(wǎng)絡(luò)部分進(jìn)行改進(jìn),添加了基準(zhǔn)網(wǎng)絡(luò)Focus結(jié)構(gòu)和Neck網(wǎng)絡(luò),使基準(zhǔn)網(wǎng)絡(luò)增強(qiáng)了提取通用特征的特異性和魯棒性。
YOLOv5利用特征金字塔網(wǎng)絡(luò)(FPN)來(lái)提取多尺度特征圖層,有針對(duì)性地提高小目標(biāo)的被檢測(cè)概率。YOLOv5將淺、深層特征相互融合,可以得到3個(gè)特征圖,3個(gè)特征圖均具有不同比例,可檢測(cè)3種尺度目標(biāo)物,通過(guò)區(qū)分來(lái)提高檢測(cè)精度。利用3個(gè)比例尺的特征圖探測(cè)目標(biāo),每個(gè)比例尺產(chǎn)生3個(gè)Anchor Box,共9個(gè)Anchor Box。在預(yù)測(cè)過(guò)程中,通過(guò)PSO算法預(yù)測(cè)Anchor Box的尺寸,圖2是預(yù)測(cè)框示意圖。
圖2 預(yù)測(cè)框示意圖
如圖2所示,輸入圖像首先被劃分為S×S網(wǎng)格,每個(gè)網(wǎng)格的寬度、高度分別為cx、cy,相對(duì)于錨盒偏移量的網(wǎng)格輸出分別為tx、ty、tw、th,然后預(yù)測(cè)框坐標(biāo)公式為:
其中:bx、by是預(yù)測(cè)框的原點(diǎn)坐標(biāo);bw、bh分別為預(yù)測(cè)框的寬度和高度;pw、ph分別是Anchor Box的寬和高。
在此基礎(chǔ)上,應(yīng)用基于統(tǒng)計(jì)學(xué)習(xí)理論中最小二乘支持向量機(jī)(LS-SVM)算法對(duì)圖像進(jìn)行分類[9],通過(guò)加入激活函數(shù)Sigmoid的使用將預(yù)測(cè)值tx和ty映射到[0,1]范圍內(nèi),然后設(shè)置置信度閾值,篩選出不符合的預(yù)測(cè)框,最后用非極大值抑制方法去除冗余預(yù)測(cè)框[10]。
YOLOv5一般按三種不同尺度(32×32、16×16和8×8)對(duì)特征圖層進(jìn)行劃分,此方法雖然可以一定程度提高多目標(biāo)的檢測(cè),但仍然對(duì)金屬可能出現(xiàn)的表面缺陷檢測(cè)不敏感,因此有必要對(duì)YOLOv5進(jìn)行改進(jìn),來(lái)提高小缺陷目標(biāo)檢測(cè)的精確性。基于此技術(shù)缺陷,本文提出了一種基于多尺度融合深度學(xué)習(xí)的改進(jìn)算法來(lái)實(shí)現(xiàn)金屬零件表面缺陷的自動(dòng)檢測(cè)[11]。
針對(duì)網(wǎng)絡(luò)結(jié)構(gòu)部分,基于傳統(tǒng)YOLOv5網(wǎng)絡(luò)結(jié)構(gòu),本文新增圖層以提高目標(biāo)檢測(cè)能力。通過(guò)分析不同類型噪聲與原始圖像之間的差異,提出了基于深度學(xué)習(xí)框架下的去噪方法,并將其應(yīng)用于增強(qiáng)現(xiàn)實(shí)系統(tǒng),最后利用實(shí)驗(yàn)數(shù)據(jù)驗(yàn)證該方案的有效性及實(shí)用性。改進(jìn)后的網(wǎng)絡(luò)模型如圖3所示,虛線框?yàn)樾略龀叨葹?04×104的特征圖層。
圖3 改進(jìn)后的算法結(jié)構(gòu)
在Darknet-53中,經(jīng)過(guò)兩次向上采樣,將第二個(gè)殘差塊的淺層輸出融合網(wǎng)絡(luò)的深層輸出,然后通過(guò)卷積得到一個(gè)104×104的新特征圖層,縮小了原始圖像的尺寸,從而能得到更多的網(wǎng)格,使網(wǎng)絡(luò)具有更好的提取特征性能。
因?yàn)榫W(wǎng)格大小對(duì)目標(biāo)物的尺寸具有敏感性,通過(guò)將淺層、深層特征相融合,創(chuàng)建有利于檢測(cè)小目標(biāo)的特征層,提高模型檢測(cè)小目標(biāo)的能力,提高模型整體精度。在網(wǎng)絡(luò)中,增加1個(gè)特征圖層使Anchor Box數(shù)目增加到12個(gè),也提高了檢測(cè)密度。
最后利用上述算法來(lái)進(jìn)行驗(yàn)證,在多個(gè)真實(shí)數(shù)據(jù)集上分別實(shí)現(xiàn)了基于深度卷積神經(jīng)網(wǎng)絡(luò)的多尺度、高分辨率遙感影像的道路識(shí)別和分類??梢钥吹剑卣鲗訑?shù)目的疊加可以增多劃分缺陷目標(biāo)的尺寸層次,從而提高了網(wǎng)絡(luò)對(duì)多缺陷目標(biāo)的綜合檢測(cè)能力。
已有的缺陷檢測(cè)算法可以有效檢測(cè)缺陷,然而需要在多次訓(xùn)練過(guò)程中不斷調(diào)節(jié)以達(dá)到最好的訓(xùn)練效果。粒子群算法(Particle Swarm Optimization,PSO)是一種群智能算法,由于其收斂速度快、全局尋優(yōu)能力強(qiáng)等多方面的優(yōu)點(diǎn)受到了廣泛關(guān)注[12]。它通過(guò)迭代找到隨機(jī)粒子群的最優(yōu)解,每次迭代來(lái)跟蹤粒子的“極值”來(lái)更新位置和速度信息。粒子速度計(jì)算公式如下:
其中:i=1,2,…,N,N是群中粒子的總數(shù),vi表示粒子的速度,xi是粒子的當(dāng)前位置,c1、c2是學(xué)習(xí)因子,rand()是介于(0,1)之間的隨機(jī)數(shù)。
結(jié)合粒子群優(yōu)化算法和YOLOv5改進(jìn)對(duì)金屬表面進(jìn)行缺陷檢測(cè),具體步驟如下:
(1)在YOLOv5算法中增加一個(gè)特征圖層,尺度為104×104,比原算法多一尺度,即形成一個(gè)四尺度的預(yù)測(cè)模型,有效解決了小目標(biāo)檢測(cè)的敏感性問題,進(jìn)一步提升表面缺陷檢測(cè)精度和準(zhǔn)確性。
(2)引入DIoU損失函數(shù),使邊界框的距離測(cè)量和交叉問題得到處理,從而使模型的運(yùn)動(dòng)軌跡更加精確,模型收斂速度加快。
(3)利用PSO網(wǎng)絡(luò)對(duì)網(wǎng)絡(luò)的特征提取模塊進(jìn)行優(yōu)化,進(jìn)一步提高特征提取的精度,獲取最優(yōu)的特征類型,減少網(wǎng)絡(luò)損失,從而提升網(wǎng)絡(luò)的檢測(cè)精度。
實(shí)驗(yàn)運(yùn)行環(huán)境如表1所示。
表1 實(shí)驗(yàn)硬件描述
數(shù)據(jù)集來(lái)源:漳州職業(yè)技術(shù)學(xué)院自行收集整理的NEU-DET鋼材表面缺陷數(shù)據(jù)集[13]。
圖像類別:包含6種類型的缺陷,即裂紋、雜質(zhì)、斑塊、Pitted_surface、Rolled-in_scale和劃痕。
圖像數(shù)量:每種類型的缺陷圖片包含300幅尺寸為1800×416的圖像,共計(jì)1800張。
圖像增強(qiáng)技術(shù):提取的圖像進(jìn)行90度和180度旋轉(zhuǎn),調(diào)整圖像的飽和度和對(duì)比度。
缺陷定位:使用xml格式定位缺陷位置并對(duì)其進(jìn)行分類。
圖像預(yù)處理:包括灰度化處理和二值化處理等一系列操作。
數(shù)據(jù)集劃分:數(shù)據(jù)集按8:2的比例隨機(jī)分為訓(xùn)練集和測(cè)試集,即1440張圖像劃分訓(xùn)練集和360張圖像劃分測(cè)試集。
根據(jù)本文提出的改進(jìn)PSO-YOLOv5算法,該算法的初始設(shè)置情況為:初始學(xué)習(xí)率值為1/1000,為防止數(shù)據(jù)出現(xiàn)過(guò)擬合,設(shè)置權(quán)重衰減系數(shù)為5倍的初始學(xué)習(xí)率值[15],當(dāng)訓(xùn)練迭代次數(shù)達(dá)到960次時(shí),學(xué)習(xí)率相應(yīng)地減少10倍。實(shí)驗(yàn)前期共設(shè)置了2批次尺寸,batch_size設(shè)置為4。模型訓(xùn)練目標(biāo)的類別置信度閾值是0.5,DIoU閾值是0.45。當(dāng)兩個(gè)預(yù)測(cè)框之間的DIoU值超過(guò)了設(shè)置閾值時(shí),則刪除該預(yù)測(cè)框。最后將輸入圖像進(jìn)行分類處理后,輸出結(jié)果作為最終結(jié)果。
評(píng)價(jià)指標(biāo)主要分為速度指標(biāo)和精度指標(biāo)兩大類。速度指標(biāo)為同一運(yùn)行條件下每秒處理的圖片數(shù)量或單張圖片處理所需時(shí)間。精度指標(biāo)采用精確率(Precision,P)、召回率(Recall,R)和平均準(zhǔn)確率(Mean Average Precision,MAP)三項(xiàng)作為網(wǎng)絡(luò)模型的性能指標(biāo)。P、R和MAP公式如下:
式中:TP—正確預(yù)測(cè)的正例;FP—錯(cuò)誤預(yù)測(cè)的負(fù)例;FN—錯(cuò)誤預(yù)測(cè)的正例;N—檢測(cè)類別數(shù)的數(shù)量;AP—每種檢測(cè)類型的準(zhǔn)確性。
為了驗(yàn)證本文方法的優(yōu)越性,首先將其與主流算法進(jìn)行了性能比較,然后通過(guò)消融實(shí)驗(yàn)驗(yàn)證了改進(jìn)PSO-YOLOv5算法的有效性。
(1)與當(dāng)前主流算法的對(duì)比實(shí)驗(yàn)
改進(jìn)PSO-YOLOv5與Faster R-CNN等4種算法的評(píng)價(jià)指標(biāo)詳見表2。
表2 算法的計(jì)算結(jié)果對(duì)比
所有模型均是在初始學(xué)習(xí)率0.001,DIoU閾值為0.5的條件下計(jì)算,共訓(xùn)練了1080個(gè)epoch。由表2計(jì)算結(jié)果可知:本文提出的改進(jìn)PSO-YOLOv5算法以67.76%的平均準(zhǔn)確率、68.56%的精確率、75.89%的召回率均排各項(xiàng)第一,證明改進(jìn)的PSOYOLOv5算法在金屬缺陷檢測(cè)時(shí),在相同條件下能夠獲得更高的準(zhǔn)確率、更好的魯棒性以及更快的收斂速度,其綜合性能優(yōu)于其他幾種算法。在運(yùn)行效率方面,本文方法的FPS為31.6frames/s,快于Faster RCNN的13frames/s和SSD的29.7frames/s。雖 與YOLOv2和YOLOv3的檢測(cè)速率相比稍低,但由于改進(jìn)的大規(guī)模輸出網(wǎng)絡(luò)結(jié)構(gòu)、DIoU損失和PSO網(wǎng)絡(luò)的改進(jìn),檢測(cè)精度最高。
綜上,相較于目前主流的金屬表面缺陷檢測(cè)算法,如Faster R-CNN、YOLOv3等,本文所提出的改進(jìn)PSO-YOLOv5算法具有最高的檢測(cè)精度,同時(shí)檢測(cè)速度也適中。結(jié)合檢測(cè)精度與檢測(cè)速度這兩個(gè)指標(biāo),本文提出的PSO-YOLOv5整體效果最優(yōu)。
(2)消融實(shí)驗(yàn)
為了進(jìn)一步驗(yàn)證本文提出的改進(jìn)算法的有效性,將改進(jìn)的PSO-YOLOv5金屬缺陷檢測(cè)方法與原始YOLOv5算法進(jìn)行性能對(duì)比,實(shí)驗(yàn)結(jié)果如圖4所示。
圖4 PSO-YOLOv5和YOLOv5檢測(cè)結(jié)果對(duì)比
對(duì)比檢測(cè)所有的小缺陷目標(biāo),改進(jìn)的PSO-YOLOv5比YOLOv5算法在六項(xiàng)表面缺陷類型的檢測(cè)上均具有較好的檢測(cè)精度。根據(jù)圖4可知,在裂紋、雜質(zhì)等6項(xiàng)金屬表面缺陷類型中,PSO-YOLOv5比YOLOv5的檢測(cè)精度高。其中氧化鐵皮壓入和裂紋類型檢測(cè)精度提高較多,均超過(guò)14%,且氧化鐵皮壓入精度提高值最大,達(dá)15.24%;斑塊類缺陷檢測(cè)精度提高值最小,為6.88%。改進(jìn)的PSO-YOLOv5算法的平均檢測(cè)精度為79.97%,YOLOv5算法的平均檢測(cè)精度為69.60%,PSO-YOLOv5較其提高了10.37%,表明改進(jìn)PSO-YOLOv5算法可以顯著提高金屬表面缺陷檢測(cè)的精度。
本文算法融合增加了特征圖層的尺度,引入DIoU損失函數(shù)和PSO算法,最后通過(guò)加入卷積層增強(qiáng)圖像細(xì)節(jié)處理得到一種新的基于YOLOv5與CNN結(jié)合的金屬表面缺陷檢測(cè)方法。實(shí)驗(yàn)結(jié)果表明,本算法在平均準(zhǔn)確率、精確率、召回率方面均比目前流行的如YOLOv5、Faster R-CNN等算法具有較大的優(yōu)越性,極大提高了金屬表面缺陷的檢測(cè)精度和準(zhǔn)確性,滿足了金屬缺陷檢測(cè)精度的要求。