趙同祥,張瑞全,高樹(shù)靜,牛志剛
(青島科技大學(xué)信息科學(xué)技術(shù)學(xué)院,山東青島 266061)
隨著我國(guó)在衛(wèi)星和遙感成像技術(shù)領(lǐng)域的飛速發(fā)展,光學(xué)遙感圖像的信息量和準(zhǔn)確度踏上了更高的臺(tái)階。近年來(lái)卷積神經(jīng)網(wǎng)絡(luò)廣泛應(yīng)用于遙感目標(biāo)檢測(cè)領(lǐng)域,在檢測(cè)精度不斷提高的同時(shí),由于不斷增加網(wǎng)絡(luò)模型深度,導(dǎo)致算法模型計(jì)算量大、檢測(cè)速度慢、資源消耗大,不利于目標(biāo)檢測(cè)模型在終端設(shè)備上的移植。
在遙感目標(biāo)檢測(cè)中,遙感圖像往往場(chǎng)景多變、特征不明顯,Xu D 等[1-9]針對(duì)遙感目標(biāo)分布密集、背景復(fù)雜等問(wèn)題,對(duì)特征提取網(wǎng)絡(luò)進(jìn)行了重新設(shè)計(jì),均有效提高了模型在復(fù)雜環(huán)境背景下目標(biāo)檢測(cè)的性能,但隨著算法檢測(cè)性能的不斷提高,其模型參數(shù)以及計(jì)算量的大幅增加,限制了向硬件資源有限的設(shè)備上的移植。高凡等[10-13]在YOLOv3[14]的基礎(chǔ)上進(jìn)行了改進(jìn),利用輕量化網(wǎng)絡(luò)MobileNet 代替DarkNet53,減小了模型的規(guī)模和計(jì)算量。但隨著網(wǎng)絡(luò)模型規(guī)模的縮減,算法模型對(duì)目標(biāo)特征的利用率下降,造成了檢測(cè)精度不同程度的降低。
如果能夠獲得參數(shù)量相對(duì)較少且性能較為良好的YOLOv5 網(wǎng)絡(luò),這將極大地降低向存儲(chǔ)與運(yùn)算能力有限的設(shè)備移植的限制。故改進(jìn)算法在YOLOv5基礎(chǔ)上結(jié)合DenseNe(t密集網(wǎng)絡(luò))的特點(diǎn),將主干網(wǎng)絡(luò)部分改進(jìn)的CSP 模塊進(jìn)行雙密集連接,模型結(jié)構(gòu)如圖1 所示;用于目標(biāo)檢測(cè)的錨框(anchor)采用K-means++重新聚類(lèi)以加快網(wǎng)絡(luò)收斂;為了適應(yīng)改進(jìn)網(wǎng)絡(luò)快速目標(biāo)檢測(cè)的需求,將網(wǎng)絡(luò)中CBL 模塊的Leaky RelU 激活函數(shù)替換成H-swish 激活函數(shù),達(dá)到了速度與精度之間的平衡。
圖1 DN-YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)圖
由于YOLOv5 代碼中用于自適應(yīng)錨框計(jì)算的K-means 算法存在一定的局限性,其對(duì)K個(gè)初始點(diǎn)的選擇十分敏感,選擇的K個(gè)初始點(diǎn)對(duì)最后的聚類(lèi)結(jié)果和運(yùn)行時(shí)間都有很大的影響。因此將K-means聚類(lèi)算法改進(jìn)為適合于YOLOv5 的K-means++算法。該聚類(lèi)算法的距離度量函數(shù)由使用歐氏距離進(jìn)行分簇改進(jìn)為IOU 作為衡量標(biāo)準(zhǔn)進(jìn)行分簇,由一次性選擇K個(gè)初始點(diǎn)改進(jìn)為逐個(gè)初始點(diǎn)輸入計(jì)算,減小原始聚類(lèi)算法一次性選擇K個(gè)初始點(diǎn)對(duì)結(jié)果的影響程度。通過(guò)K-means++聚類(lèi)算法計(jì)算輸出不同大小、不同數(shù)量的預(yù)測(cè)框,盡可能提高預(yù)測(cè)框與GT 框匹配度,縮短訓(xùn)練時(shí)間。
使用K-means++算法對(duì)數(shù)據(jù)集中的目標(biāo)邊框大小重新聚類(lèi),當(dāng)錨框聚類(lèi)數(shù)目在1~9 個(gè)時(shí),avg_iou 大體呈上升趨勢(shì),聚類(lèi)數(shù)目在9 個(gè)之后,avg_iou 增長(zhǎng)逐漸放緩。因此在權(quán)衡了計(jì)算效率與準(zhǔn)確率后,選擇了9 個(gè)不同尺度的錨框分到三種尺度不等的預(yù)測(cè)分支上,如表1 所示。
表1 三種尺度的錨框
YOLOv5 引入了CSP1_X[15]和CSP2_X 結(jié)構(gòu),其 中CSP1_X 應(yīng)用于Backbone 主干網(wǎng)絡(luò),由于主干網(wǎng)絡(luò)較深,增加Resuni(t殘差結(jié)構(gòu))可以增加層與層反向傳播的梯度值,以緩解網(wǎng)絡(luò)較深帶來(lái)的梯度消失問(wèn)題。在進(jìn)一步權(quán)衡檢測(cè)精度和速度后,降低模型大小,該文將CSP1_X 結(jié)構(gòu)進(jìn)行調(diào)整,將原來(lái)一個(gè)分支上的卷積操作去除,從原先的雙分支結(jié)構(gòu)重新設(shè)計(jì)為單分支結(jié)構(gòu),以減少卷積操作產(chǎn)生的參數(shù)量從而降低模型大小,如圖2 所示。
圖2 基于YOLOv5的CSP1_X模塊更改方案示意圖
由于主干網(wǎng)絡(luò)中改進(jìn)的CSP 模塊數(shù)量較少,采用密集連接優(yōu)勢(shì)不明顯,特征信息無(wú)法充分的復(fù)用,因此通過(guò)增加CSP1_X 模塊、采用密集連接的方式,充分發(fā)揮密集連接的優(yōu)勢(shì),在加強(qiáng)特征學(xué)習(xí)能力的同時(shí)根據(jù)DenseNet[16]自身的優(yōu)勢(shì)避免大量參數(shù)的產(chǎn)生。另外,由于參數(shù)減少,密集連接具有正則化的效果,有利于抑制過(guò)擬合現(xiàn)象。改進(jìn)算法的主干網(wǎng)絡(luò)部分采用DenseNet 密集連接的思想,每一個(gè)卷積層的輸入來(lái)自于之前卷積層的輸出,即創(chuàng)建從early layers 到later layers 的短路徑,這種緊密的連接方式,每層相當(dāng)于直接連接了輸入和損失函數(shù),緩解了輸入特征與梯度信息在較深的網(wǎng)絡(luò)中傳播而產(chǎn)生的梯度消失現(xiàn)象,使得有效的特征在密集連接的模塊之間傳輸時(shí)得以最大程度保留。
文中采用了雙密集連接,即對(duì)前兩層的CSP 結(jié)構(gòu)分別進(jìn)行了密集連接,后面的CSP 結(jié)構(gòu)都有來(lái)自前兩層的短路徑,一方面加強(qiáng)對(duì)淺層小目標(biāo)的提取和復(fù)用,少量的卷積核生成大量的特征,最終模型由原先的90.9 MB 壓縮為48.0 MB;另一方面避免了所有層之間密集連接造成參數(shù)增多的問(wèn)題,主干網(wǎng)絡(luò)部分的密集連接如圖3 所示,替換原始模型的Backbone 后如圖1 所示。
圖3 DN-YOLOv5之Backbone部分改進(jìn)方案示意
為了加快網(wǎng)絡(luò)檢測(cè)速度,該文將網(wǎng)絡(luò)中的Leaky RelU 激活函數(shù)改進(jìn)為H-swish[17]激活函數(shù),減少對(duì)內(nèi)存的訪問(wèn)次數(shù),降低延遲。
Swish 激活函數(shù)公式如式(1)所示:
其中,1/(1+e-x)就是Sigmoid 函數(shù)。當(dāng)網(wǎng)絡(luò)較淺時(shí),Swish 只稍微優(yōu)于Leaky ReLU 激活函數(shù),但當(dāng)網(wǎng)絡(luò)較深時(shí),使用Swish 激活函數(shù)的測(cè)試準(zhǔn)確度遠(yuǎn)高于使用Leaky ReLU 激活函數(shù)。這主要得益于Swish 無(wú)上界有下界、非單調(diào)且平滑的特性。雖然Swish 顯著提高了神經(jīng)網(wǎng)絡(luò)的準(zhǔn)確性,但是在嵌入式環(huán)境中,其成本是非零的,因?yàn)樵谝苿?dòng)設(shè)備上計(jì)算Sigmoid 函數(shù)需要較大的代價(jià)。該實(shí)驗(yàn)鑒于降低成本的考慮,將CBL 模塊的激活函數(shù)由Leaky ReLU 替換為Hswish,其公式如式(2)所示:
其中,ReLU6 是普通的ReLU 非線性激活函數(shù),但是其限制最大輸出為6。Swish 與H-swish 有著很好的匹配,而且在精度上無(wú)明顯的差異。從部署角度來(lái)看,H-swish 有著明顯的優(yōu)勢(shì):第一,幾乎所有軟硬件框架都可以使用ReLU6 實(shí)現(xiàn);第二,它消除了因?yàn)镾igmoid 問(wèn)題引發(fā)的數(shù)值精度損失;第三,H-swish是一個(gè)分段函數(shù),減少了對(duì)內(nèi)存的訪問(wèn)次數(shù),從而降低了延遲。
實(shí)驗(yàn)選用DIOR 遙感數(shù)據(jù)集[18]中4 234 張含有飛機(jī)、艦船、儲(chǔ)罐、車(chē)輛等十類(lèi)目標(biāo)的遙感圖像進(jìn)行訓(xùn)練和測(cè)試,按照8∶1∶1 劃分為訓(xùn)練集、驗(yàn)證集和測(cè)試集。
實(shí)驗(yàn)采用精確率(Precision)、召回率(Recall)、平均精準(zhǔn)度AP (Average Precision)、均值平均精度mAP(mean Average Precision)作為評(píng)價(jià)指標(biāo)與原始模型測(cè)試結(jié)果進(jìn)行對(duì)比。
該實(shí)驗(yàn)網(wǎng)絡(luò)模型訓(xùn)練參數(shù)設(shè)置如下:圖像尺寸(img_size)調(diào)整為640×640,初始學(xué)習(xí)率為0.01,訓(xùn)練迭代數(shù)(epoch)為500,batch_size 為4,權(quán)重衰減系數(shù)(weight_decay)為0.000 5,學(xué)習(xí)率動(dòng)量(momen-tum)為0.937。
原始模型與改進(jìn)模型的精確度(Precision)和召回率(Recall)曲線分別如圖4(a)、(b)所示。原始模型的召回率在epoch 為100 到500 區(qū)間內(nèi)維持在85%上下且波動(dòng)幅度不大,改進(jìn)模型的召回率也較好地維持在85%較小的波動(dòng)范圍內(nèi)。原始模型的精確率在迭代500 輪時(shí)穩(wěn)定在76.03%左右,改進(jìn)模型的精確率在迭代500 輪時(shí)穩(wěn)定在74.17%左右。
圖4 原始模型和改進(jìn)模型的召回率(Recall)與精確度(Precision)曲線圖
根據(jù)上述參數(shù)設(shè)置對(duì)模型進(jìn)行訓(xùn)練,如圖5 所示,改進(jìn)模型與原始模型的訓(xùn)練集總損失曲線大體趨于相似,YOLOv5 原始算法初始Loss 為0.238 4,改進(jìn)算法初始Loss 為0.239 6,二者Loss 整體呈下降趨勢(shì);當(dāng)epoch等于100時(shí),原始算法的Loss為0.080 48,改進(jìn)算 法的Loss 為0.071 61;最后epoch 在500 左右時(shí),原始算法的Loss 穩(wěn)定在0.031 左右,改進(jìn)算法的Loss 穩(wěn)定在0.038 左右。由于改進(jìn)模型加入了雙密集連接,通過(guò)K-means++重新聚類(lèi)錨框使得預(yù)測(cè)框與GT 框具有更高的匹配度,因此最終的Loss 損失值也十分接近于原始算法最終的Loss。
圖5 訓(xùn)練集總損失曲線
為了驗(yàn)證提出的改進(jìn)算法具有更好的檢測(cè)效果,在相同實(shí)驗(yàn)配置的環(huán)境下,采用相同的數(shù)據(jù)集,對(duì)原始模型與改進(jìn)后的模型進(jìn)行對(duì)比實(shí)驗(yàn)。由表2可以看出,DN-YOLOv5 相比較于原始YOLOv5 模型,大小由90.9 MB 縮減為48.0 MB,減小了約47.2%;推理時(shí)延由55.2 ms 縮減為33.8 ms,推理加速了約39%;參數(shù)量減少了約65%,計(jì)算量下降了約68.7%。相較于現(xiàn)階段的主流檢測(cè)算法,DN-YOLOv5 具有良好的性能,在縮減了模型大小后,檢測(cè)速度與精度之間取得了良好的平衡。原始模型與改進(jìn)算法的各物體目標(biāo)的AP 值如表3 所示。
表2 模型推理比較
表3 各物體目標(biāo)的AP值
文中提出了一種基于DN-YOLOv5 的快速遙感目標(biāo)檢測(cè)方法,對(duì)原始主干網(wǎng)絡(luò)部分的CSP1_X 模塊進(jìn)行輕量化的改進(jìn),鑒于密集網(wǎng)絡(luò)具有加強(qiáng)特征復(fù)用、參數(shù)少的優(yōu)點(diǎn),在主干網(wǎng)絡(luò)部分進(jìn)行了雙密集連接,并適當(dāng)?shù)卦黾恿薈SP1_X 模塊的數(shù)量以適應(yīng)密集連接;為了提高預(yù)測(cè)框與GT 框的匹配度,加快收斂,提高檢測(cè)精度,該實(shí)驗(yàn)采用K-means++聚類(lèi)算法對(duì)錨框重新聚類(lèi)優(yōu)化;并將算法中的Leaky ReLU 激活函數(shù)改進(jìn)為H-swish 激活函數(shù),進(jìn)一步了提高檢測(cè)速度。
實(shí)驗(yàn)結(jié)果表明,壓縮后的模型均值平均檢測(cè)精度(mAP)僅下降1.05%,模型體積卻減少了47.2%,幀率(FPS)提高了57.44%。新的模型體積小、效率高,提高了對(duì)移動(dòng)端等硬件資源有限設(shè)備的適應(yīng)性。經(jīng)過(guò)改進(jìn)的算法,依然具有壓縮模型和提升檢測(cè)速率的空間,仍需進(jìn)一步的研究改進(jìn)。