程婧怡,段先華,朱 偉
江蘇科技大學(xué) 計(jì)算機(jī)學(xué)院,江蘇 鎮(zhèn)江 212100
金屬作為主要的工業(yè)產(chǎn)品原材料之一,在加工過程中難免會(huì)對(duì)表面造成損傷,如劃痕、裂縫等[1]。金屬表面的損傷會(huì)使產(chǎn)品的質(zhì)量、美觀受到嚴(yán)重的影響,導(dǎo)致企業(yè)利潤(rùn)減少,因此企業(yè)需要在產(chǎn)品生產(chǎn)過程中對(duì)金屬表面進(jìn)行缺陷檢測(cè),確保產(chǎn)品質(zhì)量,降低成本。然而傳統(tǒng)的人工檢測(cè),由于人的主觀因素影響較大,存在漏檢、成本高、效率低等問題[2]。因此,金屬表面的缺陷如何獲得高效精準(zhǔn)的檢測(cè)也成為熱門的研究方向之一。
早期的金屬表面缺陷檢測(cè)引入了機(jī)器視覺技術(shù),主要分為兩類:傳統(tǒng)的圖像處理方法和基于人工提取特征的機(jī)器學(xué)習(xí)方法[3]。雖然兩類方法在一定程度上可以克服人工檢測(cè)的主觀性強(qiáng)、效率低等缺點(diǎn),但是機(jī)器視覺技術(shù)會(huì)受硬件設(shè)備和周圍環(huán)境影響,無法準(zhǔn)確地定位缺陷位置,造成信息誤差,難以大規(guī)模地應(yīng)用到實(shí)際項(xiàng)目中。隨著計(jì)算機(jī)視覺技術(shù)的不斷發(fā)展,深度學(xué)習(xí)的檢測(cè)方法得到廣泛應(yīng)用,并且逐漸的取代傳統(tǒng)機(jī)器視覺對(duì)金屬表面缺陷的檢測(cè)。深度學(xué)習(xí)檢測(cè)算法從思路上主要分為兩類:一類是two-stage 方法,也稱為基于區(qū)域的目標(biāo)檢測(cè)算法。這類方法是將目標(biāo)檢測(cè)分為生成候選框和識(shí)別目標(biāo)類別兩部分,如Mask R-CNN[4]、Faster R-CNN[5]等算法,優(yōu)勢(shì)在于檢測(cè)精度較高。另一類是one-stage 方法,直接從圖片中預(yù)測(cè)出物體的類別,如YOLO[6]、SSD[7]等算法,優(yōu)勢(shì)在于檢測(cè)速度較快。
利用深度學(xué)習(xí)檢測(cè)不同材質(zhì)的表面缺陷種類,也得到廣泛的研究應(yīng)用[8],例如,黃鳳榮等人[9]提出基于聚類生成anchor 方案的Faster R-CNN 算法,利用K-MeansII聚類算法生成先驗(yàn)框,提高對(duì)零件表面的檢測(cè)精度;張磊等人[10]利用YOLOv3檢測(cè)鋁型材表面缺陷,將原始圖像與預(yù)處理后的圖像融合進(jìn)行檢測(cè),提取更多的特征信息,增強(qiáng)魯棒性;袁野等人[11]利用YOLOv3 檢測(cè)冰箱金屬表面缺陷,引入CIoU 損失函數(shù)和K均值聚類,提高檢測(cè)精度。通過文獻(xiàn)分析可知,目前基于YOLOv3的改進(jìn)方法都是在數(shù)據(jù)和網(wǎng)絡(luò)部分進(jìn)行改進(jìn),如增強(qiáng)數(shù)據(jù)提取,數(shù)據(jù)集聚類提高精度,引入損失函數(shù)幫助模型迅速收斂,改進(jìn)殘差結(jié)構(gòu)提高檢測(cè)精度等。這些改進(jìn)后的網(wǎng)絡(luò)確實(shí)可以提高對(duì)目標(biāo)的整體檢測(cè)效果,但是在金屬表面的缺陷檢測(cè)中,由于缺陷目標(biāo)尺寸太小,使這些主流的改進(jìn)算法在檢測(cè)小缺陷目標(biāo)時(shí)不敏感,效果不佳,有漏檢現(xiàn)象,所以需要對(duì)YOLOv3進(jìn)行針對(duì)性的改進(jìn)。
根據(jù)上述分析得到Y(jié)OLOv3 在金屬表面存在漏檢小缺陷目標(biāo)以及檢測(cè)精度低的問題[12],將在YOLOv3的基礎(chǔ)上提出改進(jìn)方法,并且與目前主流檢測(cè)算法進(jìn)行實(shí)驗(yàn)對(duì)比分析。
相關(guān)的改進(jìn)工作主要有以下三點(diǎn):第一,在YOLOv3的Darknet-53[13]結(jié)構(gòu)中新增一個(gè)尺度為104×104特征圖層,形成四個(gè)尺度預(yù)測(cè),加密檢測(cè)密度,降低漏檢率,提高缺陷檢測(cè)精度,解決原網(wǎng)絡(luò)檢測(cè)小目標(biāo)不敏感的問題。第二,引入DIoU[14]損失,為邊界框提供移動(dòng)方向和更準(zhǔn)確的位置信息,加快模型訓(xùn)練收斂,解決IoU不能衡量框的距離以及相交方式的問題。第三,采用K-Means++[15]聚類分析先驗(yàn)框信息,優(yōu)化聚類中心的選取,獲取最優(yōu)的Anchor Box,減少網(wǎng)絡(luò)損失,進(jìn)一步提高檢測(cè)精度,解決K-Means定位不準(zhǔn)確、有誤差的問題。
YOLOv3 是在YOLOv2[16]的基礎(chǔ)上改進(jìn)提出的,不僅檢測(cè)精度有所提高,檢測(cè)速度也更快,還常用于圖像、視頻、實(shí)時(shí)目標(biāo)檢測(cè)等應(yīng)用中。YOLOv3 以Darknet-53網(wǎng)絡(luò)結(jié)構(gòu)作為特征提取網(wǎng)絡(luò),如圖1所示。
圖1 Darknet-53網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Network structure of Darknet-53
Darknet-53 網(wǎng)絡(luò)采用全卷積結(jié)構(gòu)[17],由多個(gè)1×1 和3×3 卷積層組成。每個(gè)卷積層后跟有一個(gè)歸一化層和一個(gè)激活層,通過步長(zhǎng)為2的卷積代替pooling進(jìn)行下采樣操作,并且經(jīng)過5次下采樣后將特征圖縮小為原圖的1/32。Darknet-53網(wǎng)絡(luò)還融合ResNe(tResidual Network)[18]的殘差塊結(jié)構(gòu),將快捷鏈路[19]設(shè)置在卷積層之間,有效降低訓(xùn)練深層網(wǎng)絡(luò)的難度,使網(wǎng)絡(luò)能夠更好地收斂。
YOLOv3 借鑒特征金字塔網(wǎng)絡(luò)(Feature Pyramid Network,F(xiàn)PN),提取多個(gè)不同尺度的特征圖層,提高對(duì)小缺陷目標(biāo)的檢測(cè)能力。YOLOv3 將淺層特征與經(jīng)過上采樣的深層特征進(jìn)行融合,生成3種不同尺度的特征圖,分別檢測(cè)大、中、小3 種尺寸的目標(biāo),提升整體檢測(cè)精確度。采用3種尺度的特征圖對(duì)目標(biāo)進(jìn)行檢測(cè),每種尺度的特征圖上生成3個(gè)Anchor Box,共有9個(gè)Anchor Box。預(yù)測(cè)過程中,Anchor Box的大小由K-Means算法聚類獲取。如圖2所示,在檢測(cè)中首先將輸入圖片劃分為S×S個(gè)網(wǎng)格,每個(gè)網(wǎng)格的寬、高為cx、cy,網(wǎng)格輸出相對(duì)于Anchor Box 的偏移量分別為tx、ty、tw、th,則預(yù)測(cè)框坐標(biāo)計(jì)算公式為:
圖2 預(yù)測(cè)框示意圖Fig.2 Schematic diagram of prediction box
其中,bx、by、bw、bh為預(yù)測(cè)框的中心坐標(biāo)以及寬和高;pw、ph為Anchor Box的寬和高。σ為激活函數(shù)Sigmoid,將預(yù)測(cè)值tx、ty映射到[0,1]區(qū)間內(nèi),計(jì)算每個(gè)預(yù)測(cè)框?qū)?yīng)的置信度。通過設(shè)置置信度閾值,過濾掉小于閾值的預(yù)測(cè)框,最后利用非極大值抑制方法[20]刪除多余的預(yù)測(cè)框,獲取最佳的檢測(cè)結(jié)果。
在類別預(yù)測(cè)時(shí),YOLOv3 使用多個(gè)獨(dú)立的Logistic分類器代替原有的softmax 分類器。softmax 選擇概率最大值為正確類別,使其判定一個(gè)目標(biāo)只能屬于一個(gè)類別。但在很多情況下,一個(gè)目標(biāo)可能不止屬于一個(gè)類別,而Logistic 恰好可以解決這一問題。它對(duì)每個(gè)類別進(jìn)行二分類,利用sigmoid 函數(shù)將輸入值歸一化在[0,1]之間,sigmoid函數(shù)公式如下:
其中,z為分類邊界的函數(shù),假設(shè)邊界函數(shù)為線性的,則公式如下所示:
將其代入sigmoid 函數(shù)中,得到預(yù)測(cè)函數(shù),則公式如下所示:
當(dāng)sigmoid 值超過0.5 時(shí),判定目標(biāo)屬于該類。Logistic直接判斷目標(biāo)是否屬于該類別,使用多個(gè)Logistic可達(dá)到多標(biāo)簽分類的目的。
YOLOv3通過增加不同尺度的特征圖層,將輸入圖像劃分為32×32、16×16、8×8的網(wǎng)格,提高對(duì)不同大小目標(biāo)的檢測(cè)能力。但是金屬表面的缺陷存在大量尺寸較小的目標(biāo),而YOLOv3 在檢測(cè)中對(duì)小目標(biāo)檢測(cè)不敏感,容易漏檢所以需要對(duì)YOLOv3進(jìn)行針對(duì)性改進(jìn),提高對(duì)小缺陷目標(biāo)的檢測(cè)精度。
本文算法在YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)的基礎(chǔ)上,融合新增一個(gè)尺度的特征圖層,提高對(duì)小缺陷目標(biāo)的檢測(cè)。改進(jìn)后的網(wǎng)絡(luò)模型如圖3所示,resn表示包含n個(gè)殘差單元的殘差塊,每個(gè)殘差單元由兩個(gè)DBL 單元和一個(gè)快捷鏈路組成。其中,DBL 是由卷積層、批歸一化層(Batch Normalization,BN)以及Leaky Relu 激活函數(shù)組成。Concat 為張量拼接操作,以擴(kuò)充張量維度。Conv 為卷積核大小為1×1的卷積層。圖3中紅色虛線框內(nèi)為新增尺度104×104的特征圖層。
圖3 改進(jìn)后的算法結(jié)構(gòu)Fig.3 Structure of improved algorithm
在Darknet-53中將第2個(gè)殘差塊的淺層輸出與經(jīng)過2倍上采樣后的網(wǎng)絡(luò)深層輸出進(jìn)行融合,再經(jīng)過卷積核大小為1×1 的卷積層形成一個(gè)新的特征圖層104×104,使網(wǎng)絡(luò)提取特征能力更強(qiáng)。新增特征圖層的尺寸是輸入圖像大小的1/4,將輸入圖像劃分成更小的4×4網(wǎng)格,即網(wǎng)格數(shù)量為104×104。更小的網(wǎng)格使網(wǎng)絡(luò)對(duì)小目標(biāo)更加的敏感。將淺層特征與Darknet-53 輸出的更深層特征進(jìn)行融合,生成有利于檢測(cè)小目標(biāo)的特征圖層,不僅繼承了深層特征,還充分地利用網(wǎng)絡(luò)淺層特征,增強(qiáng)模型提取小目標(biāo)特征的能力,降低漏檢的小缺陷目標(biāo)概率,提高檢測(cè)精度。
網(wǎng)絡(luò)中每個(gè)特征圖層的Anchor Box 數(shù)量依舊為3個(gè),但是增加一個(gè)特征圖層后,使它的總數(shù)從9 個(gè)增加至12 個(gè),加強(qiáng)檢測(cè)密度。特征圖層數(shù)量的疊加可以劃分缺陷目標(biāo)的尺寸層次,增強(qiáng)網(wǎng)絡(luò)對(duì)不同尺寸目標(biāo)大小的綜合檢測(cè)能力。
對(duì)缺陷進(jìn)行位置預(yù)測(cè)時(shí),算法生成不止一個(gè)預(yù)測(cè)框,需要使用非極大值抑制方法刪除多余的預(yù)測(cè)框,選擇最接近真實(shí)框的預(yù)測(cè)框。在YOLOv3 中,交并比(Intersection over Union,IoU)作為衡量邊界框置信度的評(píng)價(jià)指標(biāo),但是IoU 存在明顯的不足:無法衡量?jī)蓚€(gè)邊界框的距離,不能反映兩者的相交方式,而IoU Loss僅與兩框的交并比以及相交面積相關(guān)。如果直接使用IoU 作為損失函數(shù),當(dāng)兩框相交面積相同時(shí),IoU Loss相等,無法給出預(yù)測(cè)框和真實(shí)框的重合度;當(dāng)兩框不相交時(shí),IoU Loss為零,無法優(yōu)化邊界框,故無法準(zhǔn)確衡量位置信息,降低模型的性能。
針對(duì)上述問題,采用距離交并比(Distance-IoU,DIoU)代替IoU作為評(píng)價(jià)邊界框位置的參數(shù),同時(shí)使用DIoU Loss 作為邊界框位置預(yù)測(cè)的損失函數(shù)。DIoU 示意圖如圖4所示,其中d為兩個(gè)候選框中心點(diǎn)之間的距離,c為兩框最小外接矩形的對(duì)角線距離。
圖4 DIoU示意圖Fig.4 DIoU diagram
DIoU 在IoU 的基礎(chǔ)上加入一個(gè)包含邊界框和真實(shí)框的最小凸包,DIoU公式定義如下:
式中ρ代表兩個(gè)框中心點(diǎn)之間的歐氏距離,b、bgt分別代表兩個(gè)候選框的中心點(diǎn)。當(dāng)兩框的DIoU 值越大時(shí),DIoU Loss 就越小。當(dāng)邊界框與目標(biāo)框全部重合時(shí),LDIoU=0;當(dāng)兩框相距很遠(yuǎn)時(shí),LDIoU=2;所以能夠更好地反應(yīng)兩框之間的重合度。DIoU Loss公式定義如下:
利用DIoU Loss作為損失函數(shù),當(dāng)邊界框與目標(biāo)框不相交的情況,仍然可以為邊界框提供更準(zhǔn)確的移動(dòng)方向。由于DIoU Loss直接限制的是兩個(gè)框的距離,因此會(huì)使模型收斂很快。對(duì)于兩框包含的情況,DIoU Loss仍可以使回歸快。同時(shí)利用DIoU代替IoU作為評(píng)價(jià)參數(shù),當(dāng)邊界框與真實(shí)框上下或左右相鄰時(shí),DIoU能夠優(yōu)化不相交的邊界框,保留位置更準(zhǔn)確的邊界框,提高模型對(duì)目標(biāo)位置預(yù)測(cè)的精確度,使其通過非極大值抑制篩選得到的結(jié)果更加合理。
YOLOv3利用K-Means聚類分析獲取Anchor Box,但具有一定的局限性。K-Means 對(duì)初始聚類中心的選取敏感,不同初始聚類中心聚類的結(jié)果差別很大。由于聚類過程中K值不容易確定[21],造成定位不準(zhǔn)確,有誤差,因此選擇合適的K個(gè)聚類中心極其重要。
針對(duì)K-Means 選取初始聚類中心的弊端,利用KMeans++解決該弊端。隨機(jī)選擇一個(gè)樣本作為當(dāng)前的第一個(gè)聚類中心,然后計(jì)算每個(gè)樣本和已有聚類中心之間的最短距離,并將該樣本歸類到與其相距最小的聚類中心所對(duì)應(yīng)的類別中。同時(shí)計(jì)算出每個(gè)樣本被認(rèn)定為下一個(gè)聚類中心的概率,選擇概率最大的樣本作為下一個(gè)中心,其中概率的計(jì)算公式為:
D(x)為每一個(gè)樣本點(diǎn)到當(dāng)前中心的最短距離,每次分配一個(gè)對(duì)象,聚類中心會(huì)根據(jù)現(xiàn)有聚類的對(duì)象重新計(jì)算,重復(fù)此過程直到?jīng)]有對(duì)象被重新分配到其他的聚類中,最后篩選出K個(gè)聚類中心。在NEU-DET[22]數(shù)據(jù)集上,利用K-Means++聚類獲取的Anchor Box 寬和高分別為(18,35)、(44,36)、(23,71)、(16,175)、(47,69)、(84,57)、(175,28)、(71,134)、(35,184)、(143,77)、(82,189)、(183,194)。因?yàn)楂@取的12個(gè)Anchor Box之間差異性更大,所以檢測(cè)目標(biāo)的效果顯著提高。
K-Means++選取聚類中心的過程大大減小聚類結(jié)果對(duì)K值的依賴性,并且使初始的聚類中心之間距離盡可能地遠(yuǎn),有效地解決K-Means的缺陷。
實(shí)驗(yàn)運(yùn)行環(huán)境為Windows10 系統(tǒng);CPU 為Core i7-9700K;內(nèi)存為32 GB;GPU 為NVIDIA GeForce RTX 2080。利用CUDA10.0 和CUDNNv7.6.5,加快GPU運(yùn)算。編譯器為PyCharm,并且安裝第三方庫支持模型訓(xùn)練。
實(shí)驗(yàn)選用東北大學(xué)采集的NEU-DET 鋼材表面缺陷數(shù)據(jù)集,一共6 種缺陷,分別為裂紋(Crazing)、雜質(zhì)(Inclusion)、斑塊(Patches)、麻點(diǎn)(Pitted_surface)、氧化鐵皮壓入(Rolled-in_scale)和劃痕(Scratches)。每類缺陷圖片300 張,共1 800 張,圖片大小為416×416。為強(qiáng)化模型訓(xùn)練效果,隨機(jī)抽取十分之一的圖片數(shù)據(jù)進(jìn)行數(shù)據(jù)增強(qiáng)操作,將抽取的圖片旋轉(zhuǎn)90°和180°,再對(duì)圖片的飽和度和對(duì)比度進(jìn)行調(diào)整,同時(shí)加入部分無缺陷的金屬圖像,提高數(shù)據(jù)的魯棒性。最后形成新的NEU-DET數(shù)據(jù)集,共計(jì)2 100 張。使用.xml 格式對(duì)缺陷位置進(jìn)行定位和分類。將數(shù)據(jù)集以8∶2的比例隨機(jī)分為訓(xùn)練集和測(cè)試集,即訓(xùn)練集1 640張,測(cè)試集460張。類圖如圖5所示。
圖5 數(shù)據(jù)集圖像Fig.5 Dataset images
在模型訓(xùn)練中,設(shè)置目標(biāo)的類別置信度閾值為0.5,DIoU 閾值為0.45。當(dāng)預(yù)測(cè)框之間的DIoU 值超過0.45時(shí),刪除該預(yù)測(cè)框。初始學(xué)習(xí)率值為0.001,權(quán)重衰減系數(shù)設(shè)置為0.000 5,防止數(shù)據(jù)過擬合。當(dāng)設(shè)置訓(xùn)練迭代次數(shù)為9 600 次時(shí),學(xué)習(xí)率衰減10 倍,當(dāng)設(shè)置訓(xùn)練迭代次數(shù)為10 800 次時(shí),學(xué)習(xí)率衰減100 倍。實(shí)驗(yàn)初期設(shè)置batch_size為2,訓(xùn)練得到模型損失值為15.2。經(jīng)過反復(fù)實(shí)驗(yàn)訓(xùn)練,當(dāng)batch_size 為4 時(shí),損失值最小為9.6,停止訓(xùn)練。
利用準(zhǔn)確率P(Precision)和召回率R(Recall)計(jì)算出的平均精確度均值mAP(mean Average Precision)作為網(wǎng)絡(luò)模型性能評(píng)估標(biāo)準(zhǔn)。mAP是所有類別平均檢測(cè)準(zhǔn)確率的均值,用來評(píng)價(jià)檢測(cè)模型的整體性能。P、R和mAP計(jì)算公式如下:
其中TP為被正確預(yù)測(cè)的正例,F(xiàn)P為被錯(cuò)誤預(yù)測(cè)為正例的負(fù)例,F(xiàn)N為被錯(cuò)誤預(yù)測(cè)為負(fù)例的正例,n為檢測(cè)類別數(shù),AP為各類檢測(cè)精度,計(jì)算公式為:
如圖6 為檢測(cè)所得各類P-R 曲線,其中橫坐標(biāo)Recall為召回率,縱坐標(biāo)Precision為某類型缺陷準(zhǔn)確率,陰影部分為該類檢測(cè)精度。
圖6 各個(gè)缺陷類型的P-R曲線Fig.6 P-R curves of each defect types
為論證本文提出方法的可行性,逐一將改進(jìn)點(diǎn)一一對(duì)比分析,再將本文算法與主流算法進(jìn)行性能比較。
通過K-Means++和K-Means兩種方法分別對(duì)NEUDET數(shù)據(jù)集進(jìn)行聚類。如表1所示,使用K-Means++聚類的mAP 為62.30%,比用K-Means 的YOLOv3 提高1.15 個(gè)百分點(diǎn)。結(jié)果表明K-Means++可以起到優(yōu)化聚類中心的作用,加強(qiáng)定位,使算法的檢測(cè)精度提高。
表1 兩種聚類算法對(duì)比Table 1 Comparison of two clustering algorithms
如表2 為DIoU 和IoU 對(duì)NEU-DET 數(shù)據(jù)集的檢測(cè)結(jié)果對(duì)比,兩者均使用K-Means++聚類生成的Anchor Box。對(duì)表2分析,使用DIoU值代替IoU值作為篩選預(yù)測(cè)框的評(píng)估值后,檢測(cè)精度有一定的提高,達(dá)到64.72%,比原算法提高2.42個(gè)百分點(diǎn),同時(shí)與自帶IoU的YOLOv3檢測(cè)速度持平。結(jié)果表明本文提出的加入DIoU可以解決IoU不能衡量邊界框的距離以及相交方式的問題,為邊界框提供移動(dòng)方向和更準(zhǔn)確的位置信息,加快模型訓(xùn)練收斂,提高檢測(cè)效果。
表2 加入DIoU前后的對(duì)比Table 2 Comparison of before and after adding DIoU
如表3為改進(jìn)網(wǎng)絡(luò)結(jié)構(gòu)前后的YOLOv3在NEU-DET數(shù)據(jù)集上的各類型缺陷檢測(cè)精度對(duì)比,均使用K-Means++聚類算法進(jìn)行聚類生成的Anchor Box。對(duì)表3分析,改進(jìn)網(wǎng)絡(luò)結(jié)構(gòu)后的mAP為65.51%,是改進(jìn)前的1.1倍。改進(jìn)后的網(wǎng)絡(luò)結(jié)構(gòu)在各類檢測(cè)精度均有明顯的提高,尤其是對(duì)小缺陷目標(biāo)的檢測(cè)優(yōu)勢(shì)顯著,如類Crazing 和Rolled-in_scale的檢測(cè)精度35.47%和56.91%,比改進(jìn)前YOLOv3分別提高了6.35個(gè)百分點(diǎn)和6.40個(gè)百分點(diǎn)。結(jié)果表明,改進(jìn)原網(wǎng)絡(luò)結(jié)構(gòu)的第11層淺層和網(wǎng)絡(luò)深層,融合一個(gè)新的尺度為104×104 的特征圖層,形成4 個(gè)預(yù)測(cè)尺度,解決原網(wǎng)絡(luò)結(jié)構(gòu)對(duì)小目標(biāo)提取特征信息差,檢測(cè)不敏感問題,說明該方法針對(duì)小缺陷目標(biāo)的改進(jìn)是可行的。
表3 網(wǎng)絡(luò)改進(jìn)前后的結(jié)果Table 3 Results of before and after network improvement %
使用YOLOv3 和本文算法分別對(duì)金屬表面缺陷進(jìn)行檢測(cè),如圖7 所示。對(duì)比圖中的YOLOv3 和本文算法,可以清晰地看出本文算法檢測(cè)出所有的小缺陷目標(biāo),比YOLOv3多檢測(cè)出兩個(gè)。在6種缺陷類型的檢測(cè)中,本文算法的檢測(cè)效果均優(yōu)于YOLOv3 的檢測(cè)效果,表明改進(jìn)后的算法可以有效地降低漏檢概率。
圖7 兩種算法檢測(cè)效果對(duì)比Fig.7 Comparison of two algorithms detection effect
如圖8 為YOLOv3 與本文算法的各類檢測(cè)結(jié)果對(duì)比。從圖8 中可知,引入K-Means++聚類、改進(jìn)網(wǎng)絡(luò)結(jié)構(gòu)和DIoU 損失,能夠準(zhǔn)確檢測(cè)出各類金屬表面缺陷,如Scratches 類,本文算法檢測(cè)該類精度為81.61%,比YOLOv3 提高了7.24 個(gè)百分點(diǎn)。結(jié)合圖7 和圖8 分析,本文算法檢測(cè)Inclusion類的精度為67.56%,比YOLOv3提高7.55 個(gè)百分點(diǎn),同時(shí)檢測(cè)出小缺陷目標(biāo)數(shù)量也比YOLOv3 多。因此,本文算法檢測(cè)各類的精度均優(yōu)于YOLOv3,能夠滿足對(duì)缺陷檢測(cè)更高的精度要求。
圖8 兩種算法檢測(cè)結(jié)果對(duì)比Fig.8 Comparison of two algorithms detection results
為驗(yàn)證本文算法的綜合檢測(cè)性能,與Faster R-CNN、SSD、YOLOv2、YOLOv3、文獻(xiàn)[10]以及文獻(xiàn)[11]算法對(duì)NEU-DET數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)對(duì)比。各個(gè)模型學(xué)習(xí)率初期均為0.001,至少訓(xùn)練10 800 輪,其中本文算法DIoU 閾值為0.45,文獻(xiàn)[10]的IoU閾值為0.6,其余算法模型IoU均為0.5。本次采用檢測(cè)速率和mAP 兩項(xiàng)指標(biāo)對(duì)每個(gè)算法進(jìn)行評(píng)估,如表4所示。
表4 不同算法的對(duì)比Table 4 Comparison of different algorithms
對(duì)表4 分析可知,本文算法的mAP 為67.64%,比YOLOv3提高了7.49個(gè)百分點(diǎn)。同時(shí)結(jié)合圖6中各個(gè)缺陷類型的AP 值,表明本文算法在整體精度和各類精度上均優(yōu)于與原YOLOv3算法。文獻(xiàn)[10]和文獻(xiàn)[11]也是基于YOLOv3 改進(jìn)的算法,但是比本文算法的精度分別低了3.83 個(gè)百分點(diǎn)、2.38 個(gè)百分點(diǎn),這是因?yàn)楸疚募尤胍粋€(gè)新的特征圖層,提取到更多的特征信息。Faster R-CNN的mAP略低于本文算法2.95個(gè)百分點(diǎn),相對(duì)其他算法有一定的優(yōu)勢(shì),但是檢測(cè)速率是測(cè)試算法中最慢的。SSD檢測(cè)精度低,檢測(cè)速率與本文算法的31 frame/s基本持平。對(duì)比YOLOv2和YOLOv3的檢測(cè)速率,本文算法檢測(cè)速度略低,但是檢測(cè)精度是最高的,這是由于改進(jìn)網(wǎng)絡(luò)結(jié)構(gòu)添加一個(gè)大的尺度輸出,加入DIoU損失以及K-Means++聚類共同改進(jìn)的效果。因此結(jié)合兩項(xiàng)指標(biāo),本文算法的綜合性能是最優(yōu)的,滿足對(duì)金屬缺陷檢測(cè)精度更高的要求。
由于金屬表面缺陷檢測(cè)中目標(biāo)尺寸小,容易漏檢,導(dǎo)致精度低的問題,本文在YOLOv3的基礎(chǔ)上進(jìn)行針對(duì)性的改進(jìn)。在Darknet-53 結(jié)構(gòu)中融合新增一個(gè)尺度為104×104特征圖層,提取更多的小缺陷目標(biāo)信息,形成4個(gè)尺度預(yù)測(cè),降低漏檢小缺陷概率。其次引入DIoU 損失函數(shù),為邊界框提供移動(dòng)方向和更準(zhǔn)確的位置信息,加快模型評(píng)估和訓(xùn)練收斂。然后采用K-Means++優(yōu)化聚類中心的選取,獲取最優(yōu)的Anchor Box,減少網(wǎng)絡(luò)損失,進(jìn)一步提高檢測(cè)精度。實(shí)驗(yàn)結(jié)果表明,本文算法的檢測(cè)精度為67.64%,比YOLOv3 提高了7.49 個(gè)百分點(diǎn),同時(shí)也優(yōu)于目前主流的目標(biāo)檢測(cè)算法,滿足對(duì)金屬缺陷檢測(cè)精度的需求。該模型檢測(cè)的實(shí)時(shí)性還有待提高,下一步將繼續(xù)優(yōu)化網(wǎng)絡(luò)模型,減少模型參數(shù),提高檢測(cè)速度。