• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      改進YOLOv3的金屬表面缺陷檢測研究

      2021-10-14 06:34:40程婧怡段先華
      計算機工程與應用 2021年19期
      關鍵詞:網(wǎng)絡結構圖層聚類

      程婧怡,段先華,朱 偉

      江蘇科技大學 計算機學院,江蘇 鎮(zhèn)江 212100

      金屬作為主要的工業(yè)產(chǎn)品原材料之一,在加工過程中難免會對表面造成損傷,如劃痕、裂縫等[1]。金屬表面的損傷會使產(chǎn)品的質(zhì)量、美觀受到嚴重的影響,導致企業(yè)利潤減少,因此企業(yè)需要在產(chǎn)品生產(chǎn)過程中對金屬表面進行缺陷檢測,確保產(chǎn)品質(zhì)量,降低成本。然而傳統(tǒng)的人工檢測,由于人的主觀因素影響較大,存在漏檢、成本高、效率低等問題[2]。因此,金屬表面的缺陷如何獲得高效精準的檢測也成為熱門的研究方向之一。

      早期的金屬表面缺陷檢測引入了機器視覺技術,主要分為兩類:傳統(tǒng)的圖像處理方法和基于人工提取特征的機器學習方法[3]。雖然兩類方法在一定程度上可以克服人工檢測的主觀性強、效率低等缺點,但是機器視覺技術會受硬件設備和周圍環(huán)境影響,無法準確地定位缺陷位置,造成信息誤差,難以大規(guī)模地應用到實際項目中。隨著計算機視覺技術的不斷發(fā)展,深度學習的檢測方法得到廣泛應用,并且逐漸的取代傳統(tǒng)機器視覺對金屬表面缺陷的檢測。深度學習檢測算法從思路上主要分為兩類:一類是two-stage 方法,也稱為基于區(qū)域的目標檢測算法。這類方法是將目標檢測分為生成候選框和識別目標類別兩部分,如Mask R-CNN[4]、Faster R-CNN[5]等算法,優(yōu)勢在于檢測精度較高。另一類是one-stage 方法,直接從圖片中預測出物體的類別,如YOLO[6]、SSD[7]等算法,優(yōu)勢在于檢測速度較快。

      利用深度學習檢測不同材質(zhì)的表面缺陷種類,也得到廣泛的研究應用[8],例如,黃鳳榮等人[9]提出基于聚類生成anchor 方案的Faster R-CNN 算法,利用K-MeansII聚類算法生成先驗框,提高對零件表面的檢測精度;張磊等人[10]利用YOLOv3檢測鋁型材表面缺陷,將原始圖像與預處理后的圖像融合進行檢測,提取更多的特征信息,增強魯棒性;袁野等人[11]利用YOLOv3 檢測冰箱金屬表面缺陷,引入CIoU 損失函數(shù)和K均值聚類,提高檢測精度。通過文獻分析可知,目前基于YOLOv3的改進方法都是在數(shù)據(jù)和網(wǎng)絡部分進行改進,如增強數(shù)據(jù)提取,數(shù)據(jù)集聚類提高精度,引入損失函數(shù)幫助模型迅速收斂,改進殘差結構提高檢測精度等。這些改進后的網(wǎng)絡確實可以提高對目標的整體檢測效果,但是在金屬表面的缺陷檢測中,由于缺陷目標尺寸太小,使這些主流的改進算法在檢測小缺陷目標時不敏感,效果不佳,有漏檢現(xiàn)象,所以需要對YOLOv3進行針對性的改進。

      根據(jù)上述分析得到YOLOv3 在金屬表面存在漏檢小缺陷目標以及檢測精度低的問題[12],將在YOLOv3的基礎上提出改進方法,并且與目前主流檢測算法進行實驗對比分析。

      相關的改進工作主要有以下三點:第一,在YOLOv3的Darknet-53[13]結構中新增一個尺度為104×104特征圖層,形成四個尺度預測,加密檢測密度,降低漏檢率,提高缺陷檢測精度,解決原網(wǎng)絡檢測小目標不敏感的問題。第二,引入DIoU[14]損失,為邊界框提供移動方向和更準確的位置信息,加快模型訓練收斂,解決IoU不能衡量框的距離以及相交方式的問題。第三,采用K-Means++[15]聚類分析先驗框信息,優(yōu)化聚類中心的選取,獲取最優(yōu)的Anchor Box,減少網(wǎng)絡損失,進一步提高檢測精度,解決K-Means定位不準確、有誤差的問題。

      1 YOLOv3相關介紹

      1.1 網(wǎng)絡結構

      YOLOv3 是在YOLOv2[16]的基礎上改進提出的,不僅檢測精度有所提高,檢測速度也更快,還常用于圖像、視頻、實時目標檢測等應用中。YOLOv3 以Darknet-53網(wǎng)絡結構作為特征提取網(wǎng)絡,如圖1所示。

      圖1 Darknet-53網(wǎng)絡結構Fig.1 Network structure of Darknet-53

      Darknet-53 網(wǎng)絡采用全卷積結構[17],由多個1×1 和3×3 卷積層組成。每個卷積層后跟有一個歸一化層和一個激活層,通過步長為2的卷積代替pooling進行下采樣操作,并且經(jīng)過5次下采樣后將特征圖縮小為原圖的1/32。Darknet-53網(wǎng)絡還融合ResNe(tResidual Network)[18]的殘差塊結構,將快捷鏈路[19]設置在卷積層之間,有效降低訓練深層網(wǎng)絡的難度,使網(wǎng)絡能夠更好地收斂。

      YOLOv3 借鑒特征金字塔網(wǎng)絡(Feature Pyramid Network,F(xiàn)PN),提取多個不同尺度的特征圖層,提高對小缺陷目標的檢測能力。YOLOv3 將淺層特征與經(jīng)過上采樣的深層特征進行融合,生成3種不同尺度的特征圖,分別檢測大、中、小3 種尺寸的目標,提升整體檢測精確度。采用3種尺度的特征圖對目標進行檢測,每種尺度的特征圖上生成3個Anchor Box,共有9個Anchor Box。預測過程中,Anchor Box的大小由K-Means算法聚類獲取。如圖2所示,在檢測中首先將輸入圖片劃分為S×S個網(wǎng)格,每個網(wǎng)格的寬、高為cx、cy,網(wǎng)格輸出相對于Anchor Box 的偏移量分別為tx、ty、tw、th,則預測框坐標計算公式為:

      圖2 預測框示意圖Fig.2 Schematic diagram of prediction box

      其中,bx、by、bw、bh為預測框的中心坐標以及寬和高;pw、ph為Anchor Box的寬和高。σ為激活函數(shù)Sigmoid,將預測值tx、ty映射到[0,1]區(qū)間內(nèi),計算每個預測框?qū)闹眯哦?。通過設置置信度閾值,過濾掉小于閾值的預測框,最后利用非極大值抑制方法[20]刪除多余的預測框,獲取最佳的檢測結果。

      1.2 分類預測

      在類別預測時,YOLOv3 使用多個獨立的Logistic分類器代替原有的softmax 分類器。softmax 選擇概率最大值為正確類別,使其判定一個目標只能屬于一個類別。但在很多情況下,一個目標可能不止屬于一個類別,而Logistic 恰好可以解決這一問題。它對每個類別進行二分類,利用sigmoid 函數(shù)將輸入值歸一化在[0,1]之間,sigmoid函數(shù)公式如下:

      其中,z為分類邊界的函數(shù),假設邊界函數(shù)為線性的,則公式如下所示:

      將其代入sigmoid 函數(shù)中,得到預測函數(shù),則公式如下所示:

      當sigmoid 值超過0.5 時,判定目標屬于該類。Logistic直接判斷目標是否屬于該類別,使用多個Logistic可達到多標簽分類的目的。

      2 改進的相關工作

      2.1 網(wǎng)絡結構改進

      YOLOv3通過增加不同尺度的特征圖層,將輸入圖像劃分為32×32、16×16、8×8的網(wǎng)格,提高對不同大小目標的檢測能力。但是金屬表面的缺陷存在大量尺寸較小的目標,而YOLOv3 在檢測中對小目標檢測不敏感,容易漏檢所以需要對YOLOv3進行針對性改進,提高對小缺陷目標的檢測精度。

      本文算法在YOLOv3網(wǎng)絡結構的基礎上,融合新增一個尺度的特征圖層,提高對小缺陷目標的檢測。改進后的網(wǎng)絡模型如圖3所示,resn表示包含n個殘差單元的殘差塊,每個殘差單元由兩個DBL 單元和一個快捷鏈路組成。其中,DBL 是由卷積層、批歸一化層(Batch Normalization,BN)以及Leaky Relu 激活函數(shù)組成。Concat 為張量拼接操作,以擴充張量維度。Conv 為卷積核大小為1×1的卷積層。圖3中紅色虛線框內(nèi)為新增尺度104×104的特征圖層。

      圖3 改進后的算法結構Fig.3 Structure of improved algorithm

      在Darknet-53中將第2個殘差塊的淺層輸出與經(jīng)過2倍上采樣后的網(wǎng)絡深層輸出進行融合,再經(jīng)過卷積核大小為1×1 的卷積層形成一個新的特征圖層104×104,使網(wǎng)絡提取特征能力更強。新增特征圖層的尺寸是輸入圖像大小的1/4,將輸入圖像劃分成更小的4×4網(wǎng)格,即網(wǎng)格數(shù)量為104×104。更小的網(wǎng)格使網(wǎng)絡對小目標更加的敏感。將淺層特征與Darknet-53 輸出的更深層特征進行融合,生成有利于檢測小目標的特征圖層,不僅繼承了深層特征,還充分地利用網(wǎng)絡淺層特征,增強模型提取小目標特征的能力,降低漏檢的小缺陷目標概率,提高檢測精度。

      網(wǎng)絡中每個特征圖層的Anchor Box 數(shù)量依舊為3個,但是增加一個特征圖層后,使它的總數(shù)從9 個增加至12 個,加強檢測密度。特征圖層數(shù)量的疊加可以劃分缺陷目標的尺寸層次,增強網(wǎng)絡對不同尺寸目標大小的綜合檢測能力。

      2.2 加入DIoU邊框回歸損失

      對缺陷進行位置預測時,算法生成不止一個預測框,需要使用非極大值抑制方法刪除多余的預測框,選擇最接近真實框的預測框。在YOLOv3 中,交并比(Intersection over Union,IoU)作為衡量邊界框置信度的評價指標,但是IoU 存在明顯的不足:無法衡量兩個邊界框的距離,不能反映兩者的相交方式,而IoU Loss僅與兩框的交并比以及相交面積相關。如果直接使用IoU 作為損失函數(shù),當兩框相交面積相同時,IoU Loss相等,無法給出預測框和真實框的重合度;當兩框不相交時,IoU Loss為零,無法優(yōu)化邊界框,故無法準確衡量位置信息,降低模型的性能。

      針對上述問題,采用距離交并比(Distance-IoU,DIoU)代替IoU作為評價邊界框位置的參數(shù),同時使用DIoU Loss 作為邊界框位置預測的損失函數(shù)。DIoU 示意圖如圖4所示,其中d為兩個候選框中心點之間的距離,c為兩框最小外接矩形的對角線距離。

      圖4 DIoU示意圖Fig.4 DIoU diagram

      DIoU 在IoU 的基礎上加入一個包含邊界框和真實框的最小凸包,DIoU公式定義如下:

      式中ρ代表兩個框中心點之間的歐氏距離,b、bgt分別代表兩個候選框的中心點。當兩框的DIoU 值越大時,DIoU Loss 就越小。當邊界框與目標框全部重合時,LDIoU=0;當兩框相距很遠時,LDIoU=2;所以能夠更好地反應兩框之間的重合度。DIoU Loss公式定義如下:

      利用DIoU Loss作為損失函數(shù),當邊界框與目標框不相交的情況,仍然可以為邊界框提供更準確的移動方向。由于DIoU Loss直接限制的是兩個框的距離,因此會使模型收斂很快。對于兩框包含的情況,DIoU Loss仍可以使回歸快。同時利用DIoU代替IoU作為評價參數(shù),當邊界框與真實框上下或左右相鄰時,DIoU能夠優(yōu)化不相交的邊界框,保留位置更準確的邊界框,提高模型對目標位置預測的精確度,使其通過非極大值抑制篩選得到的結果更加合理。

      2.3 加入K-Means++聚類算法

      YOLOv3利用K-Means聚類分析獲取Anchor Box,但具有一定的局限性。K-Means 對初始聚類中心的選取敏感,不同初始聚類中心聚類的結果差別很大。由于聚類過程中K值不容易確定[21],造成定位不準確,有誤差,因此選擇合適的K個聚類中心極其重要。

      針對K-Means 選取初始聚類中心的弊端,利用KMeans++解決該弊端。隨機選擇一個樣本作為當前的第一個聚類中心,然后計算每個樣本和已有聚類中心之間的最短距離,并將該樣本歸類到與其相距最小的聚類中心所對應的類別中。同時計算出每個樣本被認定為下一個聚類中心的概率,選擇概率最大的樣本作為下一個中心,其中概率的計算公式為:

      D(x)為每一個樣本點到當前中心的最短距離,每次分配一個對象,聚類中心會根據(jù)現(xiàn)有聚類的對象重新計算,重復此過程直到?jīng)]有對象被重新分配到其他的聚類中,最后篩選出K個聚類中心。在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)。因為獲取的12個Anchor Box之間差異性更大,所以檢測目標的效果顯著提高。

      K-Means++選取聚類中心的過程大大減小聚類結果對K值的依賴性,并且使初始的聚類中心之間距離盡可能地遠,有效地解決K-Means的缺陷。

      3 實驗結果分析

      3.1 實驗平臺搭建

      實驗運行環(huán)境為Windows10 系統(tǒng);CPU 為Core i7-9700K;內(nèi)存為32 GB;GPU 為NVIDIA GeForce RTX 2080。利用CUDA10.0 和CUDNNv7.6.5,加快GPU運算。編譯器為PyCharm,并且安裝第三方庫支持模型訓練。

      3.2 數(shù)據(jù)集來源

      實驗選用東北大學采集的NEU-DET 鋼材表面缺陷數(shù)據(jù)集,一共6 種缺陷,分別為裂紋(Crazing)、雜質(zhì)(Inclusion)、斑塊(Patches)、麻點(Pitted_surface)、氧化鐵皮壓入(Rolled-in_scale)和劃痕(Scratches)。每類缺陷圖片300 張,共1 800 張,圖片大小為416×416。為強化模型訓練效果,隨機抽取十分之一的圖片數(shù)據(jù)進行數(shù)據(jù)增強操作,將抽取的圖片旋轉(zhuǎn)90°和180°,再對圖片的飽和度和對比度進行調(diào)整,同時加入部分無缺陷的金屬圖像,提高數(shù)據(jù)的魯棒性。最后形成新的NEU-DET數(shù)據(jù)集,共計2 100 張。使用.xml 格式對缺陷位置進行定位和分類。將數(shù)據(jù)集以8∶2的比例隨機分為訓練集和測試集,即訓練集1 640張,測試集460張。類圖如圖5所示。

      圖5 數(shù)據(jù)集圖像Fig.5 Dataset images

      3.3 模型訓練

      在模型訓練中,設置目標的類別置信度閾值為0.5,DIoU 閾值為0.45。當預測框之間的DIoU 值超過0.45時,刪除該預測框。初始學習率值為0.001,權重衰減系數(shù)設置為0.000 5,防止數(shù)據(jù)過擬合。當設置訓練迭代次數(shù)為9 600 次時,學習率衰減10 倍,當設置訓練迭代次數(shù)為10 800 次時,學習率衰減100 倍。實驗初期設置batch_size為2,訓練得到模型損失值為15.2。經(jīng)過反復實驗訓練,當batch_size 為4 時,損失值最小為9.6,停止訓練。

      利用準確率P(Precision)和召回率R(Recall)計算出的平均精確度均值mAP(mean Average Precision)作為網(wǎng)絡模型性能評估標準。mAP是所有類別平均檢測準確率的均值,用來評價檢測模型的整體性能。P、R和mAP計算公式如下:

      其中TP為被正確預測的正例,F(xiàn)P為被錯誤預測為正例的負例,F(xiàn)N為被錯誤預測為負例的正例,n為檢測類別數(shù),AP為各類檢測精度,計算公式為:

      如圖6 為檢測所得各類P-R 曲線,其中橫坐標Recall為召回率,縱坐標Precision為某類型缺陷準確率,陰影部分為該類檢測精度。

      圖6 各個缺陷類型的P-R曲線Fig.6 P-R curves of each defect types

      3.4 結果分析

      為論證本文提出方法的可行性,逐一將改進點一一對比分析,再將本文算法與主流算法進行性能比較。

      通過K-Means++和K-Means兩種方法分別對NEUDET數(shù)據(jù)集進行聚類。如表1所示,使用K-Means++聚類的mAP 為62.30%,比用K-Means 的YOLOv3 提高1.15 個百分點。結果表明K-Means++可以起到優(yōu)化聚類中心的作用,加強定位,使算法的檢測精度提高。

      表1 兩種聚類算法對比Table 1 Comparison of two clustering algorithms

      如表2 為DIoU 和IoU 對NEU-DET 數(shù)據(jù)集的檢測結果對比,兩者均使用K-Means++聚類生成的Anchor Box。對表2分析,使用DIoU值代替IoU值作為篩選預測框的評估值后,檢測精度有一定的提高,達到64.72%,比原算法提高2.42個百分點,同時與自帶IoU的YOLOv3檢測速度持平。結果表明本文提出的加入DIoU可以解決IoU不能衡量邊界框的距離以及相交方式的問題,為邊界框提供移動方向和更準確的位置信息,加快模型訓練收斂,提高檢測效果。

      表2 加入DIoU前后的對比Table 2 Comparison of before and after adding DIoU

      如表3為改進網(wǎng)絡結構前后的YOLOv3在NEU-DET數(shù)據(jù)集上的各類型缺陷檢測精度對比,均使用K-Means++聚類算法進行聚類生成的Anchor Box。對表3分析,改進網(wǎng)絡結構后的mAP為65.51%,是改進前的1.1倍。改進后的網(wǎng)絡結構在各類檢測精度均有明顯的提高,尤其是對小缺陷目標的檢測優(yōu)勢顯著,如類Crazing 和Rolled-in_scale的檢測精度35.47%和56.91%,比改進前YOLOv3分別提高了6.35個百分點和6.40個百分點。結果表明,改進原網(wǎng)絡結構的第11層淺層和網(wǎng)絡深層,融合一個新的尺度為104×104 的特征圖層,形成4 個預測尺度,解決原網(wǎng)絡結構對小目標提取特征信息差,檢測不敏感問題,說明該方法針對小缺陷目標的改進是可行的。

      表3 網(wǎng)絡改進前后的結果Table 3 Results of before and after network improvement %

      使用YOLOv3 和本文算法分別對金屬表面缺陷進行檢測,如圖7 所示。對比圖中的YOLOv3 和本文算法,可以清晰地看出本文算法檢測出所有的小缺陷目標,比YOLOv3多檢測出兩個。在6種缺陷類型的檢測中,本文算法的檢測效果均優(yōu)于YOLOv3 的檢測效果,表明改進后的算法可以有效地降低漏檢概率。

      圖7 兩種算法檢測效果對比Fig.7 Comparison of two algorithms detection effect

      如圖8 為YOLOv3 與本文算法的各類檢測結果對比。從圖8 中可知,引入K-Means++聚類、改進網(wǎng)絡結構和DIoU 損失,能夠準確檢測出各類金屬表面缺陷,如Scratches 類,本文算法檢測該類精度為81.61%,比YOLOv3 提高了7.24 個百分點。結合圖7 和圖8 分析,本文算法檢測Inclusion類的精度為67.56%,比YOLOv3提高7.55 個百分點,同時檢測出小缺陷目標數(shù)量也比YOLOv3 多。因此,本文算法檢測各類的精度均優(yōu)于YOLOv3,能夠滿足對缺陷檢測更高的精度要求。

      圖8 兩種算法檢測結果對比Fig.8 Comparison of two algorithms detection results

      為驗證本文算法的綜合檢測性能,與Faster R-CNN、SSD、YOLOv2、YOLOv3、文獻[10]以及文獻[11]算法對NEU-DET數(shù)據(jù)集進行實驗對比。各個模型學習率初期均為0.001,至少訓練10 800 輪,其中本文算法DIoU 閾值為0.45,文獻[10]的IoU閾值為0.6,其余算法模型IoU均為0.5。本次采用檢測速率和mAP 兩項指標對每個算法進行評估,如表4所示。

      表4 不同算法的對比Table 4 Comparison of different algorithms

      對表4 分析可知,本文算法的mAP 為67.64%,比YOLOv3提高了7.49個百分點。同時結合圖6中各個缺陷類型的AP 值,表明本文算法在整體精度和各類精度上均優(yōu)于與原YOLOv3算法。文獻[10]和文獻[11]也是基于YOLOv3 改進的算法,但是比本文算法的精度分別低了3.83 個百分點、2.38 個百分點,這是因為本文加入一個新的特征圖層,提取到更多的特征信息。Faster R-CNN的mAP略低于本文算法2.95個百分點,相對其他算法有一定的優(yōu)勢,但是檢測速率是測試算法中最慢的。SSD檢測精度低,檢測速率與本文算法的31 frame/s基本持平。對比YOLOv2和YOLOv3的檢測速率,本文算法檢測速度略低,但是檢測精度是最高的,這是由于改進網(wǎng)絡結構添加一個大的尺度輸出,加入DIoU損失以及K-Means++聚類共同改進的效果。因此結合兩項指標,本文算法的綜合性能是最優(yōu)的,滿足對金屬缺陷檢測精度更高的要求。

      4 結語

      由于金屬表面缺陷檢測中目標尺寸小,容易漏檢,導致精度低的問題,本文在YOLOv3的基礎上進行針對性的改進。在Darknet-53 結構中融合新增一個尺度為104×104特征圖層,提取更多的小缺陷目標信息,形成4個尺度預測,降低漏檢小缺陷概率。其次引入DIoU 損失函數(shù),為邊界框提供移動方向和更準確的位置信息,加快模型評估和訓練收斂。然后采用K-Means++優(yōu)化聚類中心的選取,獲取最優(yōu)的Anchor Box,減少網(wǎng)絡損失,進一步提高檢測精度。實驗結果表明,本文算法的檢測精度為67.64%,比YOLOv3 提高了7.49 個百分點,同時也優(yōu)于目前主流的目標檢測算法,滿足對金屬缺陷檢測精度的需求。該模型檢測的實時性還有待提高,下一步將繼續(xù)優(yōu)化網(wǎng)絡模型,減少模型參數(shù),提高檢測速度。

      猜你喜歡
      網(wǎng)絡結構圖層聚類
      基于DBSACN聚類算法的XML文檔聚類
      電子測試(2017年15期)2017-12-18 07:19:27
      巧用混合圖層 制作抽象動感森林
      基于互信息的貝葉斯網(wǎng)絡結構學習
      知識網(wǎng)絡結構維對于創(chuàng)新績效的作用機制——遠程創(chuàng)新搜尋的中介作用
      滬港通下A+ H股票網(wǎng)絡結構演化的實證分析
      圖層法在地理區(qū)域圖讀圖中的應用
      地理教學(2015年18期)2016-01-06 12:00:38
      基于改進的遺傳算法的模糊聚類算法
      復雜網(wǎng)絡結構比對算法研究進展
      一種層次初始的聚類個數(shù)自適應的聚類方法研究
      淺析“遞層優(yōu)化法”在礦井制圖中的應用
      河南科技(2014年6期)2014-04-04 08:00:42
      吴旗县| 琼结县| 昌吉市| 扎鲁特旗| 砚山县| 泽州县| 枣阳市| 石首市| 观塘区| 句容市| 和田市| 呼图壁县| 安图县| 阿巴嘎旗| 武胜县| 五大连池市| 肥乡县| 屏山县| 江安县| 瑞丽市| 武汉市| 姜堰市| 密云县| 仙桃市| 舞钢市| 宁德市| 湟中县| 鹤山市| 阿鲁科尔沁旗| 高邑县| 启东市| 青阳县| 克山县| 蒙自县| 岚皋县| 汉川市| 民和| 阳城县| 呼玛县| 宣化县| 周宁县|