国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

面向輕量化網(wǎng)絡(luò)的安全帽檢測(cè)算法

2021-10-28 06:01:44蔣潤(rùn)熙阿里甫庫爾班耿麗婷
關(guān)鍵詞:安全帽剪枝權(quán)值

蔣潤(rùn)熙,阿里甫·庫爾班,耿麗婷

新疆大學(xué) 軟件學(xué)院,烏魯木齊 830046

近些年越來越多在人工智能上的研究被應(yīng)用到生活中。安全帽是工人在施工現(xiàn)場(chǎng)的重要防護(hù)工具,但許多工人因安全帽缺乏舒適感而選擇不佩戴,這將危及工人的生命安全[1]。因此實(shí)時(shí)監(jiān)控工人是否正確佩戴安全帽十分重要,但工地上作業(yè)環(huán)境危險(xiǎn),不適合用人力進(jìn)行實(shí)時(shí)監(jiān)控,所以考慮將機(jī)器視覺應(yīng)用其中,代替人力進(jìn)行安全帽佩戴檢測(cè)。這可以一定程度上預(yù)防安全事故的發(fā)生,保證工人的安全。

安全帽檢測(cè)由于施工環(huán)境復(fù)雜、攝像頭拍攝角度、攝像頭距離目標(biāo)的距離遠(yuǎn)近等問題,國內(nèi)外許多學(xué)者對(duì)其進(jìn)行研究。劉曉慧等[2]利用膚色檢測(cè)定位人臉區(qū)域,將Hu矩作為圖像的特征向量,利用支持向量機(jī)(Support Vector Machine,SVM)作為分類器對(duì)安全帽進(jìn)行識(shí)別。馮國臣等[3]選取SIFT角點(diǎn)特征和顏色統(tǒng)計(jì)特征的方法進(jìn)行安全帽檢測(cè)。Park等[4]通過HOG特征提取來檢測(cè)人體,而后通過顏色直方圖識(shí)別安全帽。李琪瑞[5]提出研究如何定位頭部區(qū)域以及安全帽顏色特征的計(jì)算來檢測(cè)安全帽。雖然以上方法可以有較好的精度需求,但傳統(tǒng)檢測(cè)算法存在特征提取困難、泛化能力差等問題,還需進(jìn)一步的改進(jìn)。由于神經(jīng)網(wǎng)絡(luò)的發(fā)展,深度學(xué)習(xí)在目標(biāo)檢測(cè)領(lǐng)域已有很好的效果,許多研究者進(jìn)行研究[6]。

基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法一般分為雙階段檢測(cè)和單階段檢測(cè)算法。雙階段檢測(cè)算法包括物體定位和圖像分類兩個(gè)步驟。主要的檢測(cè)算法包括RCNN[7]、SPP-net[8]、Fast-RCNN[9]、Faster-RCNN[10]、Mask R-CNN[11]。單階段檢測(cè)是基于回歸的檢測(cè)算法,主要使用YOLO[12]系列和SSD[13]算法。雙階段檢測(cè)算法的準(zhǔn)確度高,但所需檢測(cè)速度慢。與之相反單階段檢測(cè)雖然準(zhǔn)確率略遜,但在速度方面有較大的提升,符合本文需求。因此本文將使用單階段算法進(jìn)行檢測(cè)。由于SSD網(wǎng)絡(luò)層數(shù)不深,對(duì)特征提取不充分,所以本文使用YOLO作為檢測(cè)網(wǎng)絡(luò)[14]。許多學(xué)者也將深度學(xué)習(xí)方法應(yīng)用在安全帽檢測(cè)中。張明媛等[15]使用Faster-RCNN對(duì)安全帽進(jìn)行識(shí)別。王兵等[16]改進(jìn)GIoU計(jì)算方法并結(jié)合YOLOv3進(jìn)行安全帽檢測(cè)。施輝等[17]在YOLOv3中添加特征金字塔進(jìn)行多尺度的特征提取,獲得不同尺度的特征圖,以此實(shí)現(xiàn)安全帽的檢測(cè)。盡管上述使用的網(wǎng)絡(luò)可以實(shí)現(xiàn)對(duì)安全帽的自動(dòng)檢測(cè),同時(shí)準(zhǔn)確率高,但以上網(wǎng)絡(luò)都是大型復(fù)雜網(wǎng)絡(luò),需要足夠的算力支持??紤]到在實(shí)際的檢測(cè)場(chǎng)景中,要求將算法部署在移動(dòng)端或者嵌入式設(shè)備上,而移動(dòng)端的計(jì)算能力遠(yuǎn)不如計(jì)算機(jī)等大型設(shè)備,不足以支撐大型神經(jīng)網(wǎng)絡(luò)所需的計(jì)算。

因此為適應(yīng)其有限的計(jì)算能力,本文基于Inverted Resblock結(jié)構(gòu)重構(gòu)新的主干特征提取網(wǎng)絡(luò),跟大型網(wǎng)絡(luò)相比該網(wǎng)絡(luò)減少了參數(shù)量和浮點(diǎn)數(shù)計(jì)算,對(duì)算力的需求大大降低。同時(shí),大多數(shù)移動(dòng)端設(shè)備無法使用GPU來處理數(shù)據(jù),所以本文還考慮算法在CPU上的處理速度。這對(duì)網(wǎng)絡(luò)的輕量化要求更高,因此需進(jìn)一步壓縮模型。

目前主要使用的模型壓縮方法包括:知識(shí)蒸餾、低秩分解、參數(shù)量化、參數(shù)剪枝等。知識(shí)蒸餾由Hinton等[18]提出,是將預(yù)訓(xùn)練好的大型網(wǎng)絡(luò)作為教師模型,并用其輸出作為網(wǎng)絡(luò)結(jié)構(gòu)較小的學(xué)生模型的輸入,可以使得學(xué)生模型具有和教師模型相當(dāng)?shù)奶幚砟芰?,以此進(jìn)行模型壓縮,但該方法訓(xùn)練起來復(fù)雜,并且用教師模型SoftMax層的輸出來指導(dǎo),只限于分類任務(wù),不適合本文的需求[19]。Denton等[20]提出低秩分解,通過奇異值分解技術(shù)來壓縮模型。雖然該方法將模型壓縮成原先的3倍,但只壓縮全連接層,沒有對(duì)卷積層進(jìn)行處理。參數(shù)量化[21]是將神經(jīng)網(wǎng)絡(luò)中使用的32位浮點(diǎn)數(shù)經(jīng)過線性變化轉(zhuǎn)化為8位整型數(shù)。雖然參數(shù)量化可以減少存儲(chǔ)空間,并加快網(wǎng)絡(luò)運(yùn)算速度。但需設(shè)計(jì)專門的系統(tǒng)框架,靈活度不高。相反參數(shù)剪枝[22]方法,不僅靈活度高,而且無需訓(xùn)練復(fù)雜網(wǎng)絡(luò),直接對(duì)訓(xùn)練好的網(wǎng)絡(luò)進(jìn)行剪枝。因此本文將采用參數(shù)剪枝方法對(duì)網(wǎng)絡(luò)進(jìn)行壓縮。

在實(shí)際工程需求中,不僅需要網(wǎng)絡(luò)有較好的精度,更重要的是網(wǎng)絡(luò)的推理速度與實(shí)時(shí)性還應(yīng)滿足需求。為提高推理速度,本文將卷積層和BatchNormalization(BN)層融合,更好地滿足實(shí)時(shí)檢測(cè)的需求。

1 相關(guān)理論

1.1 YOLOv5網(wǎng)絡(luò)

YOLOv5是Ultralytics公司提出的目標(biāo)檢測(cè)網(wǎng)絡(luò),并有v5s、v5m、v5l、v5x四種不同大小的模型,v5s是其中網(wǎng)絡(luò)深度和寬度最小的模型,權(quán)重大小僅27 MB。對(duì)比YOLO系列中具有代表的YOLOv3[23]模型,其權(quán)重文件大小達(dá)到246 MB,是YOLOv5s的9.1倍,且在檢測(cè)640×640大小的圖像時(shí)參數(shù)量達(dá)到61.9×106、浮點(diǎn)運(yùn)算超過156×109,而越小的權(quán)重對(duì)移動(dòng)端的性能要求也越低,部署起來越方便[24],所以YOLOv5s比YOLOv3有更大的優(yōu)勢(shì)。YOLOv5s網(wǎng)絡(luò)主要使用BottleneckCSP結(jié)構(gòu),結(jié)構(gòu)如圖1所示。

圖1 BottleneckCSP結(jié)構(gòu)Fig.1 BottleneckCSP structure

BottleneckCSP結(jié)構(gòu)分為兩部分,第一部分進(jìn)行Bottleneck操作,其是一種經(jīng)典的殘差結(jié)構(gòu)[25],它經(jīng)過一次1×1和3×3的卷積操作后,將卷積結(jié)果與輸入相加。另一部分通過1×1卷積進(jìn)行降維,減少一半通道數(shù)。最后兩者合并輸出。YOLOv5系列中,將通過深度和寬度兩個(gè)參數(shù)來控制網(wǎng)絡(luò)結(jié)構(gòu)大小。在v5s中Bottleneck操作只做一次,而v5l的深度是v5s的三倍,所以將進(jìn)行三次Bottleneck操作。BottleneckCSP同理,也會(huì)受深度參數(shù)的影響。

1.2 MobileNetv2網(wǎng)絡(luò)

MobileNetv2[26]是兼并輕量化、速度和準(zhǔn)確率的一種專門針對(duì)移動(dòng)設(shè)備而提出的神經(jīng)網(wǎng)絡(luò)。主干由Inverted Resblock結(jié)構(gòu)塊構(gòu)成,結(jié)構(gòu)主干如圖2所示。

圖2 Inverted Resblock結(jié)構(gòu)Fig.2 Inverted Resblock structure

Inverted Resblock的提出是文獻(xiàn)[26]中發(fā)現(xiàn)Residual block使用的激活函數(shù)ReLU在低維時(shí)可用信息較少,容易造成信息丟失,而在高維度運(yùn)算時(shí),丟失的信息相對(duì)變少,因此構(gòu)造出該結(jié)構(gòu)。Inverted Resblock中先利用1×1卷積升維,再通過3×3的深度可分離卷積DWConv降低計(jì)算參數(shù)量,之后通過1×1卷積降維,最后將結(jié)果和輸入相接。

1.3 模型壓縮

通道剪枝是在已訓(xùn)練好的模型基礎(chǔ)上對(duì)網(wǎng)絡(luò)進(jìn)行稀疏訓(xùn)練;而后根據(jù)權(quán)值的絕對(duì)值進(jìn)行排序;最后設(shè)定適合的閾值或剪枝率,如果權(quán)值小于設(shè)定的范圍就會(huì)被剪枝。由于剪枝后模型會(huì)損失一定精度,還需要對(duì)剪枝后的網(wǎng)絡(luò)進(jìn)行微調(diào)來恢復(fù)網(wǎng)絡(luò)性能。模型壓縮步驟如圖3所示。

圖3 模型壓縮步驟Fig.3 Model compression step

1.3.1 稀疏訓(xùn)練

稀疏訓(xùn)練通過對(duì)BN層進(jìn)行L1正則化訓(xùn)練,使BN層的權(quán)值盡可能趨向于0,被稀疏的權(quán)值將重新分配到網(wǎng)絡(luò)的其他有效層中。稀疏訓(xùn)練將直接影響剪枝后的模型是否滿足所需性能。稀疏訓(xùn)練的損失函數(shù)公式如下:

其中,(x,y)是訓(xùn)練數(shù)據(jù)的輸入和輸出。第一項(xiàng)為卷積層訓(xùn)練的損失函數(shù)。后一項(xiàng)中,γ為BN層的縮放因子,通過改變?chǔ)玫某跏贾岛陀?xùn)練γ進(jìn)行網(wǎng)絡(luò)稀疏。g(γ)是縮放因子的損失函數(shù),來評(píng)估縮放是否合理。由于本文使用L1正則化進(jìn)行稀疏,因此g(γ)=|γ|。λ用于平衡前后兩項(xiàng)的損失。經(jīng)過稀疏訓(xùn)練后,網(wǎng)絡(luò)將變得更加密集,而后通過剪枝,得到更小的網(wǎng)絡(luò),與此同時(shí)網(wǎng)絡(luò)性能卻沒降低,甚至變得更好。Dettmers等[27]對(duì)該現(xiàn)象進(jìn)行了說明,表示稀疏網(wǎng)絡(luò)學(xué)習(xí)的是更一般、更大范圍的特征,有更好的泛化能力。

1.3.2 剪枝與微調(diào)

通過稀疏訓(xùn)練后,網(wǎng)絡(luò)的BN層中大部分通道數(shù)的權(quán)值都將趨近于0,此時(shí)這些層對(duì)網(wǎng)絡(luò)的貢獻(xiàn)隨之降低,剪枝后不會(huì)造成較大的性能損失。文獻(xiàn)[28]通過L1正則化對(duì)網(wǎng)絡(luò)進(jìn)行稀疏;然后對(duì)參數(shù)進(jìn)行排序;最后設(shè)定一定大小的剪枝率,將小于設(shè)定值的通道剪除。但如果網(wǎng)絡(luò)的一層中所有通道權(quán)重的絕對(duì)值都小于設(shè)定閾值,此時(shí)該層的所有通道都會(huì)被剪枝,這樣網(wǎng)絡(luò)結(jié)構(gòu)就被破壞。對(duì)于上述的情況本文選擇保留權(quán)重的絕對(duì)值最大的一層通道,以此來保證網(wǎng)絡(luò)結(jié)構(gòu)的完整。

網(wǎng)絡(luò)在剪枝后,可以有效減少過擬合,但精度將存在一定程度的丟失,本文通過微調(diào)來恢復(fù)精度。微調(diào)的方式一般分兩種,一種是逐層剪枝,剪枝完后重新訓(xùn)練,重復(fù)多次進(jìn)行微調(diào),但此方法需要迭代多次,尤其在網(wǎng)絡(luò)結(jié)構(gòu)更深時(shí)需消耗大量的計(jì)算資源。因此本文選擇另一種方式,一次性對(duì)所有BN層進(jìn)行剪枝,然后重新訓(xùn)練來進(jìn)行微調(diào)恢復(fù)精度。

1.4 融合卷積層和BN層

BN層的存在可以使訓(xùn)練更穩(wěn)定,同時(shí)有效防止過擬合。因此本文的每層卷積層后面都添加了一層BN層。為加快網(wǎng)絡(luò)在CPU上的推理速度,本文考慮將卷積層和BN層融合[29]。對(duì)于Batch中的第i個(gè)樣本,令輸入樣本為x i,其經(jīng)過BN層后輸出為yi。BN層公式如下:

其中,μ為Batch中輸入樣本的均值,σ2為Batch內(nèi)輸入樣本的標(biāo)準(zhǔn)差,ε為一個(gè)極小常數(shù),用來消除除零錯(cuò)誤。γ、β為訓(xùn)練參數(shù),通過損失函數(shù)來改變。在神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程時(shí)μ、σ2、γ、β都是變量,但在訓(xùn)練完成后這四個(gè)參數(shù)都被確定。因此在進(jìn)行推理時(shí),BN層的公式可以變?yōu)椋?/p>

其中令:

則:

因此在網(wǎng)絡(luò)進(jìn)行推理時(shí),可以把BN層當(dāng)作線性操作。而對(duì)于卷積層的輸入輸出公式如下:

其中,w和c分別表示卷積層的權(quán)重和偏置。由于式(6)、(7)都是線性表達(dá),因此本文得出可以將卷積層和BN層融合起來,公式如下:

將卷積層與BN層相互融合,在降低參數(shù)量的同時(shí)減少推理時(shí)網(wǎng)絡(luò)的深度、加快模型推理速度。

2 改進(jìn)后的YOLOv5網(wǎng)絡(luò)

為解決在移動(dòng)端和嵌入式設(shè)備算力不足無法部署大型網(wǎng)絡(luò)的問題,本文從權(quán)重大小、計(jì)算量、檢測(cè)速度和精確度等方面考慮,提出HourGlass結(jié)構(gòu),并用該結(jié)構(gòu)替換YOLOv5s的主干網(wǎng)絡(luò)得到HourGlass-YOLO(HGYOLO)。同時(shí)為適應(yīng)移動(dòng)端有限的算力,對(duì)網(wǎng)絡(luò)使用通道剪枝進(jìn)一步進(jìn)行減少網(wǎng)絡(luò)參數(shù)量。融合卷積層和BN層提高檢測(cè)的速度,以便更好地滿足實(shí)時(shí)性的需求。

2.1 HourGlass結(jié)構(gòu)

Inverted Resblock結(jié)構(gòu)在輕量化網(wǎng)絡(luò)方面有較好的性能表現(xiàn),但Daquan等[30]解釋Inverted Resblock結(jié)構(gòu)存在梯度混淆的情況,同時(shí)1×1卷積會(huì)減少空間信息。因此根據(jù)Inverted Resblock結(jié)構(gòu)中存在的問題,本文重建新的主干網(wǎng)絡(luò)HourGlass結(jié)構(gòu),如圖4所示。

圖4 HourGlass結(jié)構(gòu)Fig.4 HourGlass structure

HourGlass結(jié)構(gòu)中先進(jìn)行3×3的DWconv,再利用1×1卷積降維,降維后進(jìn)行3×3的DWconv,然后用1×1卷積重新升維,最后將結(jié)果和輸入相接。因?yàn)镮nverted Resblock存在梯度混淆,所以本文重新使用Residual block。又使用1×1卷積會(huì)減少空間信息,因此在輸入后加入一個(gè)3×3的DWconv來獲取更多的空間信息。而針對(duì)Residual block存在的激活函數(shù)在低維時(shí)信息丟失的問題,本文將其設(shè)置在第一個(gè)DWconv和最后一個(gè)1×1卷積中來解決,以此構(gòu)建新的網(wǎng)絡(luò)HourGlass。該結(jié)構(gòu)的公式描述如下:

其中,F(xiàn)表示輸入張量,G表示輸出張量,Φi,p、Φi,d分別表示第i次的1×1卷積和3×3深度可分離卷積。HourGlass這種設(shè)計(jì)結(jié)構(gòu)讓更多的空間信息傳入神經(jīng)網(wǎng)絡(luò),使深度可分離卷積可以進(jìn)行更豐富的特征提取。

2.2 HourGlass-YOLO

將YOLOv5s的主干網(wǎng)絡(luò)替換為HourGlass結(jié)構(gòu)。改進(jìn)后的HG-YOLO網(wǎng)絡(luò),如圖5所示。

圖5 改進(jìn)后的網(wǎng)絡(luò)結(jié)構(gòu)Fig.5 Improved network structure

網(wǎng)絡(luò)輸入為640×640大小的圖片,主干網(wǎng)絡(luò)除第一層為Conv層外,其余由HourGlass結(jié)構(gòu)構(gòu)成。其參數(shù)分別表示輸出通道數(shù)、步長(zhǎng)和是否進(jìn)行升維。除第一個(gè)HourGlass,其余HourGlass結(jié)構(gòu)都進(jìn)行6倍的升維操作。網(wǎng)絡(luò)的輸出部分沿用YOLOv5s的輸出,通過特征融合[31]的方式對(duì)20×20、40×40、80×80三個(gè)不同尺度的圖片進(jìn)行預(yù)測(cè)。

3 實(shí)驗(yàn)

3.1 實(shí)驗(yàn)數(shù)據(jù)及環(huán)境

本實(shí)驗(yàn)的運(yùn)行環(huán)境為Windows 10操作系統(tǒng),通過Pytorch深度學(xué)習(xí)框架實(shí)現(xiàn)HG-YOLO模型算法。硬件配置:Nvidia GeForce GTX1650 GPU、AMD Ryzen54600H CPU。本文所用的數(shù)據(jù)集是SafetyHelmetWearing,其中部分的人臉數(shù)據(jù)來自SCUT-HEAD數(shù)據(jù)集,并使用PASCAL VOC的標(biāo)記方式對(duì)數(shù)據(jù)進(jìn)行標(biāo)記并訓(xùn)練。根據(jù)實(shí)際場(chǎng)景,本文對(duì)未佩戴安全帽、佩戴安全帽和人進(jìn)行檢測(cè),共7 577張圖片,其中訓(xùn)練集6 062張,測(cè)試集1 212張,驗(yàn)證集303張。由于施工環(huán)境的復(fù)雜,并且SCUT-HEAD數(shù)據(jù)集中的人臉數(shù)據(jù)絕大部分都是小目標(biāo)物體,導(dǎo)致檢測(cè)難度大大增加,樣式如圖6所示。

圖6 SafetyHelmetWearing數(shù)據(jù)集Fig.6 SafetyHelmetWearing dataset

3.2 模型壓縮訓(xùn)練

對(duì)HG-YOLOv5進(jìn)行稀疏訓(xùn)練,盡可能將BN層的權(quán)值稀疏到0。但稀疏訓(xùn)練是一個(gè)追求平衡的過程,因?yàn)楸疚募认雽⒏郆N層稀疏到0,也想在剪枝微調(diào)后恢復(fù)足夠的精度。同時(shí)稀疏訓(xùn)練將直接影響最后的結(jié)果,如果網(wǎng)絡(luò)稀疏程度不夠,可能很多權(quán)值不為0的通道被剪除,丟失大量信息。但稀疏的太過密集,剪枝時(shí)會(huì)刪除過多通道,可能導(dǎo)致微調(diào)后無法恢復(fù)足夠的精度,所以尋找一個(gè)合適的稀疏率(sparse learning,sl)是其關(guān)鍵一步。本文選擇三個(gè)不同的稀疏率0.001、0.002、0.003進(jìn)行對(duì)比。稀疏過程中BN層的變化,如圖7所示。其中圖7(a)、(b)、(c)分別展示稀疏率0.001、0.002、0.003的BN層的變化過程,經(jīng)過100輪的迭代訓(xùn)練后,BN層的權(quán)重都被壓縮,逐漸靠近0。

圖7 不同稀疏率下BN層的變化Fig.7 Changes of BN layer under different sparsity rates

稀疏訓(xùn)練結(jié)束后,對(duì)模型進(jìn)行剪枝。剪枝前需設(shè)置剪枝率,通道權(quán)重的絕對(duì)值小于設(shè)定剪枝率對(duì)應(yīng)的閾值時(shí)則刪除,且與之相連的通道也將刪除。但如果一層中所有通道的權(quán)值都小于閾值,則保留該層權(quán)值最大的通道,以保證網(wǎng)絡(luò)結(jié)構(gòu)的完整性。剪枝完成后,再通過微調(diào)恢復(fù)精度。本文將評(píng)估原網(wǎng)絡(luò)HG-YOLOv5和網(wǎng)絡(luò)剪枝微調(diào)后的結(jié)果,評(píng)估指標(biāo)包括:精確度(P)、召回率(R)、平均精度(mAP)、稀疏后網(wǎng)絡(luò)對(duì)應(yīng)權(quán)值的最小值(Min)與最大值(Max)、閾值(threshold)、網(wǎng)絡(luò)參數(shù)量(parameters)和浮點(diǎn)數(shù)(GFLOPS),結(jié)果如表1所示。

表1中,首先將MobileNetv2的主干結(jié)構(gòu)替換YOLOv5s的主干得到MobileNet-YOLOv5與改進(jìn)的新主干網(wǎng)絡(luò)HG-YOLOv5進(jìn)行對(duì)比,雖然兩者在各個(gè)指標(biāo)上沒有太多的差別。

表1 原網(wǎng)絡(luò)和剪枝后的指標(biāo)對(duì)比Table 1 Comparison of original network and index after pruning

但本文進(jìn)一步對(duì)比HG-YOLOv5在不同稀疏率、同一剪枝率下的指標(biāo)。當(dāng)稀疏率為0.001、剪枝率為10%時(shí),剪枝閾值被設(shè)定在0.286,雖然此時(shí)網(wǎng)絡(luò)的參數(shù)量和浮點(diǎn)數(shù)是三個(gè)稀疏率中減少最多的,但在50輪的微調(diào)后,mAP比原網(wǎng)絡(luò)HG-YOLOv5降低3.8個(gè)百分點(diǎn),說明網(wǎng)絡(luò)稀疏的程度還不夠,剪掉很多權(quán)值不為0的通道數(shù)。而在同一剪枝率下將稀疏率改為0.003,網(wǎng)絡(luò)參數(shù)降低了0.26×106,但精度和原網(wǎng)絡(luò)一致,說明此時(shí)有較好的稀疏效果。但反觀稀疏率為0.002時(shí)剪枝后的表現(xiàn),其參數(shù)量下降雖不如稀疏率為0.003時(shí),但微調(diào)后mAP反而比原網(wǎng)絡(luò)上升0.9個(gè)百分點(diǎn)。因此實(shí)驗(yàn)得出稀疏率為0.002、剪枝率為10%時(shí)HG-YOLOv5網(wǎng)絡(luò)的稀疏效果最好。

所以又對(duì)比該稀疏率和剪枝率下MobileNet-YOLOv5的性能,實(shí)驗(yàn)得出HG-YOLOv5-sl0.002-0.1的mAP、參數(shù)量和浮點(diǎn)數(shù)都優(yōu)于MobileNet-YOLOv5-sl0.002-0.1。

本文還對(duì)比不同剪枝率對(duì)HG-YOLOv5-sl0.002的性能影響。由于HG-YOLOv5的參數(shù)相比大型網(wǎng)絡(luò)已經(jīng)很少,所以剪枝率只設(shè)定在20%和30%。實(shí)驗(yàn)得出剪枝率為30%時(shí),參數(shù)量是所有網(wǎng)絡(luò)中減少最多的,比原網(wǎng)絡(luò)降低了0.94×106,浮點(diǎn)數(shù)也減少0.9 GFLOPS,mAP比HG-YOLOv5-sl0.001-0.1模型要高1.1個(gè)百分點(diǎn)。但相比HG-YOLOv5-sl0.002-0.1,mAP還是降低3.6個(gè)百分點(diǎn)。

3.3 融合卷積層與BN層

由于本文要求將算法部署在移動(dòng)端或嵌入式等算力不高的設(shè)備上,因此本文還要考慮算法在CPU上的處理速度。而CPU沒有GPU一樣的算力,無法很好地滿足檢測(cè)的速度需求,因此本文將融合卷積層與BN層,減小網(wǎng)絡(luò)層數(shù)和參數(shù)量,提高檢測(cè)速度。網(wǎng)絡(luò)融合后的指標(biāo)對(duì)比如表2所示。

由表2可以看出,將卷積層和BN層融合后,雖然參數(shù)量和浮點(diǎn)數(shù)沒有降低很多,但每張圖片在CPU上的推理時(shí)間都相應(yīng)減少。在大型網(wǎng)絡(luò)YOLOv5中,平均推理時(shí)間減少了23 ms。在輕量化的網(wǎng)絡(luò)中,對(duì)于沒剪枝的HG-YOLOv5其平均推理時(shí)間減少了28.1 ms,在剪枝了10%和30%后的網(wǎng)絡(luò)中其平均推理時(shí)間分別減少了26.4 ms和19.8 ms。實(shí)驗(yàn)結(jié)果證明,融合卷積層和BN層在大型網(wǎng)絡(luò)和輕量化網(wǎng)絡(luò)中都可以有效地提高網(wǎng)絡(luò)的檢測(cè)速度,可以更好地滿足對(duì)檢測(cè)速度的需求。

表2 網(wǎng)絡(luò)融合后的指標(biāo)對(duì)比Table 2 Comparison of indicators after network fuse

3.4 對(duì)比實(shí)驗(yàn)

實(shí)驗(yàn)將選擇Mobile SSDLite、Mobile YOLOv3、SSD、YOLOv5、Slim-HG-YOLOv5等算法進(jìn)行對(duì)比,其中Mobile SSDLite、Mobile YOLOv3都是輕量級(jí)網(wǎng)絡(luò),SSD是單階段檢測(cè)算法,YOLOv5是本文的特征提取所替代的原網(wǎng)絡(luò)、Slim-HG-YOLOv5為本文算法。對(duì)比結(jié)果如表3所示。

表3 不同算法在本數(shù)據(jù)集上的對(duì)比Table 3 Comparison of different algorithms on dataset

從表3可以得出,Slim-HG-YOLOv5雖然在GFLOPS上不如Mobile SSDLite,且mAP方面略遜YOLOv5,但相比Mobile SSDLite,本文算法在mAP方面比其提高52.6個(gè)百分點(diǎn),同時(shí)在評(píng)估網(wǎng)絡(luò)輕量級(jí)的指標(biāo)方面,如參數(shù)量、GFLOPS和權(quán)重大小分別是YOLOv5的9.2倍、6.9倍和7.63倍。在推理速度上,本文算法要比SSD快8.6倍,更好地滿足實(shí)時(shí)檢測(cè)的需求,可以應(yīng)用在安全帽檢測(cè)中。具體的檢測(cè)對(duì)比結(jié)果如圖8所示,圖8(a)為YOLOv5檢測(cè)結(jié)果,圖8(b)為本文算法檢測(cè)結(jié)果??梢钥闯觯疚乃惴ㄒ?yàn)榻?jīng)過稀疏訓(xùn)練從而得到更好的泛化能力,YOLOv5上出現(xiàn)的誤檢測(cè),在本文的檢測(cè)結(jié)果中并沒出現(xiàn)。而本文算法為了追求更好的輕量化,對(duì)模型進(jìn)行剪枝,雖然在小目標(biāo)的檢測(cè)方面出現(xiàn)一些漏檢情況,但在中大目標(biāo)的檢測(cè)方面仍滿足良好性能。

圖8 檢測(cè)對(duì)比結(jié)果Fig.8 Comparison results

4 結(jié)束語

針對(duì)實(shí)際安全帽檢測(cè)環(huán)境中,所部署的移動(dòng)端或嵌入式設(shè)備無法為大型網(wǎng)絡(luò)模型提供足夠算力的問題。本文提出了一種基于HourGlass模塊的輕量目標(biāo)檢測(cè)算法HG-YOLO,用于更好地將算法部署在低端設(shè)備。該模型將YOLOv5的特征提取網(wǎng)絡(luò)替換為HourGlass,并且在保證精度的情況下對(duì)模型進(jìn)行適當(dāng)?shù)貕嚎s,通過通道剪枝的方法降低模型的參數(shù)量、浮點(diǎn)數(shù)和權(quán)重文件大小。其次實(shí)際中部署可能會(huì)在CPU上進(jìn)行數(shù)據(jù)處理,因此為加快在CPU上的推理時(shí)間,本文在推理時(shí)將網(wǎng)絡(luò)的卷積層和BN層進(jìn)行融合,大幅減低推理時(shí)間。在對(duì)比實(shí)驗(yàn)中,本文的算法和其他算法相比具有一定優(yōu)勢(shì),推理速度是所有算法中最快的,并且還有較好的精度。在后續(xù)研究中可以將算法部署在實(shí)際的移動(dòng)端和硬件平臺(tái),進(jìn)一步提高算法在CPU上的推理速度。

猜你喜歡
安全帽剪枝權(quán)值
礦工有無數(shù)頂安全帽
小小安全帽,生命保護(hù)傘
一種融合時(shí)間權(quán)值和用戶行為序列的電影推薦模型
人到晚年宜“剪枝”
基于YOLOv4-Tiny模型剪枝算法
CONTENTS
CONTENTS
基于權(quán)值動(dòng)量的RBM加速學(xué)習(xí)算法研究
剪枝
天津詩人(2017年2期)2017-03-16 03:09:39
一種面向不平衡數(shù)據(jù)分類的組合剪枝方法
福泉市| 阳江市| 巫山县| 新密市| 吴桥县| 雅江县| 徐水县| 新兴县| 酉阳| 河池市| 乌鲁木齐县| 平度市| 桃江县| 南丹县| 尼玛县| 西充县| 连州市| 襄樊市| 桐柏县| 宁津县| 赤壁市| 宁德市| 沁源县| 南和县| 民乐县| 甘德县| 屏山县| 营口市| 灵武市| 砀山县| 玉门市| 定安县| 华池县| 阜阳市| 湟中县| 阿城市| 兰考县| 巴彦淖尔市| 霍山县| 固安县| 乐山市|