胡藝馨,張逸杰,方 健,金光浩,宋慶增+
(1.天津工業(yè)大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,天津 300387;2.北京工美集團(tuán)有限責(zé)任公司北京總部,北京 100005;3.北京電子科技職業(yè)學(xué)院 電信工程學(xué)院,北京 100176)
現(xiàn)階段最流行的目標(biāo)檢測算法[1,2]基于(CNN[3])結(jié)構(gòu),如YOLO系列及其變體[4]、R-CNN及其變體[5]。此種結(jié)構(gòu)的目標(biāo)檢測模型需要設(shè)備在滿足大量內(nèi)存開銷的同時可以進(jìn)行上億次的浮點(diǎn)運(yùn)算。雖然可以通過使用大型服務(wù)器如NVIDIA的GPU[6,7](圖形處理器)進(jìn)行計算實現(xiàn)快速檢測。但是,隨著CNN的應(yīng)用范圍擴(kuò)大,人們需要得到具有更好的特征提取能力和表達(dá)能力的網(wǎng)絡(luò)模型。自AlexNet[8]之后,科研學(xué)者們又提出了一系列的深度學(xué)習(xí)網(wǎng)絡(luò)模型,如VGG[9]、GoogLeNet[10]、ResNet[11]、DenseNet[12]等,網(wǎng)絡(luò)模型大小的增長導(dǎo)致計算量成倍增長。而在實際的應(yīng)用場景中,大多數(shù)目標(biāo)檢測任務(wù)需要部署在計算資源有限的小型設(shè)備上,才能提高其實時反應(yīng)速度。比如,在無人機(jī)上部署的檢測模型,智能安防系統(tǒng)中部署的人臉識別檢測,以及無人駕駛車輛上的目標(biāo)檢測系統(tǒng)。為了能在硬件資源限制的情況下快速精確地實現(xiàn)目標(biāo)檢測任務(wù),本文設(shè)計出一款輕量級的目標(biāo)檢測神經(jīng)網(wǎng)絡(luò)。本文的方法基于現(xiàn)有目標(biāo)檢測模型,重新設(shè)計結(jié)構(gòu),提出一種模型壓縮方法,再通過量化的方法減少計算量,最后在保證了一定的檢測精度的情況下,提高了檢測速度。
為了解決現(xiàn)有網(wǎng)絡(luò)模型參數(shù)量和計算量所需內(nèi)存空間較大的問題,本文對訓(xùn)練好的模型使用壓縮的方式,有效降低模型的大小和參數(shù)量。
通過對現(xiàn)有的幾種目標(biāo)檢測算法的對比,本文選定了目前檢測速度最快,還能同時保證檢測精度的YOLO系列模型。YOLO算法使用DarkNet[13]系列網(wǎng)絡(luò)作為提取圖像特征和語義信息的主干卷積網(wǎng)絡(luò)。然而,使用了DarkNet的YOLO檢測模型的參數(shù)量大小達(dá)到了240 MB,對于目標(biāo)檢測任務(wù)而言依然過大。本文通過輕量化方法重新設(shè)計YOLOV3[14]、YOLOV4[15]的主干網(wǎng)絡(luò),來對輸入圖像進(jìn)行特征的提取。得到訓(xùn)練模型后,再使用int8量化[16]的模型壓縮技術(shù),將訓(xùn)練好的目標(biāo)檢測模型參數(shù)進(jìn)行量化,將原先模型中的浮點(diǎn)值轉(zhuǎn)換為int8的整型值來壓縮模型大小。最終,在保證檢測精度幾乎不下降的同時,將模型所需的空間壓縮到約5 MB大小。
基于CNN的目標(biāo)檢測模型的計算量和參數(shù)量主要由卷積層、全連接層來決定。因此,現(xiàn)有模型加速方法大多從縮減卷積過程計算量的角度考慮。這些方法有對網(wǎng)絡(luò)模型的參數(shù)做壓縮,或者重新設(shè)計出一種計算開銷更低、空間內(nèi)存消耗也更低的網(wǎng)絡(luò)結(jié)構(gòu)。
Lin等[17]提出了一種新型網(wǎng)絡(luò)結(jié)構(gòu),通過1×1的卷積來增加網(wǎng)絡(luò)的非線性,同時降低模型的復(fù)雜度。為了減少CNN模型的存儲需求,還提出移除網(wǎng)絡(luò)的全連接層的想法,并且使用了全局的平均池化。分組卷積[10]是另一種常用來的降低網(wǎng)絡(luò)計算量的策略。在2015年提出的GoogLeNet中,大量使用了分組卷積,通過在不同的組中使用不同的卷積核和卷積方式,對分組卷積進(jìn)行了實驗和探討。在2016年提出的SqueezeNet[18]中通過大量使用1×1卷積和分組卷積的策略,最終實現(xiàn)了對AlexNet約50倍的參數(shù)量的壓縮,且沒有降低精度。2017年提出的ResNeXt[19]網(wǎng)絡(luò)結(jié)構(gòu)使用分組卷積的方式,其性能在擁有相同量級的參數(shù)量和計算量時已經(jīng)超過何凱明等提出的ResNet[11]網(wǎng)絡(luò)。在2017年提出的MobileNet網(wǎng)絡(luò)中提出了深度可分離卷積[20],這種卷積方式將分組卷積的方式幾乎可以說發(fā)揮到了極致,也就是說,分組的數(shù)量等于輸入特征的通道的數(shù)量,為每個通道分別進(jìn)行卷積操作。因此,MobileNet可以比vgg16[9]網(wǎng)絡(luò)在空間上減少32倍的內(nèi)存消耗、在計算速度上也快出了27倍。當(dāng)使用深度卷積層和1×1卷積層代替標(biāo)準(zhǔn)卷積之后,MobileNet將大部分的計算量和參數(shù)量都放在了1×1的卷積層內(nèi)。在2017年提出的ShuffleNet[21]網(wǎng)絡(luò)引入了通道混洗的概念,通過將不同卷積組之間的通道交叉混合,可以在不同卷積組之間的將各自學(xué)習(xí)到的特征信息交換,從而融合每個卷積組之間單獨(dú)學(xué)習(xí)到的特征,顯著增加網(wǎng)絡(luò)對于特征的提取能力和表現(xiàn)能力,ShuffleNet在性能比肩AlexNet的同時,運(yùn)算速度超過了AlexNet13倍。
本文從當(dāng)前檢測性能和檢測速度兩者綜合考慮,選擇了目標(biāo)檢測模型YOLOV3和新被提出來的檢測模型YOLOV4,作為本文輕量級網(wǎng)絡(luò)設(shè)計所基于的基礎(chǔ)模型。對于輕量級網(wǎng)絡(luò)的設(shè)計,將參考目前最流行的MobileNet系列的輕量級網(wǎng)絡(luò)設(shè)計思想。
本文所設(shè)計的small-YOLOV3的整體網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 輕量化設(shè)計后的small-YOLOV3主干結(jié)構(gòu)
以輸入圖像大小416×416為例,修改后的網(wǎng)絡(luò)的特征圖在大小為(52,52)、(26,26)、(13,13)時將輸出到向外分支。同時,可以看到分支出去的3個輸出經(jīng)過了卷積、上采樣、拼接、下采樣等操作之后才最終輸出。接著小尺寸特征圖上在經(jīng)過3次標(biāo)準(zhǔn)卷積并做了上采樣處理后,特征圖大小恢復(fù)到(26,26),并且和原(26,26)的特征圖以通道維度拼接在一起。重復(fù)上述操作,經(jīng)過5次卷積之后輸出特征圖,并且拷貝輸出特征圖上采樣到(52,52)大小,與原(52,52)特征圖能夠以通道方式拼接在一起,最后再經(jīng)過5次標(biāo)準(zhǔn)卷積之后輸出。通過這種特征金字塔的結(jié)構(gòu),將淺層次的特征信息和深層次的語義信息聯(lián)合起來,能夠?qū)ψ詈蟮哪繕?biāo)檢測任務(wù)精度有極大的提升。
本文的small-YOLOV3參考了mobilenet的設(shè)計思想,基礎(chǔ)模塊的設(shè)計見表1。
表1 small-YOLOV3基礎(chǔ)模塊設(shè)計
結(jié)構(gòu)中包含最開始的標(biāo)準(zhǔn)卷積層和15個連續(xù)的bneck模塊,以及最后3個1×1卷積層和全局池化層。表中bneck模塊為MobileNetV3中提出的BottleNeck[20]模塊,BottleNeck如圖2所示。small-YOLOV3使用大小為3×3,步長為2的卷積核對特征圖做下采樣,沒有使用池化層,并且網(wǎng)絡(luò)最后都舍棄了全連接層,使用1×1卷積層替代,形成全卷積網(wǎng)絡(luò)。
圖2 包含了SE模塊的bottlenet結(jié)構(gòu)
本文的small-YOLOV4在small-YOLOV3的基礎(chǔ)上做了結(jié)構(gòu)上的改進(jìn),基礎(chǔ)模塊仍然沿用表1中的結(jié)構(gòu),但整體網(wǎng)絡(luò)結(jié)果如圖3所示,加入了輕量化后的PANet結(jié)構(gòu)和SPP結(jié)構(gòu)、同時去掉了FPN[22-24]網(wǎng)絡(luò)。
圖3 輕量化設(shè)計后的small-YOLOV4主干結(jié)構(gòu)
從ResNet引入殘差網(wǎng)絡(luò)開始,從通道角度對特征圖信息做融合的方式就開始流行。常見的融合方式有兩種:add操作和concat操作[11,12],兩者都可以將多個通道的特征圖信息融合在一起。ResNet中使用的就是add操作,DenseNet中使用了concat操作。兩者融合方式如圖4所示。
圖4 特征圖融合方式
從圖4可以看出,add操作是在特征圖的數(shù)值上進(jìn)行的,要求兩特征圖有相同的尺寸、通道數(shù),然后對應(yīng)通道的對應(yīng)數(shù)值相加,對特征圖的通道數(shù)不進(jìn)行操作。而cat操作是在特征圖的通道上進(jìn)行,和add操作一樣,要求兩特征圖有相同大小的尺寸、通道數(shù),但是cat操作是將特征圖通道直接合并,增加特征圖的通道數(shù)量。
cat和add兩者操作雖然完全不同,但是對于之后的卷積操作而言兩者有很大的潛在聯(lián)系。對于融合后的特征圖而言,如果之后還需要卷積操作,那么add操作就可以看作是,將特征圖concat起來,然后將原來用于c個通道的卷積核復(fù)制為一個拼接起來得到的卷積結(jié)果,相當(dāng)于經(jīng)過concat操作之后,再使用對應(yīng)卷積核處理,只是卷積核中部分通道相同,對應(yīng)cancat之前的特征圖通道。
以式(1)、式(2)為例,假設(shè)現(xiàn)有兩特征圖相融合,通道數(shù)都為c,使用X1,X2,…XC和Y1,Y2…YC表示兩個特征圖,Ki表示卷積核的第i個通道,*表示卷積時的點(diǎn)乘操作。使用concat操作融合的特征圖再卷積之后,在一個通道上的特征輸出為
(1)
使用add操作融合的特征圖經(jīng)過卷積之后,單個通道上的特征輸出為
(2)
可以看出,concat操作在特征圖融合后使用了更多的卷積核,因為通道增多的原因。而通過add操作融合后再做卷積運(yùn)算時,可以看作是對add前的特征圖使用了相同的卷積核。所以通過公式可以看出,當(dāng)特征圖之間的通道相差不多時,使用add操作會減少大量的運(yùn)算。因為concat增加了通道數(shù),相應(yīng)的運(yùn)算成本也會增加。add減少了運(yùn)算融合了新的特征,但同時也會在一定程度上降低原有特征的表達(dá)能力。出于目標(biāo)檢測任務(wù)的綜合考量,為了得到更精準(zhǔn)的多層特征圖信息,將上采樣后的特征圖使用cat方式與原特征圖相融合。
為了將32位的浮點(diǎn)型參數(shù)映射成8位的整型參數(shù),需要建立一種有效的數(shù)據(jù)映射關(guān)系,因為Float32的取值范圍在 [(2-2-23)×2127,(223-2)×2127] 內(nèi),而int8的取值范圍在[-128,127],兩者取值范圍相差很大,所以縮放因子的選取尤為重要。神經(jīng)網(wǎng)絡(luò)假設(shè)每一層的輸出特征圖都是獨(dú)立同分布的,且近似于真實的高斯分布,而為了得到這樣的結(jié)果,本文在模型權(quán)重初始化時使用凱明初始化[11],同時使用relu[3]激活函數(shù)的變種來維持網(wǎng)絡(luò)中每層卷積得到的結(jié)果近似于獨(dú)立同分布。在此基礎(chǔ)上使用了batchnorm[25]策略維持網(wǎng)絡(luò)的輸出分布映射。式(3)表示了由浮點(diǎn)值轉(zhuǎn)化到定點(diǎn)值的過程
(3)
其中,R表示模型中真實的浮點(diǎn)值,Q表示量化后的定點(diǎn)值,S表示量化過程中的縮放因子。而Z值則表示浮點(diǎn)值0量化后對應(yīng)的定點(diǎn)值。式(4)中表示了由定點(diǎn)值轉(zhuǎn)化到浮點(diǎn)值的過程
R=(Q-Z)×S
(4)
S值和Z值計算公式如式(5)、式(6)所示
(5)
R=(Q-Z)×S
(6)
Rmax表示模型參數(shù)中最大的浮點(diǎn)值,Rmin表示模型參數(shù)中最小的浮點(diǎn)值。Qmax表示模型參數(shù)中最大的定點(diǎn)值,Qmin表示模型參數(shù)中最小的定點(diǎn)值。
當(dāng)卷積核某個通道參數(shù)的最大值遠(yuǎn)遠(yuǎn)大于卷積核通道數(shù)均值時,使用上述公式計算S值做整體縮放,會導(dǎo)致大量有實際意義的參數(shù)值被縮放到零點(diǎn)附近,極大地影響模型量化后的精度。所以本文在進(jìn)行量化縮放前,對離群點(diǎn)都進(jìn)行了舍棄處理。
模型經(jīng)過量化后會對每個參數(shù)生成對應(yīng)的S和Z值,之后就可以通過公式求得對應(yīng)的Q、R值。但是在公式計算Q值或者R值時,仍有可能得到超出原有表示范圍的數(shù)據(jù),所以在公式計算后還需要對數(shù)據(jù)按極大極小值做截斷處理。
神經(jīng)網(wǎng)絡(luò)的卷積計算通常需要對輸入的特征圖做填充處理,一般情況下都是使用浮點(diǎn)型的0作為填充數(shù)據(jù)。在量化后的神經(jīng)網(wǎng)絡(luò)模型中,對于輸入特征圖的浮點(diǎn)型數(shù)值0需要與之相對應(yīng)的整型值來表示,也就是Z。在本文中,為避免Z值計算帶來的填充誤差,將模型參數(shù)量化過程中的int8的量化范圍定在[-127,127]之間,使整型的零點(diǎn)值對應(yīng)整型數(shù)值0。
量化后,模型推理中的計算使用整型值作為全部數(shù)值計算的表示方式。所以,不光是針對模型的權(quán)重本身做量化,對模型中傳遞的特征圖也需要在每次激活后做量化,縮放到對應(yīng)的整型表示范圍內(nèi)。假設(shè)特征圖激活后的數(shù)值范圍在[-2.0,6.0]之間,同時假設(shè)使用int8量化方式對模型進(jìn)行量化將數(shù)值量化在[-128,127]之間,那么S、Z值的計算過程如式(7)所示
(7)
感知量化[16]是一種在訓(xùn)練過程中對模型參數(shù)使用偽量化的操作過程。通過在模型中對每個卷積層與激活層插入觀察點(diǎn),對每次特征圖計算得到的數(shù)值與權(quán)重的最大最小值做記錄,并且在浮點(diǎn)值的情況下通過反向傳播進(jìn)行梯度更新。偽量化針對模型的所有權(quán)重數(shù)值都是以浮點(diǎn)值做四舍五入來模擬,采用int8數(shù)值的形式標(biāo)注。在反向傳播過程中偽量化依然使用浮點(diǎn)值做計算。具體過程如圖5所示。
圖5 感知量化過程
因為模型在感知量化訓(xùn)練時對所有數(shù)據(jù)集都做了訓(xùn)練,故可以對float整型縮放得到的int8數(shù)值不斷進(jìn)行調(diào)整,以適應(yīng)模型中激活層和卷積層中不同分布范圍的問題,并且對不同的分布范圍計算其縮放系數(shù)S。對于同一參數(shù)的縮放系數(shù)需要經(jīng)過不停的調(diào)整以得到最終能保證模型精度的數(shù)值。
由于通過感知量化的方式可以極大程度上保證原有模型的精度不受損失,而目標(biāo)檢測任務(wù)對模型精度又有極高的要求,所以本文采用了感知量化的方式對模型進(jìn)行int8的量化處理。
Pascal VOC挑戰(zhàn)賽作為視覺對象的分類識別和檢測的一個基準(zhǔn)測試,提供了具有優(yōu)秀注釋的圖像數(shù)據(jù)集和標(biāo)準(zhǔn)的評估系統(tǒng)。從2005年開始,該挑戰(zhàn)賽每年都會提供具有一系列類別的帶標(biāo)簽圖片,供挑戰(zhàn)者完成自己的算法訓(xùn)練。最初VOC(a publicly available dataset used for benchmarking object detection)數(shù)據(jù)集[26]只包括4個類別的圖像,在2007年時增加到20個類,包含人類;動物(鳥、貓、牛、狗、馬、羊);交通工具(飛機(jī)、自行車、船、公共汽車、小轎車、摩托車、火車);室內(nèi)(瓶子、椅子、餐桌、盆栽植物、沙發(fā)、電視)等生活中最常見的物體,可以很好豐富目標(biāo)檢測任務(wù)的實用性。然而在20個類別中,由于人類及動物類別占據(jù)了大多數(shù),剩余其它類別樣本的數(shù)量較少,因此深度學(xué)習(xí)方法難以借助其龐大數(shù)據(jù)驅(qū)動的特性發(fā)揮作用,導(dǎo)致CNN的目標(biāo)檢測算法在這樣的數(shù)據(jù)集上獲得的分類檢測結(jié)果不佳。
現(xiàn)有的VOC數(shù)據(jù)集主要包含兩個版本,VOC2007和VOC2012,VOC2007數(shù)據(jù)集一共包含9963張圖片,其中訓(xùn)練集包含5011張圖片,測試集包含4952張圖片。VOC2012數(shù)據(jù)集共包含17 125張圖片,目前公開的訓(xùn)練集有11 540張,測試集未公開。VOC數(shù)據(jù)集圖片以JPG格式作為存儲方式,以年代、下劃線、序號作為每張圖片的名字。VOC數(shù)據(jù)集中的圖片沒有統(tǒng)一的尺寸,一般縱向圖為(375*500),橫向圖為(500*375),圖像之間的尺寸各有相差,但是偏差值都在100以內(nèi),在訓(xùn)練過程中,會對圖片做縮放處理,達(dá)到在不丟失圖片原有信息或增加額外噪音的基礎(chǔ)上,對圖片的尺寸進(jìn)行統(tǒng)一的目的。VOC數(shù)據(jù)集的標(biāo)簽通過XML文件格式來表現(xiàn),每一張圖片都有其唯一對應(yīng)的XML文件,其中包含了圖片的名稱、尺寸、是否可以用于實例分割、檢測到的物體、物體類別、目標(biāo)是否難以識別、目標(biāo)的具體坐標(biāo)等詳細(xì)信息。
本實驗通過對現(xiàn)有的公開數(shù)據(jù)集進(jìn)行梳理最終得到可用于目標(biāo)檢測的數(shù)據(jù)集設(shè)置見表2,訓(xùn)練集選取了VOC2012和VOC2007訓(xùn)練集中的圖片共15 942張,而測試集則選取了VOC2007測試集中的3987張圖片。
表2 數(shù)據(jù)集使用方式
對于訓(xùn)練好的目標(biāo)檢測模型,一般使用mAP(mean average precision)作為評估指標(biāo)。mAP通過計算每一個類別中的recall和precision得到對應(yīng)類別的AP值。
Recall的計算如式(8)所示
(8)
Precision的計算如式(9)所示
(9)
式中:TP(true positives)代表有A、B兩個類,預(yù)測類別為A同時真實類別也為A的情況,而預(yù)測類別為A但真實類別為B的則稱為FP(false positives),預(yù)測到B真實類別同時也為B的稱為TN(true negative),預(yù)測到為B實際類別卻為A的稱為FN(false negative)。
AP的計算需要以recall值和precision值分別為橫縱坐標(biāo)劃建立坐標(biāo)系,以不同的IOU閾值計算在不同情況下對應(yīng)的recall值和precision值,然后將這些值繪制成為一條曲線,通過計算曲線下的面積來得到對應(yīng)類別的AP值,所有類別的AP值的平均值就是文中所用的mAP指標(biāo)。如圖6所示,圖6中統(tǒng)計了VOC數(shù)據(jù)集中20個類別的預(yù)測AP值,最后求得mAP。
圖6 單次預(yù)測VOC數(shù)據(jù)集各類別mAP統(tǒng)計
本實驗使用One Hot編碼方式對VOC數(shù)據(jù)集的20個類別做編碼,訓(xùn)練數(shù)據(jù)集的圖像大小為416×416。通過經(jīng)驗以及多次實驗的驗證,超參數(shù)設(shè)置見表3。
表3 網(wǎng)絡(luò)中的超參設(shè)置
由于圖像尺寸偏大,而GPU可利用的顯存是有限的,因此在本實驗中將batch_size設(shè)置為32,最大步數(shù)設(shè)置為149 400。
考慮到VOC數(shù)據(jù)集數(shù)據(jù)量的不充分,以及在實時任務(wù)中對目標(biāo)檢測算法所要達(dá)到極高精度的要求,本實驗的訓(xùn)練采用大量的迭代同時對模型進(jìn)行調(diào)整。為避免訓(xùn)練后期學(xué)習(xí)率過小,導(dǎo)致模型無法從局部最小值逃逸,采用余弦退火學(xué)習(xí)率作為本實驗網(wǎng)絡(luò)的學(xué)習(xí)率調(diào)整策略。首先選取0.001作為前100個epoch的初始值學(xué)習(xí)率,其次對后200個epoch,將學(xué)習(xí)率初始值設(shè)置為0.0001。
本文將輕量化設(shè)計后的網(wǎng)絡(luò)small-YOLO3、small-YOLOV4與未對PANet、SPP做輕量化設(shè)計的small-YOLOV4,以及現(xiàn)有的YOLOV3、YOLOV4、YOLOV4-tiny、YOLOV3-tiny網(wǎng)絡(luò)和滑鐵盧大學(xué)在19年10月提出的YOLO-nano版本進(jìn)行了實驗對比,結(jié)果見表4。
表4 最終實驗對比結(jié)果
實驗結(jié)果顯示,small-YOLOV3相比YOLOV3在精度只下降了4.6個百分點(diǎn)情況下模型參數(shù)量縮減到原來的1/13;而small-YOLOV4參數(shù)量相比YOLOV4在精度只下降了2.9個百分點(diǎn)的情況下模型參數(shù)量縮小到原來的1/12。對于輕量化后的small-YOLOV4網(wǎng)絡(luò),其精度、參數(shù)量相比YOLOV4-tiny、YOLOV3-tiny都具有更優(yōu)的效果。對YOLO-nano而言,由于其犧牲了大量的精度來換取模型本身參數(shù)量的減少,所以導(dǎo)致精度很低。
實驗結(jié)果表明,通過對YOLOV3、YOLOV4做新的輕量化設(shè)計得到的輕量化目標(biāo)檢測模型已經(jīng)大幅度減少了計算量和參數(shù)量,在識別精度可接受范圍內(nèi)檢測速度大幅度加快,基本可以用于實際的目標(biāo)檢測任務(wù)。
本文進(jìn)一步對已訓(xùn)練好的small-YOLO3、small-YOLOV4模型做了int8的靜態(tài)量化和感知量化對比實驗,結(jié)果見表5。
表5 量化實驗對比結(jié)果
實驗結(jié)果顯示,訓(xùn)練后量化和感知量化對于模型的壓縮效果是一樣的。訓(xùn)練后量化對于輕量化目標(biāo)檢測模型會產(chǎn)生較大的損失,原因是由于目標(biāo)檢測對于預(yù)測框的精度要求很高,而訓(xùn)練后量化的精度損失對目標(biāo)檢測模型造成了較大的影響。但感知量化方式得到的量化模型則能以較小的精度損失換取4倍大小的模型壓縮。
本文針對某些部署在小型設(shè)備上的目標(biāo)檢測任務(wù),基于現(xiàn)有的一階段檢測算法,提出了采用輕量級網(wǎng)絡(luò)設(shè)計思想的small-YOLOV3、small-YOLOV4目標(biāo)檢測模型。雖然目前基于深度學(xué)習(xí)的一階段目標(biāo)檢測算法在檢測時間上和檢測精度上都做到了較高的水平,但需要建立在強(qiáng)大的硬件算力和功耗支持上,因而無法應(yīng)對具體的目標(biāo)檢測任務(wù)。本文提出的模型對YOLOV3、YOLOV4算法通過特征提取主干結(jié)構(gòu)重新設(shè)計了網(wǎng)絡(luò),同時在重構(gòu)的輕量化網(wǎng)絡(luò)模型的基礎(chǔ)上采用壓縮量化方案,最后將設(shè)計好的small-YOLOV3、small-YOLOV4模型在VOC數(shù)據(jù)集中進(jìn)行測試,并與未采用輕量化的方法進(jìn)行對比。本文設(shè)計的輕量化目標(biāo)檢測模型以幾個百分點(diǎn)的精度換取了接近十三倍的模型空間壓縮。
在未來的工作中,對于模型的性能的提升可以通過對數(shù)據(jù)集進(jìn)一步的豐富,同時做更多的迭代訓(xùn)練;也可以選擇更多的模型壓縮算法,即在使用int8量化之前對網(wǎng)絡(luò)進(jìn)行裁剪。