黃丹丹, 高 晗, 劉 智,2*, 于林韜, 王惠績(jī)
(1. 長(zhǎng)春理工大學(xué) 電子信息工程學(xué)院,吉林 長(zhǎng)春 130022;2. 長(zhǎng)春理工大學(xué) 空間光電技術(shù)國(guó)家地方聯(lián)合工程研究中心,吉林 長(zhǎng)春 130022)
無人機(jī)憑借尺寸小、操作靈敏等優(yōu)點(diǎn),能夠替代人類完成一些高難度或有危險(xiǎn)的任務(wù)[1]。目標(biāo)檢測(cè)是搭載在無人機(jī)平臺(tái)的一項(xiàng)重要視覺任務(wù),能夠?qū)崿F(xiàn)空中對(duì)地俯視視角下的目標(biāo)檢測(cè),這在軍事偵察、森林防火、高壓輸電線路巡檢、環(huán)境監(jiān)測(cè)、智慧交通等領(lǐng)域發(fā)揮重要作用[2]。在人工智能時(shí)代,基于卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測(cè)算法不斷刷新著目標(biāo)檢測(cè)的性能[3-4]。但是,目前絕大多數(shù)的目標(biāo)檢測(cè)算法都是基于平視自然的視角下進(jìn)行的改進(jìn)。由此可見,設(shè)計(jì)一種專門針對(duì)無人機(jī)視角下的目標(biāo)檢測(cè)模型將是一項(xiàng)有意義且具有挑戰(zhàn)性的工作。
在無人機(jī)目標(biāo)檢測(cè)的實(shí)際場(chǎng)景中,面臨許多挑戰(zhàn)性的問題。例如,當(dāng)無人機(jī)的飛行高度發(fā)生變化時(shí),圖像采集設(shè)備與拍攝目標(biāo)之間的距離也會(huì)發(fā)生變化,這就使得無人機(jī)獲取的圖像中目標(biāo)尺度變化過大,從而影響目標(biāo)檢測(cè)的精度[5];當(dāng)無人機(jī)的飛行高度較高時(shí),高空俯視視角下采集的圖像會(huì)包含大量的小目標(biāo)。由于檢測(cè)網(wǎng)絡(luò)對(duì)這些小目標(biāo)能夠提取的特征特別少,導(dǎo)致檢測(cè)精度非常差[6];由于無人機(jī)機(jī)載嵌入式設(shè)備的算力有限,而常規(guī)的目標(biāo)檢測(cè)算法一般會(huì)產(chǎn)生較大的參數(shù)量,使無人機(jī)視角下的目標(biāo)檢測(cè)無法做到實(shí)時(shí)性[7]。
針對(duì)上述問題,研究者們做了大量工作。多尺度信息融合[8-10]是解決無人機(jī)平臺(tái)下目標(biāo)尺度變化大的有效方案,但多尺度融合會(huì)給網(wǎng)絡(luò)增加許多參數(shù),減慢模型的推理速度,不利于模型的部署。關(guān)于無人機(jī)視角下的小目標(biāo)檢測(cè)問題,Chen 等[11]提出了一種改進(jìn)的R-CNN(Region-Convolutional Neural Networks)的小目標(biāo)檢測(cè)模型,通過上下文模型和區(qū)域提議生成器增強(qiáng)了RCNN 算法,以提高小目標(biāo)檢測(cè)性能;Li 等[12]人提出一種利用生成對(duì)抗網(wǎng)絡(luò)(Generative Adversarial Networks,GAN),將低分辨率的小物體轉(zhuǎn)換為類似大物體的高分辨率信息。上述工作改善了小目標(biāo)檢測(cè)的檢測(cè)效果,但也引入了較多的計(jì)算量,網(wǎng)絡(luò)模型不夠輕量化。對(duì)于模型的輕量化處理,目前較為流行的方法是模型壓縮[13],即在已經(jīng)訓(xùn)練好的模型上進(jìn)行簡(jiǎn)化,而Yang 等人[14]則提出了一種QueryDet 檢測(cè)網(wǎng)絡(luò),使用一種新穎的查詢機(jī)制來加速基于特征金字塔的目標(biāo)檢測(cè)器的推理速度。但該類方法實(shí)際操作復(fù)雜且穩(wěn)定性較差。而Huang 等人[15]提出了一種YOLOv5-tiny 模型,大幅度提升了檢測(cè)速度,但犧牲了較大的檢測(cè)精度。最近的研究成果中,TPHYOLOv5[16]為了提高網(wǎng)絡(luò)的預(yù)測(cè)回歸能力,將Transformer 引入到Y(jié)OLOv5 的檢測(cè)頭中,并且使用注意力機(jī)制模塊,使網(wǎng)絡(luò)更加關(guān)注被檢測(cè)的目標(biāo),但這種方法在目標(biāo)密集的情況下容易造成漏檢。
鑒于以上分析,可知無人機(jī)視角下目標(biāo)檢測(cè)任務(wù)面臨圖像尺度變化大、小目標(biāo)檢測(cè)結(jié)果精度低以及機(jī)載嵌入式資源有限等問題。本文針對(duì)以上問題展開研究,提出一種基于YOLOv5 模型的面向無人機(jī)平臺(tái)輕量化的目標(biāo)檢測(cè)方法。對(duì)于該方法的主要特點(diǎn)與改進(jìn)之處描述如下:(1)在網(wǎng)絡(luò)結(jié)構(gòu)方面增加檢測(cè)分支以提高模型的檢測(cè)能力,增強(qiáng)來自于淺層特征的表達(dá),解決目標(biāo)特征在經(jīng)過多次卷積池化后大量信息丟失的問題,同時(shí)緩解無人機(jī)飛行高度變化引起的圖像尺度變化的問題;(2)采用NWD[17](Normalized Wasserstein Distance,NWD)與傳統(tǒng)IOU(Intersection Over Union)混合的小目標(biāo)檢測(cè)度量方法,取代常用的IOU 度量[18-20],減輕IOU 對(duì)小目標(biāo)位置偏差的敏感性,從而提高網(wǎng)絡(luò)對(duì)小目標(biāo)檢測(cè)的檢測(cè)性能;(3)為降低模型的參數(shù)量,引入Faster-Net[21]網(wǎng)絡(luò)結(jié)構(gòu),并且與C3 網(wǎng)絡(luò)結(jié)構(gòu)融合,大大提高了目標(biāo)檢測(cè)的推理速度,使模型更適合無人機(jī)平臺(tái)使用。
YOLOv5 算法模型作為端到端的卷積神經(jīng)網(wǎng)絡(luò)模型,可直接對(duì)輸入的圖片進(jìn)行預(yù)測(cè),從而得到目標(biāo)的定位和分類[22-25]。YOLOv5 的網(wǎng)絡(luò)結(jié)構(gòu)主要由backbone 和head 組成,backbone 主要由Conv 層、C3 層和SPPF 層組成,具體結(jié)構(gòu)如圖1所示。 Conv 層由Conv2d 卷積函數(shù)、Batch-Norm2d 歸一化函數(shù)以及SiLU 激活函數(shù)組成;C3層是由3 個(gè)卷積層和多個(gè)bottleneck 模塊構(gòu)成,是對(duì)殘差特征進(jìn)行學(xué)習(xí)的主要模塊;SPPF 層位于backbone 的最后一個(gè)Conv 層后,將輸入經(jīng)過多個(gè)并行不同大小的Maxpool 后做進(jìn)一步融合,可在一定程度上解決多尺度的問題。head 包括特征增強(qiáng)和預(yù)測(cè)兩部分,特征增強(qiáng)部分由PANet(Path Aggregation Network)構(gòu)成,旨在將不同層級(jí)的特征進(jìn)行整合,通過自下而上的路徑增強(qiáng)較低層次上的精確定位信號(hào),從而縮短較低層與最頂層特征間信息路徑。head 層的預(yù)測(cè)部分包含3個(gè)輸出頭,卷積步長(zhǎng)分別為8,16,32,大尺寸檢測(cè)頭輸出特征圖檢測(cè)小目標(biāo),小尺寸檢測(cè)頭輸出特征圖檢測(cè)大目標(biāo)[26]。
圖1 YOLOv5 的backbone 層各結(jié)構(gòu)示意圖Fig.1 YOLOV5's Backbone layer various structural diagrams
當(dāng)使用VisDrone 數(shù)據(jù)集[27]訓(xùn)練模型時(shí),發(fā)現(xiàn)YOLOv5x 模型的精度要遠(yuǎn)超于其他模型,但YOLOv5x 模型的計(jì)算成本是YOLOv5 系列模型中最高的,不適合在無人機(jī)平臺(tái)上應(yīng)用,而YOLOv5s 模型雖然計(jì)算成本低,但精度卻遠(yuǎn)不及其他模型。綜合考慮,本文采用性能更加均衡的YOLOv5l 模型作為基準(zhǔn)網(wǎng)絡(luò),并在此基礎(chǔ)上進(jìn)行優(yōu)化和改進(jìn)。
IOU 是目標(biāo)檢測(cè)常用的度量方式,但其自身也存在缺點(diǎn):IOU 對(duì)于位置的微小變化非常敏感。所以Wang J 等人[17]提出了一種新的方法,即新的包圍框相似度(NWD)來代替IOU。NWD 不僅能夠?qū)崿F(xiàn)IOU 的功能,而且對(duì)目標(biāo)的尺度并不敏感,非常適用于測(cè)量小目標(biāo)的相似性。
在小目標(biāo)檢測(cè)中,由于絕大部分物體不是標(biāo)準(zhǔn)的矩形,往往邊界框會(huì)帶有背景信息。而目標(biāo)物體信息、背景信息會(huì)分別集中于邊界框的中心點(diǎn)、邊界上。因此,為邊界框構(gòu)建二維高斯分布時(shí),可將邊界框的中心像素設(shè)置為權(quán)值最高,中心點(diǎn)至邊界逐步降低。對(duì)邊界框R=(cx,cy,w,h)其中中心坐標(biāo)為(cx,cy),寬度和高度分別w和h,將R建模為二維高斯分布N(μ,∑),其中:
用Wasserstein 距離計(jì)算分布距離時(shí),對(duì)于不同的邊界框μ1=N(m1,∑1)和μ2=N(m2,∑2)之間的二階Wasserstein 距離計(jì)算公式如式(2)所示:
對(duì)于邊界框A=(cxa,cya,wa,ha)和邊界框B=(cxb,cyb,wb,hb)建模的高斯分布Na和Nb,公式最終可簡(jiǎn)化如公式(3)所示:
Jierun Chen 等人[21]研究發(fā)現(xiàn):每秒浮點(diǎn)運(yùn)算的效率低下,不一定會(huì)導(dǎo)致延遲減少。所以作者在此基礎(chǔ)上指出:同時(shí)減少冗余計(jì)算與內(nèi)存訪問,能有效提取空間特征。在這一思路下,根據(jù)PConv 進(jìn)一步提出了FasterNet,能夠有效提高算法的推理速度。圖2 所示為FasterNet 的網(wǎng)絡(luò)結(jié)構(gòu),從圖中可知該網(wǎng)絡(luò)先進(jìn)行PConv 操作提取空間特征,再進(jìn)行兩次PWConv 操作,能夠充分有效地利用來自所有通道的信息。
圖2 FasterNet 網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 FasterNet network structure
圖3 所示為PConv 工作原理:只需在輸入通道的一部分應(yīng)用Conv 進(jìn)行空間特征提取,其他通道保持不變。對(duì)于連續(xù)或規(guī)則的內(nèi)存訪問,視第一個(gè)連續(xù)的通道或最后一個(gè)連續(xù)的通道為整個(gè)特征圖代表進(jìn)行計(jì)算。在不喪失一般性的情況下,可認(rèn)為輸入、輸出特征圖的通道數(shù)量相同。因此,PConv 的FLOPs 僅對(duì)于典型的r=1/4(r=Cp/C,C和Cp分別代表PWconv 與Pconv 的通道數(shù)),只有常規(guī)卷積的1/16。此外,PConv 的內(nèi)存訪問量較小,同樣對(duì)于r=1/4,其僅為常規(guī)卷積的1/4。
圖3 PConv 工作原理Fig.3 PConv working principle
如圖4 所示,為了獲取特征圖中的通道信息,將逐點(diǎn)卷積(PWConv)附加到PConv,因此在輸入特征圖上形成了類似“T”形Conv 的結(jié)構(gòu),這種“T”形Conv 結(jié)構(gòu)與常規(guī)Conv 結(jié)構(gòu)相比能夠更好地在圖像中定位目標(biāo)。
本文基于YOLOv5l 算法改進(jìn)的模型如圖5所示(彩圖見期刊電子版),其中虛線框?yàn)樾略龅臋z測(cè)分支P2,用于解決無人機(jī)因飛行高度變化引起的尺度變化問題;針對(duì)IOU 對(duì)小目標(biāo)位置偏差敏感的問題,提出基于NWD 與傳統(tǒng)IOU 混合的小目標(biāo)檢測(cè)度量方法,提高了小目標(biāo)的檢測(cè)精度;圖中綠色處理單元為本文新設(shè)計(jì)的C3_FN模塊,這種C3_FN 模塊是將FasterNet 與C3 融合得到的一種輕量化網(wǎng)絡(luò)結(jié)構(gòu),以解決無人機(jī)機(jī)載嵌入式設(shè)備算力資源有限的問題。
圖5 改進(jìn)后的YOLOv5 模型Fig.5 Improved YOLOV5 model
新增的P2 檢測(cè)分支為圖5 中虛線框內(nèi)所示,此分支可用于多尺度中極小目標(biāo)的檢測(cè)。P2 檢測(cè)分支的輸入,大部分來源于淺層中的卷積層,且包含許多信息,如:形狀、位置、大小等。由于深層的特征圖在經(jīng)過多次的卷積和池化后,會(huì)損失較多信息,且大目標(biāo)的特征有蓋住小目標(biāo)信息的可能,因而造成誤檢、漏檢的問題。所以,引入淺層信息的P2 檢測(cè)分支能夠有效定位小目標(biāo)的位置,從而可以更好地實(shí)現(xiàn)小目標(biāo)的檢測(cè)。同時(shí),基于錨框的基準(zhǔn)模型對(duì)錨框設(shè)定較為敏感,而新增的P2 檢測(cè)分支在進(jìn)行預(yù)測(cè)回歸時(shí),錨框的大小設(shè)定為數(shù)據(jù)集進(jìn)行K-means 聚類分析后得到的小目標(biāo)尺寸,因此更適合實(shí)際檢測(cè)任務(wù)。其他各個(gè)分支的錨框設(shè)定如表1 所示。本文算法新增的P2 檢測(cè)分支可減少由于物體過小而錨框過大所導(dǎo)致的小目標(biāo)被忽略的情況,進(jìn)而有效緩解由于錨框設(shè)定而引起的誤檢、漏檢的情況。
表1 各個(gè)檢測(cè)分支的錨框設(shè)定值Tab.1 Setting value of the anchor frame of each detection branch
IOU 是目標(biāo)檢測(cè)中常用的度量指標(biāo),IOU 的發(fā)展經(jīng)歷了GIOU,DIOU,CIOU 等歷程。上述度量指標(biāo)對(duì)于普通中大尺寸目標(biāo)已有較好的效果,但是由于在無人機(jī)視角下,大多數(shù)地面目標(biāo)均為只有幾像素的小目標(biāo),缺乏外觀信息和細(xì)節(jié)。而IOU 對(duì)不同尺度目標(biāo)的敏感性差異很大,對(duì)于像素越小的目標(biāo),微小距離的改變就會(huì)導(dǎo)致IOU 下降的明顯變化,進(jìn)而導(dǎo)致模型對(duì)小目標(biāo)檢測(cè)精度的下降。于是本文引入NWD 來解決IOU對(duì)小目標(biāo)位置偏差敏感的問題,提高網(wǎng)絡(luò)對(duì)小目標(biāo)檢測(cè)的精度。
由于單獨(dú)使用NWD 會(huì)造成網(wǎng)絡(luò)收斂速度慢,因此本文采用NWD 和IOU 混合的方法,這樣就可以完美解決收斂變慢及目標(biāo)檢測(cè)精度低的問題。本文采用的模型損失函數(shù)如公式(5)所示:
其中:α為可調(diào)節(jié)的超參數(shù),取值范圍為0~1,通過調(diào)節(jié)α的值來調(diào)節(jié)IOU 與NWD 的比重,即當(dāng)α的值增大時(shí),NWD 比重增大;當(dāng)α的值減少時(shí),IOU 比重增大。
如2.1 節(jié)所訴,YOLOv5 主干特征提取網(wǎng)絡(luò)采用C3 結(jié)構(gòu)會(huì)帶來較大參數(shù)量,進(jìn)而導(dǎo)致檢測(cè)速度慢、應(yīng)用受限等問題。在無人機(jī)視角下進(jìn)行目標(biāo)檢測(cè)時(shí),大且復(fù)雜的模型難以被應(yīng)用。原因如下:首先,模型過于龐大,會(huì)面臨內(nèi)存不足的情況;其次,場(chǎng)景要求低延遲、響應(yīng)速度要快、精度較高的模型算法。而FasterNet 網(wǎng)絡(luò)采用PConv結(jié)構(gòu),該結(jié)構(gòu)能夠在減少冗余計(jì)算和內(nèi)存訪問的基礎(chǔ)上更有效地提取空間特征。因此本文引入FasterNet 網(wǎng)絡(luò)結(jié)構(gòu),并與C3 結(jié)合形成一種快速輕量化的網(wǎng)絡(luò)結(jié)構(gòu)C3_FN,其結(jié)構(gòu)如圖6 所示。將一半的特征信息通過FasterNet Block 生成特征圖,另一部分只通過卷積、正則化和激活函數(shù)生成特征圖,再將兩部分特征圖拼接,使得梯度組合的差異最大化,并減少大量梯度信息。
圖6 C3_FN 網(wǎng)絡(luò)結(jié)構(gòu)Fig.6 C3_FN network structure
本文在無人機(jī)目標(biāo)檢測(cè)公開數(shù)據(jù)集Vis-Drone2019 上測(cè)試算法性能。該數(shù)據(jù)集含10 209張靜態(tài)圖像(6 471 張用于訓(xùn)練,548 張用于驗(yàn)證,3 190 張用于測(cè)試),由不同的無人機(jī)平臺(tái)在不同地點(diǎn)、不同高度、不同的天氣和光照條件下捕獲。該數(shù)據(jù)集覆蓋類型范圍廣泛,包括不同位置(相隔數(shù)千公里的14 個(gè)不同城市)、不同環(huán)境(城市和農(nóng)村)、不同目標(biāo)物體(行人、車輛、自行車等)和不同密度(稀疏和擁擠的場(chǎng)景)。VisDrone2019數(shù)據(jù)集中小目標(biāo)占比較大,統(tǒng)計(jì)訓(xùn)練集中各個(gè)目標(biāo)物體面積尺寸如圖7(a)所示(橫坐標(biāo)為數(shù)據(jù)集樣本面積、縱坐標(biāo)為樣本數(shù)量占比);圖7(b)為VisDrone2019 數(shù)據(jù)集在YOLOv5l 算法下的類混淆矩陣,可以看出該數(shù)據(jù)集類別分布不均勻且混淆嚴(yán)重,十分具有挑戰(zhàn)性。 因此使用Vis-Drone2019 數(shù)據(jù)集進(jìn)行測(cè)試更能夠體現(xiàn)算法之間的性能差異。
圖7 VisDrone2019 數(shù)據(jù)集目標(biāo)統(tǒng)計(jì)圖Fig.7 VisDrone 2019 Data set target statistical diagram
本實(shí)驗(yàn)采取mAP0.5,mAP0.5-0.95、推理時(shí)間(Inference Time)、參數(shù)量(Parameters)和模型復(fù)雜度(FLOPs)等指標(biāo)作為模型性能的評(píng)價(jià)指標(biāo)。均值平均精度(mAP)是目標(biāo)檢測(cè)算法性能的重要指標(biāo)(APi為每個(gè)類別的平均精度,i代表檢測(cè)類別序號(hào)),可以直觀反映算法的綜合精度,其計(jì)算公式如式(6)所示。另外,為了更好地分析模型評(píng)價(jià)指標(biāo)的增益情況,本文引入變化率這一評(píng)價(jià)指標(biāo),通過變化率這一性能評(píng)價(jià)指標(biāo),可以較為客觀的評(píng)價(jià)算法與基準(zhǔn)算法之間的性能改變情況。計(jì)算公式如式(7)所示,其中ρ表示變化率,A表示新值,B表示舊值。
其中:mAP0.5表示當(dāng)IOU 和NWD 閾值為0.5 時(shí),所有目標(biāo)類別的平均檢測(cè)精度,它能夠反映算法對(duì)于不同類別目標(biāo)的綜合分類能力;mAP0.5-0.95表示當(dāng)IOU 和NWD 閾值為0.5~0.95 時(shí),步長(zhǎng)為0.05,在0.5~0.95 的10 個(gè)閾值下,計(jì)算閾值的檢測(cè)精度的平均值,能更好地反映算法對(duì)于目標(biāo)邊界框的回歸能力。通常來說,閾值越高,對(duì)于模型回歸能力的要求就越高,在高閾值下,檢測(cè)指標(biāo)也越高。因此,模型的檢測(cè)結(jié)果與實(shí)際目標(biāo)可實(shí)現(xiàn)更好的貼合。 每秒浮點(diǎn)運(yùn)算次數(shù)(FLOPs)與Parameters 值模型的參數(shù)量,分別用于衡量訓(xùn)練模型時(shí)的計(jì)算復(fù)雜度與計(jì)算內(nèi)存資源的消耗。
本文采用的實(shí)驗(yàn)環(huán)境分為仿真平臺(tái)實(shí)驗(yàn)環(huán)境與嵌入式設(shè)備驗(yàn)證環(huán)境。其中仿真平臺(tái)的實(shí)驗(yàn)環(huán)境描述如下:使用Windows10 操作系統(tǒng),實(shí)驗(yàn)環(huán)境設(shè)置如下:PyTorch 版本為2.0.0;CUDA版本為11.7;Python 版本為3.8.16;硬件配置為:CPU 為Intel(R) Core(TM) i9-10920X;GPU為NVIDIA GeForce RTX 3090 24 GB,算法中的網(wǎng)絡(luò)模型訓(xùn)練與測(cè)試在同一平臺(tái)進(jìn)行,網(wǎng)絡(luò)的預(yù)訓(xùn)練權(quán)重是在COCO 數(shù)據(jù)集上訓(xùn)練而得到,實(shí)驗(yàn)數(shù)據(jù)為VisDrone2019 數(shù)據(jù)集,測(cè)試圖片大小固定為640×640,設(shè)置的總訓(xùn)練輪數(shù)為100epochs,測(cè)試基準(zhǔn)模型為YOLOv5l 模型,學(xué)習(xí)率為0.01,采用帶動(dòng)量的隨機(jī)梯度下降法(Stochastic Gradient Descent,SGD)作為優(yōu)化器,動(dòng)量設(shè)置為0.937,權(quán)重衰減系數(shù)為0.000 5。
嵌入式設(shè)備的驗(yàn)證平臺(tái)描述如下:NVIDIA Jetson Nano、四核Cortex-A57 CPU、128 核Maxwell GPU、內(nèi)存為4 GB。相應(yīng)配置系統(tǒng)為ARM版Ubuntu18.04 操作系統(tǒng),模型運(yùn)行環(huán)境為Jet-Pack4.6.1,python3.6,pytorth1.8,CUDA10.2和TensorRT8.2.1.8。模型部署采用10W 高性能運(yùn)行模式,USB 攝像頭圖像輸入。
4.4.1 檢測(cè)分支對(duì)比實(shí)驗(yàn)
本實(shí)驗(yàn)首先對(duì)檢測(cè)分支的數(shù)量與位置進(jìn)行論證。 當(dāng)neck 結(jié)構(gòu)為4 層時(shí),檢測(cè)分支為P2~P5;當(dāng)neck 結(jié)構(gòu)為3 層時(shí),減少head 處的一個(gè)檢測(cè)頭并使其不進(jìn)行回歸檢測(cè)。測(cè)試基準(zhǔn)模型為YOLOv5l 模型,測(cè)試結(jié)果如表2 所示。
表2 不同檢測(cè)分支對(duì)比結(jié)果Tab.2 Different detection branches comparison results
由表2 可知:包含四個(gè)檢測(cè)分支的模型與其他只包含三個(gè)檢測(cè)分支的模型相比,目標(biāo)檢測(cè)精度有所提升。這是因?yàn)樵黾右粋€(gè)檢測(cè)分支可以提取更多的特征信息,使得對(duì)無人機(jī)視角下目標(biāo)的定位更加精確,有效提升目標(biāo)檢測(cè)的效果,此外本算法采用的錨框的設(shè)定更加適合無人機(jī)視角下的目標(biāo)檢測(cè)任務(wù)。
4.4.2 度量指標(biāo)對(duì)比實(shí)驗(yàn)
為了驗(yàn)證NWD 度量指標(biāo)的有效性,本文設(shè)計(jì)了NWD 和CIOU 的對(duì)比實(shí)驗(yàn)。模型總訓(xùn)練輪數(shù)分別為50 epochs 與100 epochs,基準(zhǔn)模型為邊界框預(yù)測(cè)損失函數(shù)是CIOU 的YOLOv5l 模型,實(shí)驗(yàn)結(jié)果如表3 所示。
表3 不同預(yù)測(cè)邊界框?qū)Ρ冉Y(jié)果Tab.3 Different predictive boundary box comparison results
由表3 可知:當(dāng)總訓(xùn)練輪數(shù)為50 epochs 時(shí),使用CIOU 得到的mAP0.5值為39.6%;當(dāng)總訓(xùn)練輪數(shù)為100 epochs 時(shí),使用CIOU 的mAP0.5僅僅增加了1.2%;對(duì)比使用NWD 的效果,當(dāng)訓(xùn)練輪數(shù)為100 epochs 時(shí),mAP0.5顯著增加了2.3%。說明在單獨(dú)使用NWD 時(shí)雖然能夠顯著提高檢測(cè)性能,但是會(huì)造成模型的收斂速度慢。于是本文采用基于NWD 與傳統(tǒng)IOU 混合的目標(biāo)檢測(cè)度量方法,在保證精度提高的前提下提高NWD 的收斂速度。
4.4.3 度量指標(biāo)的超參數(shù)實(shí)驗(yàn)
為了充分驗(yàn)證NWD 與IOU 混合方法的有效性,本文設(shè)計(jì)了NWD 與IOU 占比對(duì)YOLOv5 模型影響的實(shí)驗(yàn),實(shí)驗(yàn)前提為以YOLOv5l 為基準(zhǔn),訓(xùn)練數(shù)據(jù)為VisDrone2019 數(shù)據(jù)集,使用YOLOv5 原始實(shí)驗(yàn)參數(shù),設(shè)置的總訓(xùn)練輪數(shù)為100 epochs。α為可調(diào)節(jié)的超參數(shù),取值范圍為0~1,通過調(diào)節(jié)α的值來調(diào)節(jié)IOU 與NWD 的比重。測(cè)試基準(zhǔn)模型為YOLOv5l 模型,實(shí)驗(yàn)結(jié)果如圖8 所示,圖中Z1 代表mAP0.5,Z2 代表mAP0.5-0.95,X代表α的值,Y代表平均精度值。
優(yōu)化預(yù)測(cè)邊界框的超參數(shù)α設(shè)置為0 時(shí),預(yù)測(cè)邊界框損失函數(shù)為IOU;當(dāng)α設(shè)置為1 時(shí),預(yù)測(cè)邊界框損失函數(shù)為NWD。圖8 中可以看出,當(dāng)α設(shè)置為0.8 時(shí)達(dá)到最優(yōu)效果,后面的算法性能測(cè)試中,α的值都設(shè)置為0.8,以達(dá)到算法的性能最優(yōu)。實(shí)驗(yàn)結(jié)果證明,本算法采用NWD 與CIOU 結(jié)合的度量方法是合理且有效的,當(dāng)模型的總訓(xùn)練輪數(shù)相同時(shí),采用NWD 與IOU 結(jié)合的度量方法mAP0.5值比單獨(dú)使用NWD 或IOU 度量方法的mAP0.5值都要高,因此本文采用NWD與IOU 結(jié)合的度量方法來提升模型的檢測(cè)性能。
4.4.4 網(wǎng)絡(luò)結(jié)構(gòu)對(duì)比實(shí)驗(yàn)
為了驗(yàn)證本文設(shè)計(jì)的C3_FN 網(wǎng)絡(luò)結(jié)構(gòu)的有效性,本文進(jìn)行了如下對(duì)比實(shí)驗(yàn)。實(shí)驗(yàn)基于YOLOv5l 模型進(jìn)行實(shí)驗(yàn),其中:C3 代表YOLOv5 原模型結(jié)構(gòu);C3_Ghost 代表C3 融合GhostNet[27]的結(jié)構(gòu);C3_FN 為本文使用的結(jié)構(gòu)。實(shí)驗(yàn)結(jié)果如表4 所示。
由表4 可知:當(dāng)加入了融合FasterNet 網(wǎng)絡(luò)的C3_FN 模塊后,相對(duì)于原模型得到了較為理想的壓縮,在mAP0.5值提升的基礎(chǔ)上,參數(shù)量減少31.9%,模型復(fù)雜度FLOPs 減少了60.8%,而推理時(shí)間提升48.9%,這都?xì)w功于FasterNet 網(wǎng)絡(luò),可以在不影響模型精度的基礎(chǔ)上減少計(jì)算量,從而提高算法處理速度。
4.4.5 綜合對(duì)比實(shí)驗(yàn)
最后,為了綜合測(cè)試本文模型的檢測(cè)效果,將本文改進(jìn)的模型與基準(zhǔn)模型YOLOv5l 以及其他主流的無人機(jī)目標(biāo)檢測(cè)模型進(jìn)行性能對(duì)比。模型的訓(xùn)練數(shù)據(jù)是VisDrone 數(shù)據(jù)集,其最終測(cè)試結(jié)果是在VisDrone 測(cè)試數(shù)據(jù)集上進(jìn)行驗(yàn)證的,實(shí)驗(yàn)結(jié)果如下表5 所示。
表5 VisDrone 測(cè)試數(shù)據(jù)集實(shí)驗(yàn)結(jié)果Tab.5 VisDrone test data set experiment results
由表5 可知:本文模型的推理速度優(yōu)于YOLOv5l,并且模型的平均檢測(cè)精度均高于其他主流目標(biāo)檢測(cè)模型。整體對(duì)比,無論是在檢測(cè)精度上,還是在推理速度上,本文模型在無人機(jī)視角下的目標(biāo)檢測(cè)應(yīng)用上都具有一定優(yōu)勢(shì)。
4.4.6 改進(jìn)模塊的消融實(shí)驗(yàn)
為了更好地說明本文改進(jìn)的模塊與方法對(duì)于模型檢測(cè)能力的提升,以及對(duì)于模型參數(shù)量、模型復(fù)雜度和推理時(shí)間的影響,本節(jié)進(jìn)行了消融實(shí)驗(yàn)。本消融實(shí)驗(yàn)是在YOLOv5l 模型上逐個(gè)添加本文改進(jìn)模塊與方法所得出的實(shí)驗(yàn)結(jié)果,首先添加新增的檢測(cè)分支,然后優(yōu)化預(yù)測(cè)邊界框損失函數(shù),最后加入快速輕量化的網(wǎng)絡(luò)結(jié)構(gòu)C3_FN。測(cè)試圖片大小固定為640×640,在NVIDIA Ge-Force RTX 3090 GPU 上進(jìn)行推理。消融實(shí)驗(yàn)的測(cè)試結(jié)果基于VisDrone 測(cè)試數(shù)據(jù)集,實(shí)驗(yàn)結(jié)果如表6 所示。
表6 VisDrone 測(cè)試數(shù)據(jù)集消融實(shí)驗(yàn)Tab.6 VisDrone test data set discipline experiment
由表6 可知:在YOLOv5l 模型添加新增的檢測(cè)分支,模型的mAP0.5提升了3.9%;在添加檢測(cè)分支基礎(chǔ)上修改IOU 評(píng)價(jià)指標(biāo)后,模型的mAP0.5提升了6.4%;最后同時(shí)添加檢測(cè)分支、修改IOU評(píng)價(jià)指標(biāo)和C3_FN,模型的mAP0.5提升了6.8%。綜上所述,本文模型與YOLOv5 相比,在保證檢測(cè)精度的同時(shí)減少了模型參數(shù),因此在無人機(jī)目標(biāo)檢測(cè)任務(wù)中具有更高的應(yīng)用價(jià)值,本文模型檢測(cè)的可視化結(jié)果示例如圖9 所示(彩圖見期刊電子版)。該組圖片是在無人機(jī)視角下拍攝的不同場(chǎng)景的圖片,圖片中待檢測(cè)的目標(biāo)類別主要是:行人、車輛、自行車等,實(shí)驗(yàn)結(jié)果中的黃色表示檢測(cè)結(jié)果是車,綠色檢測(cè)結(jié)果表示大巴車,紅色表示檢測(cè)結(jié)果是行人。從可視化結(jié)果可見,本文算法能夠?qū)o人機(jī)拍攝的圖片具有較好的檢測(cè)效果,尤其是第2 行第1 列和第3 行第1 列的圖片,其中包含大量行人小目標(biāo),本文算法仍能夠很好地檢測(cè)出目標(biāo)。實(shí)驗(yàn)結(jié)果證明本文算法能夠處理大部分無人機(jī)目標(biāo)檢測(cè)中的難點(diǎn)問題,且在無人機(jī)視角下的小目標(biāo)仍具有較好的檢測(cè)效果。
圖9 本文模型的目標(biāo)檢測(cè)示意圖Fig.9 Object detection schematic diagram of this model
4.5.1 模型部署
為了驗(yàn)證算法在實(shí)際嵌入式平臺(tái)上的檢測(cè)性能,本文采用NVIDIA Jetson Nano 進(jìn)行模型遷移部署,測(cè)試圖如圖10 所示,其中1 表示嵌入式設(shè)備NVIDIA Jetson Nano,2 表示外接顯示器,3表示檢測(cè)圖像。將在深度學(xué)習(xí)主機(jī)上訓(xùn)練好的本文模型傳入到Jetson Nano 開發(fā)板上,在Jetson Nano 開發(fā)板上使用TensorRT 加速將Pytorch 框架下訓(xùn)練的無人機(jī)目標(biāo)檢測(cè)模型的.pt 權(quán)重文件轉(zhuǎn)化為.wts 中間文件,再使用.wts 文件構(gòu)建用于推理的引擎(.engine)文件,使用推理引擎推理即可獲得加速。
圖10 Jetson Nano 測(cè)試圖Fig.10 Exeriment diagram on Jetson Nano
4.5.2 結(jié)果分析
本文從VisDrone 測(cè)試數(shù)據(jù)集中選擇10 張未標(biāo)注的圖像在Jetson Nano 平臺(tái)上進(jìn)行無人機(jī)對(duì)地目標(biāo)檢測(cè)的推理測(cè)試,結(jié)果如表7 所示。
表7 TensorRT 加速前后推理時(shí)間對(duì)比Tab.7 Comparison of inference time before and after TensorRT acceleration(ms)
從表7 可以看出,在嵌入式設(shè)備NVIDIA Jetson Nano 中原始YOLOv5l 模型平均每張圖像推理時(shí)間為563 ms,使用本文模型平均每張圖像推理時(shí)間為342 ms,檢測(cè)速度較慢。經(jīng)過TensorRT 加速后,YOLOv5l 模型平均每張圖像推理時(shí)間為153 ms,而使用本文模型平均每張圖像推理時(shí)間僅為84 ms,可以滿足實(shí)時(shí)性的要求。
本文針對(duì)面向無人機(jī)平臺(tái)下現(xiàn)有目標(biāo)檢測(cè)模型對(duì)于小目標(biāo)檢測(cè)效果差、漏檢率高以及模型參數(shù)量大的問題,提出一種適用于無人機(jī)視角下輕量化的目標(biāo)檢測(cè)算法,并在VisDrone2019 數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)驗(yàn)證,主要得出以下結(jié)論:
(1)針對(duì)無人機(jī)視角下目標(biāo)檢測(cè)任務(wù)面臨的圖像尺度變化大、小目標(biāo)檢測(cè)結(jié)果精度低以及機(jī)載嵌入式資源有限的問題,本文以YOLOv5l 模型為基礎(chǔ),在網(wǎng)絡(luò)結(jié)構(gòu)方面增加了檢測(cè)分支,增強(qiáng)來自于淺層特征的表達(dá),mAP0.5值提升了3.9%;為了降低模型的參數(shù)量,得到速度更快的網(wǎng)絡(luò),使用C3_FN 代替YOLOv5l 模型默認(rèn)的C3結(jié)構(gòu),在mAP0.5值提升的基礎(chǔ)上,參數(shù)量減少31.9%,模型復(fù)雜度FLOPs 減少了60.8%,推理時(shí)間提升48.9%。
(2)在模型的度量指標(biāo)上,本文引入NWD 作為模型的度量指標(biāo)。經(jīng)實(shí)驗(yàn)發(fā)現(xiàn),相比于單獨(dú)使用IOU,單獨(dú)使用NWD 時(shí)會(huì)使模型的收斂速度變慢,于是本文提出基于NWD 與傳統(tǒng)IOU 混合的目標(biāo)檢測(cè)度量方法,以提高NWD 的收斂速度。結(jié)果發(fā)現(xiàn),當(dāng)權(quán)重參數(shù)α設(shè)置為0.8 時(shí)算法性能達(dá)到最優(yōu)效果,mAP0.5值為41.8%,mAP0.5值為24.5%。
(3)在綜合對(duì)比實(shí)驗(yàn)中,本文模型的mAP0.5值較YOLOv5l,TPH-YOLOv5 和YOLOv7 模型分別提升了6.8%,1.4%和5.5%,推理時(shí)間分別提高了40.2%,16.7%,6.2%。最后在Jetson Nano 進(jìn)行模型遷移部署,經(jīng)過TensorRT 加速后本文模型平均每張圖像推理時(shí)間僅為84 ms,說明本文模型在面向無人機(jī)平臺(tái)下的目標(biāo)檢測(cè)應(yīng)用上更具有優(yōu)勢(shì)。
后續(xù)的研究將繼續(xù)進(jìn)行網(wǎng)絡(luò)結(jié)構(gòu)的優(yōu)化,使模型變得更加快速、準(zhǔn)確以及輕量化,以便于在計(jì)算資源有限的情況下部署與應(yīng)用。