摘 要:針對無人機(jī)嵌入式平臺計算資源受限的挑戰(zhàn),為實現(xiàn)高準(zhǔn)確率和輕量化的實時無人機(jī)航拍目標(biāo)檢測,提出了改進(jìn)YOLOv8 的輕量級航拍目標(biāo)檢測算法。引入分離增強(qiáng)注意力模塊(Separated and Enhancement Attention Module,SEAM) 緩解航拍圖像中的目標(biāo)遮擋問題;增設(shè)針對小目標(biāo)的檢測層,提高小目標(biāo)的檢測精度;將Ghost 模塊融入C2f 模塊,形成C2fGhost 模塊,顯著降低了模型參數(shù)量;對改進(jìn)網(wǎng)絡(luò)進(jìn)行全局通道剪枝,在保證檢測準(zhǔn)確率的同時進(jìn)一步壓縮模型參數(shù)量;將剪枝后的模型部署于Jetson Xavier NX 嵌入式平臺,使用TensorRT 加速模型推理。在VisDrone2019 數(shù)據(jù)集上進(jìn)行實驗,綜合指標(biāo)超越了對比算法,平均檢測精度達(dá)到53. 6% ,提升了4. 1% ,模型參數(shù)量和計算量分別減少88. 4% 和50. 1% ,在嵌入式平臺上檢測速度為24. 17 幀/ 秒,驗證了該方法的有效性。
關(guān)鍵詞:目標(biāo)檢測;航拍圖像;YOLOv8;模型剪枝;TensorRT 加速
中圖分類號:TP391. 4 文獻(xiàn)標(biāo)志碼:A
文章編號:1003-3106(2024)12-2880-08
0 引言
隨著無人機(jī)技術(shù)的快速發(fā)展,無人機(jī)航拍在民用監(jiān)控、災(zāi)害評估和偵察等領(lǐng)域得到了廣泛應(yīng)用。在這些應(yīng)用中,目標(biāo)檢測作為關(guān)鍵技術(shù)之一,對于實現(xiàn)無人機(jī)航拍的智能化和自動化至關(guān)重要。目標(biāo)檢測是計算機(jī)視覺的經(jīng)典任務(wù),旨在定位圖像中存在物體的位置并識別物體的具體類別[1]。然而,由于小目標(biāo)本身尺度小,在圖像中所含信息量較少,容易造成目標(biāo)模糊、細(xì)節(jié)特征不明顯,制約著小目標(biāo)檢測性能的進(jìn)一步發(fā)展[2]。
早期的研究主要集中在傳統(tǒng)的圖像處理技術(shù)上,如背景減除、幀間差分、光流法等。這些方法在簡單場景下取得了一定的效果,但在復(fù)雜背景下,由于光照變化、目標(biāo)遮擋等因素的影響,檢測性能往往受到限制。
隨著深度學(xué)習(xí)技術(shù)的迅速崛起,基于深度學(xué)習(xí)的目標(biāo)檢測算法在無人機(jī)航拍領(lǐng)域取得了令人矚目的成果。目前,主流的目標(biāo)檢測策略主要分為TwoStage 和OneStage 兩大類。TwoStage 策略以區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(Regionbased Convolutional Neural Network,RCNN)[3]系列為代表,首先,生成一系列候選框,隨后利用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)進(jìn)行分類和回歸來完成目標(biāo)檢測任務(wù)。
為了提高檢測效率,Fast RCNN[4]和Faster RCNN[5]等優(yōu)化算法也相繼問世,它們在保持檢測精度的同時,顯著提升了檢測速度。Mittal 等[6]提出一種高效的特征金字塔網(wǎng)絡(luò)對Cascade RCNN 進(jìn)行改進(jìn),提高網(wǎng)絡(luò)對小尺寸和各種尺度的物體的檢測能力。
OneStage 策略則以YOLO 系列為代表,摒棄了復(fù)雜的候選框生成過程,直接在單次前向傳播中同時完成目標(biāo)的分類和定位任務(wù),具有更快的檢測速度。從2016 年的YOLOv1[7]到2023 年的YOLOv8[8],該系列算法高速迭代更新,不僅大幅提高了預(yù)測準(zhǔn)確率,還提升了速度。韓俊等[9]構(gòu)造了多尺度特征提取模塊LMfem 和混合域注意力模塊SECA,增強(qiáng)了YOLOv5 的特征提取能力。劉展威等[10]添加小目標(biāo)檢測層和BiFPN 結(jié)構(gòu),提升了YOLOv5 對小目標(biāo)的檢測精度。Liu 等[11]提出了EdgeYOLO 框架,提出了一種更輕、更高效的解耦頭,可部署在邊緣計算平臺。
與此同時,為了在嵌入式邊緣設(shè)備和移動設(shè)備上實現(xiàn)更優(yōu)的實時性能,研究人員提出了諸如MobileNet[12-14]、ShuffleNet[15]和GhostNet[16]等輕量級網(wǎng)絡(luò)結(jié)構(gòu)。Lee 等提出基于幅度的層自適應(yīng)剪枝(Layeradaptive Magnitudebased Pruning,LAMP)[17]算法,通過引入基于層自適應(yīng)幅值的剪枝分?jǐn)?shù)來減少權(quán)重,進(jìn)一步降低模型參數(shù)量和計算量。通過TensorRT 等高性能深度學(xué)習(xí)推理框架,可以在保證精度的情況下實現(xiàn)推理加速。
然而,盡管基于深度學(xué)習(xí)的目標(biāo)檢測算法在無人機(jī)航拍目標(biāo)檢測領(lǐng)域取得了顯著進(jìn)展,但依舊不能在保證高檢測精度的同時滿足實時性的要求,因此本文提出了一種改進(jìn)YOLOv8 的輕量級航拍目標(biāo)檢測算法。具體改進(jìn)包括:① 在網(wǎng)絡(luò)Neck 與Head之間加入分離增強(qiáng)注意力模塊(Separated and Enhancement Attention Module,SEAM),增強(qiáng)網(wǎng)絡(luò)對遮擋情況的檢測能力;② 增加針對小目標(biāo)的P2 檢測層,并去除P5 檢測層;③ 使用Ghost BottleNeck 對C2f 模塊進(jìn)行改進(jìn),減少模型參數(shù)和計算量;④ 對改進(jìn)后的網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行全局通道剪枝,進(jìn)一步壓縮模型;⑤ 在NVIDIA Jetson Xavier NX 嵌入式平臺上部署剪枝后的模型,并使用TensorRT 推理加速。實驗證明,本文提出的改進(jìn)方法滿足高檢測精度和實時性的要求,能實時運(yùn)行在嵌入式邊緣設(shè)備上,具有實際應(yīng)用價值。
1 YOLOv8 算法
YOLOv8 是目前最新版本的YOLO 目標(biāo)檢測模型,與之前版本的架構(gòu)保持相同,包括輸入、Backbone、Neck 和Head 四部分,并基于縮放系數(shù)提供了N / S / M / L / X 不同尺度的模型,以滿足多樣的應(yīng)用場景需求。
Input 部分對輸入圖像進(jìn)行Mosaic 數(shù)據(jù)增強(qiáng)和尺寸自適應(yīng)縮放等預(yù)處理后,輸入到Backbone 模塊。Backbone 主要負(fù)責(zé)將輸入的圖像轉(zhuǎn)換為具有語義信息的特征圖,用于后續(xù)的識別任務(wù)。Neck 部分依舊采用了PANFPN 結(jié)構(gòu)進(jìn)行多尺度特征融合,將底層具有豐富輪廓等信息的特征圖與高層具有豐富語義信息的特征圖相融合,最終輸出80 pixel ×80 pixel、40 pixel×40 pixel、20 pixel×20 pixel 三種不同尺度的特征圖,用以分別預(yù)測小、中、大3 種目標(biāo)。在Backbone 和Neck 部分,采用了梯度流更豐富的C2f 結(jié)構(gòu)替代了YOLOv5 的C3 結(jié)構(gòu)。Head 部分,YOLOv8 采用了解耦頭結(jié)構(gòu),負(fù)責(zé)將Neck 部分輸出的特征進(jìn)行解耦,得到目標(biāo)的類別和位置信息。
對于無人機(jī)航拍圖像場景,YOLOv8N 與S 模型較輕量,但是檢測精度低,而L 和X 尺度的模型太大,不適合部署在嵌入式邊緣設(shè)備。因此本文基于YOLOv8M 模型,進(jìn)一步提升其檢測精度,并壓縮了模型參數(shù)。
2 改進(jìn)YOLOv8 算法
無人機(jī)航拍圖像中小目標(biāo)實例多、尺寸變化大且目標(biāo)之間存在遮擋等問題,導(dǎo)致檢測精度低,因此本文提出改進(jìn)YOLOv8 算法,其網(wǎng)絡(luò)架構(gòu)如圖1 所示。主要包括以下改進(jìn)策略:為減輕目標(biāo)遮擋帶來的問題,在Neck 后面加入SEAM;增加針對小目標(biāo)的P2 檢測層,增大特征圖分辨率,進(jìn)而提升小目標(biāo)的檢測精度;使用輕量的Ghost BottleNeck 優(yōu)化C2f模塊,減小模型參數(shù)量和計算量;最后對改進(jìn)后網(wǎng)絡(luò)進(jìn)行剪枝和嵌入式部署。