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