□ 魏智鋒 □ 肖書浩 □ 蔣國璋 □ 葉薈坤
1.武漢科技大學(xué) 機(jī)械自動(dòng)化學(xué)院冶金裝備及其控制教育部重點(diǎn)實(shí)驗(yàn)室 武漢 430081 2.武昌首義學(xué)院 機(jī)械與自動(dòng)化學(xué)院 武漢 430068
陶瓷襯墊是一種高導(dǎo)熱性能的材料,外觀呈純白色,質(zhì)地堅(jiān)硬,主要用于功率器件與散熱器之間的傳熱和電氣隔離[1],被廣泛應(yīng)用于橋梁、建筑、船舶等領(lǐng)域的大型焊接件中。陶瓷襯墊碼片識(shí)別用于檢測陶瓷襯墊質(zhì)量,提高陶瓷襯墊合格率,是陶瓷焊接生產(chǎn)過程中重要的一環(huán)。陶瓷襯墊如圖1所示。
對(duì)陶瓷襯墊檢測的研究目前已經(jīng)取得了一些進(jìn)展,陳涵[2]提出一種改進(jìn)的Yolo-v3陶質(zhì)襯墊缺陷檢測方法,李強(qiáng)等[3]提出一種基于機(jī)器視覺的陶瓷瓦表面裂紋檢測方法,李小磊等[4]提出一種基于滑動(dòng)濾波和自動(dòng)區(qū)域生長的陶瓷瓦表面裂紋檢測方法,周飄等[5]等提出一種基于黑塞矩陣濾波的陶瓷瓦表面裂紋檢測方法。
近年來,隨著深度學(xué)習(xí)技術(shù)的發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)(CNN)被廣泛應(yīng)用于圖像識(shí)別領(lǐng)域,并取得了良好的應(yīng)用效果。Mask R-CNN(Mask區(qū)域卷積神經(jīng)網(wǎng)絡(luò))是在Faster R-CNN之后提出的目標(biāo)檢測方法,不僅可以輸出物體的具體類別和物體框,而且能夠?qū)ξ矬w目標(biāo)進(jìn)行實(shí)例分割[6]。筆者將陶瓷襯墊碼片作為數(shù)據(jù)源,將最新的Mask R-CNN和Res Net-50特征提取網(wǎng)絡(luò)相結(jié)合,在主流的TensorFlow深度學(xué)習(xí)框架中進(jìn)行多線程迭代訓(xùn)練模型,對(duì)結(jié)果進(jìn)行比較和分析。
▲圖1 陶瓷襯墊
筆者試驗(yàn)所用的陶瓷襯墊碼片樣本均來自武漢天高熔接股份有限公司,在實(shí)驗(yàn)室中搭建的模擬工廠陶瓷襯墊碼片識(shí)別圖像采集裝置如圖2所示,所采集的圖片如圖3所示。圖3為正俯視拍攝陶瓷襯墊碼片樣本得到的圖片,無法對(duì)碼片的下偏位進(jìn)行有效標(biāo)識(shí),從而無法準(zhǔn)確識(shí)別有位置錯(cuò)誤的碼片。
▲圖2 陶瓷襯墊碼片識(shí)別圖像采集裝置
調(diào)整拍攝的角度,使陶瓷襯墊碼片處在自然光照條件下。筆者使用移動(dòng)電話從俯視傾角拍攝得到陶瓷襯墊碼片圖片,分辨率為1 920像素×1 080像素,共拍攝2 600張圖片。
▲圖3 采集的圖片
陶瓷襯墊碼片圖片如圖4所示,三種擺放位置分別為上偏位、下偏位、正常位。筆者將擺放位置分為兩類——上偏位和下偏位,并使用Labelme標(biāo)注功能軟件對(duì)圖片進(jìn)行標(biāo)注。為了提高訓(xùn)練效果,使模型的泛化性得到提升,對(duì)數(shù)據(jù)集使用數(shù)據(jù)增強(qiáng)方法。鑒于更改方向和角度都不會(huì)改變圖片特征,筆者使用水平翻轉(zhuǎn)與豎直翻轉(zhuǎn)兩種數(shù)據(jù)增強(qiáng)方法。在標(biāo)注過程中,共對(duì)2 600張圖片中的 4 750個(gè)目標(biāo)對(duì)象進(jìn)行標(biāo)注,并將所有圖片按照COCO數(shù)據(jù)格式進(jìn)行批量重命名。在訓(xùn)練和測試之前,將2 600張包含各類錯(cuò)位的圖片歸一化處理為640像素×360像素尺寸。數(shù)據(jù)集制作流程如圖5所示。
▲圖4 陶瓷襯墊碼片圖片▲圖5 數(shù)據(jù)集制作流程
為了生成測試集,從帶標(biāo)記的圖片數(shù)據(jù)集中選取20%作為測試集。測試集包含需檢測的兩種擺放位置的圖片,且每種擺放位置的圖片數(shù)量大致相同。對(duì)標(biāo)記完的圖片進(jìn)行微調(diào),將圖片信息和json格式文件分別保存,并分為訓(xùn)練集和測試集。陶瓷襯墊碼片數(shù)據(jù)集數(shù)量見表1。
表1 陶瓷襯墊碼片數(shù)據(jù)集數(shù)量
Mask R-CNN是由何凱明團(tuán)隊(duì)于2017年提出的一種目標(biāo)檢測網(wǎng)絡(luò),是基于Faster R-CNN的改進(jìn)網(wǎng)絡(luò)架構(gòu),可以在高效完成物體檢測的同時(shí)實(shí)現(xiàn)高質(zhì)量的實(shí)例分割。Mask R-CNN框架如圖6所示[7]。Mask R-CNN主要分為卷積層FPN(特征金字塔網(wǎng)絡(luò))、RPN(區(qū)域候選網(wǎng)絡(luò))、ROI(候選區(qū)域)Align和輸出分支四個(gè)方面。
Mask R-CNN相比Faster R-CNN,主要有三點(diǎn)不同。Mask R-CNN在基礎(chǔ)網(wǎng)絡(luò)中采用了較為優(yōu)秀的的Res Net-FPN結(jié)構(gòu),多層特征圖有利于多尺度物體及小物體的檢測。在應(yīng)用時(shí),筆者將傳統(tǒng)的Res Net-101網(wǎng)絡(luò)改為Res Net-50網(wǎng)絡(luò)。為了解決網(wǎng)絡(luò)中圖像像素和興趣區(qū)域匹配產(chǎn)生錯(cuò)位問題,Mask R-CNN將傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)池化層替換為ROI Align。得到感興趣的特征后,Mask R-CNN在原有分類與回歸的基礎(chǔ)上,增加了一個(gè)Mask分支來預(yù)測每一個(gè)像素的類別,提高了檢測效率[8]。
▲圖6 Mask R-CNN框架
FPN主要解決了目標(biāo)檢測中的多尺度檢測問題。FPN采用自上而下的側(cè)向連接,將不同尺度的特征連接融合,再進(jìn)行卷積以消除混疊現(xiàn)象,之后在不同尺度特征上進(jìn)行預(yù)測。結(jié)果證明,Res Net與FPN的組合能夠達(dá)到很好的檢測效果,所以筆者在Mask R-CNN中應(yīng)用了Res Net-101網(wǎng)絡(luò)與FPN的組合。
RPN通過倍數(shù)和長寬比例不同的窗口或錨點(diǎn)在特征圖上進(jìn)行滑窗,從而迅速生成候選區(qū)域。RPN的錨框如圖7所示。圖7中背景圖像表示經(jīng)卷積神經(jīng)網(wǎng)絡(luò)提取后的特征圖,虛線表示窗口為基準(zhǔn)窗口,輸入為上一階段得到的特征圖,并產(chǎn)生一系列錨框,各個(gè)錨框的大小由像素點(diǎn)數(shù)量和長寬比兩個(gè)參數(shù)決定。RPN利用8、16、32三種像素點(diǎn)數(shù)量和0.5、1、2三種長寬比共九種尺度窗口對(duì)特征圖進(jìn)行滑窗,當(dāng)交并比大于0.5時(shí),認(rèn)為屬于前景,對(duì)類別和邊框進(jìn)行第一次修正。
交并比IoU為:
IoU=SA∩B/SA∪B
(1)
式中:A、B分別為RPN生成的候選框及訓(xùn)練集中正確的目標(biāo)框;SA∩B為A、B重疊處面積;SA∪B為A、B并集面積[9]。
Mask R-CNN提出的ROI Align取消了取整操作,保留所有浮點(diǎn),然后通過雙線性插值方法獲得多個(gè)采樣點(diǎn)的值,再對(duì)多個(gè)采樣點(diǎn)進(jìn)行最大值池化,進(jìn)而得到這些點(diǎn)的最終值。應(yīng)用ROI Align,對(duì)每個(gè)格子都取一個(gè)浮點(diǎn)數(shù),對(duì)于Feature Map特征映射上的每一個(gè)候選區(qū)域,都會(huì)分割為m×m個(gè)格子,并在其中選取四個(gè)點(diǎn),這四個(gè)點(diǎn)分別對(duì)應(yīng)格子中四個(gè)部分的中點(diǎn)。對(duì)每個(gè)點(diǎn)所在格子的四個(gè)頂點(diǎn)進(jìn)行雙線插值計(jì)算,使像素和興趣區(qū)域更匹配。由于使用了采樣點(diǎn)與保留浮點(diǎn)的操作,ROI Align獲得了更好的性能。
▲圖7 RPN錨框
得到感興趣的特征后,Mask R-CNN增加了Mask分支來進(jìn)行圖像分割,確定每一個(gè)像素具體屬于哪一種類別。具體實(shí)現(xiàn)時(shí),采用了FCN(全卷積網(wǎng)絡(luò))的結(jié)構(gòu),利用卷積與反卷積構(gòu)建端至端的網(wǎng)絡(luò),然后對(duì)每一個(gè)像素分類,實(shí)現(xiàn)了較好的分割效果。
損失函數(shù)L定義為:
(2)
分類損失為:
(3)
(4)
定位損失為:
(5)
(6)
式中:smoothL1為等價(jià)損失函數(shù)。
分割損失即二值掩碼損失,若候選框檢測出為某一類別,則使用該類別的交叉熵作為誤差值進(jìn)行計(jì)算,其它類別損失值不計(jì)入,從而避免類間競爭。
(7)
對(duì)Mask分支上的每一個(gè)像素,應(yīng)用Sigmoid函數(shù)送至交叉熵?fù)p失中,最后取所有像素?fù)p失的平均值作為掩碼損失函數(shù)Lmask。
目前通常用均值平均精度APm來衡量檢測算法的精度,并將平均精度AP作為每一類別的檢測精度的評(píng)價(jià)指標(biāo)。APm、AP與準(zhǔn)確率P、召回率R有關(guān)[10-11],P、R分別為:
(8)
(9)
式中:TP為被模型預(yù)測為正類的正樣本數(shù)量;FP為被錯(cuò)誤劃分至正樣本的數(shù)量;FN為被錯(cuò)誤劃分至負(fù)樣本的數(shù)量。
對(duì)于目標(biāo)檢測,每一個(gè)類別都可以得到一條準(zhǔn)確率-召回率曲線,曲線下的面積即為平均精度AP,其積分式為:
(10)
對(duì)所有類別的AP求平均,即為APm:
(11)
式中:M為類別總數(shù);AP(k)為第k類的AP。
速度評(píng)估指標(biāo)為應(yīng)用模型檢測一幅圖所耗費(fèi)的平均時(shí)間,即平均檢測時(shí)間,單位為秒。
在模型預(yù)訓(xùn)練過程中,初始學(xué)習(xí)率設(shè)置為0.001,動(dòng)量設(shè)置為0.9,權(quán)重衰減設(shè)置為0.001,批大小設(shè)置為32,迭代次數(shù)設(shè)置為20 000次。
筆者對(duì)改進(jìn)的Mask R-CNN應(yīng)用兩類目標(biāo)數(shù)據(jù)進(jìn)行檢測,通過訓(xùn)練,多輪迭代,得到最優(yōu)結(jié)果。
將測試集以分辨率為640像素×360像素進(jìn)行測試,陶瓷襯墊碼片分類檢測效果如圖8所示。從圖8中可以看出,碼片錯(cuò)位識(shí)別都非常準(zhǔn)確,沒有出現(xiàn)漏檢的情況。具體檢測結(jié)果見表2。由表2可知,改進(jìn)Mask R-CNN比初始網(wǎng)絡(luò)在單個(gè)分類檢測上的AP高出1到1.2個(gè)百分點(diǎn),APm高1.1個(gè)百分點(diǎn),檢測時(shí)間縮短0.61 s。
▲圖8 陶瓷襯墊碼片分類檢測效果
表2 檢測結(jié)果對(duì)比
筆者針對(duì)陶瓷襯墊碼片人工識(shí)別效率低的問題,采用俯視傾角拍攝采集數(shù)據(jù)集,將Mask R-CNN應(yīng)用于碼片位置識(shí)別。在應(yīng)用中,對(duì)Res Net-50網(wǎng)絡(luò)進(jìn)行特征提取,利用RoI Align使圖片特征點(diǎn)定位精度達(dá)到像素級(jí)效果,提高了檢測精度。通過對(duì)比試驗(yàn),在不提高模型和計(jì)算復(fù)雜度的情況下,經(jīng)筆者改進(jìn)后的Mask R-CNN相比Faster R-CNN和傳統(tǒng)Mask R-CNN,精度和檢測速度都有所提高。