馬鈺淮,武向軍,孫 紅,李海虹
(太原科技大學(xué) 機械工程學(xué)院,太原 030024)
近年來,隨著工業(yè)領(lǐng)域向著智能化、高效化、自動化發(fā)展,設(shè)備狀態(tài)監(jiān)測技術(shù)研究對發(fā)展智能監(jiān)測診斷系統(tǒng)具有重要意義。然而,人工采集圖像進行目標(biāo)識別效率較低,而深度學(xué)習(xí)的目標(biāo)檢測方法出現(xiàn),提高了檢測準確率及檢測效率,將此類方法應(yīng)用于傳統(tǒng)制造業(yè)已經(jīng)成為大勢所趨[1]。
目前,基于深度學(xué)習(xí)的目標(biāo)檢測算法發(fā)展迅速,研究人員提出了不同的目標(biāo)檢測算法。Girshick[2]等提出了基于卷積神經(jīng)網(wǎng)絡(luò)的R-CNN模型,提高了平均準確率,并在R-CNN的基礎(chǔ)上進行改進提出了Fast-R-CNN[3];Ren[4]等在Fast-R-CNN基礎(chǔ)上設(shè)計出了Faster-R-CNN結(jié)構(gòu),提高了檢測速率。相比于訓(xùn)練參數(shù)較多的R-CNN,Redmon[5]等提出了YOLO模型,訓(xùn)練參數(shù)和訓(xùn)練時長均有所下降,進而提出了擁有較高的檢測速率和準確率的YOLO v2[6]、YOLO v3[7].近年來,研究人員逐步將深度學(xué)習(xí)應(yīng)用于實際工程中。方明[8]等借鑒密集連接網(wǎng)絡(luò)思想,提出一種改進YOLO v2算法,實現(xiàn)了施工現(xiàn)場復(fù)雜環(huán)境下的安全帽佩戴情況監(jiān)測。吳天舒[9]等改進SSD算法,利用轉(zhuǎn)置卷積將低分辨率特征圖與高分辨率特征圖融合,降低參數(shù)數(shù)量,提高了對小目標(biāo)的檢測能力。吳言楓[10]等提出了一種動態(tài)背景下“低小慢”目標(biāo)檢測技術(shù),在復(fù)雜背景下具有良好的穩(wěn)定性和魯棒性。賈鑫[11]等采用Softmax損失和中心損失雙監(jiān)督信號對特征進行訓(xùn)練,實現(xiàn)對電氣設(shè)備定位、識別。吳賀賀[12]等提出一種隧道圖像裂縫檢測方法,通過對Faster R-CNN模型進行訓(xùn)練,實現(xiàn)了對隧道圖像中的裂縫快速、準確檢測。
以上研究方法仍然存在算法體積大、計算量高等問題,對硬件要求也高,進行機電設(shè)備識別檢測時,實時性較差。為此本文提出基于改進的YOLO v3目標(biāo)檢測算法對設(shè)備進行識別。首先用L1正則化對原始網(wǎng)絡(luò)中的通道進行稀疏訓(xùn)練,挑選出次要通道;接著通過設(shè)定閾值去除次要參數(shù),使模型體積減小;最后在訓(xùn)練中不斷微調(diào)網(wǎng)絡(luò)保證檢測的精度。
基于目標(biāo)候選區(qū)域的目標(biāo)檢測模型,如Faster-R-CNN,可實現(xiàn)實時檢測,但此類算法同時對兩個卷積神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練,訓(xùn)練參數(shù)多,訓(xùn)練流程繁瑣且耗時較長,所需存儲空間較大;而基于回歸方法的目標(biāo)檢測模型如YOLO v3算法,僅使用一個卷積神經(jīng)網(wǎng)絡(luò)進行特征提取,使目標(biāo)檢測流程簡化,提高了檢測速度[13-14]。
YOLO v3網(wǎng)絡(luò)架構(gòu)如圖1所示,其中Conv2D為卷積層,Residual為殘差結(jié)構(gòu),Upsampling為上采樣層,Concat為跳層連接。YOLO v3將Darknet-53特征提取器作為網(wǎng)絡(luò)的主干結(jié)構(gòu)。Darknet-53主要由5個Residual殘差結(jié)構(gòu)構(gòu)成,運用了類似ResNet殘差網(wǎng)絡(luò)中的殘差連接,減輕了梯度消失問題。此外,YOLO v3網(wǎng)絡(luò)架構(gòu)借鑒了特征圖金字塔網(wǎng)絡(luò)(Feature Pyramid Networks,FPN),輸出3種不同尺度的特征,實現(xiàn)對大、中、小三種尺度進行檢測,提升了對小尺度目標(biāo)的檢測效果。
圖1 YOLO v3網(wǎng)絡(luò)結(jié)構(gòu)示意圖
YOLO v3占用空間較大,對硬件要求較高。針對YOLO v3體積過大所造成占用硬件資源過多的問題,本次研究對YOLO v3模型進行剪枝優(yōu)化,以降低檢測系統(tǒng)硬件成本,提高檢測效率。
模型優(yōu)化如圖2所示,首先對YOLO v3網(wǎng)絡(luò)進行稀疏訓(xùn)練,使其通道稀疏化,其次刪除冗余通道,接著對修剪后的網(wǎng)絡(luò)進行調(diào)參,通過重復(fù)訓(xùn)練使模型精度恢復(fù)到初始水平,最終得到改進算法。
圖2 模型優(yōu)化示意圖
YOLO v3中每個卷積層后都跟一個批標(biāo)準化層(Batch Normalization,BN),而BN層中存在尺度因子,每個尺度因子對應(yīng)一個通道,通道中存在大量參數(shù)和網(wǎng)絡(luò)連接。尺度因子數(shù)值大小分布不均勻,經(jīng)過稀疏化的尺度因子區(qū)分度明顯,數(shù)值較大的尺度因子對整個模型影響較大,而數(shù)值接近0的尺度因子占用模型體積但對模型性能影響甚微,因此可以將其對應(yīng)的通道剪掉。損失函數(shù)用來評估模型的預(yù)測值與真值之間的不一致程度,引入尺度因子后的損失函數(shù)為:
(1)
g(γ)=γ1
(2)
網(wǎng)絡(luò)中BN層的作用是使數(shù)據(jù)歸一化,使數(shù)據(jù)的分布在開區(qū)間(0,1)之間,有利于模型更好地提取數(shù)據(jù)中的規(guī)律,其公式為:
(3)
由于歸一化處理會造成數(shù)據(jù)分布過于集中,使模型性能下降,因此引入尺度因子和平移因子,二者可通過訓(xùn)練調(diào)整,使數(shù)據(jù)的分布更加合理。此時BN層的輸出可表示為:
(4)
(5)
全部數(shù)據(jù)的方差為:
(6)
此時BN層的輸出可表示為:
(7)
經(jīng)過稀疏化后的尺度因子中有部分值接近于0,這些值接近于0的尺度因子對應(yīng)的通道占據(jù)了大量空間,若將這些通道作適當(dāng)刪除則模型會釋放出大量空間,且對模型整體的性能影響較小。
修剪模型首先選出趨于0的尺度因子,接著確定其對應(yīng)的通道,最后刪除通道中的卷積核完成剪枝操作。為了避免將接近0的尺度因子對應(yīng)通道完全刪除可能產(chǎn)生模型修剪過度導(dǎo)致失效的問題,通過設(shè)置剪枝安全閾值來控制被刪除尺度因子對應(yīng)通道的比例。剪枝閾值設(shè)置過大會導(dǎo)致模型精度損失嚴重,設(shè)置過小則模型體積無法有效壓縮,通過實驗對比得出當(dāng)剪枝閾值為70%時模型的精度不會損失太多,并且有效減小模型體積。因此將剪枝閾值設(shè)為70%,將接近0的尺度因子的絕對值按照從小到大排列,將其中的前70%所對應(yīng)的通道修剪。
模型經(jīng)過修剪后體積縮小,其檢測精度有所損失。為此,通過微調(diào)超參數(shù)并進行模型再訓(xùn)練來使檢測精度恢復(fù)到被刪減之前的水平。
本文圖像樣本取自機械振動實驗臺(如圖3所示)所拍攝的圖像,通過FLIR紅外熱成像儀對圖4所示機械裝置進行拍攝,獲得機械裝置紅外圖像數(shù)據(jù)集(如圖5所示)。此外,在進行訓(xùn)練前利用LabelImg標(biāo)注軟件對紅外圖像進行標(biāo)注并制作為目標(biāo)檢測數(shù)據(jù)集。由于自制圖像數(shù)據(jù)集規(guī)模較小,故將數(shù)據(jù)集按照6∶2∶2劃分為訓(xùn)練集、測試集和驗證集,其中訓(xùn)練集為1 500幅,測試集為500幅,驗證集為500幅。
圖3 機械振動實驗臺圖
圖4 齒輪箱電機裝置圖
圖5 機械裝置紅外數(shù)據(jù)集縮略圖
實驗中計算機硬件配置如表1所示。軟件環(huán)境操作系統(tǒng)為Ubuntu 18.04,Python版本為3.6.5,計算機視覺軟件庫OpenCV3.4,開源深度學(xué)習(xí)框架TensorFlow,開源Darknet目標(biāo)檢測框架。
表1 實驗計算機硬件配置
本文將簡化后的模型命名為pruning-YOLOv3.通過設(shè)置一系列超參數(shù)來提高網(wǎng)絡(luò)精度,各項實驗超參數(shù)設(shè)置如表2所示。
表2 超參數(shù)設(shè)置
隨著實驗過程中迭代次數(shù)的增加,對訓(xùn)練集的損失函數(shù)和交并比分別記錄,并將其制作為曲線圖。其Loss曲線如圖6所示,IoU曲線如圖7所示。
圖6 訓(xùn)練4000次損失函數(shù)曲線圖
圖7 訓(xùn)練4000次交并比曲線圖
神經(jīng)網(wǎng)絡(luò)模型的迭代次數(shù)對其識別效果影響較為明顯,Loss在訓(xùn)練初期較高,而隨著訓(xùn)練次數(shù)的增加,當(dāng)?shù)降? 300次左右開始趨于收斂(如圖6所示),迭代結(jié)束時其值穩(wěn)定在0.15左右。圖7中IoU曲線在迭代到第3 300次開始趨于收斂,其值最終穩(wěn)定在85%到90%之間。將驗證集圖片輸入改進后的模型進行檢測,實際識別效果如圖8所示。
圖8 機械裝置識別結(jié)果圖
在圖8中,紅框和綠框分別表示識別出的齒輪箱和電機,并分別以gearbox和motor標(biāo)注。其中,(a)列-(c)列分別為齒輪箱和電機在發(fā)熱狀況下的檢測效果;(d)列為設(shè)備低溫工作時與環(huán)境區(qū)分度差的狀況下的檢測效果;(e)列為被測目標(biāo)較為模糊的狀況下的檢測效果。識別結(jié)果表明,經(jīng)過剪枝優(yōu)化后的模型其檢測能力并沒有下降,在對不同狀況下的目標(biāo)進行檢測時均表現(xiàn)出不錯的識別能力。
為評價算法優(yōu)化后的性能,將優(yōu)化得到的pruning-YOLO v3和原始YOLO v3、YOLO v3-SPP3算法進行對比實驗,對模型性能進行評估。本文以平均準確率(mAP)、識別速率、模型體積作為評價指標(biāo),測試結(jié)果如表3所示。
表3 不同模型性能對比
從表3可以看出,pruning-YOLO v3算法的mAP比原始YOLO v3高出2.26%,提升幅度不及YOLO v3-SPP3;然而,pruning-YOLO v3的識別速率比原始YOLO v3高出74.38%,比YOLO v3-SPP3高出64.12%;pruning-YOLO v3的模型體積比原始模型縮小82.14%,比YOLO v3-SPP3模型縮小81.46%,pruning-YOLO v3體積縮小幅度較大。在實際測試中,當(dāng)mAP大于90%即可滿足檢測要求,因此本文所改進算法pruning-YOLO v3在體積減小的情況下提高了檢測準確率和檢測速率,降低了運行模型的硬件要求,為將模型遷移至低配置老舊設(shè)備創(chuàng)造了條件。
為實現(xiàn)對機械裝置快速識別,本文通過對YOLO v3算法進行剪枝優(yōu)化得到了改進的pruning-YOLO v3算法,得出如下結(jié)論:
(1)引入L1正則化,對BN層中的尺度因子進行稀疏化,確定冗余通道,設(shè)置剪枝安全閾值,刪除小于閾值的通道,該方法實現(xiàn)模型精簡,提高了運算效率。
(2)通過算法對比分析,驗證了本文所研究方法在達到減小模型體積的目標(biāo)下,可以提高檢測準確率及速率,并且該算法可遷移至硬件水平較低的設(shè)備進行檢測任務(wù)。