陳佳慧,王曉虹
1.遼寧石油化工大學(xué) 人工智能與軟件學(xué)院,遼寧 撫順 113000
2.遼寧石油化工大學(xué) 信息與控制工程學(xué)院,遼寧 撫順 113000
近些年,無(wú)人機(jī)在軍事領(lǐng)域和民用市場(chǎng)都處于快速發(fā)展時(shí)期,無(wú)人機(jī)航拍檢測(cè)技術(shù)在電路巡檢、防火巡查、交通監(jiān)管、農(nóng)作物監(jiān)察等民用領(lǐng)域以及緝毒偵察、應(yīng)急救援等軍事領(lǐng)域都被廣泛應(yīng)用。隨著卷積神經(jīng)網(wǎng)絡(luò)的創(chuàng)新發(fā)展,基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法因其展現(xiàn)出優(yōu)異的檢測(cè)性能,被廣泛推行使用。
基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法主要分為單階段檢測(cè)和雙階段檢測(cè)兩種,雙階段目標(biāo)檢測(cè)算法以SPPNet、R-CNN 系列等為代表,首先通過(guò)區(qū)域提議網(wǎng)絡(luò)生成候選區(qū)域,然后對(duì)候選區(qū)域進(jìn)行分類(lèi)和定位預(yù)測(cè)。以RetinaNet、YOLO 系列等為代表的單階段目標(biāo)檢測(cè)算法是基于錨框來(lái)預(yù)測(cè)目標(biāo)的類(lèi)別和定位,在不進(jìn)行候選區(qū)域的情況下完成端到端的目標(biāo)檢測(cè)。雙階段目標(biāo)檢測(cè)算法的平均精度高、誤檢率和漏檢率低,但由于其復(fù)雜的網(wǎng)絡(luò)架構(gòu),以及對(duì)候選框提取等操作,導(dǎo)致網(wǎng)絡(luò)計(jì)算量龐大、檢測(cè)速度慢,難以滿足實(shí)時(shí)檢測(cè)的需求。而單階段目標(biāo)檢測(cè)算法的模型結(jié)構(gòu)簡(jiǎn)單、檢測(cè)速度快、復(fù)雜度低,在實(shí)時(shí)性方面展現(xiàn)出更優(yōu)異的檢測(cè)性能。
主流的目標(biāo)檢測(cè)模型大多是面向自然場(chǎng)景圖像設(shè)計(jì)的,而自然場(chǎng)景圖像與無(wú)人機(jī)航拍圖像存在明顯差異:(1)無(wú)人機(jī)飛行高度高、拍攝角度高導(dǎo)致航拍圖像中存在大量小目標(biāo)且目標(biāo)之間尺寸跨度大,可提取到的有效特征過(guò)少。(2)航拍圖像中背景復(fù)雜多變、密集小目標(biāo)相互遮擋且易受環(huán)境干擾,導(dǎo)致檢測(cè)效果不佳。(3)無(wú)人機(jī)運(yùn)動(dòng)速度變化劇烈,拍攝的圖像模糊,模型的檢測(cè)精度低。(4)無(wú)人機(jī)搭載的硬件設(shè)備計(jì)算能力有限、存在一定成本開(kāi)銷(xiāo),對(duì)模型的檢測(cè)速度和輕量化有較高要求。近些年,許多研究者為了提高小目標(biāo)檢測(cè)算法的性能,提出許多有用的方法。Kisantal 等人[1]通過(guò)復(fù)制粘貼小目標(biāo)的操作來(lái)提高數(shù)據(jù)集中小目標(biāo)的占比,從而提高小目標(biāo)對(duì)網(wǎng)絡(luò)的貢獻(xiàn)。但這僅僅只是增加小目標(biāo)物體在數(shù)據(jù)集中的樣本數(shù)量,并不能保證在訓(xùn)練時(shí)正負(fù)樣本數(shù)量的平衡,而且沒(méi)有對(duì)小目標(biāo)的特征信息加以利用。Lin 等人[2]提出經(jīng)典的特征金字塔網(wǎng)絡(luò)(feature pyramid network,F(xiàn)PN)和Liu 等人[3]提出的路徑聚合網(wǎng)絡(luò)(path aggregation network,PAN)通過(guò)采用自上而下和自下而上的連接方式將不同層級(jí)的特征信息相融合,這種多尺度學(xué)習(xí)方法在一定程度上提高了網(wǎng)絡(luò)的多尺度特征提取能力。但是僅通過(guò)簡(jiǎn)單的元素相加來(lái)融合不同層級(jí)的特征圖,忽略了不同層級(jí)的特征圖擁有不同細(xì)粒度和價(jià)值的事實(shí):淺層特征圖的細(xì)粒度信息更有助于獲取小目標(biāo)的位置信息,而深層特征圖的細(xì)粒度特征對(duì)語(yǔ)義信息的提取尤為重要。直接地相加或者拼接操作還會(huì)導(dǎo)致冗余信息和沖突的產(chǎn)生,增加網(wǎng)絡(luò)的參數(shù)量,減慢了訓(xùn)練速度。TPH-YOLOv5[4]采用CBAM(convolutional block attention module)[5]注意力機(jī)制模塊,先通過(guò)通道注意力,然后再經(jīng)過(guò)空間注意力,將二者串聯(lián)起來(lái)以提高空間和通道信息的利用率,增強(qiáng)有效特征的權(quán)重,并設(shè)計(jì)了帶有Transformer[6]的檢測(cè)頭以提高網(wǎng)絡(luò)的預(yù)測(cè)精度。QueryDet[7]首先在低分辨率特征圖上粗略地預(yù)測(cè)小目標(biāo)的位置,然后用這些粗略的位置信息引導(dǎo)高分辨率特征圖更精確地計(jì)算出小目標(biāo)位置。這樣既可以得到更精確的預(yù)測(cè)回歸,也可以對(duì)背景目標(biāo)進(jìn)行更少的計(jì)算。綜上所述,雖然現(xiàn)有的小目標(biāo)檢測(cè)算法一定程度上提高了檢測(cè)性能,但仍存在一些不足:(1)前景背景樣本不平衡。(2)不同場(chǎng)景下目標(biāo)特征捕獲量不足。(3)為了提高精度而增加計(jì)算量和參數(shù)量,導(dǎo)致推理速度變慢,無(wú)法滿足無(wú)人機(jī)實(shí)際部署應(yīng)用。(4)模型的遷移能力弱,泛化性降低,適用性有限。
為了從航拍圖像上小目標(biāo)的有限特征中獲取關(guān)鍵有效的特征信息,從而提高模型對(duì)小目標(biāo)檢測(cè)的精度,本文提出了一種針對(duì)密集小目標(biāo)檢測(cè)的算法模型RDSYOLOv5。主要改進(jìn)如下:
(1)在網(wǎng)絡(luò)中增添一個(gè)160×160 的小目標(biāo)檢測(cè)層,并通過(guò)K-means 聚類(lèi)算法對(duì)無(wú)人機(jī)航拍數(shù)據(jù)集生成12個(gè)不同尺度的預(yù)設(shè)錨框,有效緩解由于錨框設(shè)定所帶來(lái)的誤檢和漏檢問(wèn)題。
(2)設(shè)計(jì)了一種具有等級(jí)制的殘差結(jié)構(gòu)的多尺度特征提取模塊C3Res2Block。在減少網(wǎng)絡(luò)參數(shù)量和計(jì)算開(kāi)銷(xiāo)的同時(shí)在更細(xì)粒度級(jí)別上表示多尺度特征,從而抑制多尺度特征融合沖突,以提高網(wǎng)絡(luò)的多尺度特征表征能力。
(3)在預(yù)測(cè)網(wǎng)絡(luò)中,采用解耦檢測(cè)頭將分類(lèi)任務(wù)與定位任務(wù)分離,減少兩個(gè)任務(wù)之間的差異,加強(qiáng)模型的定位能力。
(4)使用軟化非極大值抑制算法Soft NMS 對(duì)候選框進(jìn)行優(yōu)化,在不增加額外參數(shù)的情況下,提升模型在密集且遮擋場(chǎng)景下對(duì)小目標(biāo)的檢測(cè)精度。
YOLOv5兼并了許多算法的優(yōu)點(diǎn),能很好地平衡檢測(cè)精度和速度,能夠做到實(shí)時(shí)性檢測(cè)目標(biāo),是目前推行和使用最多的目標(biāo)檢測(cè)算法之一。YOLOv5共有s、m、l、x四個(gè)版本,其網(wǎng)絡(luò)整體架構(gòu)完全一致,但網(wǎng)絡(luò)深度和寬度則依次變大??紤]到實(shí)際的應(yīng)用場(chǎng)景和無(wú)人機(jī)硬件部署,YOLOv5s 的網(wǎng)絡(luò)層次最少,網(wǎng)絡(luò)結(jié)構(gòu)清晰簡(jiǎn)潔,計(jì)算資源的開(kāi)銷(xiāo)成本最低,運(yùn)行速度最快,更方便移植到其他設(shè)備,本文對(duì)YOLOv5s算法開(kāi)展研究。
如圖1 所示,YOLOv5s 的網(wǎng)絡(luò)結(jié)構(gòu)分為骨干網(wǎng)絡(luò)(Backbone)、頸部網(wǎng)絡(luò)(Neck)和頭部網(wǎng)絡(luò)(Head)三個(gè)部分,基于回歸方法來(lái)快速高效地完成目標(biāo)檢測(cè)任務(wù)。Backbone 對(duì)輸入圖像進(jìn)行不同倍率的下采樣并在此上提取特征;Neck 通過(guò)FPN 和PAN 將不同層級(jí)的特征進(jìn)行融合;Head 設(shè)計(jì)了三個(gè)不同尺寸的檢測(cè)層分別用于預(yù)測(cè)大、中、小目標(biāo)的類(lèi)別和邊界框回歸。
圖1 YOLOv5s網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.1 Architecture of YOLOv5s
除此之外,YOLOv5算法還提供了圖像預(yù)處理操作和許多數(shù)據(jù)增強(qiáng)的方法,如馬賽克(Mosaic)、隨機(jī)仿射變換(Random affine)、混合(MixUp)等。在訓(xùn)練、推理和部署方面也提供了像自動(dòng)錨框、余弦學(xué)習(xí)率、混合精度訓(xùn)練、遺傳超參數(shù)進(jìn)化、標(biāo)簽平滑處理、多種優(yōu)化器等多種功能。這些方法的集成極大地增強(qiáng)了模型的檢測(cè)效果,并且可以便捷、廣泛地應(yīng)用于實(shí)際場(chǎng)景中。
本文以Ultralytics 6.1版本的YOLOv5s算法為基礎(chǔ)設(shè)計(jì)了如圖2 所示的RDS-YOLOv5 目標(biāo)檢測(cè)算法。Backbone 部分對(duì)輸入圖像分別進(jìn)行4、8、16、32 倍的下采樣,然后通過(guò)Neck部分將不同層級(jí)的特征進(jìn)行融合,獲得更豐富的上下文信息。其次使用C3Res2Block 模塊替換Backbone 和Neck 中部分的C3 模塊,對(duì)C3 模塊中的殘差結(jié)構(gòu)進(jìn)行重新設(shè)計(jì),構(gòu)造出具有等級(jí)制的殘差結(jié)構(gòu)的多尺度特征提取模塊,以達(dá)到提高網(wǎng)絡(luò)精度的同時(shí)減少參數(shù)量的目的。然后將融合后的四個(gè)尺寸的特征圖送入解耦檢測(cè)頭Decoupled Head 中完成類(lèi)別分?jǐn)?shù)的預(yù)測(cè)和邊界框坐標(biāo)參數(shù)的回歸。最后,采用Soft NMS 算法消除冗余的預(yù)測(cè)候選框,提升網(wǎng)絡(luò)在復(fù)雜背景下對(duì)密集小目標(biāo)的檢測(cè)效果。
圖2 RDS-YOLOv5結(jié)構(gòu)圖Fig.2 Architecture of RDS-YOLOv5
原始的YOLOv5算法對(duì)輸入圖像分別進(jìn)行8倍、16倍和32 倍的下采樣,生成80×80、40×40、20×20 的預(yù)測(cè)特征圖,以檢測(cè)小目標(biāo)、中目標(biāo)和大目標(biāo)。而無(wú)人機(jī)航拍圖像中小目標(biāo)實(shí)例多,尺度占比很小,經(jīng)過(guò)多次下采樣后,特征圖中的目標(biāo)信息變得非常稀少,原有的三個(gè)檢測(cè)層已無(wú)法滿足對(duì)微小目標(biāo)的檢測(cè),容易產(chǎn)生漏檢現(xiàn)象。因此,在網(wǎng)絡(luò)原有的三個(gè)檢測(cè)層的基礎(chǔ)上新引入了一個(gè)160×160的小目標(biāo)檢測(cè)層,該層的高分率預(yù)測(cè)特征圖中保留了更多關(guān)于小目標(biāo)的位置信息和更豐富強(qiáng)大的細(xì)節(jié)特征,可以更好地獲取到小目標(biāo)的位置信息。同時(shí),因?yàn)榛阱^框的算法對(duì)初始設(shè)定的錨框尺度較為敏感,所以還要通過(guò)K-means聚類(lèi)算法為數(shù)據(jù)集重新聚類(lèi)生成12 個(gè)不同的預(yù)設(shè)錨框尺度,改進(jìn)后的預(yù)設(shè)錨框尺度如表1 所示。這樣能夠有效地減少由于數(shù)據(jù)集中目標(biāo)物體過(guò)小而錨框過(guò)大導(dǎo)致目標(biāo)被忽略的情況,降低模型檢測(cè)的漏檢率和誤檢率。
表1 預(yù)設(shè)錨框尺度分配表Table 1 Anchor boxes scale assignment
為了提高網(wǎng)絡(luò)的多尺度特征提取能力,本文設(shè)計(jì)了一種具有等級(jí)制的殘差結(jié)構(gòu)的多尺度特征提取模塊,稱為C3Res2Block模塊(C3 Res2Net Block)。如圖3所示。
圖3 C3Res2Block結(jié)構(gòu)圖Fig.3 Structure of C3Res2Block
輸入特征圖分別經(jīng)過(guò)兩個(gè)具有相同大小的卷積核且輸出通道數(shù)減半的卷積層,并通過(guò)歸一化和Sigmoid操作分出兩個(gè)分支,以達(dá)到降維和特征提取的目的。然后一個(gè)分支再經(jīng)過(guò)Res2Net模塊后與另一個(gè)分支在通道維度上進(jìn)行拼接。最后再次通過(guò)卷積、歸一化和Sigmoid函數(shù)處理生成包含多尺度特征信息的輸出特征圖。
使用該模塊對(duì)原YOLOv5 的Backbone 處第8 層的C3 模塊以及Neck 處第21 層、24 層、27 層、30 層的C3模塊進(jìn)行替換。其中,第8 層的Res2Net 有短連接,第21 層、第24 層、第27 層、第30 層的Res2Net 沒(méi)有短連接。采用這種方法能夠有效增強(qiáng)網(wǎng)絡(luò)的多尺度特征表征能力。
考慮到不同層級(jí)的特征圖的細(xì)粒度對(duì)小目標(biāo)的貢獻(xiàn)不同,僅在平等級(jí)別上融合特征可能會(huì)產(chǎn)生冗余信息和沖突,影響上下文信息,干擾網(wǎng)絡(luò)對(duì)小目標(biāo)的學(xué)習(xí),還會(huì)增加參數(shù)量,使得推理速度變慢。因此,本文引入了Res2Net 對(duì)C3 中的殘差結(jié)構(gòu)進(jìn)行重新設(shè)計(jì)。如圖4 所示,Res2Net 在單個(gè)殘差塊內(nèi)使用分組卷積對(duì)輸入特征圖的通道進(jìn)行均等劃分;對(duì)劃分出來(lái)的小組使用一組小卷積核,使模型輕量化;并采用階梯的方式連接起來(lái),以增加輸出特征圖所能代表的尺度數(shù)量。
圖4 Res2Net模塊結(jié)構(gòu)圖Fig.4 Structure of Res2Net module
Res2Net的計(jì)算公式如下所示:
假設(shè)Res2Net通過(guò)一個(gè)1×1卷積后特征圖的輸出通道數(shù)變?yōu)閚,然后采用split操作將輸入特征圖沿通道方向均等地劃分成s個(gè)子集,用xi表示,其中i={1,2,…,s}。每個(gè)特征圖子集xi與特征圖具有一樣的尺度,但是通道數(shù)變?yōu)閚/s。除了第一組卷積x1之外,每個(gè)xi后都有對(duì)應(yīng)的3×3卷積處理,用Ki()表示卷積層,并將xi卷積后的輸出用yi表示,其中i={1,2,…,s}。當(dāng)前的xi與上一次輸出的yi-1相加后的結(jié)果作為Ki()的輸入,因此每一個(gè)Ki()的輸入都包含了之前{xi,j≤i}的小組特征,同時(shí)又采用等級(jí)制階梯狀的連接方式,使得每個(gè)yi都在yi-1的基礎(chǔ)上提取到更豐富更多尺度的特征。
由公式(1)可知,s值越大就有更大的感受野可以被學(xué)習(xí)。但是s值越大導(dǎo)致網(wǎng)絡(luò)越冗余,根據(jù)文獻(xiàn)[8]將s設(shè)置為4,使輸出特征圖中包含不同大小及數(shù)量的感受野。這種具有等級(jí)制的殘差結(jié)構(gòu),使得各層級(jí)之間不再提取單一尺度的特征信息,而是在更細(xì)粒度級(jí)別上表示多尺度特征,抑制沖突信息的生成,使融合后的特征圖具備更強(qiáng)大更豐富的語(yǔ)義信息和紋理細(xì)節(jié),從而提高網(wǎng)絡(luò)對(duì)小目標(biāo)的關(guān)注度。
YOLOv5 的檢測(cè)頭通過(guò)卷積改變輸入特征圖的通道數(shù),使其輸出通道數(shù)含有目標(biāo)邊界框回歸參數(shù)、置信度分?jǐn)?shù)以及類(lèi)別分?jǐn)?shù),將多種信息集成在一個(gè)特征圖里。分類(lèi)任務(wù)和定位任務(wù)是共享權(quán)重強(qiáng)耦合在一起的,這種耦合檢測(cè)頭對(duì)兩個(gè)任務(wù)的檢測(cè)效果并不能達(dá)到最佳。
考慮到分類(lèi)任務(wù)和定位任務(wù)之間存在沖突,本文采用解耦檢測(cè)頭(decoupled head)為兩個(gè)任務(wù)分別解耦出單獨(dú)的特征通道,有效地避免了不同任務(wù)之間的差異所帶來(lái)的預(yù)測(cè)偏差,緩和了兩者的沖突,從而加強(qiáng)模型的定位和分類(lèi)能力,提高模型的檢測(cè)精度。如圖5 所示,解耦檢測(cè)頭首先使用1×1 卷積操作對(duì)輸入特征圖的通道數(shù)進(jìn)行降維處理,以減少計(jì)算參數(shù)量。然后分出兩條路線:一條路線使用2 個(gè)3×3 卷積,再使用1×1 卷積,將輸出通道數(shù)變?yōu)榫W(wǎng)絡(luò)需要預(yù)測(cè)的類(lèi)別個(gè)數(shù),完成分類(lèi)任務(wù);另一條路線同樣使用2個(gè)3×3卷積進(jìn)行特征提取,然后再將特征圖分為兩個(gè),一個(gè)使用1×1卷積計(jì)算目標(biāo)邊界框的中心點(diǎn)坐標(biāo)、寬高,另一個(gè)也使用1×1 卷積計(jì)算目標(biāo)邊界框與真實(shí)邊界框的交并比,獲取置信度分?jǐn)?shù),完成定位任務(wù)。
圖5 耦合檢測(cè)頭和解耦檢測(cè)頭的比較Fig.5 Comparison of coupled head and decoupled head
目標(biāo)檢測(cè)任務(wù)的相關(guān)算法在檢測(cè)過(guò)程中,通常會(huì)在目標(biāo)周?chē)纱罅康暮蜻x框,大部分的檢測(cè)算法都使用非極大值抑制算法(non-maximum suppression,NMS)來(lái)消除冗余的候選框。NMS是一種通過(guò)臨近最大值挑選候選框的算法,即對(duì)重疊度高的候選框打分,只保留分?jǐn)?shù)最高的候選框。但是得分高的候選框不一定是最合適的框,像無(wú)人機(jī)航拍圖像這種存在重疊、遮擋且密集情況的數(shù)據(jù)集來(lái)說(shuō),該算法在刪除重復(fù)候選框的同時(shí)也會(huì)誤將候選框中不同類(lèi)別目標(biāo)得分較低的候選框刪除,即強(qiáng)制刪除一些重疊但有效的候選框,導(dǎo)致召回率降低,出現(xiàn)漏檢、誤檢的現(xiàn)象。因此,使用軟化非極大值抑制算法(soft non-maximum suppression,Soft NMS)[9]優(yōu)化檢測(cè)時(shí)對(duì)候選框的處理操作,從而提升模型的檢測(cè)精度。
Soft NMS算法是在NMS算法改進(jìn)的基礎(chǔ)上而來(lái),為了解決線性的分?jǐn)?shù)并不連續(xù)所帶來(lái)的跳變問(wèn)題,Soft NMS提出了高斯重置函數(shù)進(jìn)行優(yōu)化,計(jì)算公式為:
式(2)中,Si為當(dāng)前候選框的得分,IoU為交并比,M為權(quán)重最高的框,bi是在檢測(cè)時(shí)生成的候選框,Ni為IoU的閾值,D是最終檢測(cè)結(jié)果的集合,σ是高斯懲罰系數(shù)。相對(duì)于NMS算法,Soft NMS算法中的超參數(shù)僅在驗(yàn)證和測(cè)試階段使用,在訓(xùn)練時(shí)不會(huì)引入其他額外的參數(shù)。因此,選用Soft NMS 算法對(duì)候選框的置信度進(jìn)行優(yōu)化,有效地解決了對(duì)密集小目標(biāo)的漏檢現(xiàn)象,提高了模型的檢測(cè)精度。
為驗(yàn)證RDS-YOLOv5 算法模型的有效性,本文所有的實(shí)驗(yàn)均在公開(kāi)數(shù)據(jù)集VisDrone2019[10]上進(jìn)行實(shí)驗(yàn)。該數(shù)據(jù)集是由天津大學(xué)機(jī)器學(xué)習(xí)與數(shù)據(jù)挖掘?qū)嶒?yàn)室團(tuán)隊(duì)使用不同型號(hào)的無(wú)人機(jī)在中國(guó)14個(gè)不同的城市和鄉(xiāng)村、不同的背景場(chǎng)景以及不同的天氣和光照條件下拍攝而來(lái)的。數(shù)據(jù)集中有10類(lèi)標(biāo)簽,分別為pedestrian、people、bicycle、motor、car、bus、truck、van、awning-tricycle、tricycle,共260 萬(wàn)個(gè)標(biāo)注。根據(jù)圖6 訓(xùn)練集長(zhǎng)寬分布圖可知,更多的數(shù)據(jù)點(diǎn)集中在左下角,說(shuō)明數(shù)據(jù)集中目標(biāo)的長(zhǎng)寬比例小于原圖的1/10,符合小目標(biāo)的定義,與本文研究的問(wèn)題相關(guān)。
圖6 訓(xùn)練集長(zhǎng)寬分布圖Fig.6 Training set length and width distribution
本文使用Windows10操作系統(tǒng),編譯器是Python3.8,PyTorch 1.10,CUDA11.1。所有模型在NVIDIA RTX 2080Ti GPU 上進(jìn)行訓(xùn)練、驗(yàn)證、推理,訓(xùn)練時(shí)的超參數(shù)情況如表2所示。
選取均值平均精度(mean average precision,mAP)、參數(shù)量(parameters,Params)、GFLOPs、FPS 評(píng)價(jià)指標(biāo)對(duì)改進(jìn)算法的檢測(cè)性能進(jìn)行準(zhǔn)確的評(píng)估。mAP0.5表示所有目標(biāo)類(lèi)別在IoU 閾值為0.5 時(shí)的平均檢測(cè)精度。mAP0.5:0.95代表以步長(zhǎng)為0.05,計(jì)算IoU 閾值從0.5~0.95的所有10個(gè)IoU閾值下的檢測(cè)精度的平均值[11]。IoU閾值越高說(shuō)明對(duì)模型的檢測(cè)能力要求越嚴(yán)苛。如果在高閾值下模型的檢測(cè)指標(biāo)越高,說(shuō)明模型的檢測(cè)性能越好,那么模型的檢測(cè)結(jié)果更滿足實(shí)際應(yīng)用的需求。Params代表模型的參數(shù)量,用來(lái)衡量計(jì)算內(nèi)存資源的開(kāi)銷(xiāo)[11]。GFLOPs為每秒10億次的浮點(diǎn)運(yùn)算數(shù),用于衡量模型訓(xùn)練時(shí)的計(jì)算復(fù)雜度[11]。FPS是指模型每秒能檢測(cè)多少?gòu)垐D像,用于衡量模型檢測(cè)的實(shí)時(shí)性[11]。
為了驗(yàn)證添加小目標(biāo)檢測(cè)層P2、多尺度特征提取模塊C3Res2Block、解耦檢測(cè)頭Decoupled Head以及引入Soft NMS算法的有效性,本文選擇YOLOv5s作為基準(zhǔn)模型,通過(guò)相同實(shí)驗(yàn)條件下的消融實(shí)驗(yàn)評(píng)估不同模塊與方法相互組合時(shí)對(duì)目標(biāo)檢測(cè)性能的影響,消融實(shí)驗(yàn)結(jié)果如表3所示。
表3 消融實(shí)驗(yàn)結(jié)果Table 3 Ablation experiment results
從表3 消融實(shí)驗(yàn)結(jié)果可以看出,本文提出的模塊和方法對(duì)模型檢測(cè)小目標(biāo)的精度均得到一定程度的提升。從單獨(dú)添加某一模塊而言,B 實(shí)驗(yàn)將小目標(biāo)檢測(cè)層加入特征融合和預(yù)測(cè)后,mAP0.5提升了5 個(gè)百分點(diǎn),mAP0.5:0.95提升了3.2個(gè)百分點(diǎn)。說(shuō)明新增小目標(biāo)檢測(cè)層在一定程度上可以提升模型檢測(cè)的平均精度均值,也說(shuō)明了使用K-means 聚類(lèi)算法給四個(gè)檢測(cè)層重新分配不同尺度的預(yù)設(shè)錨框,使模型可以很好地適應(yīng)無(wú)人機(jī)航拍場(chǎng)景下小目標(biāo)尺寸變化劇烈等問(wèn)題。通過(guò)C實(shí)驗(yàn)可知,C3Res2Block 模塊在減少模型參數(shù)量和浮點(diǎn)運(yùn)算數(shù)的同時(shí)對(duì)mAP0.5和mAP0.5:0.95也有0.8 和0.3 個(gè)百分點(diǎn)的提升。說(shuō)明該模塊中具有等級(jí)制的殘差結(jié)構(gòu)可以增強(qiáng)網(wǎng)絡(luò)的多尺度特征提取能力,使用的分組卷積可以減少模型參數(shù),起到輕量化的作用。D實(shí)驗(yàn)引入了解耦檢測(cè)頭后,模型的mAP0.5和mAP0.5:0.95分別提高了2和1.3個(gè)百分點(diǎn)。說(shuō)明解耦檢測(cè)頭在一定程度上緩解了兩個(gè)任務(wù)之間的沖突,降低網(wǎng)絡(luò)的預(yù)測(cè)偏差,提高小目標(biāo)的定位精度。但是由于解耦檢測(cè)頭新增了額外的卷積層,導(dǎo)致網(wǎng)絡(luò)的參數(shù)量和浮點(diǎn)運(yùn)算數(shù)增加。從不同模塊的相互組合方面而言,E、F、G實(shí)驗(yàn)可以看出,將三種模塊組合時(shí),模型的精度得到了明顯的提升,雖然C3Res2Block與其他模塊組合時(shí)mAP0.5相較理論上降低了0.2 個(gè)百分點(diǎn),但是組合后mAP0.5:0.95卻有大幅度的提升。最后,通過(guò)H實(shí)驗(yàn)可知,雖然采用Soft NMS 算法會(huì)導(dǎo)致網(wǎng)絡(luò)的推理速度變慢,但是Soft NMS 算法在沒(méi)有增加額外訓(xùn)練參數(shù)的情況下,大幅度地提高了模型的檢測(cè)精度,其mAP0.5和mAP0.5:0.95分別提高了5.3 個(gè)百分點(diǎn)和5.8 個(gè)百分點(diǎn),充分展現(xiàn)了該方法對(duì)密集小目標(biāo)的有效性。
綜上所述,集成四個(gè)方面改進(jìn)后的模型RDSYOLOv5 較基準(zhǔn)模型YOLOv5s 而言,其mAP0.5和mAP0.5:0.95分別提高了12.9和10.6個(gè)百分點(diǎn),證明了改進(jìn)后的模型RDS-YOLOv5能夠有效完成對(duì)無(wú)人機(jī)航拍圖像小目標(biāo)的檢測(cè)任務(wù)。
為了驗(yàn)證RDS-YOLOv5 算法的優(yōu)越性,除了與當(dāng)前主流的檢測(cè)算法進(jìn)行對(duì)比實(shí)驗(yàn)外,還與YOLO系列算法進(jìn)行比較。同時(shí),還與VisDrone數(shù)據(jù)集競(jìng)賽的獲獎(jiǎng)模型TPH-YOLOv5以及針對(duì)小目標(biāo)的QueryDet算法進(jìn)行對(duì)比。主要以mAP和FPS為評(píng)價(jià)指標(biāo)測(cè)試算法模型的檢測(cè)精度和檢測(cè)速度。
從表4可以看出,本文改進(jìn)的算法模型在基本滿足實(shí)時(shí)檢測(cè)的要求下,其檢測(cè)精度相較于主流算法模型來(lái)說(shuō)達(dá)到了最高,mAP0.5和mAP0.5:0.95分別達(dá)到了46.9%和29.2%。相比YOLO 系列在2023 年推出的最新算法YOLOv7和YOLOv8而言,本文提出的RDS-YOLOv5算法無(wú)論是mAP0.5還是mAP0.5:0.95均明顯高于二者,但是FPS卻不如二者優(yōu)秀。對(duì)比VisDrone 數(shù)據(jù)集競(jìng)賽的獲獎(jiǎng)算法TPH-YOLOv5 來(lái)說(shuō),RDS-YOLOv5 算法在檢測(cè)精度和檢測(cè)速度上明顯優(yōu)于該模型,檢測(cè)精度提升了5.4 個(gè)百分點(diǎn)。雖然本文引進(jìn)的Soft NMS算法會(huì)增加模型的推理時(shí)間,但是相較于針對(duì)小目標(biāo)檢測(cè)的算法QueryDet來(lái)說(shuō),在檢測(cè)精度方面仍表現(xiàn)出明顯的優(yōu)勢(shì),檢測(cè)精度提高了16.7個(gè)百分點(diǎn)。
表4 不同檢測(cè)算法的對(duì)比實(shí)驗(yàn)Table 4 Comparison experiments of different detection algorithms
綜上可知,RDS-YOLOv5 算法在滿足一定實(shí)時(shí)性要求的基礎(chǔ)上,顯著提高了對(duì)無(wú)人機(jī)航拍圖像密集小目標(biāo)的檢測(cè)精度,展現(xiàn)出更大的優(yōu)勢(shì)。
為了驗(yàn)證本文改進(jìn)的算法模型在實(shí)際應(yīng)用場(chǎng)景下檢測(cè)的有效性,在VisDrone測(cè)試集中選取在不同場(chǎng)景下拍攝的圖片進(jìn)行測(cè)試。檢測(cè)效果圖7(a)是在光線變化場(chǎng)景下,可以發(fā)現(xiàn)改進(jìn)的算法模型受光線變化影響較小。圖7(b)是在復(fù)雜背景干擾下的檢測(cè)結(jié)果圖,可以看出改進(jìn)的算法仍能檢測(cè)到更多的目標(biāo)。圖7(c)是在拍攝圖像模糊失真情況下的檢測(cè)結(jié)果,可以發(fā)現(xiàn)改進(jìn)的模型能夠精準(zhǔn)地檢測(cè)到目標(biāo),展現(xiàn)出較好的魯棒性和判別性,可以有效地應(yīng)對(duì)實(shí)際場(chǎng)景下的檢測(cè)需求。
圖7 不同場(chǎng)景檢測(cè)效果Fig.7 Detection effects in different scenarios
為了進(jìn)一步評(píng)估本文算法的檢測(cè)性能,還選取了目標(biāo)密集且遮擋、高空角度拍攝,以及夜間黑暗場(chǎng)景下的圖像分別對(duì)基準(zhǔn)模型YOLOv5和本文提出的RDS-YOLOv5算法進(jìn)行對(duì)比測(cè)試。如圖8所示,左圖為YOLOv5算法的檢測(cè)效果,右圖為RDS-YOLOv5算法的檢測(cè)效果。
圖8 檢測(cè)效果對(duì)比Fig.8 Comparison of detection effects
圖8(a)是在真實(shí)街道場(chǎng)景下的檢測(cè)對(duì)比,圖8(b)對(duì)高空拍攝下的小目標(biāo)檢測(cè)對(duì)比,可以看出改進(jìn)后的算法在面對(duì)小目標(biāo)密集且遮擋的情況,不僅可以檢測(cè)出被樹(shù)遮擋的目標(biāo),而且在因?yàn)楦邔咏ㄖ镎趽鯇?dǎo)致光線昏暗場(chǎng)景下也能將騎車(chē)的人和摩托車(chē)、自行車(chē)以及不同類(lèi)別的車(chē)區(qū)分開(kāi)來(lái)。除此之外,也能精準(zhǔn)地檢測(cè)到遠(yuǎn)處受遮擋且重疊的小目標(biāo)。圖8(c)是在夜間黑暗場(chǎng)景下的檢測(cè)對(duì)比,RDS-YOLOv5 相比YOLOv5,學(xué)習(xí)到了更充分更細(xì)節(jié)的小目標(biāo)特征,夜間低照度并沒(méi)有影響模型對(duì)檢測(cè)目標(biāo)的判斷和檢測(cè),沒(méi)有產(chǎn)生了誤檢和漏檢現(xiàn)象??偟膩?lái)說(shuō),改進(jìn)后的算法模型對(duì)不同環(huán)境背景下的無(wú)人機(jī)航拍圖像小目標(biāo)具備更強(qiáng)的檢測(cè)能力。
針對(duì)現(xiàn)有目標(biāo)檢測(cè)算法對(duì)無(wú)人機(jī)航拍場(chǎng)景下的小目標(biāo)存在誤檢、漏檢、檢測(cè)效果差等問(wèn)題,本文提出了RDS-YOLOv5目標(biāo)檢測(cè)算法以解決上述問(wèn)題。
首先,針對(duì)無(wú)人機(jī)航拍圖像的特點(diǎn),在原YOLOv5的三個(gè)預(yù)測(cè)特征圖基礎(chǔ)上新增一個(gè)專(zhuān)門(mén)針對(duì)小目標(biāo)的高分辨率特征圖,該特征圖包含了更淺層的位置信息與深層的語(yǔ)義信息,使模型更容易檢測(cè)到小目標(biāo)的位置。同時(shí),采用K-means聚類(lèi)算法重新生成對(duì)應(yīng)的預(yù)設(shè)錨框尺度,以適應(yīng)無(wú)人機(jī)場(chǎng)景下小目標(biāo)尺寸變化劇烈等問(wèn)題,降低了模型的誤檢率和漏檢率。其次,針對(duì)數(shù)據(jù)集中小目標(biāo)實(shí)例多、類(lèi)別多樣等問(wèn)題,設(shè)計(jì)了具有等級(jí)制的殘差結(jié)構(gòu)的多尺度特征提取模塊C3Res2Block,該模塊不僅可以減少網(wǎng)絡(luò)的參數(shù)量和計(jì)算量,還能提高網(wǎng)絡(luò)的多尺度特征提取能力,增加網(wǎng)絡(luò)對(duì)小目標(biāo)的關(guān)注度。在預(yù)測(cè)時(shí),采用解耦檢測(cè)頭Decoupled Head 將分類(lèi)任務(wù)與回歸任務(wù)解耦,緩和兩者之間的沖突,提升模型的分類(lèi)和定位能力。最后,采用Soft NMS 算法進(jìn)一步優(yōu)化對(duì)候選框的處理,提高模型對(duì)密集遮擋的小目標(biāo)的檢測(cè)精度。通過(guò)在VisDrone數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,改進(jìn)后的算法與多種主流的目標(biāo)檢測(cè)算法相比取得了最好的檢測(cè)精度,并且在大幅度提高檢測(cè)精度的同時(shí)也滿足了無(wú)人機(jī)航拍實(shí)時(shí)性檢測(cè)的要求。