李 鴻, 杜蕓彥, 邵林松, 雷 銘, 彭錦錦, 楊錦輝, 毛 耀
(1.中國科學(xué)院光束控制重點(diǎn)實(shí)驗(yàn)室,成都 610000; 2.中國科學(xué)院光電技術(shù)研究所,成都 610000 ; 3.中國科學(xué)院大學(xué),北京 100000)
隨著無人機(jī)技術(shù)的快速發(fā)展,無人機(jī)朝著小型、高速方向發(fā)展并且在監(jiān)控、農(nóng)業(yè)和軍事安全等領(lǐng)域得到廣泛應(yīng)用[1]。無人機(jī)的普及在為日常生活提供了巨大便利的同時(shí),也存在一定的安全隱患,比如對(duì)空中航路安全、公共安全和軍事安全等造成威脅,有時(shí)也會(huì)造成侵犯個(gè)人隱私的問題[2]。無人機(jī)的實(shí)時(shí)檢測(cè)和監(jiān)控問題已成為一大熱點(diǎn)話題。
目前,傳統(tǒng)無人機(jī)檢測(cè)的方法?;诼暡ㄌ綔y(cè)檢測(cè)、無線電探測(cè)和雷達(dá)探測(cè)等手段,但這些方法常需要昂貴的設(shè)備和嚴(yán)格的配置,相較于傳統(tǒng)的檢測(cè)方法,基于深度學(xué)習(xí)目標(biāo)檢測(cè)的方法成本低廉且易于配置,能有效應(yīng)對(duì)無人機(jī)的檢測(cè)。RCNN[3]方法能取得較好的檢測(cè)精度但并不具備實(shí)時(shí)性,隨后雖然又相繼出現(xiàn)Fast RCNN[4],F(xiàn)aster RCNN[5]等兩步走的方法,速度問題有所改善,但其一貫的框架模式注定了速度慢是該類方法的一大缺陷。為了彌補(bǔ)速度慢的缺點(diǎn),研究人員摒棄了兩步走的模式,提出了YOLO[6-7]和SSD[8]系列等一步走的算法,在精度略有降低的情況下,大大提升速度,其中,YOLOv3算法[9]是兼顧速度與精度的代表性算法,后來YOLOv4[10]等優(yōu)秀算法被提出。但這類算法大多是基于錨點(diǎn)來生成候選框的Anchor-based的思想,近兩年來Anchor free的算法逐漸成為主流,代表性算法有基于對(duì)角線關(guān)鍵點(diǎn)檢測(cè)的CornerNet[11]、中心關(guān)鍵點(diǎn)的CenterNet[12]和基于像素點(diǎn)的多級(jí)預(yù)測(cè)回歸的FCOS算法[13]等。
為了促進(jìn)神經(jīng)網(wǎng)絡(luò)模型在實(shí)際工作中的應(yīng)用,如嵌入式平臺(tái)和邊緣移動(dòng)端設(shè)備[14],本文結(jié)合輕量化網(wǎng)絡(luò)提出了一個(gè)輕量型的實(shí)時(shí)無人機(jī)檢測(cè)算法。為了增加模型對(duì)小目標(biāo)的檢測(cè)性能,將原本在3個(gè)特征尺度進(jìn)行檢測(cè)的YOLOv3算法擴(kuò)展到5個(gè)特征尺度進(jìn)行檢測(cè),在提升網(wǎng)絡(luò)模型精度的同時(shí)也帶來了一定的計(jì)算復(fù)雜度。為了對(duì)模型進(jìn)行加速,使用沙漏瓶頸模塊(SandGlass Bottleneck Block)構(gòu)建起來的MobileNeXt[15]輕量化網(wǎng)絡(luò)作為模型的骨干部分提取特征,同時(shí)也減少了模型在各層級(jí)特征的通道數(shù),為了抑制不利信息,提升模型的精度,在上采樣部分的Concat操作之后使用了通道注意力機(jī)制SENet[16]。為了驗(yàn)證所提模型的有效性,本文生成了一個(gè)基于復(fù)雜城市背景的無人機(jī)數(shù)據(jù)集,實(shí)驗(yàn)表明,提出的模型能較好地兼顧速度與精度,生成的模型權(quán)重僅為5.38 MiB,為進(jìn)一步在嵌入式平臺(tái)上實(shí)時(shí)運(yùn)行目標(biāo)檢測(cè)模型提供了可能。
隨著時(shí)代的發(fā)展,研究人員更加關(guān)注深度神經(jīng)網(wǎng)絡(luò)的實(shí)際應(yīng)用性能,人工智能技術(shù)的一大趨勢(shì)就是在邊緣平臺(tái)上部署高性能神經(jīng)網(wǎng)絡(luò)模型,并能在真實(shí)場(chǎng)景中實(shí)時(shí)運(yùn)行。
在實(shí)現(xiàn)深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)模型落地實(shí)際應(yīng)用過程中,高效的輕量化網(wǎng)絡(luò)是實(shí)現(xiàn)這一目標(biāo)的重要途徑之一,MobileNetv1[17]基于深度可分離卷積的思想,將普通標(biāo)準(zhǔn)卷積拆分為深度卷積(Depthwise Convolution)和逐點(diǎn)卷積(Pointwise Convolution),在有效保證精度的同時(shí)大大減少計(jì)算量。相比于MobileNetv1類似VGGNet[18]的簡單堆疊方式,MobileNetv2[19]則借鑒了ResNet中跳轉(zhuǎn)連接這種更為先進(jìn)的方式,應(yīng)用逆殘差模塊(Inversed Residual Block)獲得了更佳的性能表現(xiàn)。MobileNetv3[20]使用神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索(NAS)[21]的方法,此外還加入了SE(Squeeze and Excitation)結(jié)構(gòu)和使用非線性激活函數(shù)h-swish替換swish和修改通道數(shù)等。ShuffleNet[22-23]利用分組卷積(Group Convolution)和通道混洗(Channel Shuffle)兩個(gè)操作設(shè)計(jì)卷積神經(jīng)網(wǎng)絡(luò)模型,使得模型參數(shù)大大減少,加速模型的推理。GhostNet[24]通過廉價(jià)且高效的線性變換操作生成更多的特征圖。沙漏瓶頸(SandGlass Bottleneck)模塊翻轉(zhuǎn)了逆殘差模塊,從而緩解了信息的丟失,在保持輕量化的同時(shí),獲得了比GhostNet更好的成績。為了彌補(bǔ)擴(kuò)展特征尺度檢測(cè)帶來的計(jì)算復(fù)雜度,本文選擇采用由沙漏瓶頸模塊堆疊的MobileNeXt網(wǎng)絡(luò)作為模型的骨干網(wǎng)絡(luò)對(duì)特征進(jìn)行提取,加速了模型訓(xùn)練和推理的同時(shí),減少模型參數(shù)量。
隨著深度可分離卷積的提出,結(jié)合殘差思想(如圖1(a)所示)的改進(jìn)版本逆殘差模塊(如圖1 (b)所示),已成為手機(jī)端網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)的主流架構(gòu)。逆殘差模塊之所以取得這么好的效果,取決于逆殘差學(xué)習(xí)和線性瓶頸層兩個(gè)主要設(shè)計(jì)規(guī)則。然而,這樣的設(shè)計(jì)卻存在一定的問題,比如逆殘差模塊這種先升維后降維的結(jié)構(gòu)會(huì)削弱梯度跨層傳播的能力,會(huì)造成特征從高維空間壓縮到低維空間時(shí)信息的丟失。針對(duì)這些問題,MobileNeXt對(duì)其設(shè)計(jì)的規(guī)則進(jìn)行了重新思考,針對(duì)梯度傳播被削弱的情況,將網(wǎng)絡(luò)變得更寬,以此緩解梯度混淆的問題。具體實(shí)現(xiàn)方法是采用像沙漏的網(wǎng)絡(luò)結(jié)構(gòu),如圖1 (c)所示,從通道維度上執(zhí)行先降采樣后升采樣的操作。
圖1 3種模塊的網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Network structure of three blocks
相比于逆殘差模塊的設(shè)計(jì)方法,沙漏結(jié)構(gòu)的設(shè)計(jì)方法能夠在高維度進(jìn)行恒等映射于空間變換,可以有效地緩解信息丟失與梯度混淆。如圖2(a)所示,原始的逆殘差模塊是先升維后降維,是通過1×1的卷積操作對(duì)特征通道進(jìn)行改變,然后中間是由3×3深度可分離卷積形成的線性瓶頸模塊。1×1卷積有助于編碼通道間的信息,但難以獲取空間信息。為了保留更多的空間信息,同時(shí)考慮到深度卷積是一種輕量型單元,MobileNeXt將3×3的深度卷積置于兩個(gè)1×1卷積之外執(zhí)行兩次深度卷積,從而確保深度卷積在高維空間進(jìn)行處理并得到更豐富的特征表達(dá),具體如圖2 (b)所示。
圖2 沙漏瓶頸模塊相對(duì)逆殘差模塊的改進(jìn)Fig.2 Improvement of SandGlass Bottleneck Block compared to the inverse residual block
建立特征金字塔綜合利用多尺度特征進(jìn)行小目標(biāo)檢測(cè)是一種常用的手段。FPN[25]是第一個(gè)嘗試?yán)枚喑叨忍卣鲌D的建筑性工作,建立了一個(gè)自頂向下路徑的多尺度特征序列。在FPN的基礎(chǔ)上,PANet[26]添加了一條自底向上的FPN路徑。ASFF[27]提出了一種數(shù)據(jù)驅(qū)動(dòng)的金字塔特征融合方式,稱之為自適應(yīng)空間特征融合。一些工作嘗試使用神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索的方法自動(dòng)搜索最優(yōu)的特征金字塔結(jié)構(gòu),并取得不錯(cuò)的結(jié)果,比如NAS-FPN[28]和Auto-FPN[29]。為了綜合利用多個(gè)尺度信息,更為了符合輕量化設(shè)計(jì)的理念,本文只是簡單地將原本3個(gè)特征尺度擴(kuò)展到5個(gè)特征尺度來進(jìn)行檢測(cè)。如圖3所示,這里上采樣使用最近鄰插值(Nearest Interpolation)方法以消除鋸齒狀的情況,并使用Concat的操作從通道上拼接進(jìn)行特征融合(Feature Integration)。
圖3 5個(gè)尺度的特征金字塔檢測(cè)Fig.3 Five-scale feature pyramid for detection
為使網(wǎng)絡(luò)模型更好地適用于像無人機(jī)這樣的小目標(biāo)檢測(cè)場(chǎng)景,對(duì)原本3個(gè)特征尺度檢測(cè)的YOLOv3算法擴(kuò)展到5個(gè)特征尺度檢測(cè),并使用沙漏瓶頸模塊堆疊作為骨干網(wǎng)絡(luò)對(duì)特征進(jìn)行提取,加速模型的推理和訓(xùn)練,為了進(jìn)一步抑制不利的信息,在特征圖進(jìn)行上采樣的Concat操作之后使用了通道注意力機(jī)制SE模塊??偟恼f來,該網(wǎng)絡(luò)結(jié)構(gòu)主要包含骨干網(wǎng)絡(luò)(Backbone)、頸部(Neck)和檢測(cè)頭(Head)等,見圖4。其主要過程如下:416×416大小的RGB三通道圖像通過圖像增強(qiáng)等預(yù)處理后輸入網(wǎng)絡(luò),會(huì)生成{208×208,104×104,52×52,26×26,13×13}大小的特征圖,過程中,采用步長為2的卷積代替最大池化的操作進(jìn)行下采樣以避免信息的丟失,分別在5個(gè)層級(jí)的特征圖上預(yù)測(cè)目標(biāo)框的位置。
圖4 整體網(wǎng)絡(luò)結(jié)構(gòu)示意圖Fig.4 Schematic diagram of overall network structure
圖4中,“SGBX”表示X個(gè)沙漏瓶頸模塊堆疊,CBL表示卷積(Conv)之后經(jīng)過批歸一化(BN) 和Leaky ReLU激活,這里采用最近鄰插值的上采樣方法。在骨干網(wǎng)絡(luò)部分設(shè)置的堆疊次數(shù)的具體參數(shù)如表1所示。
表1 沙漏瓶頸骨干網(wǎng)絡(luò)的具體參數(shù)設(shè)置Table 1 Specific parameter settings of the SandGlass Bottleneck backbone network
觀察表1可以注意到,在更深層特征提取時(shí),隨著特征通道數(shù)的增加,設(shè)置的模塊堆疊次數(shù)也越多,比如在52×52和26×26尺度大小的特征圖上進(jìn)行了9次SandGlass Bottleneck單元模塊的疊加,這樣的設(shè)計(jì)能更加充分地實(shí)現(xiàn)特征提取。
在生成特征圖的過程中,隨著網(wǎng)絡(luò)層數(shù)的加深,生成的特征通道數(shù)量也越來越多,每個(gè)特征圖的信息表達(dá)性不一樣,能提供的信息也不一樣,SE通道注意力模塊就是采用一種“特征重標(biāo)定”的策略,通過學(xué)習(xí)的方式來自動(dòng)獲取到每個(gè)特征通道的重要程度,依照這個(gè)重要程度去提升有用的特征并抑制不利的通道信息。在本文所提的方法中,可以認(rèn)為在上采樣之后進(jìn)行Concat拼接得到的多維特征圖中,并不是所有通道上的特征圖都能提供相同重要的信息,需從中選擇較為重要的通道上特征圖,抑制一些通道上的不利信息。所以在上采樣部分中的Concat拼接操作之后加入了通道注意力機(jī)制SE模塊。SENet實(shí)現(xiàn)具體過程如圖5所示。經(jīng)過全局平均池化操作,該過程也稱之為“Squeeze”操作,使得每一個(gè)通道上W×H大小的二維特征圖生成一個(gè)實(shí)數(shù),該實(shí)數(shù)表示該特征圖的一個(gè)全局特征響應(yīng),具有全局的感受野信息。但這樣的實(shí)數(shù)并不能代表一個(gè)權(quán)重關(guān)系,也就是還需要通過“Excitation”操作,直接使用Sigmoid函數(shù)激活,將其映射到[0,1]之間的數(shù)值,此時(shí)得到的數(shù)值代表了權(quán)重系數(shù),并且建立了所有通道之間的相互關(guān)聯(lián)性。最后將得到的這組數(shù)值與原來的特征圖相乘,進(jìn)行“特征重標(biāo)定”操作,完成在通道維度上對(duì)原始特征的重標(biāo)定。
圖5 SE注意力機(jī)制模塊Fig.5 SE attention mechanism block
整個(gè)實(shí)驗(yàn)過程基于Pytorch框架,編程語言選擇Python3.6實(shí)現(xiàn),軟件環(huán)境選擇方面,本實(shí)驗(yàn)采用了Ubuntu18.04.4 LTS Linux 64 位操作系統(tǒng)。顯卡為GeForce GTX 1080Ti,采用Adam作為優(yōu)化器,設(shè)置學(xué)習(xí)率為0.001,權(quán)重衰減率w為1×10-5。根據(jù)原本DarkNet53中對(duì)各層級(jí)特征圖通道數(shù)的設(shè)置,在較高的層級(jí)特征圖會(huì)對(duì)應(yīng)生成高達(dá)512或者1024高維度的通道數(shù),設(shè)置如此高的通道數(shù)會(huì)造成較大的計(jì)算負(fù)擔(dān)。為了實(shí)現(xiàn)更加輕量化的實(shí)時(shí)性檢測(cè),對(duì)每層級(jí)特征通道數(shù)量進(jìn)行了重新設(shè)置,設(shè)計(jì)了一種適用于基于GPU嵌入式平臺(tái)的SandGlass-FPN,具體通道數(shù)量與DarkNet53比較結(jié)果見表2。
表2 各層級(jí)的通道數(shù)量Table 2 Number of channels at each level
在不考慮一些衰減率和優(yōu)化器參數(shù)設(shè)置的前提下,神經(jīng)網(wǎng)絡(luò)的模型權(quán)重大小可以直接理解為網(wǎng)絡(luò)的參數(shù)量,當(dāng)一個(gè)網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)好了之后,網(wǎng)絡(luò)的參數(shù)量就是確定的,計(jì)算過程在重新修改后的版本中已經(jīng)給出。對(duì)于輸入為w×h×Cin的輸入圖像,卷積核大小為k×k,經(jīng)過卷積操作后得到輸出的特征圖大小為W×H×Cout,其參數(shù)量為
Q=(k×k×Cin+1)·Cout。
(1)
本文中參與比較的各個(gè)模型權(quán)重大小的計(jì)算方式也符合式(1)的計(jì)算方式。
為了訓(xùn)練和驗(yàn)證本文提出的模型有效性,制作了一個(gè)基于復(fù)雜城市背景下的UAV數(shù)據(jù)集。首先獲得市場(chǎng)上幾種常見的無人機(jī)圖片和一系列的復(fù)雜城市背景圖片,通過對(duì)無人機(jī)圖片進(jìn)行隨機(jī)旋轉(zhuǎn)、尺度縮放,然后與城市背景圖片簡單地相加,并且為了盡可能地使得無人機(jī)出現(xiàn)在城市背景圖片上的任意一個(gè)位置,對(duì)城市背景圖片大致劃分為16 patch區(qū)域,每個(gè)區(qū)域?qū)?huì)隨機(jī)生成一架無人機(jī)。最后得到生成的訓(xùn)練集共有12 100張,其中每張圖片都包含了16個(gè)不同姿態(tài)、不同大小的無人機(jī)且圖像大小為416像素×416像素,通過數(shù)據(jù)增強(qiáng)等手段訓(xùn)練集數(shù)量可高達(dá)20萬,此外,采用類似方法生成了1210張圖片作為測(cè)試集驗(yàn)證模型的效果。
盡管在生成訓(xùn)練集圖像時(shí)無人機(jī)在圖像上的分布較為均勻,但是相較于背景而言,無人機(jī)數(shù)量還是很少,會(huì)導(dǎo)致正負(fù)例樣本不均衡,為了彌補(bǔ)這種不均衡,使用Focal loss通過賦予正負(fù)例樣本不同權(quán)重的方法指導(dǎo)模型的訓(xùn)練,使用Focal loss作為損失函數(shù)降低了大量簡單負(fù)樣本在訓(xùn)練中所占的權(quán)重,可以理解為是一種困難樣本挖掘。其表達(dá)式為
L(pt)=-αt(1-pt)γlog(pt)
(2)
從式(2)可以看出,相比于原來的二分類交叉熵?fù)p失函數(shù),在原來的基礎(chǔ)上添加因子γ,并且該因子是作為(1-pt)的次方根因子的形式出現(xiàn),當(dāng)設(shè)置γ>0時(shí)可以減少易于分類樣本的損失,從而更關(guān)注于困難的、錯(cuò)分的樣本,本文設(shè)置γ=2。此外,添加平衡因子αt用于平衡正負(fù)例樣本不均衡的情況,本文設(shè)置αt=0.25。
為了對(duì)本文所提的模型性能進(jìn)行評(píng)估,采用精確率P、召回率R和F1作為檢測(cè)精度的評(píng)價(jià)指標(biāo),采用每秒處理的圖像幀數(shù)和單幀圖片處理時(shí)間作為實(shí)時(shí)評(píng)價(jià)指標(biāo)。首先要對(duì)目標(biāo)檢測(cè)中的幾個(gè)基本概念有所認(rèn)識(shí):正樣本被正確識(shí)別為正樣本,即被正確識(shí)別出來的目標(biāo)稱之為True Positives(TP);負(fù)樣本被正確識(shí)別為負(fù)樣本,即背景沒有被識(shí)別成目標(biāo)稱之為True Negatives(TN);負(fù)樣本被錯(cuò)誤地識(shí)別為正樣本,即背景被識(shí)別成目標(biāo)稱之為False Positive(FP);正樣本被錯(cuò)誤識(shí)別為負(fù)樣本,即目標(biāo)被識(shí)別成背景稱之為False Negatives(FN)?;诖丝梢缘玫骄_率的定義為
(3)
召回率的定義為
(4)
F1指標(biāo)的定義為
(5)
為了驗(yàn)證本文所提算法的有效性,進(jìn)行了一系列標(biāo)準(zhǔn)化實(shí)驗(yàn),過程中使用相同的訓(xùn)練數(shù)據(jù)集、測(cè)試數(shù)據(jù)集和訓(xùn)練方法,采用與SandGlass-FPN相同的通道數(shù),嘗試分別結(jié)合ShuffleNetv2,MobileNetv2和GhostNet對(duì)應(yīng)生成SFv2-FPN,MBv2-FPN和Ghost-FPN;另外,YOLOv3和YOLO-tiny也參與比較,最終生成的模型權(quán)重大小比較結(jié)果如表3所示,模型的檢測(cè)性能比較結(jié)果如表4所示。
表3 生成的各個(gè)模型權(quán)重大小比較 Table 3 Comparison of the weights of each model MiB
表4 各個(gè)模型性能比較Table 4 Performance comparison of each model
由表3可以看出,嘗試將YOLOv3與輕量化網(wǎng)絡(luò)結(jié)合后生成的模型權(quán)重都大大降低,也有減少各層級(jí)通道數(shù)量的原因,其中最小模型權(quán)重是結(jié)合ShuffleNetv2生成的SFv2-FPN,只有0.97 MiB的大小,相比YOLO-tiny減少至其1/35,如此小的模型權(quán)重能輕易地部署到資源受限的嵌入式平臺(tái)或者移動(dòng)端設(shè)備上,這很大程度上取決于ShuffleNetv2的精心設(shè)計(jì)。而本文中所提的SandGlass-FPN模型權(quán)重僅為5.38 MiB,相比于YOLO-tiny差不多減少至其1/7,與YOLOv3相比,模型權(quán)重大小也只為其1/46,這在很大程度上已經(jīng)實(shí)現(xiàn)了模型輕量化,為在嵌入式平臺(tái)或移動(dòng)端設(shè)備實(shí)現(xiàn)實(shí)時(shí)運(yùn)行提供了可能。
由表4可得出,YOLOv3在實(shí)時(shí)速度為25.50 幀/s的情況下獲得了92.11%的精度,但處理單幀圖像的時(shí)間高達(dá)39.21 ms,其實(shí)時(shí)性有待提高。YOLO-tiny是所有參與比較的算法中速度最快的,實(shí)時(shí)速度為78 幀/s,處理單幀圖像時(shí)間僅需要12.89 ms,并且還取得了較為不錯(cuò)的86.47%的檢測(cè)精度。結(jié)合輕量化網(wǎng)絡(luò)的方法相對(duì)于YOLOv3,實(shí)時(shí)速度都得到極大提高,其中,分別結(jié)合ShuffleNetv2和MobileNetv2對(duì)應(yīng)生成的SFv2-FPN和MBv2-FPN精度也都超過了80%。值得關(guān)注的是,結(jié)合輕量化網(wǎng)絡(luò)GhostNet生成的Ghost-FPN在45.31 幀/s的實(shí)時(shí)速度情況下獲得了97.21%的精度,說明了GhostNet通過更為廉價(jià)的線性方式生成的特征圖同樣有效,并且具有較高質(zhì)量,能夠幫助模型獲得不錯(cuò)的檢測(cè)性能。而本文所提SandGlass-FPN算法獲得了最高的98.92%檢測(cè)精度,比YOLOv3的92.11%高出了6.81%,并且實(shí)時(shí)速度高達(dá)62.37 幀/s,是YOLOv3檢測(cè)速度的2.44倍,這樣的檢測(cè)速度僅次于YOLO-tiny的最高速度78 幀/s。結(jié)果在很大程度上實(shí)現(xiàn)輕量化,能滿足大多數(shù)場(chǎng)景對(duì)實(shí)時(shí)和精度的要求,為在資源受限的嵌入式平臺(tái)和移動(dòng)端設(shè)備上實(shí)現(xiàn)實(shí)時(shí)目標(biāo)檢測(cè)提供了可能。本文算法之所以能獲得這么高的精度,是針對(duì)無人機(jī)這種小目標(biāo)場(chǎng)景精心設(shè)計(jì)網(wǎng)絡(luò)的結(jié)果,而且場(chǎng)景中只有無人機(jī)這一類目標(biāo),其他的均為背景,數(shù)據(jù)集單一也降低了檢測(cè)的難度。此外,要注意的是本文中采用的精度評(píng)價(jià)指標(biāo)是準(zhǔn)確率,要與單個(gè)類別的平均準(zhǔn)確率(AP)和所有類別下的平均準(zhǔn)確率(mAP)相區(qū)別開來。
為了進(jìn)一步說明訓(xùn)練過程,由于訓(xùn)練過程中并沒有設(shè)置驗(yàn)證集,無法得到驗(yàn)證損失函數(shù)和精度,本文只對(duì)訓(xùn)練損失函數(shù)變化曲線進(jìn)行了展示,如圖6所示。
圖6 訓(xùn)練損失函數(shù)變化曲線圖Fig.6 Curve of training loss function
由圖6可以看出,在設(shè)置100次迭代的情況下,前20次迭代內(nèi)損失函數(shù)急劇下降,第20~60次迭代之間下降速度減緩,在60次迭代之后模型逐漸收斂。
為了更加直觀地比較各個(gè)模型的檢測(cè)性能,給出的可視化結(jié)果如圖7所示。
圖7 各算法可視化結(jié)果比較Fig.7 Comparison of visualization results of each method
從圖7中可以看出,YOLOv3和YOLO-tiny只在3個(gè)特征尺度來檢測(cè),面對(duì)小目標(biāo)檢測(cè)情況時(shí),表現(xiàn)并不佳,YOLOv3在用于較大尺寸無人機(jī)時(shí)能準(zhǔn)確檢測(cè)到,用于小尺寸無人機(jī)時(shí)則檢測(cè)不準(zhǔn)確,YOLO-tiny無論是檢測(cè)大尺寸還是小尺寸的無人機(jī)都出現(xiàn)了一定的問題,除了對(duì)小尺寸無人機(jī)檢測(cè)不準(zhǔn)確,還對(duì)較大尺寸的無人機(jī)出現(xiàn)漏檢的情況。當(dāng)擴(kuò)展到5個(gè)特征尺度進(jìn)行檢測(cè)時(shí),SFv2-FPN,MBv2-FPN,Ghost-FPN和SandGlass-FPN都能有效處理較小目標(biāo),對(duì)尺度變化也有較好的適應(yīng)性。相比之下,Ghost-FPN和SandGlass-FPN在檢測(cè)精度上更高,但本文提出的SandGlass-FPN則在精度上更為準(zhǔn)確,相比于Ghost-FPN,得到的目標(biāo)檢測(cè)框更注重邊緣細(xì)節(jié),能剛好完整地框住整個(gè)無人機(jī),而Ghost-FPN得到的目標(biāo)框在邊緣上存在一些偏差,特別是圖7 (e)中兩個(gè)較大尺寸的無人機(jī)的輪廓邊緣超出了目標(biāo)框,說明本文提出的SandGlass-FPN能有效應(yīng)用于無人機(jī)這樣的小目標(biāo)檢測(cè)場(chǎng)景,而且能有效適應(yīng)無人機(jī)的旋轉(zhuǎn)、縮放和平移等各種變化,具有一定的魯棒性。
在所提算法中,為了有效提高模型的檢測(cè)性能,加入了一些必要的模塊,為了驗(yàn)證所加入算法或者模塊的有效性,也為了更加清晰明了地觀察到每種算法或者模塊對(duì)最終模型性能的影響,表5給出了消融實(shí)驗(yàn),其中,√代表添加模塊。
表5 在UAV測(cè)試集上的消融實(shí)驗(yàn)Table 5 Ablation experiments on UAV test set
本文以YOLOv3為基準(zhǔn)模型,由表5可看出,當(dāng)嘗試使用沙漏瓶頸模塊作為骨干網(wǎng)絡(luò)時(shí),精度從92.11%上升至94.84%,精度指標(biāo)提升了2.73%,說明使用沙漏瓶頸模塊減少了信息的丟失,能有效改善無人機(jī)場(chǎng)景的檢測(cè)精度。在結(jié)合沙漏瓶頸模塊作為骨干網(wǎng)絡(luò)部分的基礎(chǔ)上擴(kuò)展為5個(gè)特征尺度檢測(cè),綜合利用多個(gè)尺度信息幫助適應(yīng)不同目標(biāo)尺寸大小,F(xiàn)PN思想幫助模型精度直接提升了2.22%。最后,在同時(shí)結(jié)合沙漏瓶頸模塊SandGlass,FPN和通道注意力機(jī)制SE模塊時(shí),模型取得了最高精度98.92%,每一個(gè)模塊都對(duì)最終模型的精度結(jié)果有著不可或缺的作用,都在不同程度上帶來精度的提升,其中,SE模塊在結(jié)合SandGlass和FPN的基礎(chǔ)上帶來了1.86%的精度提升。
本文提出了一種基于復(fù)雜城市背景下的UAV檢測(cè)算法,利用特征金字塔的思想綜合了多個(gè)特征尺度信息幫助提升小目標(biāo)檢測(cè)性能,結(jié)合輕量化網(wǎng)絡(luò)幫助模型加速、實(shí)現(xiàn)了網(wǎng)絡(luò)的輕量化?;诒疚奶岢龅膹?fù)雜城市背景下的UAV數(shù)據(jù)集,實(shí)驗(yàn)結(jié)果表明,該算法能有效適應(yīng)如UAV這樣的小目標(biāo)檢測(cè)場(chǎng)景,對(duì)多尺度變化、旋轉(zhuǎn)的情況具有較強(qiáng)的魯棒性。在NVIDIA GeForce GTX 1080Ti上測(cè)試精度高達(dá)98.92%,實(shí)時(shí)速度為62.37 幀/s,生成的模型權(quán)重只有5.38 MiB,這樣的結(jié)果能滿足大多數(shù)場(chǎng)景對(duì)精度和實(shí)時(shí)性的要求,并且僅有5.38 MiB的模型權(quán)重,能輕易地在資源受限的邊緣移動(dòng)端實(shí)現(xiàn)部署,為在嵌入式平臺(tái)上實(shí)時(shí)運(yùn)行和工程落地應(yīng)用提供了可能。