李 麗,王燕妮
(西安建筑科技大學信息與控制工程學院,陜西 西安 710055)
機器視覺被稱為智能制造的“智慧之眼”,為智能制造打開了新的“視”界,是實現工業自動化和智能化的必要手段。傳統的工業制造中,通過人工對零部件特征提取,該方法勞動強度大,效率低,且依賴于人的經驗等。計算機視覺的發展,為工業檢測速度和準確率以及智能化程度做出很大貢獻,視覺系統取代人工檢測是智能制造發展的必然趨勢[1]。視覺檢測如何克服復雜的工業生產環境,減少人工干預,提高檢測算法準確率和檢測實時性是很大的挑戰[2]。
零件識別和定位是工業機器人視覺任務的重要工作基礎,傳統的視覺識別算法中通常采用人工提取工件形態特征和模式識別方法相結合。文獻[3]使用Snake算法從復雜背景中提取零件輪廓,通過邊緣特征識別目標。文獻[4]提出基于局部雙線性插值的提取梯度直方圖特征,對零部件細小缺陷檢測。文獻[5]對低紋理信息的零件檢測,提出了CL2D(color line2D)快速匹配算法,得到了較好的檢測效率。傳統算法在檢測任務中準確度有一定的提升,但是對檢測環境要求極高,只適應某些特定的條件,容易受圖像旋轉、縮放的影響,導致檢測效率不高甚至失敗。而工業檢測環境復雜,受光照和相機位姿變化的影響,識別精度受到很大影響。
近年來,深度學習算法在圖像檢測方面有優越的表現,深度卷積神經網絡能夠完善分類器自主學習提取抽象的高級特征。基于深度學習的檢測算法在工業領域也取得了顯著成果。文獻[6]從改進聚類生成方案角度出發,提升發動機零件表面缺陷的檢測準確率。文獻[7]在SSD(single shot multibox detector)網絡中融入Inception預測結構,對模擬生產環境下的裝配零件訓練,提高了檢測準確率。文獻[8]在殘差網絡基礎上引入特征拼接,同時引入注意力機制,融合不同特征通道信息提高對列車底部零件的檢測精度。
目前應用于工業零件的檢測精度不斷提高,但是實際應用環境噪聲大,視覺算法受到光照不均勻、相機位姿變化、工件形態等因素影響,導致檢測精度下降,同時工控機設備一般性能不高,沒有強大的圖形處理器。為了滿足工業領域對零件的檢測精度和實時性的要求,提出一種增強感受野的輕量化零件檢測方法。
本文借鑒YOLOv5(you only look once)網絡結構,該網絡是由Ultralytics團隊設計的目標檢測網絡,根據深度和寬度的不同,有YOLOv5s,YOLOv5m,YOLOv5l,YOLOv5x四個版本, YOLOv5s的模型最小,輸入端采用Mosaic數據增強方式,隨機縮放、隨機裁剪、隨機排布的方式進行拼接,可以提高對小目標的檢測效果,訓練之前通過聚類算法計算設置初始錨框,對原始圖像能夠自適應圖片縮放。主干借鑒了CSPNet(cross stage partial network)設計思路,在主干網絡中設計CSP模塊增強網絡特征提取,為了更好地提取融合特征,頸部網絡使用FPN+PAN結構,FPN(feature pyramid networks)[10]層自頂向下生成高語義信息的特征圖,PAN(path aggregation network)[11]層自底向上生成強定位特征,從不同的主干層對檢測模塊進行特征融合。結構圖如圖1所示。

圖1 YOLOv5s網絡結構圖Fig.1 YOLOv5s network structure
本文提出有效增強感受野的輕量級工業零部件目標檢測網絡,使用ShuffleNetv2輕量化網絡作為主干,網絡模型對輸入層的不同特征圖進行分組卷積,可以大幅度降低卷積的計算量,同時為解決不同組的特征信息不通信的問題,分組卷積之后采用shuffle技術對通道均勻地打亂。隨著網絡加深,語義信息更加復雜,本文構造了并行空洞金字塔輕量級模塊,通過對輸入特征圖不同比例的空洞卷積,提取更加豐富的多尺度語義信息,擴大感受野,豐富特征信息。在特征融合模塊,從輕量化的角度出發,采用深度可分離卷積可能因為網絡參數量減少而影響特征融合能力,本文在特征融合模塊使用GSConv(group-shuffle strategy convolution)[14]替換普通卷積,并設計了GSCSP(group-shuffle strategy cross stage partial)模塊,提高了網絡融合能力。網絡結構如圖2所示。

圖2 本文網絡結構圖Fig.2 The proposed network structure
YOLOv5主干特征提取網絡采用了CSPDarknet53結構,為了滿足在邊緣設備上高效運行深層卷積網絡的同時保持精度的需求,本文采用ShuffleNet搭建主干網絡,該模型基本單元通過分組卷積、通道重排技術提高特征提取能力,并使用深度可分離卷積降低網絡計算量。傳統的神經網絡中大量堆疊的卷積操作會產生冗余特征圖,為了平衡網絡模型的速度和精度,通過設置模塊輸出通道數來控制網絡模型。網絡參數如表1所示。

表1 網絡參數維度Tab.1 Dimensions of network parameters
在工業環境中,工件特征的長寬比和大小受相機位姿變化的影響,相機旋轉和相機傾斜等位姿變化幅度不同,其工件特征尺寸可以任意變化。而YOLO網絡是根據聚類算法提前設定錨框,工件的特征長寬比與聚類結果差距很大,則會影響網絡的定位信息。為增強網絡對多尺度特征的提取能力,提高對工件的檢測準確率,在網絡中設計并行空洞金字塔輕量級結構。
空洞卷積(atrous convolution, AConv)是在卷積核的像素直接插入“洞”,以提高像素分別率,擴大感受野,捕獲特征信息。深度可分離卷積將普通卷積分成兩步,通道卷積(depthwise convolution, DWConv)和逐點卷積(pointwise convolution, PWConv),這個過程獨立地查看卷積層的通道相關性和空間相關性。受ASPP(atrous spatial pyramid pooling)網絡[12]和文獻[13]的啟發,文中設計了并行空洞金字塔通道(parallel atrous spatial pyramid path, PASPP),該結構采用空洞卷積和深度可分離卷積相結合構成特征融合通道,空洞卷積以棋盤方式提取特征,會丟失很大一部分信息,為避免局部信息丟失,使用不同的擴張率提取特征進行融合,膨脹系數設置地合理可以提高網絡獲取多尺度信息的能力,避免空洞卷積造成的局部信息丟失,使得模型對不同尺度的特征提取能力更強,信息更加豐富。
圖3展示了空洞卷積與通道卷積結合的方式,輸入特征層以獨立通道采用空洞卷積,每個通道分別以3×3卷積核,擴張率r=2進行空洞卷積,然后對輸出通道進行融合??斩淳矸e可以任意擴大感受野提取特征信息,通道卷積對輸入層的每個通道進行卷積,可以減少參數量。這個過程并不會改變通道數。

圖3 空洞卷積和通道卷積結合Fig.3 Combination structure of DWConv and AConv
PASPP結構如圖4所示,將輸入特征通過1×卷積減少通道數,1×1Conv框模塊包含三個組成部分:卷積層,批歸一化層,激活層。通道輸出結果被映射到四路分支。第一路分支以卷積核大小為3×3,擴張率為2,經過通道卷積,有效減少參數量;第二路分支是卷積核大小為3×3,擴張率r=5的空洞卷積和通道卷積相結合;第三路分路擴張率最大r=9,能夠獲得更多全局性的上下文信息增強推理能力;第四路保留了原來的特征信息。然后將不同空洞率的卷積信息進行特征融合,使得網絡對不同尺度目標的適應性更強。由于深度卷積缺少通道信息之間的交流,引入Channel Shuffle進行通道重排,弱化通道之間的獨立性。最后通過1×1的卷積降維和通道間編碼。

圖4 PASPP結構圖Fig.4 Structure of PASPP
目標檢測任務中,為了增強網絡的學習能力,頸部網絡對骨干網絡提取不同尺度特征進行融合,提取更精細的細節進行圖像識別。YOLOv5s模型的Neck層采用FPN+PAN結合方式,通過自上而下采樣與深層特征信息進行融合,增強了深層網絡的語義信息。利用淺層的精準定位信息,采用自下而上的路徑增強方法與深層網絡融合,縮短了信息路徑,增強了特征金字塔。YOLOv5s在上采樣和下采樣操作中采用C3模塊,減少了模型參數量,保證準確的同時,提高了網絡速度。
本文從輕量化程度和網絡的特征提取能力出發,引入文獻[14]中新的卷積方式GSConv卷積替代普通卷積。為了使網絡更加輕量化,一般會采用深度可分離卷積(depthwise separable convolution, DSC)替換普通卷積(standard convolution, SC),但DSC特征提取和特征融合的能力低很多。圖像特征提取過程中,每一次特征圖的空間壓縮和通道擴張會導致語義信息的丟失,通道卷積將每層特征獨立卷積,割斷了通道之間的連接,GSConv最大限度地保留了它們之間的連接,特征圖進入頸部網絡時,通道維度達到最大,空間維度最小,適合在頸部網絡中使用GSConv。其網絡結構如圖5所示。

圖5 GSConv結構圖Fig.5 Structure of GSConv
結合GSConv卷積設計了GSCSP模塊,結構如圖6所示。該模塊先使用卷積減少通道數,其中一個分支經過N個使用ResNet(residual network)[15]連接方式的GSBottleneck模塊。另一分支保留了上層輸入的特征映射,將兩路特征融合后,經過1×1卷積進行降維和通道編碼。GSCSP模塊減少冗余重復信息,提高了模型的表達能力,很大程度上減少了計算量。

圖6 GSCSP結構圖Fig.6 Structure of GSCSP
在工業領域樣本少,沒有開發的公共數據集,本文使用的數據集是汽車生產線上工業相機拍攝的圖像。對數據集展開了兩項工作:1) 以車間工人經驗區分機艙類型的特征區作為標簽,制作標簽文件;2) 針對工業生產環境對檢測精度影響因素,對數據集進行數據增強處理。如圖7所示為兩種型號相似度很高的汽車機艙。

圖7 機艙架原始圖Fig.7 Original image of engine compartment
在工業環境中獲取原始圖像2 000張,圖片大小為2 048×1 536像素,其中A類型發動機艙圖片1 000張,B類型汽車機艙圖片1 000張。在實際環境中不容易獲取大量樣本,為了避免光照因素和相機位姿變化影響網絡識別的精度,擴大數據集。實驗中通過模擬相機位姿變化,對樣本集進行數據增強。通過分析,實際工廠環境中相機可能存在的動作有相機傾斜、相機旋轉、相機抖動。針對三類動作,分別設計對應的圖像處理方式。其中相機傾斜為特征區域在圖片中的大小變化;相機旋轉為將圖像進行一定角度的旋轉;相機抖動為特征區域在圖像中的位置變化。同時因光照補充原因,采集的圖像會因光線太亮產生反光或光照不足等情況,為了消除光照帶來的影響,對圖像進行了亮度變化操作。數據增強的結果如圖8所示。

圖8 數據增強Fig.8 Data enhancement
從工業環境中獲取原始圖像,通過7∶1∶2的比例劃分為訓練集、驗證集、測試集。充分考慮工業生產中的復雜環境,對數據集進行不同范圍的數據增強。圖像旋轉是以原始圖像在[-90°,90°]范圍內隨機旋轉角度生成一組數據集。圖像偏移是以原始圖像在(-200,200)像素點范圍內在X軸和Y軸方向上進行隨機偏移生成一組數據集,偏移像素的顆粒大小為50。圖像縮放是以原始圖像在(0.6,1)范圍內隨機按比例縮小圖像生成一組數據集。圖像亮度是以原始圖像調整圖像亮度生成一組數據集。訓練數據集大小如表2所示。

表2 訓練數據集Tab.2 Training datasets
為了對比本文改進算法性能,使用精準率(precision),召回率(recall),平均精度(mAP),運算浮點數(FLOPs),參數量(parameters)、模型大小(model size)和每秒幀數(frame per second, FPS)作為目標檢測網絡的評價指標。mAP體現目標檢測網絡的綜合性能。
本文中所有的實驗都是在實驗室服務器上搭建的pytorch環境下進行的,其中訓練機的主要硬件參數:Intel(R) Core(TM) i5-4590 CPU @ 3.30 GHz;16.00 GB內存;NVIDIA TITAN Xp。軟件參數:Windows 10系統;Python3.7;Pytorch1.9框架;cuda11.1、cudnn11.1。
為了驗證改進目標網絡對工業零部件的檢測能力,實驗中使用200張原始圖像作為測試集,通過圖像旋轉、圖像縮放、圖像偏移、圖像調整亮度數據增強操作生成800張的數據集,工業環境中相機位姿和光照條件的影響是隨機變化的,為了驗證網絡的魯棒性,對測試數據集做更大幅度的數據增強,以 [-120°,120°]范圍內進行圖像旋轉,圖像縮放在(0.4,1)范圍內隨機縮小圖像,圖像亮度是在其他三種操作基礎上改變圖像亮度。
3.4.1目標檢測網絡消融實驗
針對工業環境下對汽車零部件的目標檢測,本實驗的改進主要為使用ShuffleNetv2作為主干網絡,引入PASPP模塊,在頸部網絡使用GSCSP模塊替換C3模塊。為了定量分析各模塊的檢測性能,在工業機艙零件數據集上進行了消融實驗,結果如表3所示。

表3 不同模塊的性能對比Tabl.3 Comparison results of different modules
從表3中可以看出:不加任何改進模塊的情況下,主干網絡使用ShuffleNetv2提取特征的YOLOv5-1.0,其mAP值只有92.8%;添加輕量化PASPP模塊的YOLOv5-PASPP模型,相比YOLOv5-1.0精度提高了1.3%,有效增加網絡感受野;提出的GSCSP模塊替換C3模塊,模型大小基本保持不變,增強了網絡融合信息的能力。本文算法對比YOLOv5s網絡,參數量減少了60.3%,保持了較高的精度。本文提出的網絡結構在減少網絡參數量和計算量,輕量化程度最高的情況下,保證網絡精度,在精度和速度上都達到了令人滿意的結果。
為了驗證輕量化PASPP模塊中使用深度可分離卷積的有效性,實驗如表4所示。YOLOv5-SC實驗中PASPP模塊使用的是普通卷積,精度沒有明顯提升,添加的PASPP模型能夠提取更多上下文特征信息,且降低了參數量;YOLOv5-DSC將聚合網絡中的普通卷積替換為深度可分離卷積,降低了網絡計算量,但融合能力很低,影響網絡精度;提出的GSCSP結構保留了更多通道相關性,解決了因DSC產生的特征豐富性過差的問題。

表4 不同卷積方式的實驗結果Tab.4 Comparison results of different convolution modes
3.4.2網絡對比實驗
為了驗證本文算法對汽車零部件檢測的針對性,與其他主流算法進行了對比實驗,包括SSD[16], YOLOv3-tiny[17],YOLOv4-tiny[18],YOLOv5s,實驗結果如表5所示。

表5 模型性能對比Tab.5 Comparison of model performance
從上述實驗結果分析可知,由于SSD模型在規模上較大,所需計算量多,在推理速度上表現最差。本文算法模型上最小,模型大小只有4.3 MB,比YOLOv5s的檢測速度高24幀/s,精度基本保持一致。本文算法對工業汽車零部件的檢測效果表現優異。圖9為各種場景下的樣本檢測結果,在模擬遮擋、過曝光、旋轉等復雜條件下,驗證不同網絡的檢測能力。由于光照因素,往往會出現識別特征減少的情況,比如識別目標區域曝光或者失光,檢測較為困難,YOLOv3-tiny網絡對這類目標不敏感有漏檢的情況。當圖像旋轉,特征區域的長寬比發生變化,本文算法提出的多尺度空洞金字塔模塊,使得模型更能學習到這些樣本特征。

圖9 各場景檢測結果Fig.9 The results of various samples detect
3.4.3實驗結果
為了驗證本文算法對汽車零部件的分類能力,實驗中選擇兩種輕量化網絡ShuffleNetv2,MobileNetv3[19]和兩種經典網絡EfficientNetv2[20],ResNet50[15]分別對數據集進行訓練。測試數據集包括800張圖像,實驗結果如表6所示。本文提出的算法檢測速度最快,可以達到實時檢測要求,其準確率也表現較好。實驗過程中發現,當測試數據集在訓練范圍內進行增強操作,其網路表現效果良好,當超出訓練范圍,加大測試集難度,本文算法依然可以有較好的分類結果,因此本文提出的算法能夠更好地應對復雜的工業環境,提高檢測能力。

表6 模型對比結果Tab.6 Comparison of model performance
針對工業環境中光照條件、相機位姿變化等因素影響檢測精度下降問題,提出一種適用性更強的輕量化網絡。為提高網路速度,使用ShuffleNetv2網絡結構作為主干,并設計PASPP模塊提高網絡對不同尺度目標的特征提取;為提升網絡精度,結合GSConv設計GSCSP網絡模塊,在不增加參數的情況下提高模型精度。實驗結果表明,相比YOLOv5s網絡,參數量大幅減少60.8%,mAP為96.1%,算法優勢突出,對工業零部件具有較好的檢測能力,具有更快的推理速度,能夠滿足實際生產中零部件檢測需求。