楊 健,孫 涵
(南京航空航天大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 南京 211106)
當(dāng)前,國(guó)內(nèi)的無(wú)人機(jī)領(lǐng)域正在蓬勃發(fā)展,隨著無(wú)人機(jī)在日常生產(chǎn)生活領(lǐng)域中(如農(nóng)藥噴灑、航拍勘測(cè)等)的大量使用,隨之產(chǎn)生的無(wú)人機(jī)監(jiān)督和管理問題也變得日益嚴(yán)峻[1-2]?;谏疃葘W(xué)習(xí)的方法不斷在目標(biāo)檢測(cè)領(lǐng)域展現(xiàn)優(yōu)異性能,因此當(dāng)前主流的通用目標(biāo)檢測(cè)算法都是基于深度神經(jīng)網(wǎng)絡(luò)(如VGG[3]、ResNet[4]等)提取目標(biāo)特征再做檢測(cè),它們大多能在PASCAL VOC[5]和MSCOCO[6]等數(shù)據(jù)集的大中型目標(biāo)檢測(cè)任務(wù)上取得不俗的效果。然而,在真實(shí)場(chǎng)景的無(wú)人機(jī)檢測(cè)任務(wù)中,這些方法仍有諸多局限。
一方面,以往常見的目標(biāo)檢測(cè)任務(wù)中,通常包含的檢測(cè)目標(biāo)為中、大尺度目標(biāo),它們的外觀和結(jié)構(gòu)相對(duì)清晰完整,隨著網(wǎng)絡(luò)加深,網(wǎng)絡(luò)能夠逐步學(xué)習(xí)到目標(biāo)從局部到整體的特征信息。然而對(duì)于小目標(biāo)檢測(cè)而言,由于目標(biāo)的尺度小、信息少,若使用通用的目標(biāo)檢測(cè)網(wǎng)絡(luò)模型,容易在網(wǎng)絡(luò)不斷加深的過程中損失大量有效的信息,導(dǎo)致最終檢測(cè)性能不佳。如果只是簡(jiǎn)單地使用加大輸入圖像分辨率的手段,容易產(chǎn)生高額的計(jì)算開銷,大幅增加訓(xùn)練和推理時(shí)間。因此小目標(biāo)檢測(cè)相較于常規(guī)尺度目標(biāo)檢測(cè),達(dá)到最佳的檢測(cè)性能難度更大。而且由于無(wú)人機(jī)目標(biāo)的特殊性,它極易被反光、云層遮掩等背景噪聲淹沒,對(duì)檢測(cè)造成不利影響。
另一方面,雖然目前深度學(xué)習(xí)目標(biāo)檢測(cè)算法在目標(biāo)檢測(cè)任務(wù)上取得了巨大的成功,但是這一系列方法仍極度依賴高性能計(jì)算機(jī)。但無(wú)人機(jī)檢測(cè)任務(wù)中,應(yīng)用程序的部署環(huán)境通常是在戶外邊緣設(shè)備,因此該任務(wù)對(duì)目標(biāo)檢測(cè)算法的綜合性能提出了更高的要求,要求其能夠在嵌入式設(shè)備上運(yùn)行?,F(xiàn)有的小目標(biāo)檢測(cè)模型通常在檢測(cè)精度和模型大小上很難做好權(quán)衡,不利于部署到室外邊緣檢測(cè)設(shè)備。
因此,文中提出一種結(jié)合像素洗牌和層間特征融合結(jié)構(gòu)的輕量級(jí)無(wú)人機(jī)檢測(cè)方法,并將其引入到輕量級(jí)無(wú)人機(jī)檢測(cè)網(wǎng)絡(luò)TIB-Net,旨在確保模型輕量的前提下,大幅提升層間特征圖質(zhì)量。
當(dāng)前,基于候選區(qū)域的目標(biāo)檢測(cè)算法主要以R-CNN方法[7]為代表,它先找到目標(biāo)可能出現(xiàn)的候選區(qū)域,然后對(duì)該區(qū)域進(jìn)行分類,當(dāng)應(yīng)用到小目標(biāo)檢測(cè)任務(wù)時(shí)可以采取如調(diào)整錨框等針對(duì)性優(yōu)化方法。如果應(yīng)用場(chǎng)景較為復(fù)雜,該方法存在易漏檢目標(biāo)的問題?;诨貧w的目標(biāo)檢測(cè)算法主要以YOLO方法[8]和SSD方法[9]為代表,它們直接在輸入圖像的多個(gè)位置上回歸出目標(biāo)邊界框以及類別。它們的優(yōu)點(diǎn)是檢測(cè)速度快,但在小目標(biāo)檢測(cè)上也同樣存在易漏檢目標(biāo)的問題。同時(shí)由于深度學(xué)習(xí)算法生成的網(wǎng)絡(luò)模型,主要通過精心設(shè)計(jì)的復(fù)雜網(wǎng)絡(luò)結(jié)構(gòu)增強(qiáng)模型的特征表示能力,因此其內(nèi)部包含龐大的參數(shù)量和多級(jí)的非線性映射通常生成較大的權(quán)重文件,導(dǎo)致其不易在低內(nèi)存容量的邊緣設(shè)備部署。另外,通用的目標(biāo)檢測(cè)方法往往在大中型目標(biāo)上表現(xiàn)不俗,但是對(duì)于無(wú)人機(jī)等小目標(biāo)的檢測(cè)效果卻不理想[10-12]。
針對(duì)無(wú)人機(jī)檢測(cè)任務(wù),文獻(xiàn)[13]提出改進(jìn)的YOLOv3算法,通過增加參考角點(diǎn)參與損失函數(shù)的計(jì)算,獲得更優(yōu)的定位選擇,提升無(wú)人機(jī)檢測(cè)精度,并且對(duì)樣本的增廣、參數(shù)優(yōu)化等方面進(jìn)行研究,驗(yàn)證了改進(jìn)算法的有效性。文獻(xiàn)[14]同樣是在YOLOv3模型的基礎(chǔ)上改進(jìn),它將多尺度的特征圖進(jìn)行融合,提升模型對(duì)不同尺度目標(biāo)的檢測(cè)性能。在實(shí)際情況中,大部分是邊緣設(shè)備部署場(chǎng)景,導(dǎo)致用于計(jì)算和存儲(chǔ)的硬件資源都與實(shí)驗(yàn)室設(shè)備存在著巨大性能差距,因此文獻(xiàn)[15]提出輕量級(jí)無(wú)人機(jī)檢測(cè)模型TIB-Net,通過循環(huán)迭代的網(wǎng)絡(luò)結(jié)構(gòu)部分緩解了由于目標(biāo)尺寸過小引起的形狀、紋理等特征缺失等問題。但是,由于網(wǎng)絡(luò)部分結(jié)構(gòu)仍然采用簡(jiǎn)單的先下采樣再雙線性上采樣的處理模式,因此會(huì)產(chǎn)生不必要的信息損失。綜上,這些方法在無(wú)人機(jī)檢測(cè)方面仍可改進(jìn)。
TIB-Net[15]的算法模型是基于SSD以及FPN基本架構(gòu)的anchor-based目標(biāo)檢測(cè)算法,該算法采用循環(huán)迭代的形式構(gòu)成特征提取主干網(wǎng)絡(luò),不僅檢測(cè)性能優(yōu)異,而且大幅降低了模型參數(shù)量。該網(wǎng)絡(luò)通過循環(huán)支路結(jié)構(gòu)引入更加豐富的細(xì)節(jié)信息,同時(shí)采用空間注意力模塊,大大降低了特征圖傳遞過程中的信息冗余。因此,文中將在TIB-Net的基礎(chǔ)上進(jìn)一步優(yōu)化,構(gòu)建出性能更佳的無(wú)人機(jī)檢測(cè)網(wǎng)絡(luò)。
無(wú)人機(jī)檢測(cè)模型的主干網(wǎng)絡(luò)包含六個(gè)基本組件塊,其中前兩個(gè)基本組件塊的作用是初步提取輸入圖像的基本抽象特征,后續(xù)四個(gè)基本組件塊參與構(gòu)成網(wǎng)絡(luò)模型的循環(huán)迭代架構(gòu)。在網(wǎng)絡(luò)迭代過程中,每輪循環(huán)結(jié)束時(shí)輸出的特征圖會(huì)以特征金字塔的方式進(jìn)行融合,然后送入后續(xù)檢測(cè)器。網(wǎng)絡(luò)整體處理流程如圖1所示。
圖1 網(wǎng)絡(luò)整體框架
不同于原始TIB-Net采用基于經(jīng)典的特征金字塔的信息融合處理方法,文中在特征融合過程中引入層內(nèi)金字塔結(jié)構(gòu),以增強(qiáng)網(wǎng)絡(luò)對(duì)于多尺度信息的處理性能。同時(shí),受到超分辨率任務(wù)中像素洗牌操作的啟發(fā),文中使用改進(jìn)的上采樣模塊替代了雙線性插值上采樣的方式,實(shí)現(xiàn)特征金字塔中不同層級(jí)上不同分辨率特征圖的融合。最終,改進(jìn)的特征融合模塊如圖2所示。
圖2 特征融合模塊結(jié)構(gòu)
(1)層間金字塔結(jié)構(gòu)。
層間金字塔(即Elastic結(jié)構(gòu))[16]最早應(yīng)用于圖像分類任務(wù),主要目的是使得網(wǎng)絡(luò)中每一層都能夠綜合考量特征圖中多個(gè)尺度的信息,從數(shù)據(jù)中學(xué)習(xí)高效的動(dòng)態(tài)尺度調(diào)整策略。如圖3所示,在ResNeXt50原始網(wǎng)絡(luò)中,網(wǎng)絡(luò)自下而上分別針對(duì)性地識(shí)別由大至小的目標(biāo),即淺層負(fù)責(zé)識(shí)別較小的目標(biāo),深層負(fù)責(zé)識(shí)別較大的目標(biāo)。但是這種策略在示例中除公雞外其他類別目標(biāo)的識(shí)別任務(wù)中,并不能取得最優(yōu)結(jié)果。然而,在主干網(wǎng)絡(luò)集成層間金字塔結(jié)構(gòu)后,網(wǎng)絡(luò)不同層在遇到不同類別的輸入圖像時(shí),會(huì)動(dòng)態(tài)調(diào)整各層網(wǎng)絡(luò)的目標(biāo)識(shí)別尺度,最終獲得更好的實(shí)驗(yàn)結(jié)果。因此,受到該結(jié)構(gòu)的啟發(fā),文中在特征金字塔結(jié)構(gòu)中引入動(dòng)態(tài)尺度調(diào)整策略。
圖3 層間金字塔結(jié)構(gòu)原理
從圖2中可以看出,輸入特征圖在通過特征融合模塊時(shí)會(huì)經(jīng)過三個(gè)不同的特征提取分支,待各分支處理完成后再進(jìn)行特征融合,隨后傳遞到上采樣模塊。為了進(jìn)一步使模型學(xué)習(xí)到不同分辨率下的特征表示,需要在一個(gè)并行分支的兩端添加下采樣和上采樣處理。在訓(xùn)練過程中,深度網(wǎng)絡(luò)能夠通過層間金字塔自主學(xué)習(xí)網(wǎng)絡(luò)層的分辨率選擇,根據(jù)輸入圖片自適應(yīng)地調(diào)整到對(duì)應(yīng)的尺度處理策略。
從整體上看,特征圖在特征金字塔結(jié)構(gòu)的逐層傳遞融合過程中能夠保持高分辨率水平,而在細(xì)節(jié)上,內(nèi)嵌的層間金字塔結(jié)構(gòu)使得特征圖在特征融合模塊每個(gè)分支上調(diào)整到不同的分辨率,使得特征金字塔在每層內(nèi)部具有不同的感受野。通過這種處理方式,不僅保持了網(wǎng)絡(luò)主體部分維持高分辨率的特征圖信息,而且使得特征融合模塊內(nèi)部能夠動(dòng)態(tài)調(diào)整到相應(yīng)分辨率,使模型能夠在模塊內(nèi)部的不同分支上處理不同尺度的信息,增強(qiáng)了模型應(yīng)對(duì)不同尺度目標(biāo)檢測(cè)任務(wù)的能力。針對(duì)小目標(biāo)檢測(cè)任務(wù)來說,模型在金字塔結(jié)構(gòu)融合各層特征信息前,能夠?qū)⑻卣鲌D調(diào)整到合適的分辨率再做處理,提升網(wǎng)絡(luò)性能。
(2)超分辨率上采樣模塊。
除了集成層間金字塔結(jié)構(gòu),文中也改進(jìn)了原始的雙線性插值上采樣策略,提出改進(jìn)的上采樣模塊,如圖4所示。
圖4 改進(jìn)的上采樣模塊
傳統(tǒng)的雙線性插值上采樣方法是根據(jù)離待插值最近的2×2個(gè)已知值來計(jì)算待插值,每個(gè)已知值的權(quán)重由距待插值的距離決定,距離越近權(quán)重越大。但是這種人為規(guī)定權(quán)重的方式仍然會(huì)存在畫面模糊的問題。除此之外,反卷積也是目前常用的上采樣手段,它利用模型學(xué)習(xí)能力獲得上采樣策略,使網(wǎng)絡(luò)自主向低分辨率圖片中填充細(xì)節(jié)部分,它無(wú)需預(yù)先規(guī)定如何插值,因?yàn)樵摻Y(jié)構(gòu)在模型訓(xùn)練過程中是可學(xué)習(xí)的。反卷積并非卷積運(yùn)算的逆操作,本質(zhì)上只能還原圖像的尺寸,不能還原其對(duì)應(yīng)像素值,上采樣后補(bǔ)充的像素值是通過網(wǎng)絡(luò)訓(xùn)練過程中反向傳播來學(xué)習(xí)獲得的。它在實(shí)際應(yīng)用過程中,可能會(huì)出現(xiàn)棋盤效應(yīng)、偽影等病態(tài)重建問題(見圖5),而且該操作引入了巨額計(jì)算開銷,不宜用于邊緣設(shè)備部署。
通過進(jìn)一步研究發(fā)現(xiàn),超分辨率任務(wù)中常用的像素重組操作也可實(shí)現(xiàn)上采樣,并且它是一種高效、快速、無(wú)參的像素重排列的上采樣方式,不僅取得了良好的上采樣效果,而且在工程應(yīng)用中容易實(shí)現(xiàn)。因此,文中改進(jìn)了超分辨率任務(wù)中常采用的像素洗牌方法,用于上采樣過程。假設(shè)輸入特征圖為x∈Rw×h×c,輸出特征圖為y∈R(2×w)×(2×h)×c,卷積核大小為1×1×(c×22),激活函數(shù)選用PReLU,采用批正則化處理策略,同時(shí)像素洗牌的尺度參數(shù)為2。則上采樣模塊的處理過程可表示為:
y=PReLU(BatchNorm(PixelSHuffle(Conv(x))))
(1)
圖5 病態(tài)重建樣例
該模塊首先將圖像的通道數(shù)拓展到原先的4倍,然后使用像素洗牌運(yùn)算將像素重排,使得特征圖分辨率提升的同時(shí),通道數(shù)還原到初值。
最終,深度網(wǎng)絡(luò)結(jié)構(gòu)通過提出的特征融合模塊實(shí)現(xiàn)特征金字塔的旁路連接,進(jìn)一步增強(qiáng)了網(wǎng)絡(luò)的特征提取能力。
在實(shí)驗(yàn)過程中的迭代總次數(shù)設(shè)置為300 K,選擇隨機(jī)梯度下降作為優(yōu)化策略,同時(shí)初始的學(xué)習(xí)率設(shè)置為10-3。同時(shí),隨著訓(xùn)練次數(shù)的增加,學(xué)習(xí)率在第120輪迭代和第240輪迭代時(shí)分別衰減到10-4和10-5。
在訓(xùn)練過程中,模型的損失函數(shù)采用多任務(wù)損失。文中采用與TIB-Net相同的設(shè)置,分類任務(wù)的損失函數(shù)選用交叉熵函數(shù),如公式(2)所示。
(2)
同時(shí),回歸任務(wù)的損失函數(shù)選用平滑L1損失函數(shù),如公式(3)所示。
(3)
所以,最終的損失函數(shù)由分類損失和回歸損失加權(quán)求和得到,如公式(4)所示。
(4)
由于缺乏公共的無(wú)人機(jī)基準(zhǔn)數(shù)據(jù)集評(píng)估,文中選用TIB-Net中提供的無(wú)人機(jī)數(shù)據(jù)集,其中采集并標(biāo)注了共2 750張VOC格式的數(shù)據(jù)樣本,部分樣本圖片如圖6所示,可以看出數(shù)據(jù)集中包含多種場(chǎng)景的小目標(biāo)無(wú)人機(jī)。
圖6 數(shù)據(jù)集中多場(chǎng)景無(wú)人機(jī)樣本展示
文中采用mAP指標(biāo)以及生成權(quán)重模型大小來評(píng)估模型性能的優(yōu)劣,其中mAP的計(jì)算公式如公式(5)和公式(6)所示:
(5)
(6)
其中,p和r分別表示精度和召回率,N表示類別數(shù),由于文中只涉及無(wú)人機(jī)檢測(cè)單類任務(wù),因此N設(shè)置為1。
實(shí)驗(yàn)結(jié)果如表1所示,可以看出改進(jìn)后的模型相較于原始的TIB-Net,在模型參數(shù)僅有少量增加的前提下,將mAP值提高到90%以上,提升了檢測(cè)模型的性能。
表1 不同模型的性能參數(shù)對(duì)比
為了進(jìn)一步分析實(shí)驗(yàn)結(jié)果,圖7將部分檢測(cè)結(jié)果可視化??梢钥闯?,集成特征融合模塊之后,網(wǎng)絡(luò)不僅能夠檢測(cè)出尺度極小的不同類型無(wú)人機(jī),而且對(duì)復(fù)雜環(huán)境下的無(wú)人機(jī)檢測(cè)表現(xiàn)較為魯棒且更加精準(zhǔn)。通過分析,特征融合模塊能夠使特征圖中全局信息和局部信息更高效地融合,因此網(wǎng)絡(luò)模型可以根據(jù)無(wú)人機(jī)周邊環(huán)境(如天空、樹木)權(quán)衡并調(diào)整檢測(cè)結(jié)果的置信度,并最終規(guī)避了部分不合理的誤檢情況,與之對(duì)應(yīng),一些漏檢的目標(biāo)就能夠被響應(yīng)并檢測(cè)出來。另一方面,超分辨率上采樣模塊緩解了傳統(tǒng)上采樣方式的信息丟失,避免了在這過程中的像素偏移,因此模型預(yù)測(cè)出的檢測(cè)框也就更加精準(zhǔn)。
圖7 模型檢測(cè)結(jié)果
文中基于TIB-Net主干網(wǎng)絡(luò)提出了基于深度特征提取的無(wú)人機(jī)檢測(cè)算法,通過集成層內(nèi)金字塔結(jié)構(gòu)和改進(jìn)的上采樣模塊,提升了模型的檢測(cè)性能。該算法具有較高的檢測(cè)精度以及較小的模型參數(shù)量,不僅能夠檢測(cè)出空中小尺寸無(wú)人機(jī),同時(shí)對(duì)于復(fù)雜環(huán)境仍能保持性能穩(wěn)定。因此該算法可以部署在硬件性能較弱的邊緣設(shè)備上,以解決真實(shí)場(chǎng)景中戶外無(wú)人機(jī)檢測(cè)任務(wù)。另一方面,該算法在推理速度上仍有較大提升空間,盡管循環(huán)迭代的架構(gòu)可以減少模型尺寸,但模型深度仍然較大,耗費(fèi)了部分檢測(cè)時(shí)間。因此,未來將會(huì)繼續(xù)對(duì)該算法做針對(duì)性的改進(jìn),在保證模型檢測(cè)精度的同時(shí),減少模型的推理檢測(cè)時(shí)間。