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