高寶林,萬國揚,江 明*,葛凌楓
(1.高端裝備先進感知與智能控制教育部重點實驗室,安徽 蕪湖 241000;2.安徽工程大學 電氣工程學院,安徽 蕪湖 241000)
伴隨著中國現(xiàn)代化工業(yè)的持續(xù)發(fā)展,具有便捷性、精確性、迅速性、智能化等優(yōu)點的目標檢測技術被廣泛應用于工業(yè)生產(chǎn)各領域,使得我國對產(chǎn)業(yè)化人工智能機器人技術需求日益增加。目前工業(yè)上主流的目標檢測方法分為兩類,根據(jù)不同側(cè)重點可分為著重檢測精度的“雙階段(Two-stage)”目標檢測算法和著重實時檢測速率的“單階段(One-stage)”目標檢測算法,側(cè)重點不同,應用不同。
雙階段目標檢測代表性算法于2014年開始陸續(xù)提出,其中R-CNN[1]、Fast R-CNN[2]和Faster RCNN[3]檢測算法等得到廣泛應用。但該算法雖然極大提升了目標檢測準確率,但繁瑣的兩步走著重于精度而欠考慮檢測速率,實時性欠缺使其算法不足,不能很好地完成工業(yè)化實時性要求較高的檢測任務。
為提高模型的實時檢測速率,更好地應用于工業(yè)化目標檢測,2015年,Redmon等[4]提出了基于深度學習的YOLO 檢測算法,避免了R-CNN 系列中將檢測任務分兩步走的繁瑣操作,使得檢測速度得到大大提升。為進一步提升檢測精度,Redmon等[5]于2018年提出了YOLO V3(You Only Look Once V3)算法。該算法采用特征金字塔網(wǎng)絡[6](Feature Pyramid Network,FPN)方法融合3個不同尺寸的特征圖層(Feature Map)進行檢測任務,檢測的精度和速率得到了很好得協(xié)調(diào)及提升,達到工業(yè)實時檢測的要求,在當今工業(yè)智能化產(chǎn)線中得到了廣泛的應用。
近年,國內(nèi)外也有很多學者通過改進目標檢測算法來提升目標檢測精度,對本文有許多參考作用。Liu等[7]提出一種基于加權純注意力機制的深度學習模型,采用純注意力機制,引入權重參數(shù),提高模型預測性能;Chen等[8]提出一種AFYOLO 模型,在骨干網(wǎng)的底層引入Dense Net模塊,提出一種新的FPN網(wǎng)絡結(jié)構(gòu),增強目標信息傳輸能力的同時,提高骨干的特征提取能力;王宸等[9]通過改進Efficient-Net模型,引入特征融合層,對工業(yè)鍛粉探傷識別進行了優(yōu)化,提高模型魯棒性和檢測效率;程婧怡等[10]提出一種改進工業(yè)金屬表面的缺陷檢測算法,算法融合淺層特征與深層特征,適用于尺寸小和特征模糊目標檢測,取得了不錯的效果。
本文以工業(yè)鑄件數(shù)據(jù)集作為檢測對象,數(shù)據(jù)資源采用專業(yè)工業(yè)相機獲取?;谀壳肮I(yè)流水線式工件分揀現(xiàn)狀,全階段只應用一種高階目標檢測算法會導致算法計算量龐大,檢測速率降低等問題。故結(jié)合現(xiàn)狀提出一種兩步識別定位模式:首先運用低階算法進行粗定位,再運用高階算法對篩選后的工件進行精定位的方法,提升檢測精確度。本文研究主要針對工件識別定位中粗定位階段YOLO V3算法檢測時存在的識別率偏低等問題,通過不斷優(yōu)化調(diào)整,使得粗定位階段檢測精度有所提升。
本文對工件識別定位研究,旨在應用于大型工業(yè)化產(chǎn)線工件識別分揀任務中。檢測原理依據(jù)模板匹配原理[11],以已知標定的工件作為模板,通過工業(yè)相機實時采集成像,在每幅圖像中依次進行模板匹配,識別出與模板特征信息近似的區(qū)域,進而定位目標工件,再進行后續(xù)機械臂分揀任務。
在目標檢測算法的選取上,通過綜合考量識別速度和精度,直接使用卷積層更深、更寬的目標檢測算法存在許多問題難以解決。直接使用高階目標檢測算法固然能得到準確識別定位,但是其龐大的計算量,以及多種形狀、尺寸不一的工件,復雜度高,運算量和存儲量以幾何數(shù)增長。其檢測速度必然有所下降,誤檢率隨之提升。所以針對于以上問題,提出一種先粗定位、后精定位的兩步識別定位模式。首先選用更加輕量化的目標檢測算法進行粗定位,快速篩選出目標工件信息。再使用卷積深度和寬度更高的目標檢測算法對篩選后的工件進行精準定位分揀。
在粗定位階段最終選取工業(yè)廣泛應用的YOLO V3作為初始算法框架,進行初步測試。在實際檢測中發(fā)現(xiàn)YOLO V3對本數(shù)據(jù)集工件的定位精度和檢測速率仍有提升空間,主要體現(xiàn)在主干特征提取網(wǎng)絡對于工件數(shù)據(jù)集不同大小尺寸、形狀差異過大等問題,不能很好地提取到工件深度信息,同時特征提取環(huán)節(jié)對不同尺寸的空間特征信息融合也不夠充分,導致實驗結(jié)果出現(xiàn)置信度低、多工件誤檢率高等問題。
通過協(xié)調(diào)算法各模塊功能特性,選取以Efficient-Net網(wǎng)絡[12]代替YOLO V3的Darknet53主干特征提取網(wǎng)絡,引入SPP模塊[13]加深網(wǎng)絡特征提取能力并擴大卷積核感受野,減小計算量的同時提升工件檢測的識別精度和完整度。再通過K-means++算法[14]對Anchor框進行重聚類,應用CIOU 位置損失[15]的方法,獲得了適應于工件數(shù)據(jù)集的9組錨框,同時提升了損失函數(shù)擬合速度,有益于提升非極大值抑制NMS[16]篩選速度,提升粗定位階段檢測精度和檢測速率。
本文工業(yè)檢測系統(tǒng)采用YOLO V3算法框架,YOLO V3算法是基于YOLO 和YOLO V2的改進算法,其在算法精確度、實時檢測能力、系統(tǒng)穩(wěn)定性方面都有不錯的體現(xiàn),在工業(yè)生產(chǎn)中得到了廣泛應用。算法將圖像進行網(wǎng)格劃分,在每個網(wǎng)格中篩選有用信息,支持數(shù)據(jù)集多種類別識別檢測,能夠在確保精度的同時獲得更快的檢測速率。該算法以Darknet53結(jié)構(gòu)作為特征提取網(wǎng)絡,張量的尺寸變換通過改變卷積核的步長來實現(xiàn)。網(wǎng)絡采用步長為2的卷積進行下采樣,并在每個卷積層后都附帶一個批歸一化層BN和Leaky Re LU 激活層,減少計算量的同時,保留了圖片的更多信息,再結(jié)合殘差模塊提升檢測精度。算法中端采用特征金字塔網(wǎng)絡FPN 結(jié)構(gòu)對不同層次的特征圖進行融合,以實現(xiàn)對不同尺度目標的預測。網(wǎng)絡輸出層采用三層特征圖進行預測,并通過非極大值抑制NMS算法獲得最終的檢測結(jié)果。其網(wǎng)絡結(jié)構(gòu)如圖1所示。
圖1 YOLO V3結(jié)構(gòu)圖
針對YOLO V3目標檢測算法存在的不足,通過優(yōu)化網(wǎng)絡主干結(jié)構(gòu),引入SPP 結(jié)構(gòu)等,用以優(yōu)化模型,提高檢測能力,改進后總結(jié)構(gòu)圖如圖2所示。
圖2 改進后模型結(jié)構(gòu)圖
通過對多種特征提取網(wǎng)絡進行對比驗證,最終選取Efficient-Net網(wǎng)絡用于工件特征提取。Efficient-Net特征提取網(wǎng)絡以其網(wǎng)絡結(jié)構(gòu)簡單、參數(shù)量較少、訓練速度提升等特點被廣泛應用于目標檢測等相關領域,獲得了很好的精確度。Efficient-Net是一個結(jié)合神經(jīng)網(wǎng)絡搜索技術的多維度混合放縮的網(wǎng)絡,通過利用殘差神經(jīng)網(wǎng)絡加深神經(jīng)網(wǎng)絡深度,通過改變每一層提取的特征層數(shù),并增大輸入圖片的分辨率,增強了對網(wǎng)絡特征提取的深度和寬度,使得學習和表達的信息更加豐富。其中深度、寬度和分辨率的放大倍率是由一個混合系數(shù)φ決定的:
式中,α、β、γ和φ為固定常數(shù)。α=1.2,β=1.1和γ=1.15為令φ=1時通過網(wǎng)格搜索獲得的最優(yōu)常數(shù),從而確定最基本的Efficient-Net-B0模型。在固定α=1.2,β=1.1和γ=1.15后,通過使用不同的φ值,從而計算出B0~B7模型的深度系數(shù)、寬度系數(shù)和分辨率。而Efficient-Net系列網(wǎng)絡的FLOPS(每秒浮點運算次數(shù))是由(α·β2·γ2)φ決定的。在α·β2·γ2≈2約束下,Efficient-Net系列的FLOPS約等于原來的2φ。
本實驗選用Efficient-Net-B0網(wǎng)絡結(jié)構(gòu)用以提取特征信息,確保檢測精度的同時,減少參數(shù)量,提高實時檢測能力。該結(jié)構(gòu)由1個Stem+16個MBConv組成。首先利用Stem 進行初步的特征提取,結(jié)構(gòu)實際包括卷積+標準化+激活函數(shù)。其次經(jīng)過16個MBConv,在MBConv堆疊的過程中完成高效的特征提取。將網(wǎng)絡提取出3個有效特征層代替原有Darknet53網(wǎng)絡提取有效特征層,用以提高對工件深度信息的獲取能力。正是由于Efficient-Net-B0網(wǎng)絡結(jié)構(gòu)清晰簡單、參數(shù)量較少等特性,使得訓練速度提升,簡化了訓練復雜度。Efficient-Net-B0網(wǎng)絡結(jié)構(gòu)如圖3所示。
圖3 Efficient-Net-B0流程圖
MBConv是Efficient-Net重要組成模塊,由深度可分離卷積Depth Wise Conv和通道注意力機制SE Net構(gòu)成,是Efficient-Net網(wǎng)絡進行深度特征提取的關鍵所在。而SE Net結(jié)構(gòu)用以壓縮與激發(fā)網(wǎng)絡,網(wǎng)絡通過loss損失獲取特征權重,使得有效的特征通道權重增大,無效或低效的特征通道權重減小的方式分配各通道不同比重,達到更好的檢測效果。算法通過全局平均池化操作實現(xiàn),將特征圖每個通道特征進行壓縮,再通過學習特征權重,賦予每個通道對應權重值,進而按照特征重要程度匹配對應權重值。其結(jié)構(gòu)圖如圖4所示。
圖4 MBConv結(jié)構(gòu)圖
SPP結(jié)構(gòu)是將特征圖分別映射到多種維度空間并將這些多重感受野融合的池化方法,網(wǎng)絡結(jié)構(gòu)對不同輸入尺寸的圖像信息能夠獲得固定長度的輸出。算法通過對不同特征層融合處理,使卷積核感受的視野范圍更加廣闊,豐富了特征圖的表達能力,有利于提取檢測目標的多尺度特征信息。
設輸入尺寸為Win×Hin×Cin,當期望池化層輸出尺寸為n,此時池化不改變Channel,所以Cout=Cin,輸出尺寸為n×n×Cout。
池化層的Kernel Size為:
池化層的Stride為:
池化層的Padding為:
根據(jù)卷積層池化層輸出尺寸公式得到:
本文實驗中,在YOLO V3目標檢測算法的Feature Layer 1通道引入SPP結(jié)構(gòu),空間金字塔池化提取到固定大小的特征,導入全連接層,防止過擬合。
應用CIOU 損失函數(shù),在IOU 的基礎上考慮到真實框和預測框的中心點距離(圖5中的d)與兩個框中最小包裹框的對角線距離(圖5中的c,最小包裹矩形框為圖中虛線部分)的位置關系,真實框與預測框的位置圖如圖5所示。在DIOU 基礎上考慮到在兩個框中心點重合時,c與d的值都不變,引入框的寬高比。
圖5 真實框與預測框位置圖
其中IOU 用來度量目標檢測中預測框與真實框的重疊程度。用預測框A和真實框B的交集除上二者的并集,其公式為:
則CIOU 的表達式為:
CIOU 回歸時的LOSS計算公式為:
式中,ρ2(b,bgt)代表圖5中兩框中心點距離,即為圖中的d、c代表兩框?qū)蔷€距離;α是權重函數(shù);v用來度量寬高比的一致性。
為克服K-means聚類對初值不穩(wěn)定的缺點,根據(jù)本實驗不同工件類別寬高比,采用K-means++算法對Anchor框重新進行了聚類。K-means++是通過當前樣本點到已有中心點的距離給出該樣本點成為下一個聚類中心的概率,兩點之間距離越大則概率越大,然后根據(jù)概率大小抽選下一個聚類中心位置,不斷重復直至抽取K 個聚類中心,如圖6所示。通過K-means++算法獲取的九組錨框尺寸,更加契合本文應用的工件數(shù)據(jù)集,有利于后續(xù)的篩選預測框、交并比計算等算法運行。
圖6 K-means++聚類圖
聚類步驟首先初始化第一個聚類中心點,搜索剩余樣本點,計算每個樣本點到此中心點的距離,記為D(x),D(x)值的大小決定了該樣本點成為下一個中心點概率的大小。繼而采用輪盤法獲取設定的9個聚類中心點。算法公式表示為:
最終通過K-means++聚類算法得到對應工件數(shù)據(jù)集的九組錨框尺寸如表1所示。
表1 九組錨框尺寸
實驗操作系統(tǒng)為Windows 10,處理器為Intel(R)Core(TM)i7-10700 CPU@2.90 GHz,顯卡NVIDIA GeForce RTX 3060,CUDA 版本選用11.3。模型訓練共迭代500次,批次大小設置為10,初始學習率設置為0.000 1,衰減系數(shù)設為0.000 5,降低其泛化性能。
數(shù)據(jù)集采集采用專業(yè)工業(yè)相機,型號為:MV-CA004-10UC。該型號單目相機擁有40萬像素,對檢測工件的輪廓清晰度、拍攝光感度都有很大提升,廣泛應用于工業(yè)型圖像數(shù)據(jù)采集。在實際圖像采集中,共采集分辨率為720×540的工件圖像1 044張,按類別分為object1、object2、object3、object4、object5、object6六類。將訓練集、測試集按照8∶2進行隨機抽選,獲得訓練集835張,測試集209張。六種工件如圖7所示。
圖7 六工件示意圖
本文采用mAP和檢測速率FPS作為模型的評價指標。精確度用來衡量目標檢測的準確度,為計算m AP的參數(shù)之一,公式如下:
召回率用來衡量識別過程的漏檢率,公式如下:
其中,式(7)、(8)中,TP表示正確歸類到目標樣本的數(shù)量;FP表示錯誤歸類到目標樣本的數(shù)量;FN表示識別錯誤的數(shù)量。AP值是以Precision作為縱坐標,Recall作為橫坐標于坐標系中所圍成曲線的面積,公式如下:
m AP值為多類AP值的平均值,即平均AP值。計算公式如下:
式中,QR指驗證集個數(shù)。
本文算法改進在無預訓練權重的條件下,對工件數(shù)據(jù)集進行對比驗證。本文提出的改進算法與YOLO V3系列算法及SSD 和YOLO V4算法檢測結(jié)果對比如表2所示。改進算法與原始YOLO V3實物檢測效果對比如圖8所示。
表2 改進算法與原YOLO V3性能對比
圖8 工件檢測實物圖
本文通過對YOLO V3檢測算法功能模塊改進,測評指標mAP提升2.8%,召回率提升4.4%,識別速率提升7/fps,使得在工件識別分揀粗定位階段得到更高的檢測精度和檢測速率,對整體的運行流程及后續(xù)的精定位篩選都起到促進作用。
為在大型工業(yè)化產(chǎn)線工件識別定位中,提升工件的定位精度和檢測速率,提出在粗定位階段運用YOLO V3目標檢測算法作為檢測框架,通過選用更輕量化的主干特征提取網(wǎng)絡,增強卷積核感受野、優(yōu)化交并比等方法,使得算法學習和表達的信息更加豐富,實現(xiàn)更深的神經(jīng)網(wǎng)絡特征提取。
相比較于原版YOLO V3網(wǎng)絡結(jié)構(gòu)應用于粗定位階段,改進算法通過選用網(wǎng)絡結(jié)構(gòu)更輕量簡單的Efficient-Net特征提取網(wǎng)絡,通過其殘差神經(jīng)網(wǎng)絡加深網(wǎng)絡深度與寬度,豐富了特征提取網(wǎng)絡的深度信息。在原算法基礎上再引入SPP結(jié)構(gòu),運用池化的方法將多重感受野融合,獲取深層的多尺度特征信息。選用CIOU 損失函數(shù),在交并比計算時可以兼顧到多種真實框與預測框位置關系變化,提升定位的準確度。而預處理階段的K-means++算法針對于本數(shù)據(jù)集工業(yè)鑄件的尺寸及形狀,聚類出更加契合的九組錨框,對后續(xù)的目標提取、交并比計算都有所幫助。改進后的算法模型在保證了檢測速率的同時,定位精度有所提升,使得在粗定位階段能夠更精確地完成初步篩選任務,為后續(xù)的精確定位提供更可靠的分揀來源,降低檢測復雜度,也為優(yōu)化大型工業(yè)化產(chǎn)線工件識別分揀系統(tǒng)提出自己的思路。