陳文韻,王學(xué)影,胡曉峰,郭 斌
(1.中國計量大學(xué)計量測試工程學(xué)院,浙江 杭州 310018; 2.杭州沃鐳智能科技股份有限公司,浙江 杭州 310018)
隨著國家經(jīng)濟與科技的不斷發(fā)展,以工業(yè)機器人與機器視覺為基礎(chǔ)的零件自動化裝配在工業(yè)生產(chǎn)得到廣泛應(yīng)用。智能生產(chǎn)線在生產(chǎn)和裝配的過程中,通過機器視覺和多種傳感器,根據(jù)圖像所反映的不同特征信息[1],支持多種相似產(chǎn)品的混線生產(chǎn)和裝配,引導(dǎo)機器人抓取,并能夠靈活調(diào)整工藝,適應(yīng)多品種生產(chǎn)模式。對于人工操作的工位,也能夠給予智能提示。智能生產(chǎn)線的未來發(fā)展將實現(xiàn)數(shù)字化、網(wǎng)絡(luò)化、柔性化以及高準確度、高速度、高效率。在市場的不斷需求下,生產(chǎn)線規(guī)模也向著多品種柔性的方向和信息密集的方向發(fā)展。
在機器視覺對圖像的識別領(lǐng)域內(nèi),卷積神經(jīng)網(wǎng)絡(luò)擁有著巨大的優(yōu)勢,是第一個真正意義上的多層結(jié)構(gòu)學(xué)習(xí)算法[2],其利用卷積核來提取圖片特征,大量卷積運算可以提取到深層次的圖像特征[3]。為使得網(wǎng)絡(luò)模型獲取更高的準確率,通常通過優(yōu)化網(wǎng)絡(luò)深度、網(wǎng)絡(luò)寬度和圖像分辨率的方法來實現(xiàn),如ResNet[4]、DenseNet[5]、Faster R-CNN[6]等,但這些網(wǎng)絡(luò)模型常常只是優(yōu)化三個維度的其中一個維度,且需頻繁地手動進行參數(shù)的調(diào)整,仍舊會產(chǎn)生次優(yōu)的準確率與效率,檢測速度也較為緩慢。為了縮短檢測時間,加快檢測速率,后來逐步發(fā)展出onestage的目標檢測算法,從RoI的提取到識別、檢測均包含在一個框架下,實現(xiàn)了端到端,該類算法雖實現(xiàn)檢測速度的加快,但通常伴隨著檢測準確率的降低。Google團隊通過復(fù)合比較網(wǎng)絡(luò)深度、網(wǎng)絡(luò)寬度、圖像分辨率對準確率、參數(shù)量和浮點運算量的影響,首先提出了EfficientNet網(wǎng)絡(luò)模型[7],繼而在其基礎(chǔ)上又提出了基于加權(quán)雙向特征的EfficientDet網(wǎng)絡(luò)模型[8],獲得了較高的準確率與較快的檢測速度。由此,針對ECU零件,設(shè)計了一套基于EfficientDet的分類檢測系統(tǒng),并在BiFPN的基礎(chǔ)上增加跨級數(shù)據(jù)流,實現(xiàn)對多類別零件的檢測和分類。
針對傳統(tǒng)目標檢測算法,本文提出了基于EfficientDet目標檢測算法的ECU分類檢測方法,其流程圖如圖1所示。采用電子控制單元ECU作為檢測對象,將采集的ECU樣本圖片經(jīng)圖像預(yù)處理后,按4∶1的比例分為訓(xùn)練集和測試集,其中標注后的訓(xùn)練集作為EfficientDet目標檢測算法的輸入,通過梯度下降法進行迭代,進而優(yōu)化網(wǎng)絡(luò)參數(shù),幫助網(wǎng)絡(luò)更快的收斂,模型訓(xùn)練完畢后通過測試集驗證其對ECU零件檢測的準確率,并對網(wǎng)絡(luò)進行評估。工業(yè)生產(chǎn)線要求零件識別的平均準確率達到90%以上,若網(wǎng)絡(luò)模型性能達到實際要求,則將網(wǎng)絡(luò)投入實際的ECU分類檢測中,反之則繼續(xù)調(diào)整網(wǎng)絡(luò)參數(shù)并重新訓(xùn)練網(wǎng)絡(luò)。
圖1 EfficientDet的ECU識別檢測方法流程圖
EfficientDet采用EfficientNet作為主干特征提取網(wǎng)絡(luò),其結(jié)構(gòu)如圖2所示,其提出了一種新型的加權(quán)雙向特征提取網(wǎng)絡(luò)BiFPN,可實現(xiàn)簡單快速的多尺度特征融合,并結(jié)合了一種復(fù)合尺度擴張方法,該方法可以統(tǒng)一地對主干特征網(wǎng)絡(luò)和預(yù)測網(wǎng)絡(luò)的分辨率、深度和寬度進行縮放。主干特征提取網(wǎng)絡(luò)將輸入的圖片不斷進行下采樣提取特征得到P1~P7,由于P1、P2只進行了淺層的下采樣,不具有較高的語義信息,因此不將P1、P2輸入加強特征提取網(wǎng)絡(luò)。下采樣獲得的 P3、P4、P5、P6、P7稱之為有效特征層,將這5個有效的特征層傳入加強特征提取網(wǎng)絡(luò)進行進一步的特征提取,通過BiFPN的重復(fù)運算,將獲得的5個具有較高的語義信息的有效特征層傳輸入分類預(yù)測和回歸預(yù)測,進行特征整理獲得預(yù)測結(jié)果。
模型設(shè)計上,EfficientDet與YOLO[9]等主流的單級檢測網(wǎng)絡(luò)模型近似,仍舊運用的是“特征提取、多尺度特征融合、分類/回歸預(yù)測”的框架,其包含的D0~D7八個模型,隨著模型等級的提升,其參數(shù)越多,準確率越高,計算量越大,要求計算機性能越高,計算速度越慢??紤]到現(xiàn)實環(huán)境中所需ECU檢測準確率、效率和計算機系統(tǒng)的性能,選擇EfficientDet-D1進行對ECU的分類檢測。
與傳統(tǒng)的任意縮放網(wǎng)絡(luò)深度、寬度和分辨率三個因子不同,EfficientNet使用一組固定的縮放系數(shù)均勻地對網(wǎng)絡(luò)的寬度、深度和分辨率進行統(tǒng)一縮放,實現(xiàn)了利用簡單高效的復(fù)合系數(shù)完成了對三個參數(shù)所有維度的統(tǒng)一縮放,如圖3所示。內(nèi)部采用MBConv卷積塊[10]堆疊而成,其結(jié)構(gòu)如圖4所示,對輸入的特征層進行1× 1的卷積并升維后,進行深度可分離卷積,對通道施加注意力機制(SENet),其結(jié)構(gòu)如圖5所示,判斷更加關(guān)注哪個通道內(nèi)容,完成注意力機制的施加后,利用1× 1的卷積進行降維并與殘差進行組合輸出結(jié)果。為了降低過擬合風(fēng)險,在網(wǎng)絡(luò)中加入Drop Connect算法,將隱含層節(jié)點中與其相連的輸入權(quán)值以一定概率清零,起到正則化效果,提高網(wǎng)絡(luò)泛化能力。
圖3 EfficientNet模型的調(diào)參示意圖
圖4 MBConv卷積塊
圖5 注意力機制
縮放網(wǎng)絡(luò)深度是許多卷積神經(jīng)網(wǎng)絡(luò)最常用的優(yōu)化方法之一,雖然更深層的網(wǎng)絡(luò)可取得更為豐富、更為復(fù)雜的特征,但是由于梯度消失的原因,更深層的網(wǎng)絡(luò)也更難訓(xùn)練;縮放網(wǎng)絡(luò)寬度往往運用于小型的模型,更廣泛的網(wǎng)絡(luò)往往能夠取得更細微的特征,但是很寬卻很淺的網(wǎng)絡(luò)往往難以獲得更高層的特征;對于使用更高分辨率的輸入圖像,卷積神經(jīng)網(wǎng)絡(luò)能夠獲得潛在的細小特征,但對于極高的分辨率,其準確率又有所減少。因此三者需要一個平衡來使模型達到最優(yōu)狀態(tài)。EfficientNet提出了一種新的復(fù)合標度的方法,利用復(fù)合系數(shù)對網(wǎng)絡(luò)的深度、寬度和分辨率進行縮放,可由公式(1)表示:
式中:d,w,r——網(wǎng)絡(luò)深度、寬度、分辨率的系數(shù);
α,β,γ——對應(yīng)維度的資源分配參數(shù);
φ——由用戶指定的資源控制系數(shù)。
α,β,γ 則能夠決定額外資源到網(wǎng)絡(luò)的寬度、深度和分辨率上的分配。在實際的深度學(xué)習(xí)的應(yīng)用中,通過不停地修改網(wǎng)絡(luò)深度、寬度、圖像分辨率的系數(shù),EfficientNet網(wǎng)絡(luò)模型將逐漸達到最優(yōu)的準確率[11]。
較早的檢測器只是簡單的使用骨干網(wǎng)絡(luò)提取的金字塔特征層甚至只在最后一層[12]進行類別和位置預(yù)測。FPN[13]首次通過使用自上而下的途徑來組合多尺度特征,如圖6(a)。PANet[14]在其基礎(chǔ)上,額外增加了一條自底向上的路徑來進一步融合特征,如圖6(b)。隨著自動機器學(xué)習(xí)的發(fā)展,NAS-FPN使用了神經(jīng)架構(gòu)搜索自動設(shè)計了特征網(wǎng)絡(luò)拓撲結(jié)構(gòu),如圖6(c)。雖然 NAS-FPN擁有優(yōu)異性能,但其消耗大量算力,且生成的FPN網(wǎng)絡(luò)不規(guī)律。
圖6 特征融合網(wǎng)絡(luò)設(shè)計
EfficientDet使用一種新型高效的雙向特征提取網(wǎng)絡(luò)BiFPN,如圖7(a),通過將骨干網(wǎng)絡(luò)EfficientNet結(jié)構(gòu)中3~7層的輸出特征不斷得做自頂向下和自底向上的特征融合,使用以下技巧來提高性能:1)擁有自頂向下以及自底向上這兩條路徑的融合特征;2)忽略只有一個輸入的節(jié)點并加入跳躍連接以輕量化網(wǎng)絡(luò);3)可學(xué)習(xí)權(quán)重自動加權(quán)融合過程的輸入特征。為了更充分地利用不同層級的語義和位置信息,在 BiFPN的設(shè)計基礎(chǔ)上增加數(shù)據(jù)流,將下層節(jié)點特征融合到上層節(jié)點中共同學(xué)習(xí)[15],如圖7(b),增加了跨級的數(shù)據(jù)流,提升了網(wǎng)絡(luò)性能。
圖7 BiFPN的改進過程圖
由于在本Efficientdet的訓(xùn)練過程中,正負樣本極不平衡,如圖8所示,即存在著對應(yīng)真實框的先驗框可能只有若干個,但不存在對應(yīng)真實框的負樣本卻有上千個甚至上萬個的情況,導(dǎo)致負樣本的loss值極大。
圖8 正負樣本數(shù)
為了解決這個問題,則引入Focal Loss來平衡正負樣本。實驗中將EfficientDet網(wǎng)絡(luò)模型的損失函數(shù)的計算分成兩個部分,一為獲取所有正標簽的框的預(yù)測結(jié)果的回歸損失Smooth L1 Loss,如式(2), 可更好地避免因出現(xiàn)較大的錯誤偏移去主導(dǎo)損失,最終造成梯度爆炸的情況;二為取得所有未被忽略的種類的預(yù)測結(jié)果的交叉熵分類損失Focal Loss,可控制正負樣本和易難分類樣本的權(quán)重。
式中:v=(vx,vy,vw,vh)——真實框的框坐標;
該實驗應(yīng)用在ECU混線自動分揀上料系統(tǒng)上,圖像的采集由REALSENSE D435i相機完成,通過RGB攝像頭拍照獲取各類ECU原始圖像。為防止所建網(wǎng)絡(luò)出現(xiàn)過擬合現(xiàn)象,經(jīng)采集得到2000張ECU原始圖像,對原始圖像進行標注,再通過數(shù)據(jù)增強策略,將原始圖像通過翻轉(zhuǎn)圖像、改變明暗、改變色域、增加噪聲等方式進行樣本的擴增,增加樣本的同時減小標注成本,數(shù)據(jù)增強過程中,使用padding的方式,使樣本圖片不失真并保持原本尺寸,最終共獲得10 000張圖像樣本,對樣本進行歸一化處理,按照4∶1的比例分為訓(xùn)練集、測試集來建立和驗證模型。
在圖像識別任務(wù)中,大部分數(shù)據(jù)存在相關(guān)性,通過遷移學(xué)習(xí)可將已學(xué)到的模型參數(shù)分享給新模型,從而加快并優(yōu)化模型的學(xué)習(xí)效率[16]。在訓(xùn)練中采用預(yù)訓(xùn)練模型,對EfficientDet-D1模型進行遷移學(xué)習(xí),共訓(xùn)練200個epoch,并對EfficientDet-D1得到的權(quán)重參數(shù)進行部分凍結(jié)處理,在前100個epoch的訓(xùn)練過程中不對其進行計算,設(shè)置學(xué)習(xí)率為0.001,batch size為4,大大縮減模型的訓(xùn)練時間,后100個epoch對凍結(jié)部分進行解凍,設(shè)置學(xué)習(xí)率為 0.000 1,batch size為 2。
標注對建立深度學(xué)習(xí)網(wǎng)絡(luò)至關(guān)重要,樣本標注不準確很容易導(dǎo)致在后期訓(xùn)練深度學(xué)習(xí)網(wǎng)絡(luò)時模型不收斂的情況。針對該實驗樣本,采用labelimg軟件進行標注,如圖9,標注后自動保存為xml文件生成VOC數(shù)據(jù)集,將生成的VOC數(shù)據(jù)集通過數(shù)據(jù)增強得到的新數(shù)據(jù)集的路徑添加至代碼中進行改進的EfficientDet-D1網(wǎng)絡(luò)的訓(xùn)練。
圖9 樣本標記示意圖
本訓(xùn)練搭建深度學(xué)習(xí)網(wǎng)絡(luò)的主要環(huán)境如下:處理器為Intel Core i7-7700,16G內(nèi)存,GPU為GTX 1070,操作系統(tǒng)為 Windows10,依賴 python3.7、tensorflow-gpu2.1.0、CUDA10.1、cuDNNv7.6。為了驗證EfficientDet網(wǎng)絡(luò)性能,將在相同實驗條件下,采用多種網(wǎng)絡(luò)模型對同一數(shù)據(jù)集進行訓(xùn)練并將實驗結(jié)果進行對比。
繪制出網(wǎng)絡(luò)模型隨訓(xùn)練次數(shù)增加而變化的損失函數(shù)圖和精確率(Accuracy)曲線圖,如圖10所示。從圖10中可看出,EfficientDet網(wǎng)絡(luò)的損失函數(shù)震蕩幅度小,且能迅速收斂,隨著迭代次數(shù)的增加,網(wǎng)絡(luò)模型的損失值呈不斷減小的趨勢,在epoch為100處對凍結(jié)部分的權(quán)重參數(shù)解凍,解凍時損失函數(shù)值有少許增大,但隨著迭代次數(shù)的進一步增加,損失函數(shù)值逐漸減小趨于穩(wěn)定,最終穩(wěn)定在0.025左右;同時,隨著迭代次數(shù)的增加,精確率在前50個epoch快速上升,而后減緩上升趨勢并逐漸趨于穩(wěn)定。
圖10 改進的EfficientDet-D1網(wǎng)絡(luò)損失函數(shù)和精確率圖
圖11(a),準確率(Precision)表示在預(yù)測的樣本中,實際正樣本數(shù)在所有正樣本數(shù)中所占的比例,最終得到改進的EfficientDet-D1網(wǎng)絡(luò)的準確率為93.4%;圖11(b),召回率(Recall)表示在預(yù)測的樣本中,實際正樣本數(shù)在所有預(yù)測樣本中占有的比例,最終得到改進的EfficientDet-D1網(wǎng)絡(luò)的召回率為90.8%。
圖11 改進的EfficientDet-D1準確率和召回率圖
分別比較各網(wǎng)絡(luò)的檢測性能,如表1所示。EfficientDet網(wǎng)絡(luò),訓(xùn)練耗時較短,且不需要區(qū)域候選網(wǎng)絡(luò),其采用的新型加權(quán)雙向特征提取網(wǎng)絡(luò)結(jié)合復(fù)合尺度擴張方法,更簡單快速地實現(xiàn)多尺度特征融合,在檢測速度和準確率上明顯優(yōu)于Mask RCNN、Faster R-CNN網(wǎng)絡(luò)。改進的EfficientDet-D1網(wǎng)絡(luò)的參數(shù)量大于EfficientDet-D0,其檢測時間稍長于EfficientDet-D0,但語義信息更豐富,特征的提取、學(xué)習(xí)更深入,其準確率明顯高于EfficientDet-D0。在實際生產(chǎn)應(yīng)用時,由于現(xiàn)場環(huán)境存在光照不勻、檢測物體重疊等不確定因素,改進的EfficientDet-D1網(wǎng)絡(luò)魯棒性更強,更能適應(yīng)環(huán)境以準確地檢測出物體種類并快速定位,減小生產(chǎn)線裝配壓力,其實際應(yīng)用中效率高于EfficientDet-D0網(wǎng)絡(luò)。在ECU裝配生產(chǎn)線中選用改進的EfficientDet-D1做為檢測網(wǎng)絡(luò)更符合要求。
表1 網(wǎng)絡(luò)模型性能對比
改進的EfficientDet-D1網(wǎng)絡(luò)檢測結(jié)果如圖12所示。將兩種類型的ECU外殼擺放成各種不同的角度,觀察檢測結(jié)果可看出,在不同角度不同對象的情況下,改進的EfficientDet-D1網(wǎng)絡(luò)模型的檢測結(jié)果均正確且置信度得分普遍較高,符合實際在ECU裝配生產(chǎn)線上的要求。
圖12 ECU外殼檢測效果圖
針對機械零件研究了基于深度卷積神經(jīng)網(wǎng)絡(luò)的目標檢測算法EfficientDet,并對算法的原理進行了分析。對采集到的樣本進行預(yù)處理、數(shù)據(jù)增強與標注,并與其他網(wǎng)絡(luò)模型進行比較分析。實驗表明,對于Faster R-CNN、Mask R-CNN網(wǎng)絡(luò)產(chǎn)生的檢測速度慢、準確率不高的問題,EfficientDet網(wǎng)絡(luò)回歸物體的類別概率和位置坐標值,同時通過BiFPN與復(fù)合尺度擴張方法,提高了模型的檢測速度與檢測準確率;實際生產(chǎn)應(yīng)用中,改進的EfficientDet-D1網(wǎng)絡(luò)比EfficientDet-D0網(wǎng)絡(luò)更能適應(yīng)環(huán)境以準確地檢測出ECU種類并快速定位,其準確率高效率高,滿足實時檢測的要求。