趙繼達(dá),甄國(guó)涌,儲(chǔ)成群
(中北大學(xué)儀器與電子學(xué)院,山西 太原 030051)
近年來,無人機(jī)(UAV)技術(shù)因具有視野范圍廣、飛行速度快的優(yōu)勢(shì)而逐漸應(yīng)用于目標(biāo)檢測(cè)領(lǐng)域,但是無人機(jī)目標(biāo)檢測(cè)存在的目標(biāo)尺度小、容易受到環(huán)境干擾等問題,限制了算法的目標(biāo)檢測(cè)性能。因此,提高小目標(biāo)的檢測(cè)精度成為了近年來的熱點(diǎn)問題。
在目標(biāo)檢測(cè)領(lǐng)域存在2種算法:傳統(tǒng)的目標(biāo)檢測(cè)算法和基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法。傳統(tǒng)的目標(biāo)檢測(cè)算法魯棒性差,檢測(cè)效率和準(zhǔn)確度都很低,本文不做考慮?;谏疃葘W(xué)習(xí)的目標(biāo)檢測(cè)算法分為2種:兩階段目標(biāo)檢測(cè)算法(如R-CNN系列算法)和單階段目標(biāo)檢測(cè)算法(如YOLO系列算法、SSD系列算法)。兩階段目標(biāo)檢測(cè)算法雖然檢測(cè)精度比較高,但是算法復(fù)雜度高,不適用于無人機(jī)快速運(yùn)動(dòng)、快速檢測(cè)的運(yùn)行環(huán)境。在檢測(cè)速度較快的單階段目標(biāo)檢測(cè)算法中,開發(fā)程度較高的YOLO系列算法對(duì)檢測(cè)精度和檢測(cè)速度有很好的平衡性。其中,2023年1月發(fā)布開源的YOLOv8算法是YOLO家族最新成員,可以更好地平衡算法的檢測(cè)速度和檢測(cè)精度。因此,本文將YOLOv8算法作為無人機(jī)目標(biāo)檢測(cè)基礎(chǔ)算法并加以改進(jìn)[1]。
本文研究的重點(diǎn)和難點(diǎn)主要集中在以下幾個(gè)方面:特征信息不容易提取[2];通用的模型適用于中等大小的目標(biāo)和大目標(biāo),對(duì)于小目標(biāo)效果不佳;小目標(biāo)數(shù)據(jù)集樣本質(zhì)量不如一般數(shù)據(jù)集[3]。針對(duì)以上問題,研究人員首先基于錨框(Anchor)機(jī)制對(duì)小目標(biāo)檢測(cè)算法進(jìn)行優(yōu)化,如ZHANG等[4]提出加入錨框密度參數(shù),在令不同錨框具有相同密度的情況下提高了小目標(biāo)檢測(cè)的召回率。雖然錨框有很大的作用,但是近年來大量實(shí)驗(yàn)表明,基于錨框的目標(biāo)檢測(cè)算法也有不足:預(yù)設(shè)錨框會(huì)導(dǎo)致正負(fù)樣本失衡,而且需要對(duì)錨框大小、數(shù)量和比例進(jìn)行計(jì)算,這提高了算法復(fù)雜度。因此,近年來無錨框(Anchor-free)機(jī)制因其優(yōu)良的特性而逐漸興起,例如:LAW等[5]提出一種CornerNet網(wǎng)絡(luò)模型,根據(jù)左上、右下2個(gè)角點(diǎn)實(shí)現(xiàn)定位,避免了原來固定尺寸的錨框?qū)π∧繕?biāo)檢測(cè)不友好的缺點(diǎn);DUAN等[6]提出CenterNet網(wǎng)絡(luò)模型,在CornerNet基礎(chǔ)上增加了中心點(diǎn)參數(shù),取得了比CenterNet更好的效果。其次,研究人員基于模型網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行了優(yōu)化,如謝星星等[7]提出一種動(dòng)態(tài)特征融合網(wǎng)絡(luò),該網(wǎng)絡(luò)可以動(dòng)態(tài)調(diào)整特征融合的權(quán)重,有效減少特征融合過程中小目標(biāo)特征的丟失。近年來,在目標(biāo)檢測(cè)優(yōu)化方面,注意力機(jī)制的引入也成為了研究熱點(diǎn),如LIM等[8]提出一種融合目標(biāo)上下文信息的注意力機(jī)制,使網(wǎng)絡(luò)聚焦于需要的部分從而降低背景信息的干擾,間接增強(qiáng)了所需要的小目標(biāo)特征信息。此外,還有直接增強(qiáng)小目標(biāo)特征的優(yōu)化方法,主要有以下幾類:設(shè)計(jì)生成對(duì)抗網(wǎng)絡(luò)(GAN)[9],如BAI等[10]提出的SOD-MTGAN、RABBI等[11]提出的EESRGAN等,都是對(duì)GAN方法的改進(jìn);對(duì)訓(xùn)練用數(shù)據(jù)集進(jìn)行數(shù)據(jù)增強(qiáng),如KISANTAL等[12]提出的將小目標(biāo)復(fù)制增多的方法,提高了網(wǎng)絡(luò)對(duì)小目標(biāo)的訓(xùn)練量,ZOPH等[13]提出的強(qiáng)化學(xué)習(xí)的方法,先將質(zhì)量好的數(shù)據(jù)進(jìn)行篩選再訓(xùn)練,有效提高了檢測(cè)性能;由于不同尺度的特征圖有不同的特征信息,通過融合多尺度特征圖也可以有效提升檢測(cè)精度,有很多基于經(jīng)典特征融合網(wǎng)絡(luò)——特征金字塔網(wǎng)絡(luò)(FPN)的改進(jìn),如ZENG等[14]提出的空洞空間金字塔池化平衡特征金字塔網(wǎng)絡(luò)(ABFPN),創(chuàng)新性地使用了跳躍連接,大幅提升了多尺度特征融合效果。
為了提高小目標(biāo)檢測(cè)的測(cè)量精度,本文提出YOLOv8-smr模型,相較于YOLOv8s做出的改進(jìn)主要有以下4點(diǎn):
1)針對(duì)無人機(jī)拍攝目標(biāo)普遍為小目標(biāo)的應(yīng)用場(chǎng)景,減少YOLOv8s算法骨干網(wǎng)絡(luò)(Backbone)的層數(shù),增大檢測(cè)頭(Head)部分待檢測(cè)特征圖的尺寸,保留更多小目標(biāo)特征信息;
2)針對(duì)數(shù)據(jù)集存在一定數(shù)量低質(zhì)量示例的問題,引入Wise-IoU損失函數(shù)優(yōu)化數(shù)據(jù)集訓(xùn)練效果;
3)引入上下文增強(qiáng)模塊(CAM),通過不同擴(kuò)張率的擴(kuò)張卷積將待檢測(cè)目標(biāo)本身及其周圍特征信息結(jié)合起來,改善模型在復(fù)雜環(huán)境中對(duì)小目標(biāo)的定位和分類效果;
4)設(shè)計(jì)空間-通道濾波模塊(SCFM),通過濾除干擾信息、增強(qiáng)小目標(biāo)特征信息,緩解卷積過程中微小目標(biāo)特征信息被淹沒的問題。
YOLOv8的總體結(jié)構(gòu)包括Backbone、頸部網(wǎng)絡(luò)(Neck)、Head這3個(gè)部分。根據(jù)具體的需要,將模型按照網(wǎng)絡(luò)模型的大小分為YOLOv8n、YOLOv8s、YOLOv8m、YOLOv8l和YOLOv8x這5種模型[15]。
Backbone部分采用的結(jié)構(gòu)為Darknet53,其中包括基本卷積單元(Conv)、實(shí)現(xiàn)局部特征和全局特征的featherMap級(jí)別的融合的空間金字塔池化模塊(SPPF),以及增加網(wǎng)絡(luò)的深度和感受野、提高特征提取能力的C2f模塊。C2f模塊結(jié)構(gòu)如圖1所示(彩色效果見《計(jì)算機(jī)工程》官網(wǎng)HTML版,下同)。
圖1 C2f模塊結(jié)構(gòu)Fig.1 Structure of C2f module
Neck部分采用PAN-FPN結(jié)構(gòu)實(shí)現(xiàn)多個(gè)不同尺寸特征圖的特征融合,其中同樣使用了C2f模塊作為特征提取的主要模塊。
Head部分采用解耦頭結(jié)構(gòu)將分類和檢測(cè)分離,同時(shí)在檢測(cè)過程中采用效果較好的Anchor-free機(jī)制。解耦頭模型結(jié)構(gòu)如圖2所示。
圖2 解耦頭模型結(jié)構(gòu)Fig.2 Structure of decoupling head model
在損失函數(shù)計(jì)算方面,采用了Task Aligned Assigner正樣本分配策略,由分類損失(VFL)和回歸損失(CIoU+DFL)2個(gè)部分的3個(gè)損失函數(shù)加權(quán)組合而成。
經(jīng)過在YOLOv8s的基礎(chǔ)上優(yōu)化模型結(jié)構(gòu)、優(yōu)化損失函數(shù)、添加上下文增強(qiáng)模塊、添加SCFM模塊,本文最終的無人機(jī)目標(biāo)檢測(cè)算法網(wǎng)絡(luò)模型如圖3所示。下面各節(jié)分別對(duì)各個(gè)優(yōu)化模塊的具體結(jié)構(gòu)與算法進(jìn)行介紹。
圖3 本文目標(biāo)檢測(cè)算法模型結(jié)構(gòu)Fig.3 Structure of the proposed target detection algorithm model
YOLOv8s模型輸入圖片的大小會(huì)被resize為640×640×3像素,最終檢測(cè)的3個(gè)特征圖的大小為80×80×128像素、40×40×256像素和20×20×512像素。當(dāng)待檢測(cè)目標(biāo)普遍為小目標(biāo)的時(shí)候,特征圖尺寸最小被壓縮到20×20×512像素,這會(huì)造成小目標(biāo)特征信息有較大的損失,而且經(jīng)過深層卷積會(huì)導(dǎo)致小目標(biāo)的特征信息被淹沒,從而影響檢測(cè)精度。因此,本文將Backbone部分的Stage Layer3去除,令網(wǎng)絡(luò)模型不進(jìn)行過于深層次的卷積,同時(shí)將待檢測(cè)特征圖的尺寸放大到160×160×64像素、80×80×128像素和40×40×256像素。通過改進(jìn),模型可以保留更多的小目標(biāo)特征信息。在VisDrone2019數(shù)據(jù)集上,本文將所優(yōu)化的模型結(jié)構(gòu)與直接增加一層小目標(biāo)檢測(cè)層的模型YOLOv8-large[16]以及初始模型YOLOv8s進(jìn)行實(shí)驗(yàn)對(duì)比,實(shí)驗(yàn)結(jié)果如表1所示,用每秒10億次的浮點(diǎn)運(yùn)算數(shù)(GFLOPs)衡量算法復(fù)雜度。與常見的直接增加一層小目標(biāo)檢測(cè)層的模型相比,本文模型結(jié)構(gòu)的算法復(fù)雜度大幅降低,但檢測(cè)精度差別不大,與初始YOLOv8s算法相比,優(yōu)化參數(shù)量明顯下降、精度明顯提升,證明降低網(wǎng)絡(luò)卷積層次在大幅提升小目標(biāo)檢測(cè)性能的同時(shí),不會(huì)帶來復(fù)雜的算法開銷,能夠?qū)崿F(xiàn)模型復(fù)雜度和精度之間更好的平衡。
表1 3種算法復(fù)雜度和精度比較Table 1 Comparison of complexity and accuracy between three algorithms
損失函數(shù)的計(jì)算是目標(biāo)檢測(cè)算法的重要組成部分,YOLOv8s算法的損失函數(shù)由VFL和CIoU+DFL這2個(gè)部分的3個(gè)損失函數(shù)加權(quán)組合而成。其中,CIoU是對(duì)邊界框的損失進(jìn)行計(jì)算,它加入了縱橫比的損失計(jì)算,但是沒有考慮數(shù)據(jù)集樣本本身的平衡問題。以往的大多數(shù)損失函數(shù)很少考慮數(shù)據(jù)集本身標(biāo)注示例的質(zhì)量,而是不斷致力于強(qiáng)化邊界框損失的擬合能力,導(dǎo)致一些低質(zhì)量標(biāo)注對(duì)檢測(cè)性能有很大的影響[17]。因此,本文引入Wise-IoU作為新的邊界框損失函數(shù)。Wise-IoU定義為:
(1)
(2)
LIoU=1-RIoU
(3)
其中:(x,y)和(xgt,ygt)分別為錨框和目標(biāo)框中心點(diǎn)的坐標(biāo);Wg和Hg是最小包圍框的尺寸;RIoU表示交并比(IoU),是度量預(yù)測(cè)框和真實(shí)框的重疊程度的常見量;α和β作為超參數(shù),通常設(shè)定為1.9和3.0[17]。
通過引入離群度參數(shù)來描述錨框的質(zhì)量,β與錨框質(zhì)量負(fù)相關(guān)。離群度計(jì)算公式為:
(4)
(5)
其中:t為epoch的值;n為batch size的值。引入動(dòng)量m的意義是經(jīng)過t輪訓(xùn)練以后,WIoU將小梯度增益分配給低質(zhì)量錨框以減少有害梯度。
WIoU所增加的計(jì)算成本主要在于聚焦系數(shù)的計(jì)算和IoU損失的均值統(tǒng)計(jì)。在相同實(shí)驗(yàn)條件下,WIoU因?yàn)闆]有對(duì)縱橫比進(jìn)行計(jì)算反而有更快的速度,所以在更換損失函數(shù)后,在精度提高的基礎(chǔ)上,訓(xùn)練時(shí)間也得到有效降低。
通過對(duì)數(shù)據(jù)集的觀察分析可以發(fā)現(xiàn),在無人機(jī)目標(biāo)檢測(cè)過程中,待檢測(cè)目標(biāo)小而密,小目標(biāo)檢測(cè)可以通過上下文信息作為特征的一部分。因此,本文引入上下文增強(qiáng)模塊,通過擴(kuò)張率為1、3、5的擴(kuò)張卷積增大檢測(cè)感受野,同時(shí)將待檢測(cè)目標(biāo)及其周圍的特征信息相結(jié)合,變相增強(qiáng)小目標(biāo)的特征信息,增強(qiáng)算法對(duì)目標(biāo)的理解能力。CAM結(jié)構(gòu)如圖4所示。將Backbone部分輸出的圖像經(jīng)過擴(kuò)張率為1、3、5的擴(kuò)張卷積處理,將目標(biāo)自身特征與目標(biāo)周圍環(huán)境的相對(duì)特征都考慮在內(nèi),再將處理后的3個(gè)特征圖經(jīng)Concat函數(shù)拼接后輸入網(wǎng)絡(luò)結(jié)構(gòu)的下一層進(jìn)行處理。
圖4 CAM結(jié)構(gòu)Fig.4 Structure of CAM
在YOLOv8s模型結(jié)構(gòu)中,Neck部分使用了PAN-FPN結(jié)構(gòu),可以實(shí)現(xiàn)多個(gè)不同尺寸特征圖的特征融合。但是在卷積過程中,網(wǎng)絡(luò)各個(gè)層的特征圖中會(huì)存在大量的干擾信息,這些干擾信息在不斷卷積的過程中會(huì)導(dǎo)致部分特別小的小目標(biāo)的特征信息丟失,嚴(yán)重影響檢測(cè)精度。因此,本文設(shè)計(jì)空間-通道濾波模塊,這種結(jié)構(gòu)可以有效地從通道和空間濾除特征圖的干擾信息,增強(qiáng)小目標(biāo)特征信息。SCFM結(jié)構(gòu)如圖5所示。
圖5 SCFM結(jié)構(gòu) Fig.5 Structure of SCFM
首先,將輸入的特征圖在通道方向上進(jìn)行壓縮,再將其分別輸入空間濾波模塊(SPM)和通道濾波模塊(CPM)。
空間濾波模塊將壓縮處理后的特征圖采用Log_Softmax激活函數(shù)處理,在空間上對(duì)特征圖過濾增強(qiáng)特征信息。Log_Softmax算法是在Softmax算法基礎(chǔ)上對(duì)結(jié)果進(jìn)行Log操作,生成所有位置相對(duì)于通道的相對(duì)權(quán)重。
Softmax算法公式為:
(6)
Log_Softmax算法公式為:
lLog_Softmax=lnσ(Zi)
(7)
其中:Z為輸入向量,Zj和Zi表示其中某個(gè)元素。
由兩者的算法公式可以得,雖然Log_Softmax和Softmax都是單調(diào)的,但是它們對(duì)損失函數(shù)相對(duì)值的影響不同,使用Log_Softmax函數(shù)可以更高地懲罰似然空間中的誤差,使算法收斂得更快。
通道濾波模塊結(jié)構(gòu)如圖6所示。將特征圖輸入CPM后,分別經(jīng)過平均池化和最大池化,兩者結(jié)合將會(huì)得到更詳細(xì)的全局特征,引入2層卷積層和Hardswish激活函數(shù)對(duì)小目標(biāo)特征進(jìn)行增強(qiáng),最后經(jīng)過最鄰近上采樣操作將特征圖尺寸大小還原,再將2個(gè)經(jīng)過濾波的特征圖相加得到CPM模塊最終的輸出。
圖6 CPM結(jié)構(gòu) Fig.6 Structure of CPM
Hardswish激活函數(shù)計(jì)算方式如式(8)[18]所示:
(8)
在這里引入Hardswish作為激活函數(shù),是因?yàn)镠ardswish不但具有Swish函數(shù)的優(yōu)點(diǎn),即有助于防止慢速訓(xùn)練期間梯度逐漸接近0并導(dǎo)致飽和、平滑度在優(yōu)化和泛化中起了重要作用,以及導(dǎo)數(shù)恒大于0,而且在Swish函數(shù)的基礎(chǔ)上使用常見的算子組合而成,在達(dá)到相似效果的情況下大大降低了算法模型的計(jì)算量。
本文實(shí)驗(yàn)均基于VisDrone2019數(shù)據(jù)集。VisDrone2019數(shù)據(jù)集有6 471張圖片用于訓(xùn)練、548張圖片用于驗(yàn)證,由配備攝像頭的無人機(jī)在不同地點(diǎn)和高度拍攝,包括pedestrian、person、car、van、bus、truck、motor、bicycle、awning-tricycle,以及tricycle的10個(gè)預(yù)定義類別,幾乎包含了交通運(yùn)輸?shù)娜砍R娔繕?biāo)種類,是小目標(biāo)檢測(cè)常見的訓(xùn)練評(píng)估用數(shù)據(jù)集。
實(shí)驗(yàn)軟件環(huán)境為Python 3.8.13、PyTorch 1.7.1、cuda 10.1,硬件環(huán)境為NVIDIA GeForce RTX 2080 Ti顯卡。所有實(shí)驗(yàn)都在相同超參數(shù)下進(jìn)行。性能評(píng)價(jià)指標(biāo)有mAP@0.5、mAP@0.5∶0.95、GFLOPs、檢測(cè)幀率(FPS)。其中:mAP@0.5表示閾值為0.5時(shí)所有類別(共10類)待檢測(cè)目標(biāo)的平均檢測(cè)精度;mAP@0.5∶0.95表示閾值為0.5~0.95時(shí)所有類別待檢測(cè)目標(biāo)的平均檢測(cè)精度;GFLOPs用來衡量算法復(fù)雜度;FPS用來衡量算法檢測(cè)速度。
為了證明本文提出模塊的有效性,通過消融實(shí)驗(yàn)來驗(yàn)證不同模塊對(duì)小目標(biāo)檢測(cè)算法性能的影響,與此同時(shí),通過展示同一張圖片的處理結(jié)果來可視化這種差異。通過與其他經(jīng)典目標(biāo)檢測(cè)算法以及近年來具有代表性的小目標(biāo)檢測(cè)算法的對(duì)比實(shí)驗(yàn),體現(xiàn)本文所提出的整體算法模型在小目標(biāo)檢測(cè)領(lǐng)域的優(yōu)越性。
為了證明本文所提出的各個(gè)改進(jìn)模塊的優(yōu)越性,進(jìn)行消融實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表2所示,其中加粗表示最優(yōu)值。通過優(yōu)化YOLOv8s模型結(jié)構(gòu)得到的YOLOv8s-smr結(jié)構(gòu),較原模型mAP@0.5提升5.5個(gè)百分點(diǎn),mAP@0.5∶0.95提升3.8個(gè)百分點(diǎn),參數(shù)量下降70.3%,算法復(fù)雜度基本一致,這里FPS下降較多是因?yàn)榇龣z測(cè)特征圖尺寸加大之后后處理時(shí)間由5.5 ms增加到9.3 ms造成的。將YOLOv8s原來的損失函數(shù)由CIoU替換為WIoU,mAP@0.5提升1.0個(gè)百分點(diǎn),FPS提升9.1幀/s,這是因?yàn)楦鼡Q的損失函數(shù)降低了數(shù)據(jù)集中低質(zhì)量示例的影響,而且與CIoU相比,WIoU因?yàn)闆]有對(duì)縱橫比進(jìn)行計(jì)算,所以有更快的計(jì)算速度,其余參數(shù)變化較小。如圖7所示,在相同模型下將損失函數(shù)替換為CIoU、SIoU和WIoU進(jìn)行對(duì)比實(shí)驗(yàn),在設(shè)定耐心值為30的情況下,CIoU、SIoU在138個(gè)epoch的訓(xùn)練完全收斂,CIoU、SIoU和WIoU下精度分別為43.67%、43.64%和44.67%,雖然WIoU收斂較慢,但是明顯達(dá)到較高的精度,說明WIoU的加入對(duì)提升小目標(biāo)檢測(cè)精度有效。通過直觀對(duì)比也可以發(fā)現(xiàn)WIoU漏檢和誤檢最少。在YOLOv8s-smr-WIoU基礎(chǔ)上加入CAM后,mAP@0.5和mAP@0.5∶0.95都提升0.3個(gè)百分點(diǎn),證明CAM擴(kuò)大感受野的操作對(duì)于小目標(biāo)檢測(cè)確實(shí)有明顯提升。在此基礎(chǔ)上加入SCFM后,通過將特征層中的小目標(biāo)特征進(jìn)行增強(qiáng),mAP@0.5提升0.5個(gè)百分點(diǎn),mAP@0.5∶0.95提升0.2個(gè)百分點(diǎn)。最終算法模型的實(shí)驗(yàn)結(jié)果表明,相較于基礎(chǔ)YOLOv8s算法模型,本文提出的算法模型mAP@0.5提升7.3個(gè)百分點(diǎn),mAP@0.5∶0.95提升4.8個(gè)百分點(diǎn),參數(shù)量下降26.13%,算法復(fù)雜度增加45.26%,FPS下降24.1幀/s。雖然算法復(fù)雜度有所增加,但是FPS可以達(dá)到62.1幀/s,表明本文目標(biāo)檢測(cè)算法可以滿足實(shí)時(shí)性的要求。
表2 消融實(shí)驗(yàn)中目標(biāo)檢測(cè)精度和算法復(fù)雜度對(duì)比Table 2 Comparison of target detection accuracy and algorithm complexity in ablation experiment
圖7 不同損失函數(shù)下目標(biāo)檢測(cè)精度對(duì)比 Fig.7 Comparison of target detection accuracy under different loss functions
目標(biāo)檢測(cè)效果可視化對(duì)比如圖8所示??梢钥闯?通過改進(jìn),紅框標(biāo)注的地方漏檢情況相比于上一張圖明顯減少,藍(lán)框標(biāo)注的地方誤檢率也有下降,每一代算法模型在誤檢和漏檢方面都相比于前一代有一定的改進(jìn),最終算法模型相比于前幾代模型也取得了更好的目標(biāo)檢測(cè)效果。
圖8 消融實(shí)驗(yàn)?zāi)繕?biāo)檢測(cè)效果可視化對(duì)比Fig.8 Visual comparison of target detection effects in ablation experiment
通過檢測(cè)結(jié)果的直觀對(duì)比,可以看到小目標(biāo)檢測(cè)精度不斷地提升。但是可以明顯看到,雖然算法經(jīng)過多輪改進(jìn),但還是不可避免地存在漏檢和誤檢的問題,這也是最終算法的mAP@0.5只有45.4%的直觀體現(xiàn)。
為了體現(xiàn)本文所提出的算法在檢測(cè)精度和檢測(cè)速度上的優(yōu)越性和平衡性,將本文算法與目前主流的經(jīng)典的小目標(biāo)檢測(cè)算法進(jìn)行對(duì)比,包括RetinaNet[19]、Faster-RCNN[20]、CornerNet[5]、YOLOv5s[21]、Deformable DETR[22]、TPH-YOLOv5[23]、YOLOv7[24],以及最近公開發(fā)表的小目標(biāo)檢測(cè)精度最優(yōu)算法YOLO-DCTI[25]、速度最優(yōu)算法YOLO-PWCA[26],在相同數(shù)據(jù)集和軟硬件條件下進(jìn)行比較,驗(yàn)證本文算法模型所作改進(jìn)的有效性和優(yōu)越性。
表3給出了不同算法的指標(biāo)對(duì)比,圖9給出了部分算法目標(biāo)檢測(cè)效果的可視化對(duì)比。在檢測(cè)效果可視化對(duì)比中,觀察各個(gè)算法檢測(cè)結(jié)果的紅框標(biāo)注部分出現(xiàn)的漏檢和誤檢現(xiàn)象可知,本文算法相較于精度最高的YOLO-DCTI方法,雖然檢測(cè)率略低,但是圖片右側(cè)誤檢現(xiàn)象有所減少,相較于其他算法,左上角微小汽車以及圖像中央的motor、bicycle的檢測(cè)率更高。在指標(biāo)對(duì)比中,本文算法的檢測(cè)精度雖然不是最高,但是精度最高的YOLO-DCTI方法是以犧牲檢測(cè)速度為前提的,11幀/s的檢測(cè)速度無法滿足實(shí)時(shí)性,而YOLO-PWCA算法雖然速度非???達(dá)到181幀/s,但是檢測(cè)精度是明顯短板。對(duì)比以上多種算法,本文算法雖然精度沒有達(dá)到最高,速度也不是最快,但是可以在滿足62幀/s實(shí)時(shí)目標(biāo)檢測(cè)的條件下達(dá)到最高精度,在精度和速度之間達(dá)到了更好的平衡,更適合無人機(jī)的應(yīng)用環(huán)境。以上對(duì)比結(jié)果可以證明,本文所提出的算法在小目標(biāo)檢測(cè)方面的精度和速度更加平衡,具有優(yōu)越性。
表3 對(duì)比實(shí)驗(yàn)結(jié)果Table 3 Comparative experiment result
圖9 對(duì)比實(shí)驗(yàn)?zāi)繕?biāo)檢測(cè)效果可視化對(duì)比Fig.9 Visual comparison of target detection effects in comparative experiment
本文提出一種改進(jìn)YOLOv8s的小目標(biāo)檢測(cè)算法,用于提高無人機(jī)目標(biāo)檢測(cè)精度,從目前主流的幾個(gè)方向優(yōu)化,包括網(wǎng)絡(luò)結(jié)構(gòu)、數(shù)據(jù)集、注意力機(jī)制,使得經(jīng)過改進(jìn)的網(wǎng)絡(luò)模型更適用于小目標(biāo)檢測(cè)的應(yīng)用場(chǎng)景。本文放大待檢測(cè)特征圖的尺寸而不是單純地增加小目標(biāo)檢測(cè)層,通過這樣的改進(jìn)可以使網(wǎng)絡(luò)專注于小目標(biāo)的特征信息,而且不會(huì)帶來很大的計(jì)算開銷,更適合無人機(jī)目標(biāo)檢測(cè)的應(yīng)用場(chǎng)景;將損失函數(shù)更換為WIoU可以將數(shù)據(jù)集本身標(biāo)注示例的質(zhì)量加入訓(xùn)練參數(shù);加入CAM將目標(biāo)與其周圍的特征信息聯(lián)系起來,可以改善對(duì)目標(biāo)的分類識(shí)別效果;設(shè)計(jì)SCFM,通過濾除干擾信息、增強(qiáng)小目標(biāo)特征信息,可以改善卷積過程中部分微小目標(biāo)特征信息被淹沒的問題。通過消融實(shí)驗(yàn)結(jié)果可以看出,以上所做出的改進(jìn)都對(duì)檢測(cè)精度有一定提升作用。本文所提出的算法相對(duì)于YOLOv8s算法雖然復(fù)雜度有所增加,但是最終模型的檢測(cè)速度可以滿足應(yīng)用需求。與目前主流的經(jīng)典目標(biāo)檢測(cè)算法以及近年來公開發(fā)表的具有代表性的小目標(biāo)檢測(cè)算法相比,本文所提出的改進(jìn)算法在小目標(biāo)檢測(cè)精度和檢測(cè)速度上可以達(dá)到平衡,具有一定的優(yōu)越性,算法模型的mAP@0.5達(dá)到了45.4%,實(shí)現(xiàn)了較大的精度提升。
為了使無人機(jī)在光照條件惡劣的情況下保持高精度目標(biāo)檢測(cè),下一步計(jì)劃添加圖像預(yù)處理模塊,包括圖像增強(qiáng)和曝光校正2個(gè)部分。此外,還將對(duì)算法做進(jìn)一步輕量化處理,包括但不限于更換主干網(wǎng)絡(luò)等,將其部署到嵌入式GPU設(shè)備Nvidia Jetson AGX Xavier上,在無人機(jī)有限的算力與功耗資源上實(shí)現(xiàn)實(shí)時(shí)目標(biāo)檢測(cè)。