齊保貴 趙鵬赫 陳 禾 陳 亮,3 龍 騰
(1.北京理工大學(xué)信息與電子學(xué)院雷達(dá)技術(shù)研究所,北京 100081;2.北京理工大學(xué)長三角研究院(嘉興),浙江嘉興 314019;3.北京理工大學(xué)重慶創(chuàng)新中心,重慶 401120)
隨著遙感技術(shù)的飛速發(fā)展,遙感衛(wèi)星和飛機(jī)等平臺提供了海量的高質(zhì)量、高分辨率的遙感圖像。高分辨率的遙感圖像包含的信息非常豐富,可以用來描述地球表面的各種物體,面向遙感圖像的語義分割、目標(biāo)檢測、場景分類等算法在資源普查、災(zāi)害應(yīng)急、地區(qū)管控等各類國防軍事和民用經(jīng)濟(jì)領(lǐng)域都發(fā)揮了重要的作用。其中遙感圖像目標(biāo)檢測在導(dǎo)彈制導(dǎo)[1]、智能交通[2]等眾多領(lǐng)域具有不可或缺的作用,是當(dāng)今遙感領(lǐng)域研究的熱點內(nèi)容之一。
近年來隨著深度學(xué)習(xí)的發(fā)展,基于深度學(xué)習(xí)的遙感目標(biāo)檢測方法取得了很大的進(jìn)展,基于神經(jīng)網(wǎng)絡(luò)提取特征來提高遙感圖像目標(biāo)檢測性能的方法層出不窮。目前基于深度學(xué)習(xí)的目標(biāo)檢測方法主要分為兩類:雙階段目標(biāo)檢測法和單階段目標(biāo)檢測法。雙階段目標(biāo)檢測法首先在圖像上劃分候選區(qū)域,然后對各個候選區(qū)域進(jìn)行目標(biāo)分類以及位置坐標(biāo)的回歸。許多學(xué)者對雙階段目標(biāo)檢測法進(jìn)行了深入研究。Girshick 等[3]基于Selective Search 提取區(qū)域候選框算法,結(jié)合卷積神經(jīng)網(wǎng)絡(luò)提出R-CNN 模型,與當(dāng)時最好的檢測結(jié)果相比提升了30%。在此基礎(chǔ)上,針對不同的研究背景,其他學(xué)者又陸續(xù)提出 了Fast RCNN[4],F(xiàn)aster-RCNN[5]等檢測方法。Dai 等[6]提出了不含全連接層的全卷積神經(jīng)網(wǎng)絡(luò)目標(biāo)檢測算法R-FCN,有效緩解了網(wǎng)絡(luò)中分類對位置不敏感和檢測器對位置敏感之間的矛盾,在提升精度的同時利用位置敏感得分圖提升了檢測速度。單階段目標(biāo)檢測算法無須預(yù)先在圖像上生成候選區(qū)域,直接在圖像上進(jìn)行目標(biāo)的分類和位置坐標(biāo)的回歸。該方法的檢測速度較快,基于該方法提出了YOLO[7-9]系列、CornerNet[10]和RetinaNet[11]等通用模型,在加快檢測速度的同時,也提高了檢測的準(zhǔn)確率。Shafiee 等[12]提出了基于YOLOv2 的Fast-YOLO模型,該模型與YOLOv2相比減少了64%的參數(shù),檢測速度提升了3.3倍。為了進(jìn)一步提升目標(biāo)檢測精度,YOLO系列推出了v3版本,這是一種適用于實時視頻幀目標(biāo)檢測的深度學(xué)習(xí)模型,因其檢測速度快和精度高而廣泛應(yīng)用于工業(yè)生產(chǎn)。
YOLOv3-SPP 在YOLOv3 的基礎(chǔ)上將空間金字塔池化(Spatial Pyramid Pooling,SPP)[13]模塊添加到網(wǎng)絡(luò)結(jié)構(gòu)中,融合了全局特征和局部特征,實現(xiàn)了不同尺度的特征融合,提升了檢測精度,但是該模型參數(shù)量多,模型體積大,將該算法部署到資源有限的嵌入式設(shè)備上存在困難。因此,對于嵌入式設(shè)備來說,模型部署一般選擇輕量化的網(wǎng)絡(luò)結(jié)構(gòu),如ShuffleNet[14]和MobileNet[15-17]等,前者通過使用分組卷積的同時通過通道重排的策略解決了組間信息交換不佳的問題;后者通過設(shè)計深度可分離卷積模塊來減少模型的參數(shù)量,并在此基礎(chǔ)上衍生出了MobileNet的V1、V2和V3版本。隨后研究人員又提出了NanoDet[18],這是一種單階段anchor-free 模型,體積大小不超過10M。這些輕量化的網(wǎng)絡(luò)雖然可以有效降低模型規(guī)模,但準(zhǔn)確度受到了較大的影響。YOLOv3-tiny 和YOLOv4-tiny 是 從YOLOv3 和YOLOv4[19]原始高精度模型改進(jìn)而來的輕量化網(wǎng)絡(luò),不論是在自然場景數(shù)據(jù)集還是遙感圖像數(shù)據(jù)集上,準(zhǔn)確度均低于原始模型。YOLOv5[20]系列的YOLOv5s 和YOLOv5m 是針對嵌入式設(shè)備設(shè)計的輕量化模型,在COCO[21]數(shù)據(jù)集上進(jìn)行測試,檢測精度分別是0.37 和0.443,而YOLOv3-SPP 的檢測精度為0.456,優(yōu)于以上兩種模型。
除了設(shè)計高效的網(wǎng)絡(luò)結(jié)構(gòu)外,模型剪枝也是實現(xiàn)輕量化的常用方法。目前剪枝方法主要分為兩類:結(jié)構(gòu)化剪枝和非結(jié)構(gòu)化剪枝,非結(jié)構(gòu)化剪枝是指去除大量不重要的神經(jīng)元,但是剪枝后會產(chǎn)生稀疏矩陣,而目前大多數(shù)深度學(xué)習(xí)框架和硬件都無法加速稀疏矩陣的計算,因此剪枝后的結(jié)構(gòu)不會明顯提高處理速度;而結(jié)構(gòu)化剪枝主要以網(wǎng)絡(luò)通道或整個網(wǎng)絡(luò)層為基本單位進(jìn)行剪枝,剪枝后的模型在減少存儲量的同時,可以在現(xiàn)有的軟硬件條件下實現(xiàn)推理加速。Zhang[22]等對卷積網(wǎng)絡(luò)逐層進(jìn)行結(jié)構(gòu)化剪枝,得到輕量級網(wǎng)絡(luò),隨后將其作為學(xué)生網(wǎng)絡(luò),通過教師網(wǎng)絡(luò)(即未修剪和訓(xùn)練有素的網(wǎng)絡(luò))來恢復(fù)學(xué)生網(wǎng)絡(luò)的準(zhǔn)確性。Ye 等[23]采用端到端的隨機(jī)訓(xùn)練方法,保持一些通道的輸出不變,通過調(diào)整其影響層的偏差值來進(jìn)行通道修剪。Zhang 等[24]提出了針對無人機(jī)設(shè)備部署的模型剪枝方法SlimYOLOv3,參數(shù)量和FLOPs 相對原始模型均有大幅下降,同時精度下降較少。Liu[25]等人提出了將L1 正則化應(yīng)用于批歸一化層(Batch Normalization,BN),對BN 層進(jìn)行稀疏,BN 層中的尺度因子被約束后作為網(wǎng)絡(luò)通道的權(quán)重因子,通過判斷權(quán)重因子的重要性來進(jìn)行通道剪枝。已有的基于YOLO系列進(jìn)行剪枝的算法[26-28],大部分都是基于自然場景圖像,雖然利用剪枝策略降低了模型的復(fù)雜度,但是遙感圖像目標(biāo)具有數(shù)量多且尺寸小的特點,這些基于自然場景的剪枝方法處理遙感圖像的效果并不理想。因此研究一種低參數(shù)量和低存儲空間,同時能夠保持原始模型精度的模型是遙感目標(biāo)檢測領(lǐng)域的重點。
為了進(jìn)一步實現(xiàn)應(yīng)用嵌入式設(shè)備完成遙感圖像檢測的目標(biāo),本文在YOLOv3-SPP 基礎(chǔ)上提出改進(jìn)模型YOLOv3-SoftSPP,并提出了一種基于加權(quán)和的模型壓縮算法,主要具有以下特點:
1)對目前常用的卷積核重要性評價指標(biāo)進(jìn)行改進(jìn),提出了一種基于加權(quán)L1范數(shù)和均值差的方法來評估卷積核的重要性,并按剪枝比例去除重要性較低的卷積核。
2)采用結(jié)構(gòu)搜索的方法對剪枝后產(chǎn)生的子網(wǎng)絡(luò)進(jìn)行快速評估,從子網(wǎng)絡(luò)中選擇評估結(jié)果最好的網(wǎng)絡(luò)結(jié)構(gòu)作為最終剪枝得到的模型。
3)使用Softmax 加權(quán)池化層替換SPP 模塊中的最大池化層,更大程度地保留了目標(biāo)的深層特征,同時著重突出影響較大的特征。
本文提出的基于改進(jìn)YOLOv3-SPP 的遙感圖像目標(biāo)檢測壓縮模型主要分為三部分。首先對YOLOv3-SPP 模型進(jìn)行改進(jìn),使用softmax 的加權(quán)池化替換SPP 模塊中的最大池化層,提高了深層特征的提取能力;其次對基于L1 范數(shù)剪枝算法進(jìn)行改進(jìn),引入均值差來衡量濾波器的重要性,并與L1范數(shù)進(jìn)行加權(quán)后共同作為衡量濾波器重要性的指標(biāo),改善了基于L1范數(shù)衡量方法的局限性;最后對剪枝后產(chǎn)生的眾多子網(wǎng)絡(luò)進(jìn)行快速評估,選擇結(jié)果最好的一個子網(wǎng)絡(luò)作為最終的剪枝結(jié)果。
YOLOv3 作為單階段目標(biāo)檢測方法的典型代表,因其具有較高的檢測速度和精度而在工業(yè)界得到廣泛應(yīng)用。YOLOv3-SPP 在YOLOv3 模型上增加了SPP 特征融合模塊,通過對不同感受野進(jìn)行最大池化處理,最終進(jìn)行維度的拼接,從而獲取不同尺度的特征融合信息,提升了模型的檢測精度。在自然場景數(shù)據(jù)集中,YOLOv3-SPP 網(wǎng)絡(luò)表現(xiàn)出良好的性能,但在面對目標(biāo)分布密集且尺寸小的遙感數(shù)據(jù)集,其檢測性能有待提高,主要原因在于SPP結(jié)構(gòu)中的最大池化層在保留特征圖的重要信息方面仍有改進(jìn)的空間。Stergiou1 等[29]提出使用softmax 加權(quán)池化可以保留權(quán)重較大的特征,并通過實驗證明該方法可以有效緩解最大池化產(chǎn)生的特征丟失問題。本文基于此方法,采用現(xiàn)有的平均池化方法按位相除對SPP 模塊中最大池化層進(jìn)行替換來實現(xiàn)基于softmax的加權(quán)池化操作。
首先定義網(wǎng)絡(luò)卷積層的輸出特征圖為X∈RC×H×W,其中C,H和W分別為通道數(shù)、特征圖的高和寬。R為特征圖X的局部2D 區(qū)域,其大小與池化核相等,即|R|=k2,權(quán)重wi為特征值的自然指數(shù)與所有特征值的自然指數(shù)和的比值,則wi可以根據(jù)特征值非線性地計算區(qū)域R的特征值權(quán)重,并且加強(qiáng)了權(quán)重之間的區(qū)分度,即權(quán)重較高的特征值輸出后重要性增強(qiáng),如公式(1)所示:
將區(qū)域R內(nèi)的所有特征值xi乘以wi進(jìn)行加權(quán)求和得到輸出,如公式(2)所示。
YOLOv3-SPP 中的最大池化操作都在高維特征空間中使用,而深層網(wǎng)絡(luò)中的特征包含著比淺層網(wǎng)絡(luò)更為豐富的特征信息,最大池化丟棄了大多數(shù)特征值,而加權(quán)池化著重突出影響大的特征值,因此加權(quán)池化是一個更加均衡的方法。對公式(2)進(jìn)行如下變換:
公式(3)中展示了將softmax加權(quán)池化通過現(xiàn)有的均值池化實現(xiàn)的過程,在模型參數(shù)不變的情況下實現(xiàn)精度的提升。改進(jìn)的SPP 模塊整體結(jié)構(gòu)如圖1所示。
圖1 改進(jìn)SPP結(jié)構(gòu)Fig.1 Improved SPP structure
設(shè)網(wǎng)絡(luò)中第i個卷積層的輸入通道數(shù)和輸出通道數(shù)分別為Cin(i)和Cout(i),輸入特征圖的大小為wi和hi,卷積核的大小為k*k。經(jīng)過卷積層的運(yùn)算后,輸出特征圖的大小為wi+1和hi+1。第i層的通道數(shù)為Cin(i)*Cout(i),則整個卷積過程中所產(chǎn)生的參數(shù)量為Cin(i)*Cout(i)*wi+1*hi+1*k2。圖2 所示為YOLOv3-SPP通道剪枝的示意圖,標(biāo)記黃色的部分為剪枝去除的通道,藍(lán)色為表示剩余部分。當(dāng)剪枝去除了第i層的某個卷積核,輸出通道對應(yīng)的特征圖被一并去除,減少的參數(shù)量為Cin(i)*wi+1*hi+1*k2,同時第i層的輸出又作為第i+1 層的輸入特征圖,相應(yīng)的減少參數(shù)量為Cout(i)*wi+2*hi+2*k2。
圖2 通道剪枝示意圖Fig.2 Schematic diagram of channel pruning
目前對于卷積核重要性的評估大都基于L1 范數(shù),即對每個卷積核計算它的權(quán)重之和,根據(jù)權(quán)重之和從大到小進(jìn)行排序,然后將低于給定閾值的卷積核以及對應(yīng)的特征圖去掉,同時移除下一個卷積層中與減掉的特征圖相關(guān)的核,最后將得到的權(quán)重復(fù)制到新模型中進(jìn)行微調(diào)。這種方法在基于卷積神經(jīng)網(wǎng)絡(luò)的分類模型中取得了很好的效果,例如對VGG16[30]和ResNet18[31]等網(wǎng)絡(luò)進(jìn)行剪枝并微調(diào),在參數(shù)量大幅降低的同時精度變化很小。但在目標(biāo)檢測模型中,由于網(wǎng)絡(luò)結(jié)構(gòu)深,層次復(fù)雜,僅基于L1范數(shù)對卷積核進(jìn)行重要性評估效果不理想。
本文使用基于L1 范數(shù)和均值差進(jìn)行加權(quán)求和作為衡量卷積核重要性的評判標(biāo)準(zhǔn)。具體地,對一組數(shù)據(jù)求均值,當(dāng)數(shù)據(jù)中的某個元素離均值的距離越大,我們認(rèn)為該元素越重要,所包含的信息量越大。對于卷積核來說,均值差的表示如公式(4)所示:
其中,n∈{1,2,…,Cout(i)}表示第n個卷積核,l∈{1,2,…,L}表示第l個卷積層,為均值差。(n)為第l卷積層中所有卷積核權(quán)重的均值,如公式(5)所示:
其中N表示第l個卷積層中卷積核的數(shù)量。為了與L1 范數(shù)的量綱保持一致,公式(4)中的均值差需要進(jìn)行歸一化,而在實驗中發(fā)現(xiàn)均值差位于[0,1]區(qū)間,為了使歸一化后的數(shù)據(jù)趨于極大化,這里采用平方和歸一化,如公式(6)所示:
卷積核的L1范數(shù)如公式(7)所示:
由于本文考慮將L1 范數(shù)和均值差共同作為卷積核重要性的評價標(biāo)準(zhǔn),因此我們對其進(jìn)行加權(quán)求和,如公式(8)所示:
越大表示卷積核的重要程度越高,λ(0<λ<1)表示加權(quán)因子,代表了均值差與L1 范數(shù)相補(bǔ)償?shù)某潭取?/p>
YOLOv3 中采用Darknet53 作為骨干網(wǎng)絡(luò),并借鑒ResNet 網(wǎng)絡(luò)中的shortcut 層,因此在剪枝時需要考慮shortcut連接的兩個卷積層的通道匹配問題。
首先以全局閾值找出每一個卷積層要保留的通道數(shù)掩碼,對于每組shortcut 層,將它所連接的兩個卷積層的通道數(shù)掩碼的并集作為shortcut 層所連接的兩個卷積層最終的剪枝掩碼,該處理方法同時考慮了兩個卷積層剩余的通道數(shù),在減少參數(shù)量的同時可以盡量避免精度損失。
模型剪枝后得到的網(wǎng)絡(luò)可以看作原模型的一個子網(wǎng)絡(luò),因此模型剪枝問題可以看作是在一個搜索空間中搜索最佳子結(jié)構(gòu)的問題。其過程分為三部分:
(1)確定搜索空間;
(2)選擇候選項;
(3)評估候選項。
搜索空間是指在原始網(wǎng)絡(luò)上根據(jù)卷積核重要性評價準(zhǔn)則,經(jīng)過剪枝得到的所有子網(wǎng)絡(luò)集合,選擇候選項是指在一定約束條件下,對搜索空間中的子網(wǎng)絡(luò)進(jìn)行篩選,本文以參數(shù)量作為約束項,在給定裁剪比例的基礎(chǔ)上,刪除剪枝后不符合參數(shù)減少量的子網(wǎng)絡(luò),保留剩余的候選子網(wǎng)絡(luò)。最后,對候選項進(jìn)行快速評估。如果對子網(wǎng)絡(luò)進(jìn)行逐個訓(xùn)練評估,將會消耗大量的算力資源和時間,所以為了節(jié)省時間和資源,一般不訓(xùn)練子網(wǎng)絡(luò),而是通過評估器快速評估候選子網(wǎng)絡(luò)的性能,最終選擇經(jīng)過評估表現(xiàn)最佳的子網(wǎng)絡(luò)。
我們采用Adaptive BN[32]方法對子網(wǎng)絡(luò)進(jìn)行快速評估。先前的快速子網(wǎng)絡(luò)評估方法主要分為兩類,一是訓(xùn)練法,即訓(xùn)練不同的子結(jié)構(gòu),找到收斂后性能最佳的網(wǎng)絡(luò),這種方法直觀準(zhǔn)確,但是耗時耗力;二是使用強(qiáng)化學(xué)習(xí),輔助網(wǎng)絡(luò)等手段進(jìn)行評估,但是評估性能和收斂性能相關(guān)性不強(qiáng),并且涉及大量超參數(shù)的設(shè)置。而Adaptive BN 不更新網(wǎng)絡(luò)權(quán)重,只通過更新網(wǎng)絡(luò)的BN 層來評估不同候選子網(wǎng)絡(luò)的性能,提高了子網(wǎng)絡(luò)評估的時間。這是由于剪枝后未經(jīng)過微調(diào)的網(wǎng)絡(luò)與經(jīng)過微調(diào)的網(wǎng)絡(luò)收斂的準(zhǔn)確性存在強(qiáng)相關(guān)性。未微調(diào)的網(wǎng)絡(luò)性能差主要原因是網(wǎng)絡(luò)的BN 層的統(tǒng)計信息是根據(jù)原始網(wǎng)絡(luò)計算出來的,不適用于剪枝后的網(wǎng)絡(luò)結(jié)構(gòu)。圖3 展示了剪枝的工作流程。
圖3 剪枝算法工作流程Fig.3 Workflow of the Pruning Algorithm
本文對于YOLOv3-SoftSPP 的剪枝算法流程如下:
1)剪枝策略生成
設(shè)網(wǎng)絡(luò)模型的層數(shù)為L,剪枝策略的表示形式為生成L層模型的分層修剪比例向量(r1,r2,…,rL)。生成過程遵循預(yù)定義的約束,例如操作數(shù)或參數(shù)量的減少比例等。具體而言,它從給定范圍[0,R]中隨機(jī)采樣L個實數(shù)以形成修剪策略,其中rL表示第L層的修剪率。R是應(yīng)用于某一層的最大修剪比率。
2)過濾器剪枝
過濾器剪枝過程會根據(jù)前一個模塊生成的修剪策略修剪完整尺寸的訓(xùn)練模型。與普通的過濾器剪枝方法類似,首先根據(jù)過濾器的加權(quán)范數(shù)對其進(jìn)行排名,然后將最不重要的過濾器的修剪掉。最后,將來自搜索空間的經(jīng)過修剪的候選修剪對象準(zhǔn)備好傳遞到下一個評估階段。
3)快速子網(wǎng)評估
基于Adaptive BN 方法為上一階段修剪后的候選者提供BN 統(tǒng)計信息適應(yīng)和快速評估。給定一個經(jīng)過修剪的網(wǎng)絡(luò),遍歷訓(xùn)練集中的少量數(shù)據(jù)以計算自適應(yīng)BN 統(tǒng)計量,接下來在訓(xùn)練集數(shù)據(jù)的一小部分(稱為子驗證集)上評估候選網(wǎng)絡(luò)的性能,根據(jù)Adaptive BN 評估后的剪枝模型性能選出最有潛力的剪枝模型進(jìn)行微調(diào)。
為驗證剪枝算法性能,本文分別在遙感數(shù)據(jù)集DOTA[33],無人機(jī)數(shù)據(jù)集VisDrone[34]和DIOR[35]數(shù)據(jù)集上進(jìn)行相關(guān)測試。
DOTA 數(shù)據(jù)集是用于航空圖像中目標(biāo)檢測的大規(guī)模數(shù)據(jù)集。它包含來自不同傳感器和平臺的2806 幅航拍圖像。每幅圖像的大小在800×800 到4000×4000像素的范圍內(nèi),并且包含各種比例,方向和形狀的對象。
VisDrone 2018 數(shù)據(jù)集由無人機(jī)平臺在不同地點、不同高度拍攝的7019張靜態(tài)圖像組成。訓(xùn)練集和驗證集分別包含6471 和548 幅像。圖像用邊界框和十個預(yù)定義的類(行人、人、汽車、貨車、公共汽車、卡車、摩托車、自行車、帶篷三輪車和三輪車)進(jìn)行標(biāo)注。
DIOR 是一個用于光學(xué)遙感圖像目標(biāo)檢測的大規(guī)?;鶞?zhǔn)數(shù)據(jù)集。數(shù)據(jù)集包含23463 個圖像和192472 個實例,涵蓋20 個對象類。這20 個對象類是飛機(jī)、機(jī)場、棒球場、籃球場、橋梁、煙囪、水壩、高速公路服務(wù)區(qū)、高速公路收費(fèi)站、港口、高爾夫球場、地面田徑場、天橋、船舶、體育場、儲罐、網(wǎng)球場、火車站、車輛和風(fēng)磨。
本文實驗均基于pytorch1.12.1 框架和TITAN RTX。操作系統(tǒng)為Ubuntu 18.04.6LTS。輸入圖像大小設(shè)置為416,batchsize 設(shè)置為16。選取參數(shù)量、計算量、檢測幀數(shù)、存儲空間以及平均精度mAP 作為模型壓縮后的評價指標(biāo)。
1)參數(shù)量
模型的參數(shù)量指模型含有多少個參數(shù),單位是“個”,對于復(fù)雜模型一般采用更大的單位“兆”(M)來衡量。參數(shù)量的大小影響著模型的大小和模型推理時占用的內(nèi)存量。
2)計算量
BFLOPs(Billion Float Operations)是衡量模型復(fù)雜程度的指標(biāo),指十億次浮點運(yùn)算數(shù),又稱計算量。
3)檢測速度
為了衡量剪枝后的實時性效果,本文采用FPS(Frames PerSecond)來評估檢測速度,F(xiàn)PS 表示每秒傳輸?shù)膱D像幀數(shù),F(xiàn)PS 值越大表示每秒可以檢測的圖像越多。
4)平均精度
平均精度mAP(mean Average Precision)的定義如公式(9)所示,
其中,n表示數(shù)據(jù)集的類別數(shù),APi表示第i類目標(biāo)的平均精度,即精確度-召回率(Precision-Recall,P-R)曲線的下方面積。
為證明本文算法的性能,本文分別在無人機(jī)自然場景數(shù)據(jù)集VisDrone 和遙感數(shù)據(jù)集DOTA 上對YOLOV3-SPP 模型和YOLOv3-SoftSPP 模型進(jìn)行測試,并給出各類別的檢測精度。
表1 中展示了YOLOV3-SPP 模型和YOLOv3-SoftSPP 模型在VisDrone 自然場景數(shù)據(jù)集上對于各類別的檢測精度,可以看出,對于bus、truck和van等體積較大的目標(biāo),模型的識別精度分別提升了2.6%、1.8%和0.6%,說明這些目標(biāo)的有效特征被進(jìn)一步提取。容易與tricycle 混淆的awning-tricycle目標(biāo),檢測精度提高了0.82%,而bicycle 目標(biāo)的識別精度下降百分比較多,主要是由于大部分自行車在停放時過于緊湊且冗長,目標(biāo)特征容易互相干擾,因此在檢測時除了主要特征外,一些無效特征被放大,導(dǎo)致精度降低。數(shù)據(jù)集整體檢測精度較原來提升了0.6%。
表1 VisDrone數(shù)據(jù)集上各類別目標(biāo)檢測性能對比Tab.1 Comparison of object detection performance of various categories on the VisDrone dataset
圖4展示了改進(jìn)前后模型在VisDrone 數(shù)據(jù)集上的實際檢測效果,左右兩部分分別是原始YOLOv3-SPP 模型和改進(jìn)的YOLOv3-SoftSPP 的實際檢測效果,可以看出在右半部分圖中,awning-tricycle 被標(biāo)識出,同時還多檢測出了一輛汽車和摩托車,白色箭頭標(biāo)識了具體位置。在原始模型中,雖然bus、car和truck 目標(biāo)都被檢測出來,但YOLOv3-SoftSPP 檢測出的置信度更高。
圖4 改進(jìn)前后模型在VisDrone數(shù)據(jù)集上的實際檢測效果Fig.4 Actual detection results of the model before and after improvement on the VisDrone dataset
表2 中給出了在DOTA 遙感數(shù)據(jù)集上,YOLOV3-SPP 模型和YOLOv3-SoftSPP 模型對于各類別的檢測精度,對于分布較為密集的目標(biāo)如small-vehicle、harbor,檢測精度分別提升了0.7%和1.2%,對于尺寸較小但分布稀疏的目標(biāo)如helicopter,檢測精度提升了3.5%,對于尺寸較大的目標(biāo)如swimming pool、roundabout、soccer-ball-field、baseballdiamond 和basketball-court,改進(jìn)后的YOLOV3-SPP模型對于這些目標(biāo)的檢測精度分別提升了1.4%、1.1%、1.2%、0.8%和3.1%。但模型對storage-tank的識別精度下降較多,主要是由于遙感圖像俯視視角的特殊性,storage-tank 這類本來具有較高高度的目標(biāo)呈現(xiàn)扁平化效果,特征集中在頂部,隨著時間的推移其頂部容易出現(xiàn)大面積銹跡,新舊目標(biāo)的差異性較大,這些無效特征被進(jìn)一步提取,導(dǎo)致精度下降,其他目標(biāo)的檢測精度與原始模型基本持平,總體檢測精度較原來提升了0.7%。
表2 DOTA數(shù)據(jù)集上各類別目標(biāo)檢測性能對比Tab.2 Comparison of object detection performance of various categories on the DOTA dataset
圖5 展示了改進(jìn)前后模型在DOTA 數(shù)據(jù)集上的實際檢測效果,圖5(a)、圖5(b)左右兩半部分分別對應(yīng)著原始YOLOv3-SPP 模型和改進(jìn)YOLOv3-Soft-SPP 模型的檢測結(jié)果,可以看出圖5(a)中YOLOv3-SPP 漏檢了一個baseball-diamond 目標(biāo),改進(jìn)的模型均檢測出;而圖5(b)中改進(jìn)的模型不僅檢測出harbor 目標(biāo),同時在右上部分許多小的船只也能檢測到。
圖5 改進(jìn)前后模型在DOTA數(shù)據(jù)集上的實際檢測效果Fig.5 Actual detection results of the model before and after improvement on the DOTA dataset
在以上兩個數(shù)據(jù)集中進(jìn)行測試后的結(jié)果表明,相較于原始模型,本文提出的模型在自然場景數(shù)據(jù)集和遙感數(shù)據(jù)集上,對于大部分類別的檢測精度均有提升。
在以上實驗的基礎(chǔ)上,基于兩類數(shù)據(jù)集分別使用L1 范數(shù)剪枝算法和本文所提剪枝算法對兩種模型進(jìn)行測試,并給出各個評價指標(biāo)的結(jié)果。
在表3 中,以YOLOv3-SPP 模型使用L1 范數(shù)準(zhǔn)則在VisDrone 數(shù)據(jù)集上進(jìn)行剪枝后的結(jié)果為基準(zhǔn),然后對YOLOv3-SoftSPP 模型分別使用L1 范數(shù)算法和本文所提算法進(jìn)行剪枝,剪枝比例為0.8 和0.95,微調(diào)輪數(shù)為150。從結(jié)果對比可以看出,YOLOv3-SoftSPP 參數(shù)量和計算量與原始模型一致,說明YOLOv3-SoftSPP 在沒有引入額外開銷的情況下提升了精度,同時檢測速度也有了一定的提升。
表3 兩種剪枝算法在VisDrone數(shù)據(jù)集上對比Tab.3 Comparison of two pruning algorithms on the VisDrone dataset
對兩種模型使用L1剪枝算法,剪枝后YOLOv3-SoftSPP 的計算量與YOLOv3-SPP 相同,參數(shù)量更少,與此同時,YOLOv3-SoftSPP的mAP值更高,檢測速度提升了5 幀。對YOLOv3-SoftSPP 使用改進(jìn)的剪枝算法剪枝后發(fā)現(xiàn),其參數(shù)量較YOLOv3-SPP-L1下降了32.2%。在剪枝比例為0.95的情況下,模型的參數(shù)量和計算量均大幅降低,但檢測精度依然可以達(dá)到0.176。在剪枝比例為80%時,本文加權(quán)池化方法比L1方法剪枝得到的模型計算量更大,但檢測速度卻更快,這是由于基于softmax的加權(quán)池化操作可以并行化計算,在CPU 和GPU 執(zhí)行具有更低的推理時間,在延遲和內(nèi)存使用方面均低于原模型采用的最大池化操作[29]。
表4 中給出了YOLOv3-SPP 和YOLOv3-SoftSPP剪枝算法在DOTA 數(shù)據(jù)集上的實驗結(jié)果,剪枝比例分別設(shè)置為0.6 和0.8,可以看出使用L1 范數(shù)準(zhǔn)則經(jīng)過剪枝后的原始模型YOLOv3-SPP-L1 的mAP 要小于YOLOv3-SoftSPP-L1,說明在參數(shù)量較少,特征圖數(shù)量稀疏的情況下,YOLOv3-SoftSPP 可以更好的提取特征,而使用改進(jìn)的加權(quán)剪枝算法,剪枝比例為0.8 時,剪枝后的精度達(dá)到了0.582,相較于YOLOv3-SPP-L1 和YOLOv3-SoftSPP-L1 的檢測精度分別提升了8.9%和8.3%,調(diào)整剪枝比例至0.6,mAP提高到0.603,說明改進(jìn)的剪枝算法更能去除冗余通道,保留重要的部分,從而提升檢測的精度。
表4 兩種剪枝算法在DOTA數(shù)據(jù)集上對比Tab.4 Comparison of two pruning algorithms on the DOTA dataset
為了進(jìn)一步說明提出剪枝算法的有效性,本文在遙感數(shù)據(jù)集DIOR 上進(jìn)行了測試。剪枝比例設(shè)為0.8 和0.95,微調(diào)輪數(shù)為150 輪,結(jié)果如表5 所示。首先對網(wǎng)絡(luò)進(jìn)行正常訓(xùn)練,實驗發(fā)現(xiàn)YOLOv3-Soft-SPP 的精度與YOLOv3-SPP 差異較小,使用L1 范數(shù)方法進(jìn)行剪枝,YOLOv3-SoftSPP-L1 的精度要高于YOLOv3-SPP-L1,說明在稀疏模型中,YOLOv3-Soft-SPP能更多地保留特征。用改進(jìn)的加權(quán)剪枝方法對YOLOv3-SoftSPP 測試,剪枝比例為0.8,最終精度比YOLOv3-SPP-L1 和YOLOv3-SoftSPP-L1 分別提高了2.6%和1.8%,繼續(xù)增大剪枝比例至0.95,參數(shù)量和計算量大幅降低的同時精度達(dá)到0.62,說明基于L1 范數(shù)和均值差加權(quán)的剪枝方法要優(yōu)于傳統(tǒng)的L1范數(shù)剪枝方法。
表5 兩種剪枝算法在DIOR數(shù)據(jù)集上對比Tab.5 Comparison of two pruning algorithms on the DIOR dataset
本文對L1范數(shù)剪枝算法進(jìn)行改進(jìn),提出了基于L1范數(shù)和均值差的加權(quán)剪枝算法,實驗結(jié)果表明改進(jìn)的剪枝算法可以在大幅減少參數(shù)量和計算量的同時,還能有效地解決單一評判準(zhǔn)則所導(dǎo)致的精度下降問題。同時本文提出的YOLOv3-SoftSPP 模型能夠有效地保留目標(biāo)的深層特征,并著重突出權(quán)重較大的特征,從而提高模型的檢測精度。在三個數(shù)據(jù)集上對經(jīng)過剪枝后的稀疏模型進(jìn)行測試的結(jié)果表明,YOLOv3-SoftSPP 的檢測效果優(yōu)于YOLOv3-SPP。以上工作為星載、機(jī)載等資源約束強(qiáng)的遙感圖像處理平臺實現(xiàn)在線目標(biāo)檢測任務(wù)提供了方法基礎(chǔ)。