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