張玉杰,董 蕊
(陜西科技大學(xué)電氣與控制工程學(xué)院,陜西 西安 710021)
人體檢測是目標(biāo)檢測的重要研究方向之一,在智能監(jiān)控等領(lǐng)域被廣泛應(yīng)用[1]。近年來,隨著深度學(xué)習(xí)的發(fā)展,基于深度學(xué)習(xí)的目標(biāo)檢測方法也取得了很大的研究進(jìn)展[2,3],基于深度學(xué)習(xí)的目標(biāo)檢測算法分為2類:(1)以Fast R-CNN(Fast Region-based Convolutional Neural Network)[4]和R-FCN(Region-based Fully Convolutional Neural Network)[5]算法為代表的雙步檢測算法;(2)以SSD(Single Shot Detector)[6]和YOLO(You Only Look Once)[7]算法為代表的單步檢測算法。兩者都是以卷積神經(jīng)網(wǎng)絡(luò)CNN(Convolutional Neural Network)為核心架構(gòu),通過卷積層、池化層等基礎(chǔ)網(wǎng)絡(luò)提取區(qū)域特征,再經(jīng)過一系列的分類過程,最后利用非極大值抑制NMS(Non-Maixmum Suppression)算法[8]得到輸出結(jié)果。相比較來說,雙步檢測算法的精度高,但實(shí)時(shí)性相對較差;單步檢測算法的精度較前者稍低,但實(shí)時(shí)性很好,檢測速度也較快。
YOLO是一種端到端的目標(biāo)檢測算法,檢測速度快,但在檢測精度上略顯不足,尤其是對小目標(biāo)的識別性能明顯下降。 YOLOv3 以較好的檢測精度和速度得到廣泛的研究和應(yīng)用[9]。
YOLOv3算法雖然在目標(biāo)檢測方面已達(dá)到了較好的效果,但對于人體檢測來說仍有不足?,F(xiàn)實(shí)環(huán)境中的人體檢測面臨2大難點(diǎn):(1)行人穿著多樣化和姿態(tài)個(gè)性化導(dǎo)致在人體檢測過程中,人體的外觀和形態(tài)沒有相對固定的特征描述;(2)人體距離攝像頭的遠(yuǎn)近導(dǎo)致圖像中人體的尺度不同,小尺度人體目標(biāo)的特征信息少導(dǎo)致不容易被檢測到[10]。
對于人體檢測場景,YOLOv3在主干網(wǎng)絡(luò)的多次卷積過程中容易丟失有用的人體特征,且主干網(wǎng)絡(luò)中使用單一的3×3卷積核只能提取一種尺寸的信息,導(dǎo)致特征信息泛化能力差,并且其檢測模塊中只使用單一的3×3卷積核對提取到的人體特征進(jìn)行檢測,而單一的感受野不能充分地檢測特征,導(dǎo)致各尺度目標(biāo)尤其是小目標(biāo)檢測效果較差。
因此,本文通過改進(jìn)YOLOv3的主干網(wǎng)絡(luò)提升特征提取能力;改進(jìn)檢測模塊提高各尺度人體的檢測效果。最后,聯(lián)合優(yōu)化權(quán)重?fù)p失函數(shù)和BN層縮放因子的L1正則項(xiàng)對其進(jìn)行通道剪枝,減小參數(shù)量、計(jì)算量和模型體積,使其可以應(yīng)用于嵌入式平臺上。
YOLOv3的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,DBL由Darknet的卷積層后接BN和LeakyReLU構(gòu)成。resn殘差模塊由步長為2的3×3 DBL下采樣層和n個(gè)res_unit殘差單元組成[11]。DBL*5包含3個(gè)1×1和2個(gè)3×3 DBL。YOLOv3實(shí)現(xiàn)目標(biāo)檢測包含卷積特征提取、特征金字塔融合[12]和多尺度預(yù)測3個(gè)階段。(1)卷積特征提取。主干網(wǎng)絡(luò)由3×3 DBL和res1、res2、res8、res8和res4構(gòu)成,經(jīng)過主干網(wǎng)絡(luò)的多層卷積提取目標(biāo)特征。(2)特征金字塔融合。將res4模塊輸出的特征圖通過DBL*5和1×1 DBL層后進(jìn)行上采樣再與第2個(gè)res8模塊輸出的特征圖在通道上拼接。然后以相同的方式與第1個(gè)res8模塊輸出的特征圖拼接,實(shí)現(xiàn)特征金字塔融合。(3)多尺度預(yù)測。將res4模塊輸出的特征圖與特征金字塔融合后的特征圖經(jīng)過檢測模塊(DBL*5結(jié)構(gòu)、3×3 DBL與1×1 conv層)輸出深度為3×(4+1+C)的特征圖,其中4是指預(yù)測框?qū)?、高和中心點(diǎn)坐標(biāo)共4個(gè)元素,1為目標(biāo)置信度,C為類別數(shù)。人體檢測中C=1。YOLOv3算法采用多尺度預(yù)測可以輸出3種不同尺寸的特征圖,分別為圖1中的y1,y2和y3。采用不同尺度錨框進(jìn)行檢測,根據(jù)不同預(yù)測框與真實(shí)框的交并比IOU(Intersection Over Union)重合度做非極大值抑制得到最終的預(yù)測框。
Figure 1 Network structure of YOLOv3圖1 YOLOv3的網(wǎng)絡(luò)結(jié)構(gòu)
人體由于穿著多樣化和姿態(tài)個(gè)性化而擁有復(fù)雜的特征。YOLOv3用于人體檢測時(shí)存在以下問題:(1)YOLOv3經(jīng)過多層卷積會丟失有用的人體特征,導(dǎo)致檢測精度低;(2)YOLOv3只使用3×3卷積核提取人體特征,卷積核尺寸單一,對于復(fù)雜的人體特征只能提取一種尺寸的特征信息,導(dǎo)致提取的特征泛化能力差;(3)YOLOv3的檢測模塊中只使用單一的3×3卷積核進(jìn)行檢測,導(dǎo)致各尺度人體特征檢測不充分,尤其是小尺度人體的檢測效果較差。
針對上述YOLOv3檢測人體時(shí)存在的問題,本文借鑒DenseNet[13]和GoogleNet[14]思想對其進(jìn)行改進(jìn),在主干網(wǎng)絡(luò)中加強(qiáng)特征重用、增加多尺度感受野和網(wǎng)絡(luò)寬度,以提高網(wǎng)絡(luò)特征提取能力;在網(wǎng)絡(luò)的檢測模塊中增加多種感受野充分檢測各尺度人體特征,以提升小尺度人體檢測效果。
DenseNet網(wǎng)絡(luò)的密集連接結(jié)構(gòu)如圖2所示,將前面所有層與后面層建立密集連接,每一層的輸入都由前面所有層的輸出構(gòu)成,將特征在通道上拼接實(shí)現(xiàn)特征重用[15]。
Figure 2 Densely connected structure圖2 密集連接結(jié)構(gòu)
在密集連接結(jié)構(gòu)的前向過程中,輸入x0經(jīng)過包括BN(Batch Normalization)、ReLU和卷積操作的非線性函數(shù)H(*)得到輸出x1,下一層以x0和x1作為輸入,以此類推,第l層的輸入如式(1)所示:
xl=Hl([x0,x1,…,xl-1])
(1)
每個(gè)密集連接單元都利用1×1卷積操作,融合各個(gè)通道特征并減少輸入特征圖數(shù)量來降維和減少計(jì)算量。密集連接結(jié)構(gòu)減輕了梯度消失的情況,網(wǎng)絡(luò)也更容易訓(xùn)練。
GoogleNet網(wǎng)絡(luò)中的多分支結(jié)構(gòu)如圖3所示,對輸入特征圖在4個(gè)分支上分別進(jìn)行堆疊的3×3卷積、3×3卷積、最大池化(max pooling)和1×1卷積操作,經(jīng)過4個(gè)分支處理輸出尺寸相同的特征圖,在通道上拼接后輸出融合的特征圖。在4個(gè)分支的處理過程中,在3×3卷積前、堆疊的3×3卷積前和最大池化后分別加上1×1的卷積核以減少維度,降低進(jìn)行3×3等卷積操作的特征圖的厚度。多分支結(jié)構(gòu)可以增加網(wǎng)絡(luò)的寬度,增強(qiáng)網(wǎng)絡(luò)對尺度的適應(yīng)性,減少參數(shù)量[16]。
Figure 3 Multi-branch structure圖3 多分支結(jié)構(gòu)
本文在YOLOv3的特征提取網(wǎng)絡(luò)中引入密集連接與多分支組合的新結(jié)構(gòu)提取人體特征;經(jīng)過特征金字塔融合后,在檢測模塊中引入多分支結(jié)構(gòu)以充分檢測各尺度人體特征,預(yù)測人體類別和位置。改進(jìn)的YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。CBL由卷積層后接BN和LeakyReLU構(gòu)成,Ip是多分支結(jié)構(gòu),DI_unit是由密集連接和多分支組成的改進(jìn)密集連接單元,DIn模塊由步長為2的3×3 CBL下采樣層和n個(gè)DI_unit改進(jìn)密集連接單元組成。CI模塊由3個(gè)1×1 CBL和2個(gè)多分支結(jié)構(gòu)組成。
Figure 4 Network structure of improved YOLOv3 圖4 改進(jìn)YOLOv3的網(wǎng)絡(luò)結(jié)構(gòu)
3.3.1 改進(jìn)的特征提取網(wǎng)絡(luò)
相比YOLOv3網(wǎng)絡(luò),本文在特征提取網(wǎng)絡(luò)中引入DI1、DI2、DI6、DI6和DI4 5個(gè)密集連接結(jié)構(gòu),并在相鄰2個(gè)DIn模塊之間加入一個(gè)1×1 CBL層,用于降維減少輸入特征圖的數(shù)量。進(jìn)入密集連接結(jié)構(gòu)的特征圖,先經(jīng)過下采樣得到尺寸減半的特征圖,再經(jīng)過對應(yīng)個(gè)數(shù)的改進(jìn)密集連接單元處理。在改進(jìn)的密集連接單元中,特征圖先進(jìn)行1×1卷積降維,再經(jīng)過多分支結(jié)構(gòu)的4個(gè)分支處理并融合,然后將其與降維前的特征圖進(jìn)行融合。由此在主干網(wǎng)絡(luò)中引入了密集連接和多分支結(jié)構(gòu)。密集連接結(jié)構(gòu)實(shí)現(xiàn)了特征重用,通過重復(fù)利用淺層卷積層提取的特征,使每層卷積層提取的特征都可以作為后面層的輸入,有效利用了淺層的人體特征信息,也可以避免多層卷積過程中損失有用人體特征的問題。
3.3.2 改進(jìn)的檢測模塊
相比YOLOv3網(wǎng)絡(luò),本文在網(wǎng)絡(luò)的檢測模塊中引入多分支結(jié)構(gòu),將特征金字塔融合的3種尺度特征圖經(jīng)過CI模塊處理,再經(jīng)過1個(gè)多分支結(jié)構(gòu)和1個(gè)帶有18個(gè)1×1卷積核的卷積層檢測人體特征,預(yù)測人體類別和位置。
改進(jìn)的YOLOv3算法中引入了多分支結(jié)構(gòu),多分支結(jié)構(gòu)相比單一3×3卷積核增加了5×5卷積核、最大池化等多種感受野,可以提取更豐富的人體特征,提升對各種尺度人體的檢測效果。
深度學(xué)習(xí)模型在邊緣側(cè)實(shí)現(xiàn)是當(dāng)下研究的熱點(diǎn),而深度學(xué)習(xí)模型在只擁有有限內(nèi)存和計(jì)算能力的嵌入式端部署面臨模型參數(shù)量、計(jì)算量和體積大3大難點(diǎn)。改進(jìn)的YOLOv3模型體積比YOLOv3的減小了很多,但仍需進(jìn)一步壓縮模型使其滿足部署條件。
卷積神經(jīng)網(wǎng)絡(luò)模型的參數(shù)冗余度高[17,18],可以通過模型剪枝將不重要的參數(shù)去除,大幅度減小模型的參數(shù)量、計(jì)算量和體積。
模型剪枝方法根據(jù)細(xì)粒度和粗粒度分為權(quán)重剪枝和通道剪枝2類。權(quán)重剪枝是消除權(quán)重張量中不重要的值,減少神經(jīng)網(wǎng)絡(luò)層之間的連接數(shù)量,減少計(jì)算中涉及的參數(shù),從而減少操作次數(shù)[19]。通過設(shè)定最終目標(biāo)稀疏度和執(zhí)行剪枝的計(jì)劃,隨著訓(xùn)練的進(jìn)行,開始執(zhí)行剪枝過程,消除最接近零的權(quán)重,直到達(dá)到當(dāng)前稀疏度目標(biāo)。但是,權(quán)重剪枝生成的稀疏模型依賴于專用的稀疏矩陣運(yùn)算庫和硬件,而通道剪枝沒有破壞原有的卷積結(jié)構(gòu),因此更適合在通用的硬件上使用,并且通道剪枝的可實(shí)現(xiàn)性高、總計(jì)算量小。
本文對改進(jìn)的YOLOv3模型進(jìn)行通道剪枝以實(shí)現(xiàn)模型壓縮。改進(jìn)的YOLOv3模型中卷積層后為BN層,可以解決訓(xùn)練過程中發(fā)生的中間層數(shù)據(jù)分布改變的情況,加快網(wǎng)絡(luò)收斂,提高網(wǎng)絡(luò)泛化能力[20]。BN層的計(jì)算公式如式(2)所示,將特征圖所有參數(shù)歸一化到均值為0,方差為1的正態(tài)分布范圍內(nèi),再通過縮放因子γ和偏置β進(jìn)行微調(diào)。
(2)
從式(2)可以看出,BN層對每一個(gè)通道都引入了一個(gè)縮放因子γ,γ是可學(xué)習(xí)的參數(shù)。L1正則化具有稀疏作用,對BN層的縮放因子γ施加L1正則化,可以推動(dòng)γ趨向于零,從而根據(jù)γ的值判斷通道的重要程度。定義目標(biāo)函數(shù)如式(3)所示,聯(lián)合優(yōu)化γ的正則項(xiàng)和權(quán)重?fù)p失函數(shù),網(wǎng)絡(luò)自動(dòng)鑒別出不重要的通道。
(3)
其中,(x,y)是訓(xùn)練輸入和目標(biāo),W是網(wǎng)絡(luò)中可訓(xùn)練參數(shù),等號右邊第1項(xiàng)是網(wǎng)絡(luò)的訓(xùn)練損失函數(shù),g(*)是在γ上的懲罰項(xiàng),定義g(s)=|s|,即L1正則化,λ是2項(xiàng)的平衡因子,L是稀疏化訓(xùn)練過程中的損失函數(shù)。
訓(xùn)練得到改進(jìn)的人體檢測模型后,進(jìn)行通道剪枝,剪枝過程為:(1)稀疏化訓(xùn)練:聯(lián)合優(yōu)化γ的正則項(xiàng)和權(quán)重?fù)p失函數(shù),鑒別通道的重要程度;(2)剪枝:根據(jù)γ從小到大的排序結(jié)果和給定的剪枝率得到γ的全局閾值,將小于或等于該閾值的γ置0,設(shè)置剪枝掩碼為0(表示剪枝),大于該閾值的γ保持不變,設(shè)置剪枝掩碼為1(表示不剪枝)。(3)微調(diào):剪枝后網(wǎng)絡(luò)的檢測精度會有一定的下降,需要微調(diào)訓(xùn)練使其重新達(dá)到理想的效果。重復(fù)以上過程,網(wǎng)絡(luò)在模型大小、運(yùn)行階段的內(nèi)存占用、計(jì)算量方面都會更緊湊。模型剪枝前后效果如圖5和圖6所示。
Figure 5 Schematic diagram before channel pruning圖5 通道剪枝前示意圖
Figure 6 Schematic diagram after channel pruning圖6 通道剪枝后示意圖
本文實(shí)驗(yàn)中訓(xùn)練用到的數(shù)據(jù)集為Pascal VOC目標(biāo)檢測數(shù)據(jù)集,包含VOC2007和VOC2012,共有20種類別的標(biāo)簽信息。通過編程只保留person類別的標(biāo)簽信息,并將得到的數(shù)據(jù)按7∶2∶1分為訓(xùn)練集、驗(yàn)證集和測試集,圖像數(shù)量如表1所示。
Table 1 Number of images in the dataset
YOLOv3算法中的錨框是聚類VOC的20種目標(biāo)得到的,不適合本文實(shí)驗(yàn)中的單個(gè)person類別。本文輸入圖像大小為416×416,使用K-means聚類算法聚類訓(xùn)練集標(biāo)簽信息中的邊界框,迭代80次之后,錨框與真實(shí)框交并比達(dá)到72.56%,得到9個(gè)錨框,如表2所示。
Table 2 Anchor frame size
本文實(shí)驗(yàn)包含3個(gè)訓(xùn)練過程:改進(jìn)的YOLOv3人體檢測模型訓(xùn)練、改進(jìn)的YOLOv3人體檢測模型的稀疏化訓(xùn)練和剪枝后模型的微調(diào)訓(xùn)練。實(shí)驗(yàn)平臺軟硬件配置如表3所示。
Table 3 Software and hardware configuration of the experimental platform
本文在YOLOv3算法的特征提取網(wǎng)絡(luò)中引入密集連接與多分支的組合結(jié)構(gòu),在檢測模塊中引入多分支結(jié)構(gòu)。訓(xùn)練改進(jìn)的YOLOv3人體檢測模型時(shí)學(xué)習(xí)率初始為0.001,第70輪時(shí)衰減到初始的1/10,共迭代訓(xùn)練140輪。權(quán)值衰減系數(shù)為0.000 5,動(dòng)量系數(shù)為0.9,批大小為64。為了增強(qiáng)網(wǎng)絡(luò)的泛化性,在網(wǎng)絡(luò)訓(xùn)練時(shí)通過旋轉(zhuǎn)角度、調(diào)整飽和度、調(diào)整曝光量和調(diào)整色調(diào)來生成更多的訓(xùn)練樣本。改進(jìn)的YOLOv3人體檢測模型訓(xùn)練過程中損失函數(shù)收斂曲線如圖7所示。
Figure 7 Train_loss curve圖7 訓(xùn)練損失曲線
YOLOv3人體檢測模型、改進(jìn)的YOLOv3人體檢測模型、壓縮后的人體檢測模型在部分測試集和本文自行采集的人體圖像上的檢測效果分別如圖8和圖9所示。
Figure 8 Human body detection effect diagram of part of the test sets圖8 部分測試集上的人體檢測效果圖
Figure 9 Human body detection effect on images collected by ourselves圖9 自行采集的圖像上的人體檢測效果圖
從圖8可以看出,改進(jìn)的YOLOv3人體檢測模型比YOLOv3人體檢測模型的人體檢測效果好,壓縮后的人體檢測模型相比改進(jìn)的YOLOv3人體檢測模型的人體檢測效果略有下降,但比YOLOv3人體檢測模型的檢測效果好很多。圖9是壓縮后的人體檢測模型在自行采集的圖像上的人體檢測效果圖,可以看出仍具有很好的檢測效果。
壓縮后的人體檢測模型對小尺度人體的檢測效果如圖10所示,圖10a中檢測到2個(gè)人體目標(biāo),大目標(biāo)與小目標(biāo)的高度之比小于1/10,圖10b中檢測到4個(gè)人體目標(biāo),其中最大的人體目標(biāo)和最小的人體目標(biāo)的高度之比小于1/10,因此壓縮后的人體檢測模型對大的人體目標(biāo)和小的人體目標(biāo)都有很好的檢測效果。
Figure 10 Effect of small-scale human body detection圖10 小尺度人體檢測效果圖
5.4.1 改進(jìn)前后的YOLOv3人體檢測模型的性能比較
人體檢測模型的性能主要包括檢測速度、精度、召回率、計(jì)算量、參數(shù)量和模型體積等方面。
(1)檢測速度FPS(Frames PerSecond)。
本文采用的檢測速度的評判標(biāo)準(zhǔn)為FPS,是指每秒傳輸?shù)漠嬅鎺瑪?shù)。FPS越大,表示每秒傳輸?shù)膸瑪?shù)越多,所顯示的視頻就會越流暢。為了滿足人體檢測的實(shí)時(shí)性要求,F(xiàn)PS的值越大越好。
(2)精度mAP(mean Average Precision)。
mAP的定義如式(4)所示,表示h類目標(biāo)的平均精度APi的均值,本文實(shí)驗(yàn)中h為1。
(4)
(3)召回率Recall。
召回率的定義如式(5)所示,表示測試數(shù)據(jù)集的全部目標(biāo)中,正確檢測出的目標(biāo)所占的比例。
(5)
其中,TP表示模型檢測正確的人體數(shù)量,F(xiàn)N表示沒有檢測到的人體數(shù)量。
(4)計(jì)算量BFLOPs(Billion FLoat OPerations)。
BFLOPs指十億次浮點(diǎn)運(yùn)算,多次卷積等運(yùn)算所耗費(fèi)的BFLOPs加起來表示模型的復(fù)雜度。
(5)參數(shù)量。
模型的參數(shù)量是指模型含有多少參數(shù),一個(gè)模型的參數(shù)量等于模型的每一層參數(shù)量的總和,直接決定模型的大小,也影響模型推斷時(shí)對內(nèi)存的占用量。
(6)模型體積。
模型的體積由模型的參數(shù)量決定,模型體積的大小決定其是否可以在資源有限的嵌入式平臺上部署。
改進(jìn)的YOLOv3人體檢測模型的mAP和Recall曲線如圖11和圖12所示。
Figure 11 mAP curve圖11 mAP曲線圖
Figure 12 Recall curve圖12 Recall曲線圖
從模型的檢測精度、參數(shù)量、計(jì)算量、體積大小和檢測速度5個(gè)方面與改進(jìn)前的YOLOv3人體檢測模型進(jìn)行比較的結(jié)果如表4所示。對比分析,改進(jìn)的YOLOv3網(wǎng)絡(luò)模型相比YOLOv3,檢測精度提升了6.01%,計(jì)算量減少了36.5%,參數(shù)量減少了38.7%,模型體積減小了38.46%,檢測速度是YOLOv3的1.82倍。可以看出,改進(jìn)的YOLOv3網(wǎng)絡(luò)性能比YOLOv3的好很多。
Table 4 Performance comparison between YOLOv3 and improved YOLOv3
5.4.2 改進(jìn)的YOLOv3人體檢測模型壓縮前后的性能比較
改進(jìn)YOLOv3人體檢測模型壓縮前的BN分布如圖13所示,γ值比較大。對其稀疏化訓(xùn)練285輪,初始稀疏率為0.000 1,到145輪后稀疏率為0.001,稀疏化速度加快,γ值趨近于0,精度先下降再回升到0.7左右。稀疏化訓(xùn)練后的BN分布和mAP曲線如圖14和圖15所示。
Figure 13 BN distribution before sparse training圖13 稀疏化訓(xùn)練前BN分布圖
Figure 14 BN distribution after sparse training圖14 稀疏化訓(xùn)練后BN分布圖
Figure 15 mAP curve in sparsity training圖15 稀疏化訓(xùn)練mAP曲線
剪枝后模型的精度為69.99%,精度有所下降,因此需要進(jìn)行微調(diào),初始學(xué)習(xí)率設(shè)為0.001,訓(xùn)練到70輪和100輪時(shí)學(xué)習(xí)率依次衰減到初始的1/10,共迭代訓(xùn)練140輪,壓縮后模型的mAP曲線如圖16所示。
Figure 16 mAP curve of the compressed model圖16 壓縮后模型的mAP曲線
模型壓縮主要體現(xiàn)在對模型中不重要的參數(shù)進(jìn)行剪枝,減少模型的參數(shù)量和計(jì)算量,壓縮模型的體積。為了驗(yàn)證壓縮后的人體檢測模型的性能,從模型檢測精度、參數(shù)量、計(jì)算量、體積大小和檢測速度5個(gè)方面對改進(jìn)的YOLOv3人體檢測模型和壓縮后的人體檢測模型的性能進(jìn)行比較的結(jié)果如表5所示。對比分析,壓縮后的人體檢測模型的檢測精度比改進(jìn)的YOLOv3人體檢測模型下降了3.16%,而計(jì)算量減少了86.69%,參數(shù)量減少了96.71%,模型體積減小了96.69%,僅有4.77 MB,檢測速度是改進(jìn)的YOLOv3人體檢測模型的1.71倍。可以看出,壓縮后的人體檢測模型在精度損失很小的情況下可以大幅減小模型參數(shù)量、計(jì)算量和體積,從而可以用于嵌入式部署。
Table 5 Performance comparison between the improved YOLOv3 and the compressed model
5.4.3 壓縮后的人體檢測模型和其他模型的性能比較
為了驗(yàn)證壓縮后的人體檢測模型的性能,從模型檢測精度、參數(shù)量、計(jì)算量、體積大小和檢測速度5個(gè)方面對SSD、YOLOv2-tiny、YOLOv3-tiny、YOLOv3-spp和壓縮后的人體檢測模型的性能進(jìn)行比較,結(jié)果如表6所示。對比分析,壓縮后的人體檢測模型相比SSD,檢測精度提升了2.94%,計(jì)算量減少了84.91%,參數(shù)量減少了95.28%,模型體積減小了95.24%,檢測速度為SSD的1.55倍。壓縮后的人體檢測模型相比YOLOv2-tiny和YOLOv3-tiny,檢測精度分別提升了4.97%和4.75%,計(jì)算量分別減少了22.41%和1.08%,參數(shù)量分別減少了92.14%和85.71%,模型體積分別減小了92.08%和85.59%,檢測速度是YOLOv2-tiny的1.13倍,是YOLOv3-tiny的1.34倍。壓縮后的人體檢測模型相比YOLOv3-spp,檢測精度略微下降了2.88%,而計(jì)算量減少了91.80%,參數(shù)量減少了98.02%,模型體積減小了97.99%,僅有4.77 MB,檢測速度為YOLOv3-spp的3.48倍??梢钥闯觯瑝嚎s后的人體檢測模型在具有較好的檢測精度的情況下?lián)碛泻苄〉膮?shù)量、計(jì)算量和體積,從而可以用于嵌入式部署。
Table 6 Performance comparison between the compressed model and other models
本文提出了一種基于密集連接和多分支結(jié)構(gòu)的改進(jìn)型YOLOv3人體檢測算法,提高模型檢測精度的同時(shí)也減少了參數(shù)量和計(jì)算量。通過通道剪枝壓縮模型進(jìn)一步減小參數(shù)量、計(jì)算量和模型體積,達(dá)到了在嵌入式上部署的要求。在Pascal VOC數(shù)據(jù)集上的實(shí)驗(yàn)表明,改進(jìn)及壓縮后的人體檢測模型的檢測精度得到了提高,參數(shù)量、計(jì)算量和模型體積得到大幅度減小,可以在嵌入式平臺上實(shí)現(xiàn)。