基于深度学习的磁环表面缺陷检测算法
基于深度學(xué)習(xí)的磁環(huán)表面缺陷檢測(cè)算法
人工智能技術(shù)與咨詢?
來源:《?人工智能與機(jī)器人研究》?,作者羅菁等
關(guān)鍵詞:?缺陷檢測(cè);深度學(xué)習(xí);磁環(huán);YOLOv3;
摘要:?在磁環(huán)的生產(chǎn)制造過程中,常常由于生產(chǎn)環(huán)境、制造工藝等因素,難免會(huì)使磁環(huán)表面出現(xiàn)各種類型的缺陷。針對(duì)傳統(tǒng)人工檢測(cè)低效、耗時(shí)、檢測(cè)精度低的缺點(diǎn),本文提出了一種基于YOLOv3的磁環(huán)表面缺陷檢測(cè)方法。實(shí)驗(yàn)結(jié)果表明,YOLOv3的平均識(shí)別精度達(dá)到了96.19%,單張圖片檢測(cè)速度達(dá)到了24.46 ms,該方法在磁環(huán)缺陷檢測(cè)上有一定的先進(jìn)性和有效性。
1. 引言
磁環(huán)是呈圓柱形的徑向磁體,生活中廣泛應(yīng)用在電子定時(shí)器、汽車制造以及儀表器件等行業(yè)的各類電器裝置,它的質(zhì)量直接影響所在裝置的性能。但是在目前的生產(chǎn)過程中,由于原料組成、加工工藝和設(shè)備條件的影響,磁環(huán)表面不可避免地會(huì)出現(xiàn)一些加工缺陷,如缺口、污點(diǎn)等,這些缺陷會(huì)影響到磁環(huán)的使用壽命和性能。目前,磁環(huán)表面一些常見的缺陷主要由有一定經(jīng)驗(yàn)的工人檢測(cè),用肉眼觀察磁環(huán)的表面是否有缺陷。這種檢測(cè)方法效率低,容易出現(xiàn)視覺疲勞,造成誤差?[1]。
為了克服人工缺陷檢測(cè)的不足,很多人提出了各種表面缺陷檢測(cè)方法,可以分為兩類:傳統(tǒng)的機(jī)器視覺檢測(cè)方法和深度學(xué)習(xí)檢測(cè)方法。李雪琴等?[2] 提出了一種非下采樣輪廓域自適應(yīng)閾值表面的磁瓦缺陷自動(dòng)檢測(cè)方法。林麗君等 [3] 提出了一種結(jié)合圖像加權(quán)信息熵和小波模極大值的磁瓦表面裂紋檢測(cè)算法。這些方法對(duì)于特定缺陷具有速度快、精度高的優(yōu)點(diǎn),但受光照和人工的影響較大。
近年來,隨著深度學(xué)習(xí)的廣泛應(yīng)用,已在目標(biāo)檢測(cè)?[4] 領(lǐng)域取得了一系列成果,在工業(yè)檢測(cè)領(lǐng)域得到了很大的應(yīng)用。目前,廣泛應(yīng)用的深度學(xué)習(xí)目標(biāo)檢測(cè)算法可分為單階段檢測(cè)算法和兩階段檢測(cè)算法。單階算法直接生成對(duì)象的類別概率和位置坐標(biāo)值,其代表性算法為SSD [5] 和YOLO [6] [7] [8] 網(wǎng)絡(luò)。兩階段算法將檢測(cè)分為兩個(gè)階段,首先生成候選區(qū)域,然后對(duì)候選區(qū)域進(jìn)行分類。代表性算法有R-CNN [9] 及其改進(jìn)算法Fast R-CNN [10] 和Faster R-CNN [11] 等。
一般情況下,兩階段算法在準(zhǔn)確度上有優(yōu)勢(shì),而單階段算法在檢測(cè)的速度上有優(yōu)勢(shì)。由于單階段算法在速度上更有優(yōu)勢(shì),所以更受到工程化的青睞。本文也將使用YOLOv3網(wǎng)絡(luò)對(duì)磁環(huán)表面缺陷進(jìn)行檢測(cè),為了提升檢測(cè)速度和精度使用k-means聚類方法重新選取先驗(yàn)框,保證檢測(cè)的實(shí)時(shí)性。
2. 檢測(cè)算法
2.1. YOLOv3網(wǎng)絡(luò)
YOLOv3是在YOLO和YOLOv2算法的改進(jìn)基礎(chǔ)上,主要用于圖像目標(biāo)檢測(cè)、視頻目標(biāo)檢測(cè)、攝像機(jī)實(shí)時(shí)目標(biāo)檢測(cè)等方面。它將目標(biāo)檢測(cè)問題轉(zhuǎn)化為邏輯回歸問題,首先將輸入圖像劃分為S ′ S個(gè)網(wǎng)格,若待檢測(cè)圖片中的目標(biāo)中心點(diǎn)落在某個(gè)網(wǎng)格內(nèi),則該網(wǎng)格負(fù)責(zé)對(duì)應(yīng)的目標(biāo),從而達(dá)到更快的檢測(cè)速度。之后每個(gè)網(wǎng)格將會(huì)預(yù)測(cè)B個(gè)邊界框及其本身的置信度,并且該網(wǎng)格需要給出負(fù)責(zé)預(yù)測(cè)的邊界框是屬于第i個(gè)類別的概率。
YOLOv3使用Darknet53網(wǎng)絡(luò)結(jié)構(gòu)作為提取圖像特征的骨干網(wǎng)絡(luò),其主要由一系列的1 ′ 1、3 ′ 3卷積層構(gòu)成。它借鑒了ResNet (Residual Network)的做法,在各層之間建立快捷鏈路,通過適當(dāng)?shù)能S層連接,解決了網(wǎng)絡(luò)逐步深化時(shí)模型難以優(yōu)化的問題,這樣做可以利用到更多的圖像淺層特征信息。YOLOv3摒棄了在YOLOv2中采用的pass-through結(jié)構(gòu),而是使用了特征金字塔網(wǎng)絡(luò)(Feature Pyramid Network, FPN)的多尺度檢測(cè)方法,然后結(jié)合殘差網(wǎng)絡(luò)將圖像轉(zhuǎn)換為三種不同尺度的特征圖,分別來檢測(cè)大、中、小三個(gè)類型的物體,在此基礎(chǔ)上進(jìn)行分類和位置回歸,這大大改善了原始YOLO網(wǎng)絡(luò)的檢測(cè)準(zhǔn)確率。YOLOv3的具體架構(gòu)如圖1所示。
Figure 1. YOLOv3 network structure
圖1. YOLOv3結(jié)構(gòu)圖
2.2. K-Means聚類初始化錨框
初始的YOLO算法采用的是回歸的方式來預(yù)測(cè)邊界框的坐標(biāo)值。為高效地預(yù)測(cè)不同尺度目標(biāo)的邊界框,Faster R-CNN算法中最先提出了錨框機(jī)制,即事先選取一組大小各異的矩形框作為選取目標(biāo)時(shí)的參照物,之后通過預(yù)測(cè)目標(biāo)框的偏移量來代替直接預(yù)測(cè)出的坐標(biāo),合適的anchor取值能夠有效地提高檢測(cè)任務(wù)的精度與速度。受該思想啟發(fā),YOLOv3中也引入了錨框機(jī)制,通過k-means聚類的方法獲得錨框集合。YOLOv3算法中默認(rèn)的anchor是通過VOC20類與COCO80類數(shù)據(jù)集聚類得到的,錨點(diǎn)框維度的比例并不適用于磁環(huán)缺陷檢測(cè)。由于磁環(huán)圖像中缺陷區(qū)域的大小不同,為了使檢測(cè)算法能夠更快、更準(zhǔn)確地進(jìn)行檢測(cè),本文使用k-means聚類方法針對(duì)磁環(huán)數(shù)據(jù)集生成初始錨框。與通常使用的K均值的歐式距離不同,在目標(biāo)檢測(cè)任務(wù)中,聚類的目的是使錨框與標(biāo)注真值的IOU值盡可能大,因此將IOU用作測(cè)量標(biāo)準(zhǔn)。度量函數(shù)的公式如下:
centroid表示簇的中心,box表示樣本,IOU (box, centroid)表示簇的中心框和聚類框的交并比。IOU越大,距離越小。按照上述方法,在磁環(huán)數(shù)據(jù)集中使用k-means算法重新對(duì)標(biāo)簽信息進(jìn)行聚類分析,得到的9組anchor值為:(28, 27)、(27, 54)、(53, 30)、(43, 55)、(68, 45)、(46, 87)、(64, 69)、(99, 56)、(84, 98)。這些錨點(diǎn)按從小到大的順序分配給三個(gè)尺度的特征圖,其中尺度較大的使用較小的錨點(diǎn)框,并且每個(gè)網(wǎng)格都需要計(jì)算三個(gè)預(yù)測(cè)框。
2.3. 檢測(cè)過程
YOLOv3提出了一種新的特征提取網(wǎng)絡(luò)Darknet53,它的主要優(yōu)點(diǎn)是用步幅為2的卷積層代替了池化層來完成對(duì)特征圖的下采樣,同時(shí)在每個(gè)卷積層后面增加了批量歸一化處理,激活函數(shù)采用LeakyRelu,避免了梯度消失和過擬合問題。在對(duì)磁環(huán)圖像進(jìn)行檢測(cè)的過程中,采用了3個(gè)不同尺度的特征圖來進(jìn)行位置與類別預(yù)測(cè),有效地提高了目標(biāo)檢測(cè)的準(zhǔn)確率。
首先,YOLOv3網(wǎng)絡(luò)將輸入圖片縮放到416 ′ 416大小,再將原圖像劃分為S ′ S個(gè)網(wǎng)格。每個(gè)網(wǎng)格負(fù)責(zé)預(yù)測(cè)中心落入該網(wǎng)格的對(duì)象,然后計(jì)算出3個(gè)預(yù)測(cè)框。將待檢測(cè)的目標(biāo)類別數(shù)記為C,則每個(gè)預(yù)測(cè)框會(huì)輸出5 + C個(gè)值,其中5表示了預(yù)測(cè)邊界框的信息屬性:中心點(diǎn)坐標(biāo)(x, y)、框的寬高尺寸(w, h)以及置信度(confidence)。預(yù)測(cè)時(shí)采用直接預(yù)測(cè)相對(duì)位置的方法,邊界框坐標(biāo)計(jì)算公式為:
Figure 2. The position and size of the actual target box relative to the preset box
圖2. 實(shí)際目標(biāo)框相對(duì)于預(yù)設(shè)框的位置和大小
YOLOv3算法首先將輸入圖片縮放到固定大小,然后利用Darknet53網(wǎng)絡(luò)對(duì)圖片的特征進(jìn)行提取,接著將特征向量送往特征金字塔結(jié)構(gòu)中進(jìn)行多尺度預(yù)測(cè),最后根據(jù)置信分?jǐn)?shù)的大小,對(duì)預(yù)測(cè)出的邊界框采用非極大值抑制(NMS)進(jìn)行篩選,以消除重復(fù)檢測(cè)獲得最終的預(yù)測(cè)結(jié)果。
3. 實(shí)驗(yàn)結(jié)果及分析
3.1. 實(shí)驗(yàn)平臺(tái)
本文實(shí)驗(yàn)在Window10環(huán)境下完成,計(jì)算機(jī)內(nèi)存為16G,CPU為Inter Core i7 9700 3.0GHz,GPU為GTX2070,顯存為8GB,深度學(xué)習(xí)框架為Darknet,編譯環(huán)境為Visual Studio 2019 C/C++語言。并同時(shí)安裝了CUDA10.0和cudnn7.5以支持GPU的使用。
3.2. 數(shù)據(jù)集
本文數(shù)據(jù)集由工業(yè)相機(jī)對(duì)磁環(huán)進(jìn)行拍攝,每張圖片包含一個(gè)磁環(huán),每個(gè)磁環(huán)上有一到多處缺陷。圖片采集設(shè)備為維視圖像技術(shù)有限公司產(chǎn)出的型號(hào)為MV-EM500M/C的CMOS工業(yè)相機(jī),通過設(shè)備共采取1080張磁環(huán)圖像。
實(shí)驗(yàn)一共使用了800張圖像進(jìn)行訓(xùn)練,280張圖像作為測(cè)試集,其中400張訓(xùn)練圖為缺口圖像,400張訓(xùn)練圖為污點(diǎn)圖像,140張測(cè)試圖為缺口圖像,140張測(cè)試圖為污點(diǎn)圖像。缺陷圖像的檢測(cè)任務(wù)與分類任務(wù)不同,需要手動(dòng)標(biāo)注出圖片中缺陷位置的坐標(biāo),本文中通過labelImg軟件來進(jìn)行缺陷位置的標(biāo)注。
3.3. 模型訓(xùn)練
在模型訓(xùn)練階段,將動(dòng)量(Momentum)設(shè)置為0.9、權(quán)值衰減系數(shù)設(shè)置(Decay)為0.0005、批尺寸(Batch size)為64,使用小批量隨機(jī)梯度下降進(jìn)行優(yōu)化,學(xué)習(xí)率(Learning rate)為0.001,在訓(xùn)練過程中保存訓(xùn)練日志和訓(xùn)練權(quán)重,從訓(xùn)練日志中提取出loss值畫圖,將loss穩(wěn)定時(shí)的權(quán)重作為最終權(quán)重對(duì)磁環(huán)圖像進(jìn)行缺陷檢測(cè)。
損失函數(shù)圖如圖3所示,橫坐標(biāo)代表迭代次數(shù),在訓(xùn)練次數(shù)達(dá)到7000次時(shí),各參數(shù)變化基本穩(wěn)定,損失函數(shù)收斂曲線也趨于平緩,網(wǎng)絡(luò)的訓(xùn)練結(jié)果比較理想。
Figure 3. The convergence of the loss function
圖3. 損失函數(shù)曲線圖
3.4. 測(cè)試結(jié)果及分析
為驗(yàn)證本文方法有效性,需要分析檢測(cè)的結(jié)果。檢測(cè)效果的評(píng)價(jià)指標(biāo)主要有單類精確率(Precision, P)、召回率(Recall, R)、平均精確率(mean average precision, mAP)和單張圖片平均檢測(cè)時(shí)間(time),具體公式如下:
上式中,TP表示將缺陷目標(biāo)預(yù)測(cè)為缺陷目標(biāo),FP表示將其他缺陷或背景預(yù)測(cè)為缺陷目標(biāo),FN表示將缺陷目標(biāo)預(yù)測(cè)為其他缺陷或背景,gap和stain分別代表對(duì)于缺口和污點(diǎn)的檢測(cè)精確率,實(shí)驗(yàn)所獲得的結(jié)果如表1所示。
由表1的實(shí)驗(yàn)檢測(cè)結(jié)果可以看出,使用YOLOv3網(wǎng)絡(luò)訓(xùn)練之后,在磁環(huán)缺陷測(cè)試集上的平均檢測(cè)精度達(dá)到了96.19%。在使用相同的訓(xùn)練模型進(jìn)行檢測(cè)時(shí),測(cè)試數(shù)據(jù)集中不同缺陷類別的測(cè)試效果也有一定的差別。當(dāng)采用訓(xùn)練好的模型進(jìn)行檢測(cè)時(shí),每張圖片的檢測(cè)時(shí)間平均需要花費(fèi)24.46 ms,且識(shí)別的準(zhǔn)確率較高。實(shí)驗(yàn)結(jié)果表明,YOLOv3網(wǎng)絡(luò)模型可以有效地對(duì)磁環(huán)表面缺陷進(jìn)行快速和準(zhǔn)確的檢測(cè),可滿足工業(yè)現(xiàn)場(chǎng)的實(shí)時(shí)性需求。采用YOLOv3算法訓(xùn)練完畢之后,部分磁環(huán)缺陷檢測(cè)的結(jié)果如圖4所示。
| 方法 | Class | P | mAP | R | Time/ms |
| YOLOv3 | gap | 0.9464 | 0.9619 | 0.95 | 24.46 |
| Stain | 0.9774 |
Table 1. Statistical table of experimental results
表1. 實(shí)驗(yàn)結(jié)果統(tǒng)計(jì)表
Figure 4. Magnetic ring defect detection results
圖4. 磁環(huán)檢測(cè)效果圖
4. 結(jié)論
隨著深度學(xué)習(xí)的不斷發(fā)展和廣泛應(yīng)用,一些目標(biāo)檢測(cè)算法在工業(yè)檢測(cè)領(lǐng)域取得很大成果。本文將YOLOv3算法應(yīng)用到磁環(huán)的表面缺陷檢測(cè)中,實(shí)驗(yàn)結(jié)果表明,YOLOv3的檢測(cè)準(zhǔn)確率和檢測(cè)速度均能滿足工業(yè)需求,具有實(shí)際的應(yīng)用價(jià)值。未來的研究工作將會(huì)集中在兩個(gè)方面:一是優(yōu)化YOLOv3算法模型,使之降低計(jì)算量從而提升檢測(cè)速度,以方便嵌入式設(shè)備上的使用需求;二是增加學(xué)習(xí)樣本的數(shù)量,并提高樣本圖片的質(zhì)量,進(jìn)一步提高缺陷的檢測(cè)精度。
我們的服務(wù)類型
公開課程
人工智能、大數(shù)據(jù)、嵌入式? ? ? ? ? ? ??? ?? ?
內(nèi)訓(xùn)課程
普通內(nèi)訓(xùn)、定制內(nèi)訓(xùn)? ? ? ? ? ? ? ?? ??? ? ??
項(xiàng)目咨詢
技術(shù)路線設(shè)計(jì)、算法設(shè)計(jì)與實(shí)現(xiàn)(圖像處理、自然語言處理、語音識(shí)別)
總結(jié)
以上是生活随笔為你收集整理的基于深度学习的磁环表面缺陷检测算法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: day60 BBS
- 下一篇: 李宏毅2020深度学习-判别方法和生成方