翁玉尚,肖金球,夏 禹
1.蘇州科技大學(xué) 電子與信息工程學(xué)院,江蘇 蘇州 215009
2.蘇州市智能測控工程技術(shù)研究中心,江蘇 蘇州 215009
帶鋼的生產(chǎn)過程中由于現(xiàn)代生產(chǎn)工藝的限制,帶鋼表面可能會產(chǎn)生麻點(diǎn)、夾雜、劃痕等缺陷。這些缺陷輕則減少帶鋼的使用壽命和用途,重則可能會影響建筑物的建設(shè)安全導(dǎo)致建筑事故。所以在帶鋼的生產(chǎn)過程中要對已生產(chǎn)的帶鋼進(jìn)行缺陷檢測,以確保帶鋼的質(zhì)量。在帶鋼生產(chǎn)過程中傳統(tǒng)的檢測方法是人工檢測,這也是目前許多企業(yè)所采用的方法。這種檢測方法檢測速度慢,準(zhǔn)確度低,且極為容易受人為因素的干擾。
隨著計(jì)算機(jī)和深度學(xué)習(xí)的發(fā)展,基于卷積神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)的模型,在缺陷檢測中實(shí)現(xiàn)了高準(zhǔn)確度和高效率的優(yōu)勢,逐漸成為缺陷檢測的主要研究方向。目前的目標(biāo)檢測算法主要分為兩類,一類是以R-CNN算法[1]、Fast R-CNN算法[2]、Faster R-CNN算法[3]、Mask R-CNN算法[4]為代表的兩階段算法;另一類是以O(shè)ver Feat 算法[5]、YOLO 算 法[6]、YOLOv2 算 法[7]、YOLOv3 算 法[8]、SSD算法[9]為代表的一階段算法。兩階段算法先基于區(qū)域建議框產(chǎn)生候選區(qū)域,然后再使用檢測網(wǎng)絡(luò)檢測候選區(qū)域的類別和位置;一階段算法利用整張圖作為網(wǎng)絡(luò)輸入,直接在輸出層回歸邊界框的位置及其類別[10]。這兩類算法中前者有更高的檢測精度,但檢測速度較慢;后者的檢測速度快,但檢測精度沒有前一類高。這兩類算法在目前的研究中應(yīng)用的都比較多。2018 年,Cha 等人[11]最早通過將Faster R-CNN 的backbone 網(wǎng)絡(luò)替換為ZF-net網(wǎng)絡(luò),并將其應(yīng)用到橋梁表面的缺陷檢測中,檢測結(jié)果的mAP值達(dá)到了0.878。馬曉云等人[12]為了實(shí)現(xiàn)子彈外觀的缺陷檢測,在Faster R-CNN中使用k-means++算法生成滑動窗口anchor。裴偉等人[13]將SSD 算法的基準(zhǔn)網(wǎng)絡(luò)更換為表征能力更強(qiáng)的殘差網(wǎng)絡(luò),并提出心的融合算法來提高航拍目標(biāo)的檢測率。王俊強(qiáng)等人[14]通過利用基于候選框方式和一體化檢測方式提升了SSD算法對遙感影像小目標(biāo)的檢測能力。
目前,帶鋼表面缺陷檢測普遍使用卷積神經(jīng)網(wǎng)絡(luò)提取特征并進(jìn)行分類。Fu 等人[15]提出了一種端到端的卷積神經(jīng)網(wǎng)絡(luò),實(shí)現(xiàn)了帶鋼表面缺陷的高精度分類;He等人[16]使用對抗神經(jīng)網(wǎng)絡(luò)生成大量的未標(biāo)注數(shù)據(jù)后再進(jìn)行缺陷分類,解決了缺陷樣本不足難以訓(xùn)練的問題。但以上檢測模型只解決了帶鋼表面缺陷分類問題,并沒有解決難度更大的缺陷定位問題。He等人[17]等提出的基于Faster R-CNN 的帶鋼表面缺陷檢測網(wǎng)絡(luò),該網(wǎng)絡(luò)改進(jìn)在于將backbone 中多級特征圖組合為一個多尺度特征圖,在缺陷檢測數(shù)據(jù)集NEU-DET上,提出的方法在采用ResNet50的backbone下實(shí)現(xiàn)了82.3%的mAP。
為了提高帶鋼表面缺陷檢測的準(zhǔn)確率,在實(shí)驗(yàn)中將Mask R-CNN 算法應(yīng)用到帶鋼表面缺陷檢測。在RCNN算法提出以后,人們不斷對其進(jìn)行改進(jìn)創(chuàng)新,先后提出了Fast R-CNN、Faster R-CNN 和Mask R-CNN 算法。Mask R-CNN 算法大體框架與Faster R-CNN 算法類似,Mask R-CNN 算法利用ResNet-101 和FPN(特征金字塔網(wǎng)絡(luò))作為特征提取網(wǎng)絡(luò),可以提高對小目表檢測時的精度,同時也解決了多尺度檢測的問題。在基礎(chǔ)特征網(wǎng)絡(luò)之后又加入了全連接的分割子網(wǎng),添加了一個預(yù)測分割掩碼分支,可以同時處理分類、邊界框回歸和掩碼層3 個任務(wù),在提高檢測精度和速度的基礎(chǔ)上,還完成了缺陷的分割。為了使Mask R-CNN 算法更適用于帶鋼表面缺陷檢測,對算法結(jié)構(gòu)進(jìn)行了改進(jìn)。采用聚類的算法來確定anchor 方案,提高區(qū)域建議質(zhì)量,并去掉掩膜分支以提高檢測速度。使用NEU-DET數(shù)據(jù)集的圖片來訓(xùn)練模型,進(jìn)行缺陷檢測實(shí)驗(yàn),驗(yàn)證該方案的可行性和有效性。
Mask R-CNN算法的框架非常靈活,可以通過添加不同的分支來完成不同的任務(wù),比如目標(biāo)分類、目標(biāo)檢測、語義分割、實(shí)例分割等多種任務(wù)。
Mask R-CNN 算法的網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示。Mask R-CNN 是一個兩階段算法:第一階段是對圖像進(jìn)行掃描然后生成提議(proposals,即可能包含一個目標(biāo)的區(qū)域);第二階段在預(yù)測種類和邊界框回歸的同時還預(yù)測了對應(yīng)的掩碼。Mask R-CNN的總體流程如下:先將整張圖片輸入CNN,使用ResNet-101網(wǎng)絡(luò)進(jìn)行特征提取,獲得對應(yīng)的特征圖,接著對特征圖中的每一點(diǎn)設(shè)定預(yù)定個RoI,從而獲得多個候選RoI;然后將候選的RoI 送入到RPN 進(jìn)行二值分類和邊界框回歸,過濾掉一部分候選的RoI;對剩下的RoI 進(jìn)行RoI Align 池化操作(即將原圖和特征圖的像素對應(yīng)起來);最后,對這些RoI進(jìn)行分類、邊界框回歸和掩碼生成。
圖1 Mask R-CNN算法網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Mask R-CNN algorithm network structure
輸入到RPN網(wǎng)絡(luò)的特征圖經(jīng)過RPN網(wǎng)絡(luò)得到區(qū)域建議和區(qū)域得分[18]??梢岳镁矸e層,在最后一個共享的卷積層生成的卷積特征圖上用一個小窗口進(jìn)行滑動,從而生成區(qū)域建議框。RPN的網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
圖2 RPN網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 RPN network structure
該網(wǎng)絡(luò)將卷積層生成的卷積特征圖的d個n×n空間窗口作為輸入,映射到一個d維向量上。這個d維向量同時輸出給兩個同級的全連接層:框回歸層和框分類層。在每個滑動窗口的位置,同時預(yù)測k個區(qū)域建議框,所以回歸層有4k個輸出,用于編碼k個區(qū)域建議框的坐標(biāo),分類層輸出2k個得分,用于估算每個區(qū)域建議框是目標(biāo)的概率。
RPN的總體損失函數(shù)為:
式中,Lcls為分類損失;Lreg為回歸損失;λ為權(quán)重平衡參數(shù);i表示一個mini-batch 中anchor 的索引;pi為anchor 中含有目標(biāo)的概率。當(dāng)目標(biāo)在anchor 中時,pi=1,否則pi=0。為對應(yīng)的真實(shí)背景的預(yù)測概率;ti為預(yù)測的邊界框的4個參數(shù)化坐標(biāo);為包含目標(biāo)的anchor對應(yīng)的真實(shí)邊界框的坐標(biāo)。其中分類損失為:
其中,R為魯棒函數(shù)smooth(L1)。式(1)中的reg表示只有包含目標(biāo)的anchor 才有回歸損失。{pi} 為分類層損失,{ti} 為回歸層損失。利用Ncls和Nreg以及平衡權(quán)重λ進(jìn)行歸一化操作。
邊界框的回歸運(yùn)算算法為:
式中,x、y是預(yù)測的邊界框的中心坐標(biāo),w是邊界框的寬,h是邊界框的高;xa、ya是anchor 的中心坐標(biāo);wa、ha為anchor 的寬和高;x*、y*為真實(shí)邊界框的中心坐標(biāo);w*、h*為真實(shí)邊界框的寬和高。
RoI Align作用是根據(jù)預(yù)測邊界框的位置坐標(biāo)在特征圖中將相應(yīng)的區(qū)域池化為固定尺寸的特征圖,以便后續(xù)的分類,邊框和掩碼的回歸操作。在常見的兩階段檢測框架(比如:Fast R-CNN、Faster R-CNN)中使用的是RoI Pooling進(jìn)行池化操作[3],但由于預(yù)選框的位置通常是由模型回歸得到,一般是浮點(diǎn)數(shù),而池化后的特征圖要求尺寸固定。所以RoI Pooling操作存在兩次量化過程:一是將候選框邊界量化為整數(shù)點(diǎn)坐標(biāo)值。從RoI proposal 到特征圖(feature map)的映射時去[x/16],這里x是原始RoI的坐標(biāo)值,方框代表四舍五入。二是將量化后的邊界區(qū)域平均分割成k×k個單元,對每個單元進(jìn)行量化。然而經(jīng)過兩次量化處理,此時的候選框和最開始回歸出來的位置有一定偏差,這個偏差會影響檢測或者分割的準(zhǔn)確度。
Mask R-CNN 為了將整個特征聚集的過程轉(zhuǎn)化為一個連續(xù)操作,采用RoI Align進(jìn)行池化,使用雙線性內(nèi)插法取消了量化操作,從而獲得坐標(biāo)為浮點(diǎn)數(shù)的像素點(diǎn)上圖像數(shù)值。
RoI Align 的結(jié)構(gòu)如圖3 所示。為了得到固定大?。?×7)的feature map,RoI Align沒有采用量化操作。比如665/32=20.78,就直接采用20.78;20.78/7=2.97,就直接采用2.97。使用“雙線性插值”算法處理這些浮數(shù),雙線性插值算法直接利用原圖中虛擬點(diǎn)(比如20.56 這個浮點(diǎn)數(shù),像素位置都是整數(shù)值,沒有浮點(diǎn)值)四周的4個真實(shí)存在的像素值來共同決定目標(biāo)圖中的一個像素值,即可將20.56 這個虛擬的位置對應(yīng)的像素值估計(jì)出來。如圖4 所示,黑色的虛線框表示卷積后獲得的feature map,黑色實(shí)線表示RoI feature,最后需要輸出的大小是2×2,那么就利用雙線性插值來估計(jì)這些黑點(diǎn)(虛擬坐標(biāo)點(diǎn),又稱為雙線性插值的網(wǎng)格點(diǎn))處所對應(yīng)的像素值,最后得到相應(yīng)的輸出。這些黑點(diǎn)是2×2 區(qū)域中的隨機(jī)采樣的普通點(diǎn),這些采樣點(diǎn)的個數(shù)和位置不會對性能產(chǎn)生很大的影響,也可以用其他的方法獲得。然后在RoI池化層和全連接層里面進(jìn)行最大池化或者平均池化操作,獲得最終2×2 的輸出結(jié)果。整個過程中沒有用到量化操作,沒有引入誤差,即原圖中的像素和特征圖中的像素是完全對齊的,沒有偏差。這樣做不僅會提高檢測的精度,同時也有利于實(shí)例分割。
圖3 RoI Align結(jié)構(gòu)Fig.3 RoI Align structure
圖4 雙線性插值Fig 4 Bilinear interpolation
由于增加了掩碼分支,每個RoI的損失函數(shù)為
式中,Lcls為分類損失;Lbox為檢測損失;Lmask為新增的分割損失。Lcls如式(2)所示;Lbox、Lmask分別為:
Lmask為Mask R-CNN 新增的掩膜層的分割損失。式(7)中yij為坐標(biāo)點(diǎn)(i,j)的標(biāo)簽值,為該點(diǎn)第k類的預(yù)測值。
對于每一個RoI,mask 分支有k×m×m維度的輸出,其對k個大小為m×m的mask 進(jìn)行編碼,每一個mask 有k個類別。將Lmask定義為平均值交叉熵?fù)p失。對應(yīng)一個屬于真實(shí)背景中的第k類的RoI,Lmask僅僅在第k個mask上面有定義(其他的k-1 個mask輸出對整個損失沒有貢獻(xiàn))。Lmask允許網(wǎng)絡(luò)為每一類生成一個mask,而不用和其他類競爭;采用分類分支所預(yù)測的類別標(biāo)簽來選擇輸出的mask.這樣將分類和mask 生成分解開來,不同的mask之間不存在競爭關(guān)系,可以提高實(shí)例分割的效果。
Mask R-CNN 為了使預(yù)測的掩碼更加準(zhǔn)確,在RoI Align 之后增加“head”部分,從而將RoI Align 的輸出維度擴(kuò)大,達(dá)到預(yù)測的掩碼輸出更加準(zhǔn)確的目的,如圖1所示。在掩碼分支(mask branch)的訓(xùn)練環(huán)節(jié)輸出了k個掩碼預(yù)測圖(為每一個類都輸出一張),并采用平均二進(jìn)制交叉熵?fù)p失(average binary cross-entropy loss)訓(xùn)練。在訓(xùn)練掩碼分支時,在輸出的k個特征圖中,對掩碼損失有影響的特征圖是對應(yīng)真實(shí)背景類別的那一個特征圖。
原始的Mask R-CNN 算法中anchor 是一組由RPN生成的矩形框,采用3 種尺度和3 種長寬比(1∶1,1∶2,2∶1),在每個滑動窗口的中心生成k=9 個anchor,如圖5 所示。原始的Mask R-CNN 算法的anchor 生成方案是對COCO數(shù)據(jù)集根據(jù)經(jīng)驗(yàn)設(shè)定的尺寸,對于本文中需要檢測的5 種帶鋼表面缺陷原始的anchor 無法與所檢測缺陷的尺寸相對應(yīng),使得RPN 中在生成區(qū)域建議時需要進(jìn)行大量的回歸操作,影響了算法的檢測效率。因此,在RPN 中應(yīng)該使anchor 方案與所檢測缺陷的尺寸相對應(yīng),使得RPN在進(jìn)行邊界框回歸時,可以減少回歸工作,提升計(jì)算效率和減少網(wǎng)絡(luò)訓(xùn)練時間,以便于得到更好的區(qū)域建議提高檢測精度。
圖5 錨框示意圖Fig.5 Diagram of anchor
所以為了解決Mask R-CNN算法中anchor方案對本文的檢測對象的缺陷尺寸不對應(yīng)問題并且進(jìn)一步提高檢測的效率和準(zhǔn)確率,針對5種不同類型的帶鋼表面缺陷,本文提出采用k-meansⅡ聚類算法[19]生成anchor方案。使用k-meansⅡ聚類方法通過對數(shù)據(jù)集中標(biāo)注框的寬和高進(jìn)行聚類得到的聚類中心設(shè)為初始的anchor方案,這樣生成的anchor對需要檢測的5種缺陷更具有代表性。
k-meansⅡ算法克服了初始聚類中心隨機(jī)性以及遍歷整個數(shù)據(jù)集的復(fù)雜性問題,在選定初始的聚類中心過程中,其在遍歷數(shù)據(jù)集時每次選取多個樣本。該算法把輸入的包含N個點(diǎn)的數(shù)據(jù)集分類為k個聚類,使數(shù)據(jù)集中所有點(diǎn)都劃分到距離其最近的聚類中心所在的類中,并使用歐氏距離作為分類時衡量距離的標(biāo)準(zhǔn)。kmeansⅡ算法的具體步驟如下:
(1)輸入包含k個點(diǎn)的數(shù)據(jù)集。
(2)隨機(jī)在數(shù)據(jù)集中去k個點(diǎn)作為聚類中心點(diǎn),然后重復(fù)此取樣過程5次得到5k個數(shù)據(jù)點(diǎn)。再對這些數(shù)據(jù)點(diǎn)進(jìn)行聚類,得到k個初始的聚類中心。
(3)將數(shù)據(jù)集中各個點(diǎn)按歐氏距離劃分到離它最近的聚類中心所在的類中。歐氏距離公式為:
這不僅透露其三十年代香港人的身份,同時在與現(xiàn)代香港人的對話中產(chǎn)生不一樣的化學(xué)反應(yīng)。此外,李碧華在文本書寫上也帶有明顯的傳統(tǒng)色彩:
(4)重新計(jì)算各個類的聚類中心,計(jì)算方法為:
式中 |ci|為該類樣本的數(shù)量。
(5)設(shè)置一個閾值,假設(shè)由式(8)得到的新中心與原來的中心距離小于該閾值,則聚類結(jié)束,否則轉(zhuǎn)步驟(3)。
(6)輸出k個聚類和k個聚類中心。
對于帶鋼表面缺陷檢測任務(wù),在生產(chǎn)線上進(jìn)行檢測時需要快速準(zhǔn)確的完成,而不需要對缺陷進(jìn)行像素級的分割。所以可以在缺陷檢測中去掉掩碼分支,從而使網(wǎng)絡(luò)算法集中于特征圖上進(jìn)行缺陷的定位和分類任務(wù),節(jié)約神經(jīng)網(wǎng)絡(luò)的訓(xùn)練和檢測時間。由1.3 小節(jié)可知,掩碼分支和分類預(yù)測分支之間是分開預(yù)測的,不會相互影響,去掉掩碼分支后的網(wǎng)絡(luò)輸出如圖6所示。
圖6 去掉掩碼分支后的網(wǎng)絡(luò)輸出Fig.6 Network output with the mask branch removed
為了驗(yàn)證本文提出的改進(jìn)的Mask R-CNN 算法在帶鋼表面缺陷檢測中的有效性,本章將進(jìn)行系統(tǒng)的實(shí)驗(yàn)對比。實(shí)驗(yàn)環(huán)境為Windows 10 操作系統(tǒng),AMD RYZEN 7-4800H 處理器,Nvidia Geforce RTX 2060顯卡。
本文主要采用東北大學(xué)發(fā)布的NEU-DET數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),數(shù)據(jù)集收集了6類帶鋼表面缺陷圖片各300張,但其中裂紋類的缺陷圖片并不明顯,缺陷模糊不利于實(shí)驗(yàn),所以刪去裂紋類缺陷。最終,本文進(jìn)行實(shí)驗(yàn)的缺陷圖片有夾雜(Inclusion)、斑塊(Patches)、麻點(diǎn)(Pitted Surface)、壓入氧化皮(Rolled-in Scale)和劃痕(Scratches)。這樣數(shù)據(jù)集總共有1 500張圖片。為進(jìn)一步豐富訓(xùn)練樣本數(shù)據(jù),提高所得到模型的魯棒性,對原數(shù)據(jù)集的圖片進(jìn)行擴(kuò)充操作。先對圖片進(jìn)行旋轉(zhuǎn)放大處理后,再進(jìn)行直方圖等處理,最終得到2 000 張圖片,每種缺陷各400張。隨機(jī)抽取分配訓(xùn)練集和測試集,其中訓(xùn)練集圖片為1 500張,測試集圖片為500張。數(shù)據(jù)集缺陷圖片樣例如圖7所示。
圖7 數(shù)據(jù)集圖片示例Fig.7 Graphic example of data set
通過使用k-meansⅡ聚類算法來生成anchor 框,代替Mask R-CNN中anchor生成方式,使得anchor對帶鋼表面斑塊、壓入氧化皮、夾雜、麻點(diǎn)和劃痕5種表面缺陷更具有代表性,提高了檢測精度。
在原Mask R-CNN 算法中anchor 框數(shù)目為9,所以在進(jìn)行聚類時令聚。類中心k=9,從而得到9個聚類中心,使聚類中心和anchor 框數(shù)目相等,并將這9 個聚類中心作為9 個anchor 初始的寬和高,使得只用改變anchor 的初始的寬高不改變數(shù)目,不用改變RPN 中對anchor的回歸運(yùn)算。對于斑塊、壓入氧化皮、夾雜、麻點(diǎn)和劃痕5 種帶鋼表面缺陷,聚類結(jié)果如圖8 所示。在進(jìn)行聚類操作時,5種缺陷總耗時63 s。
圖8 5種缺陷的聚類結(jié)果Fig.8 Clustering results of five defects
在實(shí)驗(yàn)中采用mAP值作為評價(jià)指標(biāo)。mAP是所有類別的平均精度的均值,其計(jì)算公式為:
其中,Nc為類別檢測數(shù),AP能夠綜合考慮準(zhǔn)確率和召回率2個方面的影響。以準(zhǔn)確率為縱軸,召回率為橫軸可以得到PR曲線,對于連續(xù)PR曲線,式(10)中的AP為:
式中,TP為正確分類的正樣本,F(xiàn)P為錯誤分類的正樣本,F(xiàn)N為錯誤分類的負(fù)樣本。
在訓(xùn)練模型時,首先將NEU-DET 數(shù)據(jù)集轉(zhuǎn)化為COCO 數(shù)據(jù)集格式。訓(xùn)練時首先采用遷移學(xué)習(xí)的方法加載官方的“mask_rcnn_coo”預(yù)權(quán)重文件來訓(xùn)練NEUDET 數(shù)據(jù)集,從而生成自己模型的權(quán)重文件。訓(xùn)練“head層”和“所有層”設(shè)置epochs為10,steps_per_epoch為1 000,batch_size為1。設(shè)置“head”層學(xué)習(xí)率為0.001,“所有層”學(xué)習(xí)率為0.000 1,權(quán)重衰減系數(shù)為0.000 1,共迭代20 000次
將采用聚類算法的anchor生成方案與Mask R-CNN的原始生成方案在帶鋼表面的5 種缺陷中進(jìn)行對比實(shí)驗(yàn)。并在實(shí)驗(yàn)中加入Faster R-CNN 和YOLO v3 算法作為對比。實(shí)驗(yàn)結(jié)果如表1所示。
通過表1 對比發(fā)現(xiàn),k-meansⅡ算法生成anchor 的方案相對于原Mask R-CNN的anchor生成方案mAP值提升了14.94 個百分點(diǎn),檢測速度達(dá)到4.5 frame/s,在提升檢測精度的同時也提升了檢測速度。
表1 兩種anchor生成方案檢測結(jié)果Table 1 Detection results of two anchor generation schemes
為了測試將掩碼分支去掉后Mask R-CNN 算法的性能,將其與原Mask R-CNN 算法進(jìn)行對比實(shí)驗(yàn),在實(shí)驗(yàn)中只改變掩膜分支的有無,不改變其他網(wǎng)絡(luò)結(jié)構(gòu)。實(shí)驗(yàn)結(jié)果如表2所示。
由表2 可知,將掩碼分支去掉后,Mask R-CNN 算法的檢測精度并未下降,但檢測速度提升了1.3 frame/s。
表2 兩種網(wǎng)絡(luò)結(jié)構(gòu)實(shí)驗(yàn)結(jié)果Table 2 Experimental results of two network structures
在進(jìn)行了一系列的控制變量實(shí)驗(yàn),驗(yàn)證了聚類算法生成anchor方案和去掉掩膜分支均可提升Mask R-CNN的檢測速度。因此,將兩種改進(jìn)方案同時運(yùn)用到Mask R-CNN 中,將改進(jìn)的Mask R-CNN 與原Mask R-CNN算法進(jìn)行對比實(shí)驗(yàn),觀察改進(jìn)的Mask R-CNN的檢測精度和效率。在實(shí)驗(yàn)時,加入Faster R-CNN、DDN[17]、SSD和YOLO V3算法進(jìn)行對比,實(shí)驗(yàn)結(jié)果如表3所示。表3中算法1 為原Faster R-CNN;算法2 為用k-means 聚類算法生成anchor 的Faster R-CNN;算法3 為原MaskR-CNN 算法;算法4 為改進(jìn)的Mask R-CNN 算法;算法5為使用ResNet網(wǎng)絡(luò)的DDN算法;算法6為YOLOv3算法;算法7為SSD算法。
表3 不同算法的檢測結(jié)果Table 4 Detection results of different algorithms
表3的綜合對比發(fā)現(xiàn),使用改進(jìn)的Mask R-CNN算法進(jìn)行帶鋼表面缺陷檢測時,其檢測精度和速度相對比于其他幾種算法均實(shí)現(xiàn)了最優(yōu)。圖9 為改進(jìn)的Mask R-CNN 的檢測結(jié)果。圖10 為YOLOv3 算法的檢測結(jié)果。通過圖9和圖10的對比可以發(fā)現(xiàn),YOLOv3作為一階段算法,其檢測速度快,但其對于尺寸較小的缺陷的檢測效果較差。
圖9 改進(jìn)的Mask R-CNN的檢測結(jié)果Fig.9 Detection results of improved Mask R-CNN
圖10 YOLOv3算法檢測結(jié)果Fig.10 Detection results of YOLOv3
針對帶鋼表面缺陷,本文提出了基于k-meansⅡ聚類算法和改進(jìn)“head”部分神經(jīng)元的改進(jìn)的Mask R-CNN算法來進(jìn)行帶鋼表面的5 種缺陷檢測,提升了Mask R-CNN算法的檢測精度和效率。在實(shí)驗(yàn)中將原算法的mAP值從0.810 2提升到了0.960 2,檢測速度從2.3 frame/s提升到5.9 frame/s。實(shí)驗(yàn)結(jié)果表明改進(jìn)的Mask R-CNN算法可以提升在帶鋼生產(chǎn)中的檢測效率,提升了生產(chǎn)檢測工藝。雖然本文改進(jìn)的Mask R-CNN 算法能夠滿足帶鋼表面缺陷檢測,但在未來的研究中可以進(jìn)一步的提升檢測效率。下一步的研究內(nèi)容主要有:當(dāng)前訓(xùn)練階段的數(shù)據(jù)集仍存在圖片少,不清晰的問題,可以通過擴(kuò)大豐富帶鋼表面缺陷數(shù)據(jù)集來解決此問題,提升算法檢測的精確度;改進(jìn)后的Mask R-CNN算法雖然檢測速度有了很大提升,但仍為兩階段算法,后面的工作中可以改進(jìn)其網(wǎng)絡(luò)結(jié)構(gòu)來進(jìn)一步提升檢測速度。