潘 瑋,韋 超,錢春雨,楊 哲
蘇州大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 蘇州 215006
在無(wú)人機(jī)(unmanned aerial vehicle,UAV)平臺(tái)上,通過(guò)機(jī)載相機(jī)捕捉的實(shí)時(shí)畫面進(jìn)行目標(biāo)檢測(cè),在緊急救援、邊境巡邏、測(cè)繪評(píng)估、環(huán)境檢測(cè)等領(lǐng)域有著廣泛的應(yīng)用。從無(wú)人機(jī)視角進(jìn)行目標(biāo)檢測(cè),常常擁有復(fù)雜的環(huán)境背景,一般以俯視角拍攝,目標(biāo)尺寸通常很小且相對(duì)模糊,還會(huì)有巨大的角度變化。而且由于無(wú)人機(jī)的硬件條件限制了模型的規(guī)模,導(dǎo)致檢測(cè)效果并不理想。
目前,以深度學(xué)習(xí)為基礎(chǔ)的目標(biāo)檢測(cè)算法可以分為兩類,一類是基于回歸的單階段(one-stage)算法,如Centernet[1]、RetinaNet[2]、SSD 系列[3]、YOLO 系列[4-6]等;另一類是基于區(qū)域建議的兩階段(two-stage)算法,如R-CNN[7]、Fast R-CNN、Faster R-CNN[8]等。兩階段算法檢測(cè)速度慢,不適用于無(wú)人機(jī)視角的實(shí)時(shí)檢測(cè);單階段算法實(shí)時(shí)性好,但是精度低,尤其對(duì)小目標(biāo)的檢測(cè)方面需要優(yōu)化。
目前,性能較好的YOLO系列模型已廣泛應(yīng)用于其他領(lǐng)域的檢測(cè)任務(wù)中,如何使用YOLO進(jìn)行無(wú)人機(jī)視角下的目標(biāo)檢測(cè),既保證目標(biāo)檢測(cè)的精度,又能保持較小的模型規(guī)模,是目前的研究難點(diǎn)。陳衛(wèi)彪等人[9]在YOLOv5 基礎(chǔ)上采用深度可分離多頭網(wǎng)絡(luò)結(jié)構(gòu),降低了模型參數(shù)量和體積。陳范凱等人[10]引入上采樣算子CARAFE(content-aware reassembly of features),加強(qiáng)高、低分辨率特征圖之間的融合,使小目標(biāo)檢測(cè)效果有所提升。劉濤等人[11]根據(jù)無(wú)人機(jī)視角圖像分布密集的特點(diǎn),重新聚類錨框,并融合通道注意力機(jī)制構(gòu)建SEC2f 模塊,實(shí)現(xiàn)更精準(zhǔn)地檢測(cè)。Li 等人[12]在YOLOv8中引入Bi-PAN-FPN 的思想提高不同尺度間的特征融合,并用GhostblockV2 結(jié)構(gòu)代替部分卷積模塊,得到了精度上的大幅提升,但在所有的小目標(biāo)類別中無(wú)法獲得比其他模型更好的結(jié)果。Lou等人[13]提出一種新的下采樣方法,并改造YOLOv8 的特征融合網(wǎng)絡(luò),提升對(duì)密集小目標(biāo)的檢測(cè)能力,但總體提升效果不是很高。Guo等人[14]提出一種密集連接機(jī)制,設(shè)計(jì)新的網(wǎng)絡(luò)結(jié)構(gòu)模塊C3D替換YOLOv8中的C2f以更全面地保留信息,但是提升了計(jì)算量。Wang等人[15]針對(duì)無(wú)人機(jī)圖像的小目標(biāo)特點(diǎn),在YOLOv8 的Neck 中嵌入小目標(biāo)檢測(cè)結(jié)構(gòu)STC(small target detection structure),充分捕獲全局信息和上下文信息,并引入全局注意力GAM 減少采樣過(guò)程中特征信息的丟失,得到較高的性能提升,但是導(dǎo)致了大幅增加的參數(shù)量。Wang等人[16]融合了BiFormer注意力機(jī)制優(yōu)化骨干網(wǎng)絡(luò),并提出FFNB(focal FasterNet block)特征處理模塊,增加了兩個(gè)新的檢測(cè)尺度,實(shí)現(xiàn)五個(gè)尺度進(jìn)行檢測(cè),大大降低漏檢率,但對(duì)于自行車等很小物體的檢測(cè)精度仍然不高。
盡管上述方法在一定程度上提升了無(wú)人機(jī)目標(biāo)檢測(cè)的性能,但由于無(wú)人機(jī)視角圖像數(shù)據(jù)集的復(fù)雜性與特殊性、無(wú)人機(jī)硬件平臺(tái)的限制性,難以平衡檢測(cè)性能和硬件資源消耗的關(guān)系。本文以YOLOv8s 模型為基礎(chǔ),提出一種融合了多種注意力機(jī)制的改進(jìn)模型,在無(wú)人機(jī)硬件資源受限的情況下,提升模型的檢測(cè)性能。首先,引入由RFAConv 改進(jìn)后的RFCBAM 模塊替換骨干中的卷積,并改造主干中的C2f 模塊加強(qiáng)特征提取能力;其次,使用大型可分離卷積注意力改造金字塔池化層,并增加一個(gè)小目標(biāo)檢測(cè)層,加強(qiáng)特征融合能力;最后,使用inner-IoU 改造后的innner-MPDIoU 損失函數(shù)改善檢測(cè)邊框回歸效果。
YOLOv8 是ultralytics 公司在2023 年1 月發(fā)布的最新YOLO 模型,從小到大有v8n、v8s、v8m、v8l、v8x 五個(gè)版本。隨著模型大小的提高,模型精度不斷提升,可以根據(jù)任務(wù)需要選擇不同深度和寬度的網(wǎng)絡(luò)模型進(jìn)行目標(biāo)檢測(cè)、圖像分類、實(shí)例分割、關(guān)鍵點(diǎn)檢測(cè)任務(wù)。目前的YOLOv8模型仍在不斷更新中,本文采用YOLOv8.0.202版本。
基于無(wú)人機(jī)設(shè)備的硬件限制,本文選取體積小、精度高的YOLOv8s模型,它主要由骨干網(wǎng)絡(luò)(Backbone)、頸部(Neck)、檢測(cè)頭(Head)三部分組成。
Backbone部分主要進(jìn)行特征提取,采用了Darknet-53框架,引入了全新的C2f(CSPLayer_2Conv)模塊進(jìn)行殘差學(xué)習(xí),借鑒了CSP 和ELAN,采用更多的跳層連接和額外的Split 操作,將梯度變化從頭到尾集成到特征圖中。Conv卷積模塊和C2f模塊串行疊加4次,每疊加一次稱為一個(gè)stage。最后采用YOLOv5 等架構(gòu)采用的SPPF(spatial pyramid pooling fusion)模塊,固定不同尺度特征圖的向量大小。
Neck部分主要進(jìn)行特征融合,同樣使用C2f模塊替換C3 模塊,采用PAN(path aggregation networks)-FPN(feature pyramid networks)的思想,實(shí)現(xiàn)自上向下和自下向上的特征金字塔。同時(shí),YOLOv8去除了YOLOv5、YOLOv6中上采樣前的1×1卷積,直接對(duì)Backbone不同階段輸出的特征進(jìn)行上采樣操作。
Head 部分變化較大,由YOLOv5 的anchor-based 耦合頭變成anchor-free 的解耦頭,不再有objectness 分支,僅有解耦的分類分支和使用DFL(distribution focal loss)的回歸分支。
作為最后的預(yù)測(cè)部分,Head 部分包含了三個(gè)擁有不同尺寸特征圖的檢測(cè)頭來(lái)對(duì)不同大小的目標(biāo)物體進(jìn)行檢測(cè)輸出。
面對(duì)低空無(wú)人機(jī)數(shù)據(jù)集中目標(biāo)所占像素少、分布密集、類別不均衡的問(wèn)題,原始的YOLOv8s 存在漏檢誤檢、精度低的問(wèn)題。針對(duì)低空無(wú)人機(jī)數(shù)據(jù)集特點(diǎn),做出以下改進(jìn):
(1)使用RFAConv改造CBAM得到的RFCBAM模塊替換骨干中的卷積,以及設(shè)計(jì)全新的模塊C2f_RFCBAM替換骨干中的C2f,增強(qiáng)網(wǎng)絡(luò)骨干的特征提取能力。
(2)將LSKA(large separable kernel attention)融合到SPPF(spatial pyramid pooling fusion)中,提升不同特征層間的語(yǔ)義融合。
(3)根據(jù)無(wú)人機(jī)視角圖像的小目標(biāo)特點(diǎn),改善頸部結(jié)構(gòu),增加具有豐富小目標(biāo)語(yǔ)義信息的特征層,四個(gè)檢測(cè)頭輔助進(jìn)行目標(biāo)檢測(cè)任務(wù)。
(4)用inner-IoU 損失函數(shù)的思想改造MPDIoU,以inner-MPDIoU 作為模型邊框回歸的損失函數(shù),提升對(duì)困難小樣本的學(xué)習(xí)能力。改進(jìn)后的模型網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 改進(jìn)的YOLOv8s模型結(jié)構(gòu)Fig.1 Structure of improved YOLOv8s network
感受野注意力卷積(receptive-field attention convolutional operation,RFAConv)[17]是在關(guān)注空間注意力特征的基礎(chǔ)上,將注意力引向感受野空間特征,解決卷積核參數(shù)共享的問(wèn)題。RFAConv 以參數(shù)和計(jì)算工作量的小幅增加為代價(jià)就可以替代標(biāo)準(zhǔn)卷積,并帶來(lái)顯著性能提升。在CBAM[18](concentration-based attention module)注意力機(jī)制中,已經(jīng)從空間和通道兩個(gè)維度賦予卷積注意力權(quán)重,將CBAM 中的空間注意力機(jī)制的注意力引到感受野空間特征中,消除卷積參數(shù)共享的問(wèn)題,得到RFCBAM(receptive-field concentration-based attention module),以類似自注意力機(jī)制的方式獲得長(zhǎng)程信息依賴,提升卷積性能。
改進(jìn)后的RFCBAM模塊和原始CBAM模塊的對(duì)比如圖2 所示,不再是單獨(dú)執(zhí)行通道和空間注意力,而是兩者同時(shí)進(jìn)行加權(quán),并且為了減少計(jì)算開銷,用SE(squeeze-and-excitation)注意力替代CBAM中的通道空間注意力,去除了平均池化的分支,用分組卷積提取感受野空間特征,減少特征重疊。
圖2 CBAM與RFCBAM的結(jié)構(gòu)對(duì)比圖Fig.2 Structure comparison diagram of CBAM and RFCBAM
用RFCBAM 改造主干中的C2f 模塊的Bottleneck,可以獲得更好的特征信息,具體結(jié)構(gòu)如圖3所示。RFCBAM改造的C2f模塊主要用RFCBAM_neck替換原模塊中的Bottleneck。在RFCBAM_neck 中,依然采用兩個(gè)卷積模塊,同樣先經(jīng)過(guò)一個(gè)Conv 層,將第二個(gè)Conv 使用RFCBAM 替換。因?yàn)镽FCBAM 中就進(jìn)行了殘差信息連接的信息融合,在RFCBAM_neck中不再進(jìn)行殘差連接。YOLOv8s 模型的Backbone 主要進(jìn)行特征提取,將原始模型Backbone中的普通卷積Conv和C2f卷積全用RFCBAM、C2f_RFCBAMF 替換,在原提取機(jī)制上既增加了感受野注意力改進(jìn)后的空間特征,又增加了通道注意力,從空間和通道兩個(gè)維度增強(qiáng)模型的特征提取能力。
圖3 C2f_RFCBA模塊與子模塊示意圖Fig.3 Structure of C2f_RFCBAM and sub modules
SPPF將輸入串行通過(guò)三個(gè)5×5大小的最大池化層,每層的輸出都拼接起來(lái),得到多尺度的特征。LSKA[19]中將k×k卷積核平均分為1×k和k×1 的可分離卷積核,以級(jí)聯(lián)方式處理輸入特征,有效減少大卷積核帶來(lái)的參數(shù)量大幅增長(zhǎng)。
使用LSKA 改進(jìn)SPPF 如圖4 所示,將原始SPPF 模塊中經(jīng)過(guò)多個(gè)池化層拼接后的結(jié)果先輸入11×11 的LSKA卷積模塊,通過(guò)大型可分離卷積注意力獲得長(zhǎng)距離依賴,以更大感受野進(jìn)行特征提取,然后再通過(guò)普通卷積進(jìn)行特征融合,調(diào)整模型Backbone 部分最終輸出的特征向量大小。融合了LSKA注意力機(jī)制的SPPF層并沒(méi)有增加很多參數(shù),卻在多尺度特征中得到了更加豐富的感受野信息,有助于模型進(jìn)行更好地特征融合。
圖4 SPPF和SPPF-LSKA模塊示意圖Fig.4 Structure of SPPF and SPPF-LSKA
在無(wú)人機(jī)目標(biāo)檢測(cè)任務(wù)中,成像距離遠(yuǎn)、速度快、低空飛行等特點(diǎn)會(huì)產(chǎn)生運(yùn)動(dòng)模糊,導(dǎo)致目標(biāo)物體較小,難以捕捉特征,影響網(wǎng)絡(luò)的訓(xùn)練效率。原始的YOLOv8模型有80×80、40×40、20×20 三種保留不同尺度特征層信息的檢測(cè)頭,但模型本身經(jīng)過(guò)了高倍數(shù)下采樣后,小目標(biāo)的特征已經(jīng)不夠明顯,甚至融入背景中。
因此改造neck 增加一個(gè)具有豐富小目標(biāo)語(yǔ)義信息的特征層SODH(small object detection head)。SODH通過(guò)與backbone 中160×160 尺度的特征向量進(jìn)行殘差連接,在當(dāng)前融合全局信息的較深語(yǔ)義中加上淺層的特征信息,以160×160的大尺度可以更好地保留小目標(biāo)的相關(guān)特征信息,擴(kuò)大模型分辨率,增強(qiáng)對(duì)小目標(biāo)的感知能力,四個(gè)檢測(cè)頭共同輔助模型做出最后的檢測(cè)任務(wù)。
邊框回歸的目的是通過(guò)對(duì)檢測(cè)器輸出的檢測(cè)窗口進(jìn)行微調(diào)去接近真實(shí)檢測(cè)窗口。IoU(intersection over union)自提出后就成為了檢測(cè)領(lǐng)域預(yù)測(cè)框損失評(píng)價(jià)的主流標(biāo)準(zhǔn),其公式如式(1)所示:
基于IoU 的邊框回歸損失函數(shù)不斷迭代發(fā)展,如GIoU、DIoU、CIoU、EIoU、SIoU 等,YOLOv8s 中采用了CIoU,計(jì)算公式如式(2)所示:
這些改進(jìn)的損失函數(shù)仍一直是通過(guò)加入新?lián)p失項(xiàng)來(lái)加速收斂,并沒(méi)有意識(shí)到IoU 自身的限制。inner-IoU[20]提出以輔助邊框來(lái)計(jì)算IoU,提升泛化能力,具體計(jì)算過(guò)程如式(3)~(7)所示,用尺度因子比ratio 來(lái)控制輔助邊界框的大小。
通過(guò)式(3)、(4)可以對(duì)檢測(cè)框的中心點(diǎn)進(jìn)行一個(gè)變換得到輔助檢測(cè)框的角頂點(diǎn)。對(duì)模型輸出的預(yù)測(cè)框和真實(shí)框都做相應(yīng)變換,用bgt、bpred分別表示真實(shí)框、預(yù)測(cè)框的計(jì)算結(jié)果。
所以,如式(5)-(7)所示,inner-IoU實(shí)際上計(jì)算的是輔助邊框之間的IoU。ratio∈[0.5,1.5],ratio<1 時(shí),輔助邊框比實(shí)際邊框小,回歸的有效范圍小于IoU 損失,但梯度絕對(duì)值比IoU 損失所得的梯度大,可以加速高IoU樣本的收斂。ratio>1 時(shí),輔助邊框比實(shí)際框大,擴(kuò)大回歸的有效范圍,有益于低IoU樣本的回歸。
MPDIoU[21]是一種直接最小化預(yù)測(cè)框和真實(shí)框?qū)?yīng)左上角、右下角間點(diǎn)距離的改進(jìn)算法,對(duì)于邊界框重疊與不重疊的情況都能很好處理,提高收斂速度。
實(shí)驗(yàn)使用由天津大學(xué)機(jī)器學(xué)習(xí)與數(shù)據(jù)挖掘?qū)嶒?yàn)室所整理公開的VisDrone2019數(shù)據(jù)集[22],數(shù)據(jù)集共包含10類航拍檢測(cè)目標(biāo),包括行人、人、自行車、汽車、面包車、卡車、三輪車、遮陽(yáng)三輪車、公共汽車、摩托車,訓(xùn)練集、驗(yàn)證集、測(cè)試集分別由6 471 張、548 張、1 610 張圖片組成。數(shù)據(jù)集中,像素面積小于16×16 像素的極小目標(biāo)占比為12.05%,像素面積小于32×32 的小目標(biāo)占比為44.7%,人和行人的類別中小目標(biāo)占比更是分別高達(dá)77.45%、64.59%。訓(xùn)練集中共有353 550 個(gè)目標(biāo),其中被部分遮擋的目標(biāo)個(gè)數(shù)為142 873,被嚴(yán)重遮擋的目標(biāo)個(gè)數(shù)為33 804,近50%的目標(biāo)都被遮擋[23]。
為了驗(yàn)證改進(jìn)有效性,還使用了SHWD(safety helmet(hardhat)wearing detect dataset)數(shù)據(jù)集和CARPK 數(shù)據(jù)集。SHWD 數(shù)據(jù)集有戴頭盔和不戴頭盔的頭兩個(gè)類別,由5 944張訓(xùn)練集和1 637張驗(yàn)證集組成;CARPK數(shù)據(jù)集[24]是無(wú)人機(jī)在40 m 低空拍攝的單類別汽車檢測(cè)數(shù)據(jù)集,包含從不同停車場(chǎng)拍攝的近90 000輛汽車,由989張訓(xùn)練集和459張測(cè)試集組成。
實(shí)驗(yàn)使用的GPU為NVIDIA A100-PCIE-40 GB,使用了6 核CPU,pytorch 框架版本為2.0.0+cu117,python版本為3.9.0,cuda版本為11.7。具體的實(shí)驗(yàn)環(huán)境參數(shù)設(shè)置如表1所示。
表1 訓(xùn)練參數(shù)設(shè)置Table 1 Traning parameters setting
實(shí)驗(yàn)中所有模型的輸入圖像尺寸都為640×640,在同樣的實(shí)驗(yàn)環(huán)境下使用相同訓(xùn)練參數(shù)都訓(xùn)練300 epochs,當(dāng)模型近50輪訓(xùn)練中并沒(méi)有得到性能提升時(shí),將觸發(fā)早停機(jī)制提前結(jié)束訓(xùn)練。所有的YOLO模型在兩個(gè)數(shù)據(jù)集上均采用表1中的設(shè)置進(jìn)行訓(xùn)練。
對(duì)YOLOv8s 模型進(jìn)行改進(jìn),并對(duì)每個(gè)改進(jìn)的結(jié)果進(jìn)行統(tǒng)計(jì)分析,結(jié)果如表2所示。其中,A、B、C、D分別表示在YOLOv8s模型的基礎(chǔ)上各自加上LSKA、RFCBAM、SODH、inner-MPDIoU改進(jìn)后的實(shí)驗(yàn)結(jié)果,可以看出A、B 在僅增加少量計(jì)算量的情況下就能夠?qū)⒆⒁饬C(jī)制融入原始模型有效提升各項(xiàng)指標(biāo),mAP@0.5 分別提升0.016、0.018;C 雖然增加了較大計(jì)算量,但是模型整體大小下降0.8 MB,性能提升明顯,P、R、mAP@0.5 分別提升了0.028、0.028、0.033,有助于在實(shí)際無(wú)人機(jī)硬件上的部署;D 替換檢測(cè)框回歸的損失函數(shù),在不改變模型大小和計(jì)算量的前提下,mAP@0.5 也可以有效提升0.005。E、F、G 將不同的改進(jìn)方法分別加入模型中,都能夠在原改進(jìn)基礎(chǔ)上再次得到優(yōu)化,將這四個(gè)改進(jìn)同時(shí)加入模型的實(shí)驗(yàn)結(jié)果H,雖然P 比G 下降了0.003,但R和mAP@0.5 分別提升了0.13 和0.08,整體上替換損失函數(shù)還是提升了模型性能。與原始模型相比,H模型大小僅增加1.7 MB,但P、R、mAP@0.5 分別提升了0.047、0.051、0.063,可以更好實(shí)現(xiàn)無(wú)人機(jī)視角圖像的目標(biāo)檢測(cè)任務(wù)。
表2 消融實(shí)驗(yàn)Table 2 Ablation experiments
對(duì)于inner-MPDIoU 損失函數(shù)中的ratio,取不同值的消融實(shí)驗(yàn)結(jié)果如表3所示。
表3 ratio 消融實(shí)驗(yàn)Table 3 Ablation experiments of ratio
當(dāng)ratio=1 時(shí),inner-MPDIoU 損失函數(shù)實(shí)質(zhì)就是MPDIoU 損失函數(shù),實(shí)驗(yàn)結(jié)果表明,對(duì)于無(wú)人機(jī)視角的圖像都是小目標(biāo),標(biāo)注框略有偏移,IoU 就較低,當(dāng)ratio>1 時(shí),輔助邊框比實(shí)際框大,有益于低IoU的樣本回歸。所以在ratio>1 時(shí)的實(shí)驗(yàn)效果基本優(yōu)于ratio≤1時(shí)。當(dāng)ratio=1.4 時(shí),實(shí)驗(yàn)整體取得一個(gè)最佳的結(jié)果,但在ratio>1時(shí),效果也并不是ratio越大越好,在ratio=1.25 和ratio=1.5 時(shí),實(shí)驗(yàn)效果有所波動(dòng),ratio的具體取值需要針對(duì)實(shí)驗(yàn)數(shù)據(jù)集進(jìn)行調(diào)整。
3.3.1 改進(jìn)效果對(duì)比實(shí)驗(yàn)
為了更直觀地感受模型的改進(jìn)效果,將原模型和改進(jìn)的模型放在同樣的實(shí)驗(yàn)平臺(tái)進(jìn)行測(cè)試,效果對(duì)比如圖5所示。
圖5 改進(jìn)效果對(duì)比Fig.5 Comparison of improvement effects
可以看出改進(jìn)模型和原模型收斂的速度差不多,但是改進(jìn)模型整體性能更優(yōu),mAP曲線更為平滑,且觸發(fā)了YOLOv8s 的早停機(jī)制,近50 輪沒(méi)有優(yōu)化就提前結(jié)束了模型訓(xùn)練,節(jié)省計(jì)算資源。
為了驗(yàn)證改進(jìn)模型的檢測(cè)性能,將改進(jìn)模型與YOLOv3s、YOLOv5s、YOLOv6s等具有代表性的網(wǎng)絡(luò)以及其他針對(duì)無(wú)人機(jī)視角的YOLO改進(jìn)模型進(jìn)行對(duì)比,實(shí)驗(yàn)結(jié)果如表4 所示。YOLOv3s 總體上實(shí)現(xiàn)了最佳的性能,但是模型參數(shù)量和計(jì)算量太大,不太適用于無(wú)人機(jī)的硬件設(shè)備,且對(duì)小目標(biāo)的檢測(cè)結(jié)果APs效果不如改進(jìn)模型,而無(wú)人機(jī)視角下的圖像大多為小目標(biāo)。更輕量的模型YOLOv5s 參數(shù)小,但是在檢測(cè)性能各項(xiàng)指標(biāo)上不如其他模型,滿足不了無(wú)人機(jī)視覺(jué)檢測(cè)任務(wù)對(duì)性能的要求。
表4 算法對(duì)比實(shí)驗(yàn)Table 4 Algorithm comparative experiments
本文的改進(jìn)模型在YOLOv8s 的基礎(chǔ)上僅增加1.8 MB的模型大小,mAP、P、R分別提升了16.1%、9.3%、14.9%,特別是對(duì)于像素面積小于32×32 的小目標(biāo)檢測(cè)的性能比原模型提升了0.044,成為所有對(duì)比模型中的最佳。改進(jìn)后的模型大小和計(jì)算量比YOLOv8m 的一半還少,但除了對(duì)大目標(biāo)的檢測(cè)略低于YOLOv8m,其余性能全面超過(guò)YOLOv8m,mAP 提升了0.028。即使和參數(shù)量是本文改進(jìn)模型400%的YOLOv8l相比,也提升了P、R 和對(duì)小目標(biāo)的檢測(cè)精度APs,在無(wú)人機(jī)視角以小目標(biāo)為主的情況下,mAP 總體仍可以提升3.2%。雖然對(duì)比之下,改進(jìn)模型的FPS 有所下降,但仍在60 之上,可以較好適用于無(wú)人機(jī)的實(shí)時(shí)場(chǎng)景檢測(cè)。目前小型無(wú)人機(jī)基本都滿足30 FPS 的拍攝,追求更流暢畫質(zhì)的升級(jí)款可以實(shí)現(xiàn)50 FPS 甚至60 FPS,但高幀數(shù)的畫質(zhì)會(huì)大大占用存儲(chǔ)內(nèi)存,非商業(yè)需要的拍攝基本采用50幀以下。針對(duì)無(wú)人機(jī)平臺(tái)硬件空間小、算力低的情況,本文的改進(jìn)模型不僅模型占用硬件空間小,滿足實(shí)時(shí)畫面的幀率,而且提升了檢測(cè)性能,可以更好實(shí)現(xiàn)檢測(cè)任務(wù)。
3.3.2 通用性對(duì)比實(shí)驗(yàn)
盡管本文實(shí)驗(yàn)圍繞YOLOv8s,其模型大小和性能更適配于無(wú)人機(jī)的硬件條件,但為了驗(yàn)證模型改進(jìn)的有效性,不僅適用于YOLOv8s,對(duì)其他規(guī)模的YOLOv8模型做實(shí)驗(yàn)驗(yàn)證如表5 所示。實(shí)驗(yàn)證明,在YOLOv8n、YOLOv8s、YOLOv8m 上應(yīng)用本文改進(jìn)方法,各方面指標(biāo)都能有效提升。但考慮到無(wú)人機(jī)的實(shí)際硬件情況,仍應(yīng)以YOLOv8s為宜。
表5 YOLO驗(yàn)證實(shí)驗(yàn)Table 5 Validation experiments on YOLO
在CARPK數(shù)據(jù)集上,用改進(jìn)方法分別在YOLOv8n、YOLOv8s、YOLOv8m 上進(jìn)行實(shí)驗(yàn),驗(yàn)證改進(jìn)對(duì)無(wú)人機(jī)視角下目標(biāo)檢測(cè)的普適性,實(shí)驗(yàn)結(jié)果如表6所示。
表6 在CARPK數(shù)據(jù)集上驗(yàn)證實(shí)驗(yàn)Table 6 Validation experiments on CARPK
實(shí)驗(yàn)證明,改進(jìn)方法不僅僅是針對(duì)VisDrone 數(shù)據(jù)集,在其他無(wú)人機(jī)視角下的數(shù)據(jù)集上,改進(jìn)算法也同樣有效。將改進(jìn)方法應(yīng)用于YOLOv8n和YOLOv8s上,都能夠全面實(shí)現(xiàn)模型性能提升。但值得注意的是,由于CARPK數(shù)據(jù)集是小規(guī)模的單類別數(shù)據(jù)集,較為簡(jiǎn)單,在太復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)上如YOLOv8m 上已經(jīng)出現(xiàn)了性能退化,YOLOv8m的P、mAP@0.5:0.95已經(jīng)低于YOLOv8s,改進(jìn)的方法用于YOLOv8m 使網(wǎng)絡(luò)更復(fù)雜,使得R、mAP@0.5出現(xiàn)下降,但是還是提升了P、mAP@0.5:0.95。
在SHWD 數(shù)據(jù)集上,采用改進(jìn)方法在YOLOv8n、YOLOv8s、YOLOv8m 進(jìn)行實(shí)驗(yàn),驗(yàn)證改進(jìn)對(duì)小目標(biāo)的普適性,實(shí)驗(yàn)結(jié)果如表7所示。
表7 在SHWD數(shù)據(jù)集上驗(yàn)證實(shí)驗(yàn)Table 7 Validation experiments on SHWD
實(shí)驗(yàn)證明,本文對(duì)模型的改進(jìn)方法不僅僅是針對(duì)無(wú)人機(jī)視覺(jué)的特定種類目標(biāo)檢測(cè)任務(wù),對(duì)于小目標(biāo)數(shù)據(jù)集都能夠?qū)崿F(xiàn)有效提升。在SHWD 數(shù)據(jù)集上,盡管原始模型的精度已經(jīng)很高,本文改進(jìn)方法仍然能在較高水平的基礎(chǔ)上將n、s、m三種規(guī)格的原始模型的P、R、mAP@0.5、mAP@0.5:0.95 進(jìn)行提升,如改進(jìn)后YOLOv8n 分別提升了1.1%、7%、2.7%、2.2%,使得YOLOv8n的性能接近YOLOv8s。
圖6、圖7分別展示了YOLOv8s原始模型和本文的改進(jìn)模型在同一實(shí)驗(yàn)條件和參數(shù)下訓(xùn)練后,對(duì)無(wú)人機(jī)視角下密集目標(biāo)和稀疏目標(biāo)的檢測(cè)效果。左邊是原始模型的檢測(cè)效果,右邊是改進(jìn)后模型的效果。
圖6 密集目標(biāo)檢測(cè)效果對(duì)比Fig.6 Comparison of dense object detection results
圖7 稀疏目標(biāo)檢測(cè)效果對(duì)比Fig.7 Comparison of sparse object detection results
從圖6 可以看出,在密集小目標(biāo)場(chǎng)景中,改進(jìn)模型可以更準(zhǔn)確地檢測(cè)出更多的小目標(biāo),如場(chǎng)景1草原中遠(yuǎn)處的行人、場(chǎng)景2密集小目標(biāo)中的電動(dòng)車、場(chǎng)景3夜晚道路上密集的電動(dòng)車和路邊昏暗光線下的行人與院子里的汽車,有效減少了漏檢情況。
同樣地,在稀疏小目標(biāo)場(chǎng)景中,改進(jìn)模型能有效減少漏檢、誤檢情況。如圖7 所示,場(chǎng)景1 中,原始模型錯(cuò)誤地將船識(shí)別為行人和卡車,將人識(shí)別為摩托。場(chǎng)景2中,原始模型只能識(shí)別出motor,改進(jìn)模型不僅能識(shí)別出行駛中的motor 還識(shí)別出了motor 上的人,正確地識(shí)別出更多的人和遠(yuǎn)方的車。場(chǎng)景3中,改進(jìn)模型有效避免了原模型將路燈誤檢為行人的情況,準(zhǔn)確檢測(cè)出所有的行人。本文的改進(jìn)模型有效地改善了YOLOv8s對(duì)無(wú)人機(jī)視角下小目標(biāo)的檢測(cè)效果。
本文提出一種高效的YOLOv8s改進(jìn)模型對(duì)無(wú)人機(jī)視角的圖像進(jìn)行目標(biāo)檢測(cè)任務(wù)。通過(guò)引入RFCBAM改進(jìn)backbone 中的Conv 和C2f,增強(qiáng)網(wǎng)絡(luò)的特征提取能力;在SPPF 中增加LSKA 來(lái)提升不同特征層間的語(yǔ)義融合;增加具有豐富小目標(biāo)語(yǔ)義信息的特征層來(lái)改善頸部結(jié)構(gòu)更好地處理小目標(biāo);用inner-IoU 改造后的inner-MPDIoU作為模型邊框回歸的損失函數(shù),提升對(duì)困難小樣本的學(xué)習(xí)能力。在YOLOv8s基礎(chǔ)上改進(jìn)的模型大小和計(jì)算量小于YOLOv8m 的一半,性能基本全面超過(guò)YOLOv8m,較小的模型較高的精度可以滿足無(wú)人機(jī)設(shè)備的硬件條件。接下來(lái)將繼續(xù)研究模型性能的提升,并對(duì)模型進(jìn)行剪枝輕量化,優(yōu)化對(duì)無(wú)人機(jī)視角密集小目標(biāo)的檢測(cè)能力。