陳衛(wèi)彪,賈小軍,朱響斌,冉二飛,謝 昊
1.浙江師范大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,浙江金華321004
2.嘉興學(xué)院信息科學(xué)與工程學(xué)院,浙江嘉興314001
3.浙江理工大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院(人工智能學(xué)院),杭州310018
隨著無(wú)人機(jī)(unmanned aerial vehicle,UAV)技術(shù)的發(fā)展和制造成本的降低,無(wú)人機(jī)的應(yīng)用愈發(fā)地深入各行各業(yè)。目標(biāo)檢測(cè)任務(wù)是無(wú)人機(jī)應(yīng)用最重要的組成部分,廣泛應(yīng)用于搶險(xiǎn)救災(zāi)、測(cè)繪航測(cè)、應(yīng)急救援等領(lǐng)域。目前目標(biāo)檢測(cè)算法主要分為兩類,分別是以背景減去法、光流法和幀差法為代表的傳統(tǒng)算法和以深度學(xué)習(xí)為代表的新型算法。在航拍圖像的目標(biāo)檢測(cè)任務(wù)中,Yalcin 等[1]提出了利用光流法檢測(cè)運(yùn)動(dòng)目標(biāo)的特征,該方法對(duì)運(yùn)動(dòng)目標(biāo)檢測(cè)效果明顯,但檢測(cè)精度以及對(duì)靜止目標(biāo)檢測(cè)效果差。Mei等[2]提出模板匹配檢測(cè)目標(biāo)的方法。將視頻中含有運(yùn)動(dòng)圖像的每幀單獨(dú)提取,然后用提前準(zhǔn)備好的車輛等物體的模板進(jìn)行匹配檢測(cè)。該方法對(duì)車輛等形狀明顯的物體檢測(cè)效果較好,但存在計(jì)算量過(guò)大、難以部署的問(wèn)題。
以深度學(xué)習(xí)為基礎(chǔ)的目標(biāo)檢測(cè)算法又分為兩類,分別是單階段式(one-stage)和兩階段式(two-stage)。YOLO(you only look once)[3]是一種典型的單階段式目標(biāo)檢測(cè)算法,它直接將目標(biāo)邊界定位問(wèn)題轉(zhuǎn)化為回歸問(wèn)題,圖像被縮小到統(tǒng)一尺寸,并以網(wǎng)格進(jìn)行均等劃分。模型僅需要處理圖像一次便能得到邊界框坐標(biāo)和類概率。兩階段式的檢測(cè)算法先生成一系列的候選邊界框作為樣本,而后由卷積神經(jīng)網(wǎng)絡(luò)對(duì)樣本進(jìn)行分類,例如R-CNN[4]、Fast R-CNN[5]、Faster R-CNN[6]、R-FCN[7]等。張瑞倩等[8]根據(jù)多尺度空洞卷積感受野大的特點(diǎn),提出一種新的網(wǎng)絡(luò)結(jié)構(gòu),提升了無(wú)人機(jī)航拍圖像目標(biāo)檢測(cè)任務(wù)的查準(zhǔn)率和查全率,但未能對(duì)網(wǎng)絡(luò)做輕量化處理。陳旭等[9]通過(guò)增加特征融合模塊、殘差空洞卷積等方式,有效地提高了網(wǎng)絡(luò)對(duì)無(wú)人機(jī)航拍圖像的檢測(cè)能力,改造之后的模型具有遮擋目標(biāo)識(shí)別率高、虛警率低的優(yōu)點(diǎn),但網(wǎng)絡(luò)所需要的算力大幅增長(zhǎng)。韓玉潔等[10]以YOLO v4為基礎(chǔ),通過(guò)改變激活函數(shù)、損失函數(shù)和以自對(duì)抗訓(xùn)練的方式增強(qiáng)數(shù)據(jù)集,有效地提高了網(wǎng)絡(luò)在無(wú)人機(jī)航拍圖像目標(biāo)檢測(cè)任務(wù)中的檢測(cè)精度,但依舊存在小目標(biāo)檢測(cè)能力差、網(wǎng)絡(luò)模型體積大的問(wèn)題。劉鑫等[11]以CenterNet為基礎(chǔ),通過(guò)增加自適應(yīng)基礎(chǔ)模塊、全局注意力模塊和高質(zhì)量解碼模塊,在模型復(fù)雜度不變的前提下,提升了網(wǎng)絡(luò)的檢測(cè)精度,但網(wǎng)絡(luò)所需參數(shù)量大、算力要求高,難于部署在無(wú)人機(jī)平臺(tái)中。王浩雪等[12]針對(duì)無(wú)人機(jī)航拍圖像小目標(biāo)多、易被遮擋的特點(diǎn),提出了S-YOLO v4網(wǎng)絡(luò),通過(guò)增加SE(squeeze and excitation)注意力模塊、小目標(biāo)檢測(cè)層和改進(jìn)損失函數(shù)的方式,增強(qiáng)了網(wǎng)絡(luò)的魯棒性,提升了網(wǎng)絡(luò)的檢測(cè)精度,但帶來(lái)了網(wǎng)絡(luò)體積和總參數(shù)量變大的問(wèn)題。王勝科等[13]以CenterNet為基礎(chǔ),通過(guò)增加可變形雙重注意力機(jī)制、改變極大值抑制方式和引入LegoNet卷積單元的手段,有效提高了網(wǎng)絡(luò)的檢測(cè)精度。但在模型的推理速度和模型體積輕量化改進(jìn)上還有待于提升。Zhu 等[14]通過(guò)添加Transformer Encoder 模塊和注意力機(jī)制,提高了無(wú)人機(jī)目標(biāo)檢測(cè)任務(wù)的檢測(cè)精度,刷新了VisDrone2021 數(shù)據(jù)集的檢測(cè)紀(jì)錄,但算法所需的參數(shù)、網(wǎng)絡(luò)層數(shù)以及算力大幅度提高。Liu 等[15]通過(guò)修改YOLO v3 的網(wǎng)絡(luò)結(jié)構(gòu),增加ResNet模塊,在高層網(wǎng)絡(luò)結(jié)構(gòu)添加額外的卷積結(jié)構(gòu)以豐富空間信息,提高了小目標(biāo)物體的檢測(cè)能力。Lin 等[16]通過(guò)使用多尺度融合的特征聚合框架和高精度的上采樣方法,改善了在高分辨率圖像中的采樣精度不足問(wèn)題。Zhang等[17]通過(guò)密集裁剪和增加局部注意力模塊的方式,改善了行人等目標(biāo)由于占圖像面積小、檢測(cè)率低的問(wèn)題,有效提高了對(duì)于無(wú)人機(jī)視角下的行人檢測(cè)精度。Luo 等[18]在YOLO v5l 的基礎(chǔ)上,對(duì)主干網(wǎng)絡(luò)中的特征提取模塊進(jìn)行替換,并通過(guò)在Focus 模塊中增加注意力機(jī)制、優(yōu)化錨框尺寸等方法,提高了網(wǎng)絡(luò)的精度,但其網(wǎng)絡(luò)參數(shù)量高達(dá)2 700 萬(wàn),難以部署至無(wú)人機(jī)等邊緣設(shè)備中。Zhang 等[19]通過(guò)在YOLO v5 中增加CA(coordinate attention)注意力機(jī)制和CFEM(context feature enhancement module)模塊,提高了網(wǎng)絡(luò)對(duì)小目標(biāo)的檢測(cè)能力,但增加的模塊也帶來(lái)了參數(shù)量和算力的提升。Yang等[20]在YOLO v5的基礎(chǔ)上,通過(guò)優(yōu)化錨框尺寸、增加注意力機(jī)制、添加小目標(biāo)檢測(cè)層的方式提高了檢測(cè)精度,但未考慮網(wǎng)絡(luò)的參數(shù)量增加和算力需求變大等問(wèn)題。李壯飛等[21]基于YOLO v5 網(wǎng)絡(luò),在其中引入SENet 注意力機(jī)制、增加小目標(biāo)檢測(cè)層、改進(jìn)損失函數(shù),提高了對(duì)于小車輛目標(biāo)的查準(zhǔn)率,但同時(shí)也帶來(lái)了計(jì)算量增加的問(wèn)題。蘇凱第等[22]通過(guò)增加卷積層數(shù)來(lái)提高算法深度,采用多次循環(huán)神經(jīng)網(wǎng)絡(luò)提高訓(xùn)練速度,有效地提高了YOLO v5 的識(shí)別速度和精度,但也帶來(lái)了更多的參數(shù)和更高的算力要求,難以適配無(wú)人機(jī)等邊緣設(shè)備。
目前主流的目標(biāo)檢測(cè)算法采取基于卷積神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)方式,其特征提取和表達(dá)能力強(qiáng),由于這些算法多用于自然視角下的目標(biāo)檢測(cè)場(chǎng)景,在對(duì)無(wú)人機(jī)航拍圖像數(shù)據(jù)中的車輛、行人等小目標(biāo)進(jìn)行檢測(cè)時(shí),難以取得讓人滿意的效果。與普通場(chǎng)景的目標(biāo)檢測(cè)相比,無(wú)人機(jī)航拍圖像存在以下幾個(gè)特點(diǎn):(1)檢測(cè)目標(biāo)像素占比少;(2)無(wú)人機(jī)硬件限制,難以提供足夠的算力和空間;(3)航拍圖像復(fù)雜,外界干擾因素大。
針對(duì)以上問(wèn)題,本文以YOLO v5算法為基礎(chǔ),提出一種基于深度可分離的多頭網(wǎng)絡(luò)結(jié)構(gòu),將其命名為DSM-YOLO v5(depthwise separable multiplex YOLO v5)算法,通過(guò)增加檢測(cè)頭的數(shù)量提升檢測(cè)精度,增加深度可分離結(jié)構(gòu)降低網(wǎng)絡(luò)的算力要求。與當(dāng)前主流無(wú)人機(jī)航拍圖像目標(biāo)檢測(cè)算法不同的是,在聚焦提高網(wǎng)絡(luò)檢測(cè)能力的同時(shí)降低了網(wǎng)絡(luò)的參數(shù)量。
YOLO v5 作為目前目標(biāo)檢測(cè)領(lǐng)域中的主流算法,分為v5s、v5m、v5l、v5x 四個(gè)版本,可以根據(jù)不同的應(yīng)用領(lǐng)域動(dòng)態(tài)調(diào)整網(wǎng)絡(luò)結(jié)構(gòu)和深度。基于無(wú)人機(jī)平臺(tái)的算力和內(nèi)存空間有限的特點(diǎn),本研究選擇參數(shù)量最小的YOLO v5s[23]進(jìn)行對(duì)比實(shí)驗(yàn)。YOLO v5s 主要由Backbone、Head 和Output 層三部分組成,相較于YOLO v4,Backbone中添加了focus層,能夠?qū)μ卣鲌D進(jìn)行切片,提高特征提取能力。Head 層保持和YOLO v4 同樣的網(wǎng)絡(luò)結(jié)構(gòu),其主要功能有特征融合、目標(biāo)檢測(cè),采取自頂向下的網(wǎng)絡(luò)結(jié)構(gòu),將高層特征與底層特征融合,以此加強(qiáng)網(wǎng)絡(luò)的特征融合能力。通過(guò)對(duì)不同尺度的特征圖進(jìn)行檢測(cè),最大限度地提高目標(biāo)檢測(cè)的精度,Output 層則根據(jù)預(yù)設(shè)好的三個(gè)錨框?qū)敵鎏卣鲌D進(jìn)行預(yù)測(cè),使用非極大值抑制去除低可信度的數(shù)據(jù),最終輸出檢測(cè)的結(jié)果。
然而,在應(yīng)對(duì)無(wú)人機(jī)航拍圖像目標(biāo)檢測(cè)任務(wù)時(shí),YOLO v5s 算法所需要的體積和算力仍然超出目前無(wú)人機(jī)平臺(tái)所能提供的硬件算力,難以有效部署在無(wú)人機(jī)等移動(dòng)設(shè)備上進(jìn)行實(shí)時(shí)檢測(cè)。為了解決這一問(wèn)題,對(duì)YOLO v5s算法進(jìn)行輕量化改進(jìn)具有重要的實(shí)用價(jià)值。
深度可分離算法由谷歌團(tuán)隊(duì)提出,其核心思想是將一個(gè)普通卷積替換成深度卷積和逐點(diǎn)卷積[24]。深度卷積先用Channel為1的濾波器對(duì)每個(gè)輸入通道進(jìn)行單獨(dú)卷積,在此過(guò)程之中,Padding 及Stride 均為1,保證輸出特征圖的尺寸和通道保持不變。在逐點(diǎn)卷積的過(guò)程中,對(duì)深度卷積輸出的特征圖使用大小為1×1 的濾波器進(jìn)行卷積,最終輸出特征圖,特征圖的尺寸和通道數(shù)都和普通卷積輸出的結(jié)果一致。深度可分離模塊結(jié)構(gòu)如圖1所示。
圖1 深度可分離模塊結(jié)構(gòu)Fig.1 Depthwise separable model block structure
假設(shè)普通卷積使用M個(gè)大小為DK的卷積核,輸入特征圖的通道數(shù)為N,大小為DF,則普通卷積的計(jì)算量Fconv[25]為:
在使用深度可分離模塊替換普通卷積的前提下,計(jì)算分為兩個(gè)步驟,分別是深度卷積和逐點(diǎn)卷積,其計(jì)算量Fdepth[25]為:
用公式(1)除以公式(2),最終得到的結(jié)果便是:
由于在MobileNet 網(wǎng)絡(luò)中,卷積核的大小DK一般為3,由公式(3)可以推出,深度可分離模塊的計(jì)算量為普通卷積模塊計(jì)算量的1/9~1/8[25]。
在無(wú)人機(jī)航拍圖像目標(biāo)檢測(cè)中,由于檢測(cè)目標(biāo)所占圖像的比例較小,傳統(tǒng)YOLO v5s 的Backbone 層難以有效提取目標(biāo)物的特征,導(dǎo)致最終的查準(zhǔn)率、查全率低,并且在Head 層生成特征圖的過(guò)程中,未與網(wǎng)絡(luò)高層進(jìn)行殘差連接,致使特征圖中丟失部分檢測(cè)目標(biāo)細(xì)節(jié)。為了提高YOLO v5s模型的小目標(biāo)感知能力,在原有三個(gè)檢測(cè)頭的基礎(chǔ)上加深網(wǎng)絡(luò)結(jié)構(gòu),額外添加一個(gè)新的檢測(cè)頭,該檢測(cè)頭在高層網(wǎng)絡(luò)中,輸出160×160 大尺寸特征圖,由于YOLO v5s 網(wǎng)絡(luò)整體下采樣倍數(shù)較大,而無(wú)人機(jī)航拍圖像中小目標(biāo)物體面積占比極小,經(jīng)過(guò)高倍數(shù)下采樣之后,小目標(biāo)物體的特征已和背景融為一體,難以提取。相較于傳統(tǒng)YOLO v5s 的三個(gè)小尺寸80×80、40×40、20×20檢測(cè)頭,大尺寸檢測(cè)頭能夠從網(wǎng)絡(luò)高層提取小目標(biāo)特征,有效加強(qiáng)對(duì)于小目標(biāo)物體的感知能力。在Head 層中,為了提高網(wǎng)絡(luò)對(duì)于小目標(biāo)物體特征的提取能力,將Head層與Backbone的高層進(jìn)行殘差連接。
為了降低網(wǎng)絡(luò)的參數(shù),將原有Conv 模塊中的普通卷積替換為深度可分離卷積,組成新的深度可分離卷積模塊Conv_ds,加入深度可分離卷積模塊Conv_ds 后,DSM-YOLO v5 相較于YOLO v5s,額外加深了網(wǎng)絡(luò)層數(shù),使得DSM-YOLO v5具有更好的特征表達(dá)能力。雖然網(wǎng)絡(luò)層數(shù)增加了,但是由于深度可分離模塊的特點(diǎn),整個(gè)網(wǎng)絡(luò)的體積及參數(shù)量卻降低了。通過(guò)殘差連接的方式,加深了特征融合的能力,能更有效地提取小目標(biāo)物體的信息。改進(jìn)的整個(gè)網(wǎng)絡(luò)結(jié)構(gòu)如圖2(a)所示,圖2(b)為其中的子模板結(jié)構(gòu)。
圖2 DSM-YOLO v5網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 DSM-YOLO v5 network structure
實(shí)驗(yàn)采用VisDrone2019[26]數(shù)據(jù)集。VisDrone 數(shù)據(jù)集由天津大學(xué)機(jī)器學(xué)習(xí)與數(shù)據(jù)挖掘?qū)嶒?yàn)室的AISKYEYE團(tuán)隊(duì)發(fā)布,數(shù)據(jù)集取自中國(guó)14個(gè)不同的城市,環(huán)境多種多樣,城市與鄉(xiāng)村、各種天氣和照明條件。圖像檢測(cè)目標(biāo)密度廣,稀疏與密集均有,是目前中國(guó)無(wú)人機(jī)航拍數(shù)據(jù)量最大、覆蓋范圍最廣、環(huán)境最復(fù)雜的數(shù)據(jù)集之一。如圖3所示,VisDrone2019數(shù)據(jù)集共包含10類航拍檢測(cè)目標(biāo),由6 471 張訓(xùn)練集、548 張驗(yàn)證集、3 190 張測(cè)試集圖片組成。其中,訓(xùn)練集平均每張圖片含有53個(gè)標(biāo)簽,測(cè)試集平均有71 個(gè)標(biāo)簽,并且每個(gè)類別均有不同程度的遮擋。數(shù)據(jù)集類別由pedestrian、people、bicycle、car、van、truck、tricycle、awning-tricyle、bus、motor 組成。由于使用的網(wǎng)絡(luò)結(jié)構(gòu)為深度可分離模塊,所以在預(yù)訓(xùn)練權(quán)重上使用了基于imagenet 數(shù)據(jù)集訓(xùn)練的mobilenetv1 權(quán)重文件。
圖3 VisDrone2019數(shù)據(jù)集Fig.3 VisDrone2019 dataset
為了方便訓(xùn)練,將VisDrone 的文件結(jié)構(gòu)修改為PASCAL VOC結(jié)構(gòu),并在訓(xùn)練開(kāi)始前,對(duì)所有數(shù)據(jù)使用Mosaic技術(shù)進(jìn)行數(shù)據(jù)增強(qiáng)[27]。隨機(jī)選取四張圖片,對(duì)其進(jìn)行翻轉(zhuǎn)、縮放、色域調(diào)整等操作,再將其組合成一張新的圖片,以此增強(qiáng)數(shù)據(jù)樣本的多樣性,并且能夠在硬件資源有限的情況下,提高網(wǎng)絡(luò)的訓(xùn)練能力。
實(shí)驗(yàn)平臺(tái)采用12核Intel?Xeon?Platinum 8255C CPU @ 2.50 GHz,內(nèi)存為45 GB,操作系統(tǒng)為Ubuntu 20.04。以Python 3.8 實(shí)現(xiàn)網(wǎng)絡(luò)模型,代碼編輯器采用PyCharm Community Edition 版本,使用Pytorch 框架。顯卡為RTX2080Ti,cuda版本為11.3。
為更有效直觀地展示DSM-YOLO v5的改進(jìn)效果,以平均精度值(mean average precision,mAP)、查全率(recall)、查準(zhǔn)率(precision)作為網(wǎng)絡(luò)結(jié)構(gòu)在無(wú)人機(jī)航拍圖像目標(biāo)檢測(cè)任務(wù)中學(xué)習(xí)能力的評(píng)價(jià)依據(jù)。以網(wǎng)絡(luò)模型的體積大小和所需要的參數(shù)量作為網(wǎng)絡(luò)對(duì)無(wú)人機(jī)航拍圖像目標(biāo)檢測(cè)任務(wù)適應(yīng)能力的指標(biāo)。模型需要的體積和占用的參數(shù)越小,則代表算法更加匹配無(wú)人機(jī)航拍圖像目標(biāo)檢測(cè)任務(wù)。
整個(gè)訓(xùn)練過(guò)程迭代300個(gè)epoch。為保證模型的穩(wěn)定,在前3 個(gè)epoch 采用warmup 預(yù)熱學(xué)習(xí)策略,初始學(xué)習(xí)率設(shè)置為0.01,后續(xù)則采用余弦退火算法控制學(xué)習(xí)率衰減,余弦退火算法超參數(shù)lrf 為0.2,最低學(xué)習(xí)率為0.002。經(jīng)過(guò)300 個(gè)epoch 的訓(xùn)練之后,得到的損失曲線如圖4所示,其中Box_loss代表模型預(yù)測(cè)邊界框和真實(shí)邊界框之間的差異大小,Class_loss為分類損失,用于判斷模型是否能準(zhǔn)確識(shí)別出圖像中的對(duì)象,并將其分類到正確的類別中。Object_loss為置信度損失,用于監(jiān)督grid中是否存在物體,計(jì)算網(wǎng)絡(luò)的置信度。從圖4中可以看出,當(dāng)epoch 為300 輪時(shí),DSM-YOLO v5 網(wǎng)絡(luò)的各項(xiàng)loss值已經(jīng)不再下降,網(wǎng)絡(luò)已收斂,趨于穩(wěn)定。
圖4 DSM-YOLO v5損失曲線Fig.4 DSM-YOLO v5 loss curve
利用訓(xùn)練后的網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行目標(biāo)檢測(cè),使用的數(shù)據(jù)為測(cè)試集的樣本數(shù)據(jù)。如圖5 所示,其中圖5(a)為YOLO v5s的實(shí)驗(yàn)結(jié)果,圖5(b)為DSM-YOLO v5的實(shí)驗(yàn)結(jié)果。可以看出DSM-YOLO v5 在除bicycle 分類外,其他各個(gè)分類的精度都優(yōu)于YOLO v5s,pedestrain、people、car、van、truck、tricycle、awning-tricycle、bus、motor九個(gè)類別分別提高0.044、0.021、0.069、0.061、0.048、0.021、0.008、0.042、0.042。在IoU(intersection over union)為0.5時(shí),DSM-YOLO v5的mAP值為36.8%,高于YOLO v5s。
圖5 Precision-Recall曲線圖Fig.5 Precision-Recall curve
為了對(duì)網(wǎng)絡(luò)結(jié)構(gòu)性能進(jìn)行驗(yàn)證,選取DetNet59[28]、CornerNet[28]、Fast R-CNN[29]、CenterNet[30]、MixedYOLOv3-LITE[31]、YOLO v5s 算法進(jìn)行目標(biāo)檢測(cè)對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表1所示。在mAP@0.5上,DSM-YOLO v5取得了明顯的提升,相較于DetNet59 提高21.5 個(gè)百分點(diǎn)、CornerNet 提高19.4 個(gè)百分點(diǎn)、Fast R-CNN 提高15.1 個(gè)百分點(diǎn)、CenterNet 提高10.6%、MixedYOLOv3-LITE 提高8.3 個(gè)百分點(diǎn)、YOLO v5s 提高了3.6 個(gè)百分點(diǎn)。在pedestrain、people、car、van、truck、tricycle、bus以及motor八個(gè)類別上達(dá)到了最大的AP,分別為42.6%、32.7%、79.3%、41.3%、35.6%、21.4%、49.7%以及42%。實(shí)驗(yàn)結(jié)果表明,改進(jìn)的算法能夠較明顯地提高網(wǎng)絡(luò)對(duì)于小目標(biāo)的檢測(cè)能力,在無(wú)人機(jī)航拍圖像目標(biāo)檢測(cè)任務(wù)中表現(xiàn)較好。
表1 不同算法在VisDrone2019數(shù)據(jù)集上的目標(biāo)檢測(cè)結(jié)果Table 1 Target detection results of different algorithms on VisDrone2019 dataset
相較于普通的目標(biāo)檢測(cè)任務(wù),無(wú)人機(jī)航拍圖像對(duì)網(wǎng)絡(luò)結(jié)構(gòu)的特征提取能力要求更高,對(duì)目標(biāo)的精確識(shí)別難度更大,傳統(tǒng)的目標(biāo)檢測(cè)算法難以滿足要求。DSMYOLO v5 通過(guò)加深網(wǎng)絡(luò)結(jié)構(gòu),增加淺層和深層網(wǎng)絡(luò)殘差連接,以及增加小目標(biāo)檢測(cè)頭的方式,有效地提高了網(wǎng)絡(luò)對(duì)于無(wú)人機(jī)航拍圖像目標(biāo)檢測(cè)任務(wù)的識(shí)別能力,對(duì)于復(fù)雜場(chǎng)景、高密度場(chǎng)景的目標(biāo),經(jīng)過(guò)高倍率下采樣之后,其特征已經(jīng)無(wú)法識(shí)別,密集目標(biāo)和背景混雜在一起,和深層連接的檢測(cè)頭難以識(shí)別。新增的160×160 檢測(cè)頭直接和淺層網(wǎng)絡(luò)相連接,能夠在進(jìn)行高倍率下采樣之前獲得復(fù)雜場(chǎng)景、高密度場(chǎng)景的目標(biāo)的特征信息,能有效識(shí)別目標(biāo)。由于無(wú)人機(jī)硬件本身的限制,小型無(wú)人機(jī)平臺(tái)對(duì)于算法的參數(shù)量、模型體積比較敏感,DSM-YOLO v5與YOLO v5 中的兩種模型s 型和l 型的性能比較結(jié)果如表2 所示,DSM-YOLO v5 通過(guò)使用深度可分離的思想,將傳統(tǒng)YOLO v5s 的Conv 普通卷積模塊替換為深度可分離模塊Conv_ds,有效地減小了網(wǎng)絡(luò)的參數(shù)量和模型體積,YOLO v5l 雖然在檢測(cè)精度上小幅優(yōu)于DSM-YOLO v5,但其所需的參數(shù)量和模型的體積分別為DSM-YOLO v5的8.4倍和8.1倍。DSM-YOLO v5在保證精度的前提下,大大降低了網(wǎng)絡(luò)結(jié)構(gòu)對(duì)硬件的要求,更有利于算法在無(wú)人機(jī)等小型設(shè)備上使用。
表2 YOLO v5與DSM-YOLO v5各項(xiàng)指標(biāo)對(duì)比Table 2 Comparison of indicators between YOLO v5 and DSM-YOLO v5
為了驗(yàn)證DSM-YOLO v5 網(wǎng)絡(luò)的有效性,選擇額外的DroneVehicle 數(shù)據(jù)集和RSOD 數(shù)據(jù)集進(jìn)行測(cè)試。DroneVehicle數(shù)據(jù)集為無(wú)人機(jī)航拍下的紅外汽車圖像數(shù)據(jù)集,其中訓(xùn)練集共有17 957張圖片,測(cè)試集8 980張圖片,驗(yàn)證集共有1 467張圖片,共含有car目標(biāo)428 086個(gè)、truck 目標(biāo)25 960 個(gè)、bus 目標(biāo)16 590 個(gè)、van 目標(biāo)12 708個(gè)和feright car 目標(biāo)17 173 個(gè)。RSOD 為遙感圖像數(shù)據(jù)集,其中訓(xùn)練集818 張圖片,測(cè)試集99 張圖片共含有aircraft目標(biāo)4 993個(gè)、oiltank目標(biāo)1 586個(gè)、overpass目標(biāo)180 個(gè)和playground 目標(biāo)191 個(gè)。DSM-YOLO v5 的檢測(cè)結(jié)果如表3 所示,對(duì)于DroneVehicle 數(shù)據(jù)集,AP 值最高為car類98.1%,Recall最高為car類95.5%,Precision最高為car類94.9%,mAP@0.5為81.3%。在RSOD數(shù)據(jù)集中,AP值最高為aircraft類98.8%,Recall最高為overpass類98.9%,Precision最高為oiltank類98.7%,mAP@0.5為90.6%。實(shí)驗(yàn)數(shù)據(jù)表明DSM-YOLO v5 的檢測(cè)效果較好,在不同的數(shù)據(jù)集中能達(dá)到令人滿意的檢測(cè)效果。與VisDrone2019相比,DroneVehicle數(shù)據(jù)集屬于紅外圖像,RSOD 數(shù)據(jù)集屬于遙感圖像,整體色調(diào)、明暗等畫(huà)面風(fēng)格統(tǒng)一,減小了目標(biāo)檢測(cè)的難度,DroneVehicle和RSOD數(shù)據(jù)集中的目標(biāo)輪廓明顯,不存在重疊遮擋、目標(biāo)俯視圖不會(huì)隨視角大幅度變化。
表3 DSM-YOLO v5在不同數(shù)據(jù)集上的檢測(cè)結(jié)果Table 3 Detection results of DSM-YOLO v5 on different dataset
為了驗(yàn)證DSM-YOLO v5中所提出的大尺寸檢測(cè)頭和MobileNet輕量化改進(jìn)的實(shí)際效果,對(duì)DSM-YOLOv5網(wǎng)絡(luò)進(jìn)行消融實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表4所示。其中第一行到第四行分別屏蔽不同尺寸的檢測(cè)頭。屏蔽160×160檢測(cè)頭時(shí),mAP@0.5 為33.2%,屏蔽80×80 檢測(cè)頭時(shí),mAP@0.5 為34.8%,屏蔽40×40 檢測(cè)頭時(shí),mAP@0.5 為36.3%,屏蔽20×20 檢測(cè)頭時(shí),mAP@0.5 為38.1%,從數(shù)據(jù)可以看出,160×160 的檢測(cè)頭對(duì)精度的提升最大,能有效提高網(wǎng)絡(luò)的檢測(cè)能力。第五行和第六行的對(duì)比可以看出,MobileNet 輕量化模塊的加入導(dǎo)致檢測(cè)精度小幅度下降,Precision 值從53.7%下降為51.1%,Recall 值從39.7%下降為37%,mAP@0.5從38.4%下降為36.8%,下降值并不明顯,但其網(wǎng)絡(luò)結(jié)構(gòu)所需參數(shù)量卻大大降低??紤]到無(wú)人機(jī)平臺(tái)的算力低和空間小特性,算法的輕量化處理存在必要性。
表4 消融實(shí)驗(yàn)Table 4 Ablation experiment
為了更加直觀地展示DSM-YOLO v5 在無(wú)人機(jī)航拍圖像上的目標(biāo)檢測(cè)能力,選擇了部分實(shí)驗(yàn)結(jié)果,如圖6所示。圖6 上面一行的三張圖像是使用YOLO v5s 網(wǎng)絡(luò)結(jié)構(gòu)的檢測(cè)結(jié)果,下面一行的三張圖像則是使用DSM-YOLO v5網(wǎng)絡(luò)結(jié)構(gòu)檢測(cè)的結(jié)果。顯然,對(duì)于遠(yuǎn)處小而密集的物體,DSM-YOLO v5在檢測(cè)時(shí)能夠準(zhǔn)確地識(shí)別,而YOLOv5s的檢測(cè)效果遜色于DSM-YOLO v5。綜合來(lái)看,DSM-YOLO v5 其檢測(cè)效果優(yōu)于YOLO v5s算法。
圖6 目標(biāo)檢測(cè)結(jié)果Fig.6 Target detection results
為了驗(yàn)證DSM-YOLO v5算法的魯棒性,本文選取了不同環(huán)境和光線下的場(chǎng)景作為檢測(cè)對(duì)象。檢測(cè)結(jié)果如圖7 所示。通過(guò)圖7 第一行的三張圖片,可以看到在光線較弱的情況下,DSM-YOLO v5仍然能夠有效地檢測(cè)出大多數(shù)有效目標(biāo)。這表明DSM-YOLO v5 算法具有一定的光線適應(yīng)性,能夠適應(yīng)多種光照條件下的目標(biāo)檢測(cè)任務(wù)。此外,DSM-YOLO v5算法還能夠在各種室內(nèi)和室外環(huán)境中正常運(yùn)行,這進(jìn)一步證明了其魯棒性。第二行的三張圖片顯示了DSM-YOLO v5 在目標(biāo)密集的情況下的檢測(cè)效果。這是一個(gè)具有挑戰(zhàn)性的場(chǎng)景,因?yàn)槟繕?biāo)過(guò)于密集,算法很容易將它們誤判為一個(gè)單獨(dú)的目標(biāo),或者錯(cuò)過(guò)其中的一些目標(biāo)。然而,DSM-YOLO v5能夠有效地檢測(cè)出每一個(gè)目標(biāo),并且準(zhǔn)確地識(shí)別它們的位置和類別,表現(xiàn)出較強(qiáng)的魯棒性和準(zhǔn)確性。
圖7 DSM-YOLO v5目標(biāo)檢測(cè)結(jié)果Fig.7 DSM-YOLO v5 target detection results
根據(jù)無(wú)人機(jī)航拍圖像的特點(diǎn),提出了一種能夠在復(fù)雜環(huán)境、密集場(chǎng)景中進(jìn)行目標(biāo)檢測(cè)的網(wǎng)絡(luò)結(jié)構(gòu)DSMYOLO v5。通過(guò)加深特征融合部分的網(wǎng)絡(luò)深度、增加額外的小目標(biāo)檢測(cè)頭的方式,能夠有效地提高無(wú)人機(jī)航拍圖像的檢測(cè)效率,提高查準(zhǔn)率、查全率等各項(xiàng)指標(biāo)。將普通的卷積模塊替換為深度可分離模塊,能明顯減少網(wǎng)絡(luò)所需要的參數(shù),以及模型所占用的空間,使其更有效地應(yīng)用在無(wú)人機(jī)硬件設(shè)備中。根據(jù)在VisDrone2019數(shù)據(jù)集、DroneVehicle 數(shù)據(jù)集和RSOD 數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果,DSM-YOLO v5在無(wú)人機(jī)航拍圖像目標(biāo)檢測(cè)任務(wù)之中,各項(xiàng)指標(biāo)都優(yōu)于目前主流的目標(biāo)檢測(cè)網(wǎng)絡(luò)結(jié)構(gòu)。雖然DSM-YOLO v5 算法在無(wú)人機(jī)航拍圖像的目標(biāo)檢測(cè)任務(wù)當(dāng)中表現(xiàn)較好,但仍需要進(jìn)行改進(jìn),如網(wǎng)絡(luò)層數(shù)較多,目標(biāo)檢測(cè)的精度和速度還有待提升,接下來(lái)將繼續(xù)在網(wǎng)絡(luò)結(jié)構(gòu)、體積、參數(shù)量、檢測(cè)速度等方面進(jìn)行更深入的研究。