曹如玉,王成軍
(安徽理工大學(xué)人工智能學(xué)院,淮南 232001)
隨著鑄件產(chǎn)量的增多,為提高鑄件的生產(chǎn)效率,在自動化生產(chǎn)線上實現(xiàn)多品種鑄件的混流生產(chǎn)是必要的[1-3]。傳統(tǒng)混流分揀線上大多采用人工分揀的方式,人工分揀具有較高的準(zhǔn)確率,但存在速度慢、勞動強度大等問題。
為提高分揀的自動化水平,引入圖像處理技術(shù)變得越來越受重視。如侯明君等[1]采用同態(tài)濾波、圖像去噪、輪廓識別和字符識別等技術(shù),實現(xiàn)了對鑄件多區(qū)域鑄字識別。楊俊杰等[4]改進傳統(tǒng)邊緣特征模板匹配算法,采用Linemod-2D的加速方式搜尋所有姿態(tài)的工件,并使用雙閾值最大類間方差法自動獲取梯度幅值篩選閾值以保證分揀質(zhì)量。晏開華等[5]將以多項式為核函數(shù)的支持向量機(SVM)應(yīng)用于機械零件識別。綜上所述,這些方法有效提高了檢測的自動化水平,但鑄件混流分揀線上的目標(biāo)往往具有高相似度性,且會出現(xiàn)不同被遮擋的情況,此時傳統(tǒng)圖像處理技術(shù)難以手工設(shè)計目標(biāo)特征算子,特征的復(fù)用性較低,較難實現(xiàn)現(xiàn)代工業(yè)檢測對準(zhǔn)確度的高要求。
近年,越來越多的研究人員開始將深度學(xué)習(xí)技術(shù)應(yīng)用于工業(yè)識別檢測中。LI等[6]針對SSD算法檢測小物體性能較差的問題,提出了基于特征融合的SSD(FSSD),在傳統(tǒng)SSD中添加了輕量級、高效的特征融合模塊,在略微降低速度的情況下使算法的準(zhǔn)確性得到有效提升。張靜等[7]為解決工廠環(huán)境中光線不穩(wěn)定因素造成的識別難題,提出了一種改進YOLOv3模型,其在工業(yè)零件小目標(biāo)檢測上實現(xiàn)了92.38%的平均準(zhǔn)確度。臧春華等[8]將PointRend模塊加入Mask R-CNN實例分割模型中,以提高檢測機械零件的精度。綜上所述,YOLO算法直接預(yù)測目標(biāo)的實際位置,檢測速度較高,但由于沒有利用先驗信息,導(dǎo)致其對多目標(biāo)的檢測精度較低。而SSD算法在多個較小特征圖中構(gòu)造檢測器,雖提高了檢測精度,但參數(shù)共享程度低,增加了參數(shù)量。
針對上述問題,提出了一種基于SSD的輕量級多鑄件檢測方法,通過引入融合ECA注意力機制的MobileNetv2作為改進后算法的主干網(wǎng)絡(luò),且采用反向殘差層替換原SSD的卷積預(yù)測層。改進后的算法在保證檢測精度與速度的同時,降低了模型的參數(shù)量和浮點計算量,有利于未來部署到算力不足、存儲容量有限的嵌入式設(shè)備中。實驗驗證了所改進算法的有效性。
目前主流目標(biāo)檢測框架之一的SSD算法[10],采用不同尺度與長寬比,對圖片不同位置均勻地進行密集抽樣,最后利用CNN提取特征后直接進行分類與回歸。SSD算法以VGG16[11]作為主干網(wǎng)絡(luò),刪除了末端全連接層,增加了輔助卷積層與池化層,提取特征的同時減少特征圖的尺寸,通過6個不同尺寸的特征圖進行預(yù)測?;赩GG16的SSD算法對于深層次信息學(xué)習(xí)和表達能力不夠,深層網(wǎng)絡(luò)特征圖語義信息較強,但位置信息較弱,檢測多目標(biāo)效果不佳。SSD算法的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
本研究的數(shù)據(jù)集由6種不同的鑄件構(gòu)成,部分鑄件之間具有高相似度性,所采集的圖片有不同種類的被遮擋情況。針對以上問題,本文選用兼具精度與速度的SSD算法作為輕量級多鑄件檢測算法的框架。SSD算法的主干網(wǎng)絡(luò)使用多個卷積層與池化層,加強特征提取能力的同時,也增加了網(wǎng)絡(luò)的復(fù)雜性與參數(shù)量,提高了對硬件設(shè)備的需求。
為在保證檢測精度與速度的前提下,降低模型的參數(shù)量與計算量,本文進行如下研究。首先,使用輕量級的MobileNetv2網(wǎng)絡(luò)[12]替換SSD算法的主干網(wǎng)絡(luò)VGG16;其次,針對替換主干后的算法檢測精度較低的問題,同時兼顧改進后算法網(wǎng)絡(luò)結(jié)構(gòu)的輕量化,本文將ECA注意力機制引入主干網(wǎng)絡(luò),增強提取復(fù)雜特征的能力;最后,使用反向殘差層替換SSD框架的輔助卷積層。改進后的網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
圖2 ECA+MobileNetv2+SSD的網(wǎng)絡(luò)結(jié)構(gòu)
高效通道注意力機制(efficient channel attention,ECA)[13]針對SE注意力機制(squeeze-and-excitation,SE)[14]通道縮減方式降低了有效特征信息獲取的能力,及跨通道信息交互需要大量參數(shù)的問題,采用一維卷積和捕獲局部跨通道交互方法,保證了在增加少量參數(shù)的條件下選擇有效特征信息的效率。ECA使用波段矩陣Wk學(xué)習(xí)通道注意力,Wk的定義如式(1)所示。
(1)
ω=σ(C1Dk(y))
(2)
式(2)中的一維卷積(C1D)涉及到局部跨通道交互覆蓋率k,k的大小與通道維數(shù)(C)有關(guān),本文的γ為2,b為1,k可根據(jù)式(3)自適應(yīng)變換:
(3)
ECA模塊使用不降維的GAP聚合卷積特征后,首先自適應(yīng)確定一維卷積核大小,然后進行一維卷積,再采用Sigmiod激活函數(shù)學(xué)習(xí)通道注意力,有效捕獲跨通道交互信息。ECA模塊的網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
圖3 ECA模塊的網(wǎng)絡(luò)結(jié)構(gòu)
MobileNetv2主要由17個反向殘差塊組成,反向殘差塊采用深度可分離卷積,通過升維降維的方式,大大減少了網(wǎng)絡(luò)推理時所占的內(nèi)存。本文對其反向殘差塊進行改進。改進后的反向殘差塊如圖4所示,首先將輸入信息通過1×1的卷積、批標(biāo)準(zhǔn)化(BN)、ReLU6激活函數(shù);其次使用3×3的深度可分離卷積(DWise)、批標(biāo)準(zhǔn)化、ReLU6對圖像進行降采樣(步長為1時)提取每個通道的特征;然后使用1×1的卷積和批標(biāo)準(zhǔn)化進行降維;最后將信息輸入到注意力層(ECA_Layer)進行跨通道信息交互,增強復(fù)雜特征信息的提取能力。其中,當(dāng)步長為1,且輸入特征矩陣與輸出特征矩陣相同時才采用跳躍連接,將輸入信息與1×1的逐點卷積的結(jié)果進行相加。
圖4 改進后的反向殘差塊
實驗平臺的主要配置環(huán)境,如表1所示。
表1 實驗環(huán)境
訓(xùn)練網(wǎng)絡(luò)時,首先使用MobileNet-V2+SSD算法在ImageNet數(shù)據(jù)集上訓(xùn)練,將訓(xùn)練得到的模型作為預(yù)訓(xùn)練模型,然后采用遷移學(xué)習(xí)的訓(xùn)練方式,優(yōu)化改進后的算法。圖片輸入網(wǎng)絡(luò)的大小為300×300,優(yōu)化訓(xùn)練的參數(shù)為:初始學(xué)習(xí)率為0.002;優(yōu)化算法選用SGD優(yōu)化器,優(yōu)化器內(nèi)部動量值為0.937;權(quán)值衰減為0.000 5;降低學(xué)習(xí)率選用余弦退火的方式(Cosine Annealing LR)。
本文數(shù)據(jù)集使用工業(yè)相機采集,選取6種鑄件,采集不同環(huán)境下鑄件不同位姿、不同角度的照片,以增強所采集樣本的多樣性。圖5為采集的部分鑄件圖。
圖5 采集的部分?jǐn)?shù)據(jù)集
實驗共采集1518張原始圖片,其圖片像素大小為1280×720,分揀目標(biāo)設(shè)定為casting1、casting2、casting3、casting4、casting5、casting6六類,使用LabelImg標(biāo)注軟件對6種鑄件進行標(biāo)定,且依據(jù)VOC2007的數(shù)據(jù)集格式進行處理,轉(zhuǎn)換成xml文件。針對原數(shù)據(jù)集數(shù)量較少,易過擬合、魯棒性較低的特點,選用Mixup[15]數(shù)據(jù)增強技術(shù)對已標(biāo)注的樣本進行擴充操作。最終得到數(shù)據(jù)集共7590張,其中訓(xùn)練集為6831張,測試集為759張,即訓(xùn)練集與測試集的比例為9:1。該數(shù)據(jù)集雖不是在標(biāo)準(zhǔn)生產(chǎn)流水線上拍攝,但各個鑄件的擺放情況,相機拍攝角度等符合混流線上鑄件的擺放情況,優(yōu)化后的模型經(jīng)微調(diào)后可移植到實際工業(yè)生產(chǎn)場景中。
實驗主要采用平均精度(AP)、平均精度均值(mAP)、檢測速度、浮點計算量(FLOPs)和參數(shù)量作為評價算法好壞的依據(jù)。其中,mAP為對6種鑄件(N:類別總個數(shù))的AP取均值的結(jié)果,檢測速度數(shù)值越大代表檢測實時性越好。AP與精確率(P)和召回率(R)相關(guān),檢測框的IOU閾值皆取0.5,AP和mAP的計算表達式如下:
(4)
(5)
(6)
(7)
式中:TP為正確檢測框的數(shù)量,FP為誤檢框的數(shù)量,FN為漏檢框的數(shù)量。
實驗對比了基于原始數(shù)據(jù)集模型訓(xùn)練的結(jié)果與基于Mixup數(shù)據(jù)增強技術(shù)擴充樣本后模型訓(xùn)練的結(jié)果。如表2所示,SSD算法與YOLO算法皆在擴充樣本后的數(shù)據(jù)集上表現(xiàn)更佳,SSD算法的mAP提高了0.6%,YOLO算法的mAP提高了0.7%。經(jīng)實驗驗證,Mixup數(shù)據(jù)增強技術(shù)有利于提高算法的平均精度均值。
表2 不同數(shù)據(jù)集的測試效果
為驗證本文檢測方法的有效性,進行如下對比實驗,結(jié)果如表3所示。A、以VGG16作為主干網(wǎng)絡(luò)的SSD算法;B、經(jīng)典YOLO算法;C、以MobileNetv2作為主干網(wǎng)絡(luò)的SSD算法;D、以融合CA[16]注意力機制的MobileNetv2作為SSD的主干網(wǎng)絡(luò);E、對MobileNetv2主干網(wǎng)絡(luò)進行改進,將ECA注意力機制添加到主干網(wǎng)絡(luò)的倒置殘差結(jié)構(gòu)中,且使用不含注意力機制的倒置殘差層替換原有的輔助層。
表3 不同模型的測試效果
實驗結(jié)果表明,本文的輕量級多鑄件分揀識別算法mAP為97.10%,檢測速度為46.84 幀/s,FLOPs為1.516 G,參數(shù)量為4.34 MB,相較SSD算法,保證高精度與速度的同時,降低了模型的參數(shù)量和浮點計算量。部分檢測結(jié)果如圖6所示。
圖6 多鑄件檢測效果圖
以圖6中的第4幅圖像作為觀察對象結(jié)果如圖7所示。從圖中可以看出待檢測鑄件的外觀相似度較高,但本文所提算法仍能將其有效識別,由此可見在檢測高相似度性鑄件時,本文算法具有較高的精度。
圖7 鑄件檢測效果圖
針對鑄件混流分揀線上,大小不一、種類不一的多鑄件分揀識別問題,提出了基于SSD的輕量化多鑄件檢測算法。改進后的算法采用融合ECA注意力的MobileNetv2作為算法的骨干網(wǎng)絡(luò),在預(yù)測層使用反向殘差層替換卷積層,降低模型的參數(shù)量與計算量。實驗測試結(jié)果表明,改進后的算法在測試數(shù)據(jù)集上mAP達到97.10%,FPS為46.84 幀/s,相較SSD算法,精度提升了0.5%,檢測速度提高了18.77 幀/s,模型復(fù)雜度降低至原來的41倍,減少了對硬件設(shè)備的依賴性。通過在原始自制數(shù)據(jù)集和增強擴充的樣本集上進行訓(xùn)練,對比驗證了Mixup數(shù)據(jù)增強方法有利于提高算法的泛化性。