徐 鏹,朱洪錦,范洪輝,周紅燕,余光輝
1.江蘇理工學(xué)院 機(jī)械工程學(xué)院,江蘇 常州 213001
2.江蘇理工學(xué)院 計(jì)算機(jī)工程學(xué)院,江蘇 常州 213001
隨著工業(yè)技術(shù)的發(fā)展,自動(dòng)化缺陷檢測(cè)的研究越來(lái)越受到人們的重視。當(dāng)鋼板或零件表面存在一些瑕疵和缺陷,如磨損、裂紋、碰傷、麻點(diǎn)、劃傷和變形等,將會(huì)導(dǎo)致機(jī)器使用過(guò)程中產(chǎn)生不正常的振動(dòng)和噪聲,加快缺陷面與空氣接觸后進(jìn)一步的氧化與磨損,嚴(yán)重時(shí)甚至?xí)饳C(jī)器的損壞和一些事故性的人員傷亡情況。而傳統(tǒng)的人工裸眼檢測(cè),存在勞動(dòng)強(qiáng)度大、工作效率低、產(chǎn)品成本較高的問題,且容易受到檢測(cè)人員在員工素質(zhì)、檢測(cè)經(jīng)驗(yàn)、肉眼分辨率和眼部易疲勞等諸多因素影響[1]。因此,許多人提出了各種檢測(cè)表面缺陷的方法,具體可以分為兩類:傳統(tǒng)機(jī)器視覺檢測(cè)法和深度學(xué)習(xí)檢測(cè)法。
傳統(tǒng)機(jī)器視覺檢測(cè)法是先利用工業(yè)相機(jī)采集圖像,經(jīng)過(guò)傳統(tǒng)圖像方法處理后,再利用機(jī)器學(xué)習(xí)方法得到想要的結(jié)果。例如郭慧等人[2]提出了由計(jì)算機(jī)算法處理得到缺陷的特征樣本,再利用支持向量機(jī)(SVM)模型對(duì)鋼板表面缺陷進(jìn)行類型識(shí)別。例如汪以歆等人[3]利用基于機(jī)器視覺的比對(duì)檢測(cè)算法,來(lái)檢測(cè)物體表面缺陷。這些方法的優(yōu)點(diǎn)是速度快,對(duì)特定缺陷精度高,但受光照和人為影響較大,對(duì)圖片特征提取能力弱,應(yīng)用面小。
近年來(lái),國(guó)家鼓勵(lì)大力發(fā)展人工智能技術(shù),深度學(xué)習(xí)的一系列方法也被引入到表面缺陷檢測(cè)中。深度學(xué)習(xí)能夠通過(guò)卷積神經(jīng)網(wǎng)絡(luò)提取缺陷圖片的特征并進(jìn)行學(xué)習(xí),再將學(xué)習(xí)后的模型應(yīng)用到相似缺陷的檢測(cè)中,精度高,速度快,且能夠適應(yīng)不同類型的缺陷。比較流行的深度學(xué)習(xí)算法可以分為兩類:一類是Faster-RCNN[4]、Mask-RCNN[5]等基于區(qū)域的目標(biāo)檢測(cè)算法,這類算法雖然精度高,但由于其將缺陷特征提取、缺陷區(qū)域建議網(wǎng)絡(luò)、缺陷邊界框回歸和缺陷分類整合在一個(gè)網(wǎng)絡(luò)中,導(dǎo)致速度很慢,實(shí)時(shí)性不能保證。另一類是SSD[6]、YOLO[7]等利用回歸思想直接標(biāo)出目標(biāo)所在圖片位置和類別的算法,這類算法很大程度上彌補(bǔ)了基于區(qū)域的算法,在速度上有很大的提升,精度上略微降低,有很大的應(yīng)用前景。例如張廣世等人[8]采用密集連接網(wǎng)絡(luò)(DenseNet)結(jié)構(gòu)代替原有的網(wǎng)絡(luò)結(jié)構(gòu),提高特征提取能力,取得了不錯(cuò)的缺陷檢測(cè)能力。
本文也將使用深度學(xué)習(xí)的方法對(duì)鋼板表面缺陷進(jìn)行檢測(cè),對(duì)YOLOv3[9]整體網(wǎng)絡(luò)進(jìn)行改進(jìn),使用輕量級(jí)MobileNet[10]網(wǎng)絡(luò)代替原有模型中的Darknet-53網(wǎng)絡(luò),以減小網(wǎng)絡(luò)參數(shù)量;構(gòu)建齒輪缺陷數(shù)據(jù)集并進(jìn)行數(shù)據(jù)增強(qiáng)以防止過(guò)擬合;加入空洞卷積來(lái)提高對(duì)于小尺寸缺陷的檢測(cè)能力;利用Inceptionv3[11]結(jié)構(gòu)增加網(wǎng)絡(luò)深度和寬度的同時(shí)減少參數(shù)。本文整體結(jié)構(gòu)分為以下四大部分:網(wǎng)絡(luò)原理介紹,網(wǎng)絡(luò)結(jié)構(gòu)改進(jìn),實(shí)驗(yàn)結(jié)果分析和改進(jìn)討論。
YOLOv3[9]是基于 YOLO[7]和 YOLOv2[12]算法 改 進(jìn)而來(lái)。
YOLO網(wǎng)絡(luò)不同于Faster-RCNN[4]等網(wǎng)絡(luò),而是將目標(biāo)檢測(cè)問題轉(zhuǎn)化成邏輯回歸問題,將圖像分割成不同網(wǎng)格,每個(gè)網(wǎng)格負(fù)責(zé)相應(yīng)的物體,使得支持多標(biāo)簽對(duì)象在保持精度下,檢測(cè)速度更快。
YOLOv3 采用了Darknet-53 的網(wǎng)絡(luò)結(jié)構(gòu)作為圖像特征提取主干網(wǎng)絡(luò),它是借鑒殘差網(wǎng)絡(luò)ResNe(tResidual Network)[13]的做法,在層與層之間設(shè)置快捷鏈路,適當(dāng)?shù)靥^(guò)卷積,解決了在逐步加深網(wǎng)絡(luò)時(shí)出現(xiàn)模型難以優(yōu)化的問題,這樣可以提取出更多圖像上的特征。YOLOv3摒棄了YOLOv2采用pass-through結(jié)構(gòu)來(lái)檢測(cè)細(xì)粒度特征,而使用特征金字塔(FPN)的多尺度檢測(cè)方法,結(jié)合殘差網(wǎng)絡(luò)將圖片轉(zhuǎn)化成三個(gè)不同尺度的特征圖來(lái)檢測(cè)大中小三類物體。YOLOv3的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)圖
由于越卷積圖像表征信息丟失越多,YOLOv3吸取了YOLOv2采用K-means聚類得到先驗(yàn)框的尺寸,為每種下采樣尺度設(shè)定3 種先驗(yàn)框,總共聚類出9 種尺寸的先驗(yàn)框,分別為(10×13),(16×30),(33×23),(30×61),(62×45),(59×119),(116×90),(156×198),(373×326)。在最小的13×13特征圖Scale1上應(yīng)用(116×90),(156×198),(373×326)檢測(cè)較大的物體。在中等26×26特征圖Scale2 上應(yīng)用中等的先驗(yàn)框(30×61),(62×45),(59×119)來(lái)檢測(cè)中等大小的對(duì)象。而在最大的52×52特征圖Scale3上采用(10×13),(16×30),(33×23)檢測(cè)較小的物體位置。
為了使網(wǎng)絡(luò)在減小網(wǎng)絡(luò)參數(shù)的同時(shí)保持精度,并提升實(shí)時(shí)性,對(duì)原網(wǎng)絡(luò)做了以下調(diào)整,主要包括三點(diǎn)修改。
由于YOLOv3 仿照ResNet-53 結(jié)構(gòu)提出Darknet-53網(wǎng)絡(luò),雖然可以提取有效的特征信息,但該網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜,導(dǎo)致參數(shù)過(guò)于復(fù)雜,從而在實(shí)用性上并不理想。因此利用MobileNet可以有效地減少參數(shù)的同時(shí)獲得一定的精度。
3.1.1 使用MobileNetv1作為主干網(wǎng)絡(luò)
MobileNetv1[10]由谷歌在2017 年提出,用于將CNN網(wǎng)絡(luò)輕量化,使之可以轉(zhuǎn)嫁于移動(dòng)設(shè)備或者嵌入式設(shè)備中,其中亮點(diǎn)為提出了深度可分離卷積(Depthwise Separable Convolution)。深度可分離卷積是將傳統(tǒng)卷積分為Depthwise 卷積和Pointwise 卷積兩步。假設(shè)用DK×DK表示卷積核尺寸,用DF×DF表示輸入的特征圖尺寸,分別用M、N表示輸入和輸出的通道數(shù),當(dāng)步長(zhǎng)為1且存在padding時(shí),傳統(tǒng)卷積的計(jì)算總量是:
而深度可分離卷積計(jì)算量為:
兩者相互比較,計(jì)算量縮小為原來(lái)的:
MobileNetv1采用Relu6作為激活函數(shù),圖2是傳統(tǒng)卷積,圖3是深度可分離卷積。使用更多的Relu6,既增加了模型的非線性變化,又提高了模型的泛化能力。改進(jìn)YOLOv3網(wǎng)絡(luò)中Conv2D均采用Relu6函數(shù)。
圖2 傳統(tǒng)卷積
圖3 深度可分離卷積
參考Darknet-53將MobileNetv1網(wǎng)絡(luò)分割成三塊不同特征提取圖,第一個(gè)提取層提取出52×52×256特征圖用于檢測(cè)較小物體,第二個(gè)提取層提取出26×26×512特征圖用于檢測(cè)中等物體,第三個(gè)提取層提取出13×13×1 024特征圖用于檢測(cè)較大物體。保證精度的同時(shí)又提高了網(wǎng)絡(luò)的實(shí)時(shí)性。
3.1.2 使用MobileNetv2作為主干網(wǎng)絡(luò)
MobileNetv2[14]是在 MobileNetv1 上做的改進(jìn),是在2018 年提出來(lái)的,相對(duì)于MobileNetv1 主要做了兩點(diǎn)改進(jìn):
(1)雖然MobileNetv2和MobileNetv1都是采用DW(Depth-wise)卷積搭配PW(Point-wise)卷積的方式來(lái)提取特征,但為了避免Relu對(duì)特征的破壞,MobileNetv2在DW 卷積前面加入了一個(gè)PW 卷積并且去掉了第二個(gè)PW的卷積,即線性瓶頸(Linear Bottlenecks)結(jié)構(gòu)。
(2)參考ResNet的結(jié)構(gòu)設(shè)計(jì)出了逆殘差結(jié)構(gòu)(Inverted residuals),在3×3網(wǎng)絡(luò)結(jié)構(gòu)前利用1×1卷積升維,在3×3網(wǎng)絡(luò)結(jié)構(gòu)后再利用1×1卷積降維。先進(jìn)行擴(kuò)張,再進(jìn)行壓縮。
3.1.3 使用MobileNetv3作為主干網(wǎng)絡(luò)
MobileNetv3[15]是MobileNet 的最新版本,是在2019年提出來(lái)的,作為輕量級(jí)網(wǎng)絡(luò)它的參數(shù)量還是一如既往地小。作為第三版的它主要綜合了以下特點(diǎn):
(1)吸收以前版本的優(yōu)點(diǎn),結(jié)合使用了Mobilenetv1的深度可分離卷積和Mobilenetv2的具有線性瓶頸的逆殘差結(jié)構(gòu)。
(2)引入了MnasNet[16]中基于擠壓和激勵(lì)(Squeeze and Excitation)結(jié)構(gòu)的輕量級(jí)注意力模型,可以更好地調(diào)整每個(gè)通道的權(quán)重。
(3)發(fā)現(xiàn)swish 激活函數(shù)能夠有效提高網(wǎng)絡(luò)的精度,表示如下:
然而,由于swish的計(jì)算量太大,提出了h-swish(hard version of swish)公式表示如下:
如圖4所示,這兩個(gè)函數(shù)從函數(shù)圖像上可以看出兩者之間很相似。
圖4 swish和h-swish曲線圖
空洞卷積是在標(biāo)準(zhǔn)的卷積核中注入空洞,以此來(lái)增加特征圖的感受野。圖5 是傳統(tǒng)卷積運(yùn)算,圖6 是空洞卷積運(yùn)算。可以明顯地看出空洞卷積既可以擴(kuò)大感受野,也使卷積時(shí)捕獲了多尺度的上下文信息,更利于缺陷部位的檢測(cè)。在改進(jìn)的YOLOv3 網(wǎng)絡(luò)中加入一個(gè)超參數(shù)稱之為dilation rate(膨脹率),在第一個(gè)特征提取圖上加入1 倍的rate,在第二個(gè)特征提取圖上加入2 倍的rate,在第三個(gè)特征提取圖上加入4 倍的rate,以此使圖片缺陷部位更加明顯。
圖5 傳統(tǒng)卷積運(yùn)算
圖6 空洞卷積運(yùn)算
Inceptionv3[11]模型是谷歌Inception 模型的第三代,其模型結(jié)構(gòu)與Inceptionv2模型發(fā)表在同一篇論文里,兩者模型結(jié)構(gòu)差距不大,相比其他神經(jīng)網(wǎng)絡(luò)模型,Inception模型最大的特點(diǎn)在于將神經(jīng)網(wǎng)絡(luò)層與層之間的卷積運(yùn)算進(jìn)行了拓展。Inception 網(wǎng)絡(luò)采用不同大小的卷積核卷積,使得網(wǎng)絡(luò)層存在不同大小的感受視野,最后拼接起來(lái)達(dá)到不同尺度的特征融合。結(jié)合Inceptionv3 中三種模型,將YOLOv3原網(wǎng)絡(luò)最后一層中Conv2D 3×3卷積改為Inception 3×3 卷積結(jié)構(gòu)。主要利用1×3 的卷積和3×1 的卷積代替原有的3×3 卷積,再利用兩個(gè)1×1 卷積融合后得到Inception結(jié)構(gòu),相對(duì)于以前網(wǎng)絡(luò)的數(shù)據(jù)參數(shù)量有大幅度的減小。其結(jié)構(gòu)如圖7所示。
圖7 修改Inceptionv3結(jié)構(gòu)圖
結(jié)合以上特點(diǎn)得到三種修改的YOLOv3 網(wǎng)絡(luò)結(jié)構(gòu)如圖8所示。
YOLOv3-mobileNetv2 結(jié)構(gòu)和YOLOv3-MobileNetv3結(jié)構(gòu)只需仿照YOLOv3-MobileNetv1 結(jié)構(gòu)選取其中的三個(gè)尺度即可,圖9 和圖10 為 YOLOv3-MobileNetv2 網(wǎng)絡(luò)與YOLOv3-MobileNetv3網(wǎng)絡(luò)結(jié)構(gòu)的簡(jiǎn)略版本。
圖8 YOLOv3-MobileNetv1結(jié)構(gòu)修改圖
本實(shí)驗(yàn)在Windows10 操作系統(tǒng)下完成。計(jì)算機(jī)CPU 為i7 9700;內(nèi)存為16 GB;GPU 為RTX2070s,其顯存為8 GB;運(yùn)行軟件為Anaconda3.6 平臺(tái)下的VScode(Visual Studio Code);Python版本為3.6.4;安裝了Cuda10.0和Cudnn7.5.1 幫助GPU 進(jìn)行加速運(yùn)算,同時(shí)在軟件中安裝 Tensorflow1.13.1、Opencv4.1 和 Numpy1.14.2 等一系列的第三方的庫(kù)來(lái)支持代碼的運(yùn)行。
4.2.1 數(shù)據(jù)選擇
本實(shí)驗(yàn)選用德國(guó)DAGM 鋼板表面缺陷數(shù)據(jù)集,該數(shù)據(jù)集總共有10 大類缺陷,有訓(xùn)練集和測(cè)試集。選取其中三類缺陷中的訓(xùn)練集用于訓(xùn)練,將碰傷命名為class1、麻點(diǎn)命名為class2,并將劃傷命名為class3,每類1 150張圖片(含缺陷150張),共計(jì)3 450張圖片。由于圖片為512×512 png格式,不利于訓(xùn)練,用代碼將圖片分批次轉(zhuǎn)換成416×416 jpg 格式,用于神經(jīng)網(wǎng)絡(luò)的訓(xùn)練。所有圖片中3 000張完好,450張圖片存在缺陷,將其打亂順序放入同一個(gè)文件夾,再按照訓(xùn)練集和測(cè)試集9∶1的比例,選出前3 105張作為訓(xùn)練集,后345張作為測(cè)試集。
圖9 YOLOv3-MobileNetv2結(jié)構(gòu)修改圖
圖10 YOLOv3-MobileNetv3(large)結(jié)構(gòu)修改圖
4.2.2 數(shù)據(jù)標(biāo)注
數(shù)據(jù)集的標(biāo)注比較耗費(fèi)時(shí)間和專注力,需要獲得數(shù)據(jù)集圖片的各種缺陷信息??梢岳胠abelImg 軟件對(duì)圖片進(jìn)行人工標(biāo)注,將圖片的長(zhǎng)寬和深度,缺陷框的xmin、ymin、xmax和ymax等信息存入到.xml文件中,適用于神經(jīng)網(wǎng)絡(luò)的訓(xùn)練。將訓(xùn)練集和測(cè)試集中存在缺陷的450 張圖片進(jìn)行數(shù)據(jù)標(biāo)注,生成.xml 文件,最后利用格式轉(zhuǎn)換程序得到包含圖片路徑、名稱、缺陷框標(biāo)簽和位置的.txt訓(xùn)練文件。
按照修改部分改進(jìn)網(wǎng)絡(luò),從而完成網(wǎng)絡(luò)搭建,實(shí)驗(yàn)一共訓(xùn)練4個(gè)網(wǎng)絡(luò)模型:YOLOv3,YOLOv3-MobileNetv1,YOLOv3-MobileNetv2,YOLOv3-MobileNetv3。每個(gè)網(wǎng)絡(luò)訓(xùn)練800 epochs(輪次),共計(jì)約22小時(shí)。每個(gè)網(wǎng)絡(luò)使用如下方法訓(xùn)練:先將網(wǎng)絡(luò)的最初學(xué)習(xí)率調(diào)為0.01,batch_size(一次訓(xùn)練所選取的樣本量,其大小影響模型優(yōu)化和速度,根據(jù)網(wǎng)絡(luò)參數(shù)和GPU內(nèi)存大小進(jìn)行調(diào)整)調(diào)為8,讓loss(損失值)大范圍下降訓(xùn)練300 epochs,得到初始loss值。再將學(xué)習(xí)率調(diào)低至0.001,讓loss適當(dāng)范圍浮動(dòng)訓(xùn)練300 epochs,最后將學(xué)習(xí)率調(diào)至0.000 1,讓loss 小范圍浮動(dòng)訓(xùn)練200 epochs 得到最終的訓(xùn)練集損失值。圖11 為YOLOv3-MobileNetv3 訓(xùn)練集的每輪epochs下loss下降圖,橫坐標(biāo)為epochs值,縱坐標(biāo)為loss值;圖中的(1)和(2)為截取部分epochs放大圖。
圖11 YOLOv3-MobileNetv3的網(wǎng)絡(luò)訓(xùn)練損失函數(shù)變化圖
由圖11(1)和(2)可以看出網(wǎng)絡(luò)YOLOv3-MobileNetv3在50 epochs到200 epochs時(shí)下降很快,在400 epochs到600 epochs時(shí)趨于穩(wěn)定,loss值在4.0到3.0之間,說(shuō)明神經(jīng)網(wǎng)絡(luò)訓(xùn)練是有一定效果的,再調(diào)低學(xué)習(xí)率對(duì)訓(xùn)練效果影響不大,網(wǎng)絡(luò)最終收斂在3.1左右。
重復(fù)使用以上方法訓(xùn)練的YOLOv3-MobileNetv1最終 loss 為 3.2,YOLOv3-MobileNetv2 最終 loss 為 3.4。由于YOLOv3 采用Darknet-53 結(jié)構(gòu),導(dǎo)致參數(shù)量較大,顯存容量不夠,只能將三次的batch_size縮小,都調(diào)整成4,訓(xùn)練得到的loss為4.1。得到的權(quán)重文件大小與訓(xùn)練時(shí)間如表1所示。
表1 網(wǎng)絡(luò)權(quán)重文件和訓(xùn)練時(shí)間對(duì)比表
由表1 可知,在加入了MobileNet 類的結(jié)構(gòu)作為主干網(wǎng)絡(luò),并用Inceptionv3 減小參數(shù)總量后,使權(quán)重文件比原先縮小了約88%,訓(xùn)練時(shí)間也縮短了一大半。更小的權(quán)重文件意味著更簡(jiǎn)單精巧的網(wǎng)絡(luò)結(jié)構(gòu)可以移植到性能差一點(diǎn)的移動(dòng)端平臺(tái)上,在不丟失精度的情況下也可以完美地運(yùn)行得到想要的結(jié)果。
調(diào)用訓(xùn)練好的YOLOv3-MobileNetv3 權(quán)重檢測(cè)測(cè)試集的缺陷圖片,得到的檢測(cè)圖片如圖12~圖14所示。
圖12 第一類缺陷圖
圖13 第二類缺陷圖
圖14 第三類缺陷圖
從圖12~圖14的幾組圖片可以看出,訓(xùn)練好的模型對(duì)缺陷圖片有較好的檢測(cè)結(jié)果。
文章采用平均檢測(cè)準(zhǔn)確率(mAP)和幀率(FPS)對(duì)檢測(cè)算法進(jìn)行對(duì)比。
4.5.1 mAP對(duì)比
在目標(biāo)檢測(cè)中,利用某類模型準(zhǔn)確率P(Precision)、召回率R(Recall)計(jì)算出平均準(zhǔn)確率AP(Average Precision),最后把均值平均精度mAP(mean Average Precision)作為目標(biāo)檢測(cè)模型的性能評(píng)估標(biāo)準(zhǔn)。利用以下公式:
本文設(shè)置一個(gè)IOU(交并比)。IOU 是模型所預(yù)測(cè)的檢測(cè)框和真實(shí)框的交集和并集之間的比例,設(shè)置IOU閾值為0.5。
TP:檢測(cè)框中正確,且IOU大于閾值的。
FP:檢測(cè)框中錯(cuò)誤,且IOU小于閾值的。
FN:真實(shí)正確的框,卻沒有被模型檢測(cè)到的。
參考以上公式,本文選取德國(guó)DAGM 鋼板表面缺陷數(shù)據(jù)集中三類測(cè)試集缺陷圖,每類缺陷各100 張,共計(jì)300 張缺陷測(cè)試圖,打亂順序,然后將圖片由.png 格式轉(zhuǎn)換成.jpg 格式,利用labelImg 軟件標(biāo)注出缺陷位置。先利用訓(xùn)練好的.h5格式的權(quán)值文件加載到模型中測(cè)試圖片,再與標(biāo)注后的圖片進(jìn)行對(duì)比,如圖15所示。
圖15 標(biāo)注圖片與檢測(cè)圖片對(duì)比圖
運(yùn)用上述方法得到四種網(wǎng)絡(luò)結(jié)構(gòu)各類缺陷的AP圖,平均準(zhǔn)確率AP 即圖中陰影部分的面積占比。其中橫坐標(biāo)是召回率,縱坐標(biāo)是某類模型準(zhǔn)確率。例如YOLOv3中class1缺陷AP圖如圖16所示。
圖16 YOLOv3中class1缺陷的AP圖
具體每類網(wǎng)絡(luò)中各類缺陷的AP數(shù)值如表2所示。
表2 網(wǎng)絡(luò)各類缺陷AP對(duì)比表
再由式(8)可得到四種網(wǎng)絡(luò)模型各自的mAP值:
其中YOLOv3-MobileNetv3模型的mAP圖如圖17所示。
圖17 YOLOv3-MobileNetv3的mAP圖
具體各類網(wǎng)絡(luò)mAP數(shù)值如表3所示。
表3 網(wǎng)絡(luò)mAP對(duì)比表
由表3 可知,由于 YOLOv3 采用 Darknet-53 作為特征提取層,參數(shù)量較大,在該數(shù)據(jù)集上并沒有較好的表現(xiàn),mAP 值僅為 78.49%。YOLOv3-MobileNetv1 網(wǎng)絡(luò)mAP 為95.39%,較于 YOLOv3 提升 21.5%,YOLOv3-MobileNetv2 網(wǎng)絡(luò) mAP 為 96.5%,較 于 YOLOv3 提升22.9%。YOLOv3-MobileNetv3 由于它的特征提取主干網(wǎng)絡(luò)MobileNetv3 吸收了MobileNetv1 和MobileNetv2的優(yōu)點(diǎn),加入孔空洞卷積并采用Inceptionv3 優(yōu)化結(jié)構(gòu),mAP 為96.75%,相比于YOLOv3 提升了23.3%,具有較好的精度值。
4.5.2 FPS對(duì)比
FPS 是圖像里的定義,是指畫面每秒傳輸幀數(shù),即視頻中的畫面數(shù)。本文使用的顯卡為RTX2070s,其四種網(wǎng)絡(luò)處理圖片速度的對(duì)比結(jié)果如表4所示。
表4 網(wǎng)絡(luò)處理速度對(duì)比表
由表4可以明顯看出YOLOv3修改后的網(wǎng)絡(luò)在處理圖片速度上有著較為明顯的提升,YOLOv3-MobileNetv2性能在改進(jìn)的網(wǎng)絡(luò)中最差為每秒40幀,YOLOv3-MobileNetv3性能為每秒43幀,雖不如YOLOv3-MobileNetv1的每秒47.6幀,但相比于YOLOv3每秒提高了21幀,可以滿足流暢的視頻處理,對(duì)于性能差一點(diǎn)的平臺(tái)有更好的移植性。
綜合以上實(shí)驗(yàn)結(jié)果,YOLOv3-MobileNetv3 在mAP和FPS上均有不錯(cuò)的效果,不但比YOLOv3網(wǎng)絡(luò)提取特征模型參數(shù)量大大減小,訓(xùn)練時(shí)間也大幅度縮短,比YOLOv3更具有在工業(yè)上應(yīng)用的前景。
利用MobileNet系列網(wǎng)絡(luò)作為YOLOv3特征提取網(wǎng)絡(luò),上述實(shí)驗(yàn)已證明其可行性。
由圖18 可以看出圖片送入MobileNet 網(wǎng)絡(luò)中卷積出的圖片輸送到FPN(特征金字塔)中,通過(guò)三個(gè)檢測(cè)層分別檢測(cè)出大目標(biāo)、中目標(biāo)和小目標(biāo)缺陷。在保持精度的同時(shí)提高了幀數(shù),有一定運(yùn)行效率,在工業(yè)上有應(yīng)用前景。
圖18 MobileNet卷積網(wǎng)絡(luò)作用圖
以分類為class3的劃痕缺陷為例,捕獲部分網(wǎng)絡(luò)提取層中信息,以驗(yàn)證空洞卷積效果。如圖19所示,圖(a)為缺陷原圖,圖(b)為加入空洞卷積后截取一個(gè)通道的圖片,可以明顯看出適當(dāng)加入空洞可以擴(kuò)大感受野,圖(c)所示該通道網(wǎng)絡(luò)最后卷積圖,可以看出缺陷部位信息明顯,易于網(wǎng)絡(luò)的訓(xùn)練與檢測(cè)。
圖19 空洞卷積效果圖
Inception在網(wǎng)絡(luò)中采用非對(duì)稱卷積進(jìn)行修改,即將在原有YOLOv3網(wǎng)絡(luò)最后一層中3×3卷積分解為3×1和1×3 卷積,這樣做可節(jié)省33%([(9-6)/9])的計(jì)算量,再利用兩個(gè)1×1 卷積疊加構(gòu)成Inception 結(jié)構(gòu)。利用此結(jié)構(gòu)既加深了網(wǎng)絡(luò)深度,也減少了參數(shù)總的計(jì)算量。以分類為class1的碰傷缺陷為例,驗(yàn)證該結(jié)構(gòu)下不同大小感受視野下不同尺度的特征融合部分仿真結(jié)果,如圖20所示。
圖20 Inception結(jié)構(gòu)卷積效果圖
最后檢測(cè)效果如圖21所示。
圖21 最終檢測(cè)效果圖
結(jié)合圖20 和圖21 可以看出,經(jīng)過(guò)Inception 結(jié)構(gòu)卷積后左上角的缺陷特征明顯,證明了Inception結(jié)構(gòu)對(duì)缺陷部位檢測(cè)有促進(jìn)作用,具有可行性。
本文使用一種改進(jìn)后的YOLOv3 網(wǎng)絡(luò)對(duì)工業(yè)上鋼板表面進(jìn)行缺陷檢測(cè),修改了德國(guó)DAGM 鋼板表面缺陷數(shù)據(jù)集,使之適應(yīng)網(wǎng)絡(luò)的訓(xùn)練;使用輕量級(jí)MobileNet網(wǎng)絡(luò)來(lái)代替YOLOv3原有網(wǎng)絡(luò)中的Darknet-53網(wǎng)絡(luò),適當(dāng)減少參數(shù)量的提?。患尤肟斩淳矸e,提高網(wǎng)絡(luò)對(duì)小目標(biāo)缺陷的檢測(cè)能力;在網(wǎng)絡(luò)結(jié)構(gòu)最后一層卷積中加入了Inception 結(jié)構(gòu),可以進(jìn)一步減少參數(shù)總量并加深網(wǎng)絡(luò)。從實(shí)驗(yàn)結(jié)果可以知道,修改后的YOLOv3在精度和速度上都有明顯的提升。下一步工作是優(yōu)化模型算法,將網(wǎng)絡(luò)移植到性能更差的移動(dòng)端設(shè)備上。