洪慶,宋喬,楊晨濤,張培,常連立
(1. 南京理工大學(xué) 機(jī)械工程學(xué)院,江蘇 南京 210094; 2. 北京航天新風(fēng)機(jī)械設(shè)備有限責(zé)任公司,北京 100854)
隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,圖像分析處理已成為視覺的重要研究方向,在制造裝配領(lǐng)域有著廣闊的應(yīng)用前景。
傳統(tǒng)視覺算法對(duì)于特征十分敏感,而實(shí)際的工作環(huán)境復(fù)雜,光線條件惡劣,傳統(tǒng)算法無(wú)法滿足實(shí)際生產(chǎn)需要?;谏疃葘W(xué)習(xí)的圖像處理算法相對(duì)于傳統(tǒng)算法具有更高的準(zhǔn)確性和穩(wěn)定性,在制造業(yè)應(yīng)用更加廣泛。蘇朝陽(yáng)等基于機(jī)器視覺,利用圖像處理算法組件分別配置圖像處理鏈,實(shí)現(xiàn)了對(duì)電容器外觀底部露白缺陷和引腳變形缺陷的檢測(cè)[1]。周振等針對(duì)圖像目標(biāo)受環(huán)境影響難識(shí)別目標(biāo)的問(wèn)題,基于深度圖像設(shè)計(jì)并實(shí)現(xiàn)了一種輪廓提取及特征識(shí)別的方法[2]。魏中雨等針對(duì)制造中零件識(shí)別定位以及裝配檢測(cè)效率低、準(zhǔn)確度差等問(wèn)題,提出了一種基于深度神經(jīng)網(wǎng)絡(luò)的零件裝配檢測(cè)方法[3]。張輝等提出一種基于機(jī)械臂和機(jī)器視覺的表面質(zhì)量檢測(cè)方法[4]。
在現(xiàn)有技術(shù)條件下,預(yù)設(shè)特征、姿勢(shì)再進(jìn)行工程學(xué)分析的方法越來(lái)越難以滿足現(xiàn)代制造的裝配質(zhì)量及效率要求。如何實(shí)現(xiàn)裝配實(shí)時(shí)工程學(xué)分析已成為一個(gè)迫切需要解決的問(wèn)題[5]。為提高實(shí)時(shí)裝配分析的可行性,本文將針對(duì)其中零件圖像分割技術(shù)展開研究。
本文實(shí)現(xiàn)機(jī)械零件圖像分割的技術(shù)路線如下:
1) 根據(jù)制造過(guò)程中零件準(zhǔn)確率及速度要求,選取Deeplabv3[6-7]算法模型作為本文機(jī)械零件圖像分割的基礎(chǔ)算法。
2) 機(jī)械零件數(shù)據(jù)集的準(zhǔn)備。收集大量機(jī)械零件相關(guān)圖片,并利用標(biāo)注工具生成圖像掩膜標(biāo)簽,將數(shù)據(jù)分為訓(xùn)練集、驗(yàn)證集、測(cè)試集。
3) 基于Deeplabv3算法模型,加入自定義Encoder-Decoder特征提取模塊,構(gòu)建改進(jìn)后的Deeplabv3算法,并命名為Deeplabv3-d。
4) 基于自建機(jī)械零件數(shù)據(jù)集,完成Deeplabv3-d的訓(xùn)練與測(cè)試,并根據(jù)測(cè)試結(jié)果評(píng)估算法的實(shí)用性。
5) 基于Deeplabv3-d算法,更換不同骨干網(wǎng)絡(luò)(mobileNet、Resnet-101),在自建機(jī)械零件數(shù)據(jù)集上進(jìn)行性能對(duì)比測(cè)試。
圖像分割過(guò)程中,初始圖像先用卷積網(wǎng)絡(luò)層進(jìn)行特征卷積提取,生成卷積后的特征圖,再由池化層進(jìn)行最大或平均特征的提取,之后圖像尺寸變?yōu)樵叽绲囊话?,再?jīng)過(guò)反卷積網(wǎng)絡(luò)層將尺寸恢復(fù)至原始尺寸,保證提取特征、擴(kuò)大感受野的同時(shí),還原得到的預(yù)測(cè)像素信息。
因此圖像分割模塊主要包括兩個(gè)部分:1) 通過(guò)卷積池化層(即下采樣層)提取圖像特征并保證較大的感受野信息;2) 通過(guò)反卷積層(即上采樣層)擴(kuò)大圖像尺寸并還原需要得到的預(yù)測(cè)信息。在下采樣—上采樣過(guò)程中,很容易出現(xiàn)數(shù)據(jù)信息丟失、空間結(jié)構(gòu)紊亂、層級(jí)結(jié)構(gòu)信息丟失等現(xiàn)象,例如小目標(biāo)檢測(cè)時(shí)無(wú)法重建完整信息。受制于該問(wèn)題,圖像分割算法長(zhǎng)期處在瓶頸期,而空洞卷積[8]的出現(xiàn)使該問(wèn)題得到了較好的解決。
圖1是常規(guī)卷積和空洞卷積的卷積操作圖[8],通過(guò)對(duì)比可知,相比于常規(guī)卷積的一次常規(guī)感受野卷積,空洞卷積對(duì)更大的感受野進(jìn)行卷積操作,使卷積后的每一個(gè)特征點(diǎn)都涵蓋了更廣的信息。
圖1 卷積操作圖
圖1(b)為空洞=2時(shí)的空洞卷積操作圖,一般性的卷積映射公式見式(1):
(1)
其中:r表示卷積步幅即空洞,標(biāo)準(zhǔn)卷積是比率r=1的一種特殊情況。通過(guò)更改步幅值(空洞)可自適應(yīng)地修改卷積層提取特征的感受野。
深度可分離卷積[9]思想是將標(biāo)準(zhǔn)卷積層分解為深度卷積層、逐點(diǎn)卷積層(即1×1卷積),在不增加網(wǎng)絡(luò)計(jì)算復(fù)雜度的基礎(chǔ)上,大大增加了網(wǎng)絡(luò)深度以及網(wǎng)絡(luò)泛化、擬合能力。具體而言,深度卷積針對(duì)每個(gè)輸入通道獨(dú)立執(zhí)行空間卷積,而點(diǎn)向卷積用于組合深度卷積的輸出[10]。這是一種輕量級(jí)的卷積方式,將傳統(tǒng)的多通道卷積模型分解為逐通道卷積+逐點(diǎn)卷積,相比起常規(guī)的卷積,其運(yùn)算成本和計(jì)算量都大為降低,實(shí)現(xiàn)算法復(fù)雜度優(yōu)化,大大加快了訓(xùn)練速度。
Encoder-Decoder[10]特征提取模塊,在深度神經(jīng)網(wǎng)絡(luò)中常用于圖像分割任務(wù)。普通卷積網(wǎng)絡(luò)層能夠基于卷積、池化方式編碼多維度信息,通過(guò)使用不同尺度、步長(zhǎng)的卷積核實(shí)現(xiàn)多種速率或多個(gè)感受野的變換,并利用最大池化操作來(lái)探查傳入特征[7],而Encoder-Decoder模塊能夠通過(guò)特征空間的反向傳播來(lái)獲取更為準(zhǔn)確的對(duì)象邊界。
為優(yōu)化Deeplabv3圖像分割性能,在原本v3模型中添加Encoder-Decoder特征提取模塊,減少其數(shù)據(jù)信息丟失、空間結(jié)構(gòu)紊亂、層級(jí)結(jié)構(gòu)信息丟失的可能性,改善其對(duì)象邊界分割效果。再將深度可分離卷積理論應(yīng)用于Encoder-Decoder模塊,從而在不增加計(jì)算復(fù)雜度的基礎(chǔ)上構(gòu)建出更深網(wǎng)絡(luò)的Encoder-Decoder模塊,使得Deeplabv3算法網(wǎng)絡(luò)泛化擬合能力大大增加,本文將改進(jìn)后的Deeplabv3命名為Deeplabv3-d。
改進(jìn)的Deeplabv3,使用了空間金字塔池化和Encoder-Decoder結(jié)構(gòu)。
本文提出的模型Deeplabv3-d包含來(lái)自編碼器模塊的豐富語(yǔ)義信息,而對(duì)象邊界提取由簡(jiǎn)單而有效的Decoder恢復(fù)模塊進(jìn)行,Encoder模塊允許通過(guò)應(yīng)用空洞卷積以任意分辨率提取卷積特征。在最后特征圖中的編碼豐富了語(yǔ)義信息,而對(duì)于網(wǎng)絡(luò)中的卷積池化操作引起的對(duì)象邊界小部分信息丟失問(wèn)題,可以通過(guò)應(yīng)用空洞卷積提取更密集的特征圖來(lái)減弱。
因考慮到有限的GPU內(nèi)存,提取出比輸入小8倍甚至4倍的輸出特征圖在計(jì)算上并不可取。以Resnet101[11]為例,當(dāng)利用空洞卷積提取比輸入分辨率小16倍的輸出特征時(shí),必須對(duì)其特征進(jìn)行擴(kuò)展,而要求輸出特征比輸入小8倍,則卷積塊會(huì)增加大量的網(wǎng)絡(luò)參數(shù)。
Encode-Decoder模塊有助于在Encoder通道中進(jìn)行更快的計(jì)算,并逐漸在Decoder通道中恢復(fù)清晰的對(duì)象邊界。為結(jié)合兩種方法各自的優(yōu)點(diǎn),本文通過(guò)合并多維度上下網(wǎng)絡(luò)層特征信息來(lái)豐富Encoder-Decoder網(wǎng)絡(luò)模塊,具體結(jié)構(gòu)如圖2所示。
圖2 自定義Encoder-Decoder模塊
圖2即為完整的Deeplabv3-d結(jié)構(gòu)。Deeplabv3加入自定義Encoder-Decoder模塊后,將采用mobileNet與Resnet101進(jìn)行擬合效果比對(duì)。
為讓模型系統(tǒng)更快擬合而自建機(jī)械零件數(shù)據(jù)集,使用批量梯度下降法,將數(shù)據(jù)集分為100個(gè)批次,設(shè)置周期為50,迭代次數(shù)為600,進(jìn)行訓(xùn)練迭代。
訓(xùn)練過(guò)程損失值變化如圖3所示,可發(fā)現(xiàn)模型訓(xùn)練損失在第200次迭代后逐漸趨于平穩(wěn),最終達(dá)到0.014 53。根據(jù)實(shí)際曲線波動(dòng)情況得知,模型在整個(gè)訓(xùn)練過(guò)程中僅出現(xiàn)少量震蕩,擬合效果較好。
圖3 訓(xùn)練loss-迭代次數(shù)圖像
觀察圖4所示的單個(gè)零件分割效果、圖5所示的多個(gè)零件堆疊分割效果可知,Deeplabv3-d對(duì)機(jī)械零件圖像的分割效果較好,與零件輪廓擬合度較高。
圖4 單個(gè)零件分割效果圖
圖5 多個(gè)零件堆疊分割效果圖
綜合分析圖4和圖5可得,不同環(huán)境下,Deeplabv3-d算法網(wǎng)絡(luò)對(duì)單個(gè)零件或多個(gè)零件堆疊都具有良好、直觀的分割效果,應(yīng)用于實(shí)際工業(yè)場(chǎng)景中具有一定的可行性。同時(shí),Deeplabv3-d在測(cè)試集上的預(yù)測(cè)準(zhǔn)確度Acc和平均交并比mIOU隨訓(xùn)練周期變化曲線如圖6、圖7所示。
圖6 測(cè)試集Acc隨訓(xùn)練周期變化曲線
圖7 mIOU隨訓(xùn)練周期變化曲線
分析圖6、圖7中Acc/mIOU隨周期的變化曲線,可得出模型的預(yù)測(cè)準(zhǔn)確度和平均交并比經(jīng)過(guò)震蕩上升,在第30個(gè)訓(xùn)練周期后逐漸趨于平滑,最終達(dá)到90%以上,在分割精度上有較好的表現(xiàn)。
為對(duì)比Deeplabv3-d不同主干網(wǎng)絡(luò)中的模型擬合效果,采用兩種骨干網(wǎng)絡(luò)進(jìn)行驗(yàn)證。在表1中記錄了在mobileNet和Resnet101兩種骨干網(wǎng)絡(luò)下的圖像分割效果。兩種骨干網(wǎng)絡(luò)平均mIOU值都超過(guò)90%,均展現(xiàn)出較好的分割性能。
表1 不同骨干網(wǎng)絡(luò)下的Deeplabv3+評(píng)估
本文針對(duì)機(jī)械零件圖像分割,通過(guò)建立機(jī)械零件數(shù)據(jù)集,并向Deeplabv3算法網(wǎng)絡(luò)中加入集成空間金字塔、空洞卷積、深度可分離卷積結(jié)構(gòu)的Encode-Decoder特征提取模塊,完成了改進(jìn)網(wǎng)絡(luò)Deeplabv3-d的構(gòu)建。在實(shí)際單零件或多零件堆疊圖像的分割效果測(cè)試中,Deeplabv3-d取得了較好的分割效果,證明了在實(shí)際環(huán)境中零件圖像分割算法的可行性,對(duì)實(shí)際工業(yè)生產(chǎn)具有較大意義。