楊玉敏,廖育榮,林存寶,倪淑燕
(航天工程大學(xué),北京 101400)
視頻衛(wèi)星在應(yīng)急事件監(jiān)控、戰(zhàn)場態(tài)勢感知等軍民領(lǐng)域都具有廣泛的應(yīng)用價值,尤其適用于運動目標(biāo)監(jiān)視??罩心繕?biāo)檢測是視頻衛(wèi)星執(zhí)行空中目標(biāo)捕獲跟蹤任務(wù)的必備前提,相比常規(guī)圖像,衛(wèi)星視頻圖像具有背景復(fù)雜、光照強度、云層遮擋等干擾因素,且為多視角拍攝,多樣性強[1]。而傳統(tǒng)的目標(biāo)檢測主要針對手工設(shè)計特征,無法適用于多樣化的視頻圖像檢測,魯棒性差。
隨著深度學(xué)習(xí)在計算機視覺領(lǐng)域取得突破性成果,目前很多研究者開始將深度學(xué)習(xí)應(yīng)用到遙感影像目標(biāo)檢測領(lǐng)域,并提出很多針對遙感目標(biāo)檢測的網(wǎng)絡(luò)。戴偉聰?shù)热薣2]基于YOLO v3框架,提出了一種改進(jìn)的遙感圖像飛機目標(biāo)檢測算法;余東行等人[3]提出了一種基于級聯(lián)卷積神經(jīng)網(wǎng)絡(luò)的遙感影像飛機目標(biāo)檢測算法;顧恭等人[4]基于YOLO v3網(wǎng)絡(luò),提出了一種Vehicle-YOLO的實時車輛檢測分類模型。雖然基于深度學(xué)習(xí)的遙感目標(biāo)檢測算法在檢測精度和檢測速度上,相比于傳統(tǒng)算法都有較大的提升,但是其網(wǎng)絡(luò)模型體積和計算量普遍都較大,而星載系統(tǒng)本身功耗低,其攜帶的計算單元的內(nèi)存、計算能力有限,使得深度學(xué)習(xí)算法難以在資源受限的星載平臺上應(yīng)用。
針對上述問題,本文改進(jìn)了YOLO v3[5]的特征提取網(wǎng)絡(luò),提出了輕量化的空中目標(biāo)檢測網(wǎng)絡(luò)。采用MobileNet v3[6]的高效卷積模塊Bneck對骨干網(wǎng)絡(luò)進(jìn)行了輕量化處理,并通過實驗不斷對通道超參數(shù)更新,在最大化壓縮通道數(shù)的同時提升了檢測速度,并在邊界框回歸損失函中引入IoU(交并比)提高了精度。
YOLO v3是一個經(jīng)典的端到端目標(biāo)檢測框架,其由骨干網(wǎng)絡(luò)(backbone)和檢測頭(head)兩部分組成。本文主要基于輕量化網(wǎng)絡(luò)MobileNet v3對YOLO v3骨干網(wǎng)絡(luò)部分進(jìn)行輕量化改進(jìn),在保持檢測精度的同時,提升網(wǎng)絡(luò)的實時性。
網(wǎng)絡(luò)結(jié)構(gòu)的輕量化設(shè)計有一個共同的特點,其網(wǎng)絡(luò)結(jié)構(gòu)都是由基本構(gòu)建模塊堆疊而成。而基本構(gòu)建模塊是采用不同的卷積方式進(jìn)行互補組合,充分發(fā)揮不同卷積方式的優(yōu)點,使網(wǎng)絡(luò)計算量和參數(shù)量減少,且不損失網(wǎng)絡(luò)性能。如圖1所示MobileNet v3的高效卷積模塊Bneck,其內(nèi)部模塊引入了的深度可分離卷積[7]和線性瓶頸的倒殘差結(jié)構(gòu)[8]。同時,采用了squeeze and excitation結(jié)構(gòu)的輕量級注意力機制,對特征通道間的相關(guān)性進(jìn)行建模,將圖像的重點特征進(jìn)行強化計
圖1 MobileNet v3 block[6]
算來提升整體網(wǎng)絡(luò)結(jié)構(gòu)的準(zhǔn)確率。Bneck模塊在計算量、空間消耗和檢測精度方面取得了很好的平衡。
輕量化骨干網(wǎng)絡(luò)結(jié)構(gòu)如圖2立方體塊堆疊部分所示,該網(wǎng)絡(luò)結(jié)構(gòu)主要采用高效卷積塊Bneck堆疊成“金字塔”型網(wǎng)絡(luò)結(jié)構(gòu)的方式。相比于DarkNet53有53個卷積層,改進(jìn)的骨干網(wǎng)絡(luò)只有2個卷積層和17個Bneck模塊。而且從Bneck模塊中可以看出Bneck模塊的卷積操作主要由Pointwise(逐點卷積)和Depthwise-Pointwise(深度可分離卷積)兩個主要步驟構(gòu)成。深度可分離卷積采用Depthwise和Pointwise兩個步驟實現(xiàn)卷積,其參數(shù)僅約為普通卷積參數(shù)量的1/9,乘法計算量僅約為1/c+1/9,其中c為輸入通道數(shù)。除此之外,輕量級注意力機制通過最大池化操作提取關(guān)鍵點特征,再通過全連接層的學(xué)習(xí)得到不同通道的權(quán)重,在只增加很少網(wǎng)絡(luò)開銷的基礎(chǔ)上增加網(wǎng)絡(luò)對關(guān)鍵特征的學(xué)習(xí)能力?;谶@種高效Bneck卷積模塊搭建的網(wǎng)絡(luò)將大大精簡整個模型的體積,極大減少計算量。
圖2 改進(jìn)YOLO v3網(wǎng)絡(luò)結(jié)構(gòu)
在目標(biāo)檢測網(wǎng)絡(luò)中,損失函數(shù)是對網(wǎng)絡(luò)誤檢懲罰的根據(jù),在很大程度上影響著模型收斂的效果,因此設(shè)計合適的損失函數(shù)以獲得更好的檢測性能也是網(wǎng)絡(luò)優(yōu)化性能的重要方向。YOLO v3的損失函數(shù)由三部分組成:定位損失(Localization loss)、分類損失(Classification loss)、置信度損失(Confidence loss),本文主要對網(wǎng)絡(luò)的定位損失部分進(jìn)行優(yōu)化。
YOLO v3在定位損失中采用了L2范數(shù)損失函數(shù),其忽略了ground-truth和預(yù)測框之間的交并比IoU。而在目標(biāo)檢測中IoU是比較預(yù)測框與ground-truth(真實框)框之間常用的度量標(biāo)準(zhǔn),是評價網(wǎng)絡(luò)檢測性能的重要指標(biāo)。IoU函數(shù)如公式
(1)
其中,B是目標(biāo)預(yù)測框;Bgt是ground-truth框,IoU是ground-truth和預(yù)測框之間的交并比。
由圖3可以看出,采用L2范數(shù)作為邊框回歸損失函數(shù)與優(yōu)化IoU值沒有較強的關(guān)聯(lián),當(dāng)目標(biāo)預(yù)測框與ground-truth框L2范數(shù)均相等時兩者的IoU值卻不相同。圖中右上角在圓心的框為ground-truth框,右上角在圓上的框為預(yù)測框,可以看出預(yù)測框與ground-truth框的L2范數(shù)均相等,但(c)的IoU明顯最高,所以采用L2范數(shù)作為邊框回歸損失函數(shù)并不能較好地優(yōu)化網(wǎng)絡(luò)。
圖3 L2范數(shù)相同IoU不同
針對YOLO v3在定位損失中存在的不足,將IoU加入到邊界框回歸損失函數(shù)中。但將IoU直接作為邊界框損失函數(shù)存在一些缺陷。如圖4所示,右邊框為ground-truth框,左邊框為預(yù)測框。當(dāng)預(yù)測框與ground-truth不重合時,IoU的值為0,導(dǎo)致網(wǎng)絡(luò)無法進(jìn)一步優(yōu)化。為了在邊界框回歸損失函數(shù)中加入IoU,將LossIoU作為邊界框回歸損失函數(shù),直觀的反應(yīng)預(yù)測框與ground-truth之間的偏差。LossIoU函數(shù)如公式:
圖4 ground-truth框與預(yù)測框之間關(guān)系
其中,LossIoU的取值范圍(0,1]。當(dāng)IoU=0時,LossIoU的值一直為1,無法反應(yīng)預(yù)測框和ground-truth之間的距離關(guān)系,如圖5中的(b)和(c)兩種情況。
為了體現(xiàn)不相交兩個邊框之間的距離關(guān)系,文獻(xiàn)[9]提出了GIoU Loss函數(shù)。GIoU加入了預(yù)測框與ground-truth框的最小外接矩陣面積,克服了LIoU的不足。GIoU函數(shù)與LossGIoU函數(shù)如公式:
(3)
LossGIoU=1-GIoU
(4)
其中,C是最小外接矩陣面積,B是目標(biāo)預(yù)測框;Bgt是ground-truth框。
實驗使用的數(shù)據(jù)集是武漢大學(xué)團隊標(biāo)注的RSOD-Dataset以及長光衛(wèi)星科技集團拍攝的遙感圖像。RSOD-Dataset只使用其中的446張包含飛機目標(biāo)的圖像,共4993個目標(biāo)。通過圖像增強的方式,包括對圖像進(jìn)行加噪、調(diào)整亮度、旋轉(zhuǎn)等操作,將數(shù)據(jù)集擴充至1338張圖像。隨機選取936張作為訓(xùn)練集、267張作為驗證集、135張作為測試集。RSOD-Dataset圖像尺寸為1044×916,而本文重點針對3840×2160遙感圖像進(jìn)行目標(biāo)檢測。因此,為提升網(wǎng)絡(luò)檢測性能的泛化能力,在進(jìn)行網(wǎng)絡(luò)訓(xùn)練時采用隨機多尺度訓(xùn)練,并在測試集中加入了100張3840×2160長光衛(wèi)星技術(shù)有限公司提供的高分辨遙感圖像。圖5展示了數(shù)據(jù)集的示例圖。
圖5 數(shù)據(jù)集
實驗中使用平均準(zhǔn)確率(mAP)和召回率(R)作為目標(biāo)檢測結(jié)果的評價指標(biāo)。召回率表示被正確檢測出來的目標(biāo)個數(shù)(NTP)與測試集中所有目標(biāo)的個數(shù)(包括正確檢測NTP和漏檢NFN)的比值,可以表示為
(4)
式中NTP為被正確檢測出的個數(shù),NFN為目標(biāo)被漏檢的個數(shù),NTP和NFN相加就是數(shù)據(jù)集中目標(biāo)總數(shù)。
數(shù)據(jù)集中某個類別C在一張圖像上的檢測準(zhǔn)確率PC等于在該圖像上正確檢測出的類別C的個數(shù)NTP-C與該圖片上檢測出的類別C的總數(shù)(包括正確識別NTP-C和誤識別NFP-C)的比值
(5)
類別C在所有包含該類別的圖片中的單類平均準(zhǔn)確率APC等于數(shù)據(jù)集中包含該類別的每張圖片的PC求和后與數(shù)據(jù)集中含有類別C的圖片總數(shù)N:
(6)
實際對于每一種類別,平均準(zhǔn)確率是準(zhǔn)確率隨召回率變化(PR)曲線的積分,如圖6所示為改進(jìn)網(wǎng)絡(luò)檢測飛機目標(biāo)的PR曲線,其平均檢測精度是其PR曲線的積分,即曲線與坐標(biāo)軸的面積。從圖中可以看出網(wǎng)絡(luò)檢測召回率和檢測準(zhǔn)確率分別在85%和95%以上。
圖6 PR曲線
對于包含m個類別的數(shù)據(jù)集,其平均準(zhǔn)確率mAP等于各個單類平均準(zhǔn)確率求和后除以類別數(shù)m
(7)
由于本實驗中類別數(shù)m=1,因此實際中PmAP=PAP。
實驗采用的軟硬件平臺配置如下。
CPU:Intel(R)Core(TM)i9-7900X@3.30GHz;GPU:NVIDIA Titan XP;系統(tǒng)環(huán)境:ubuntu16.04、CUDA(Compute Unified Device Architecture)10.0、cuDNN(CUDA Deep Neural Network library)7.4;深度學(xué)習(xí)框架:Tensorflow。
網(wǎng)絡(luò)訓(xùn)練時輸入尺度采用的是多尺度輸入訓(xùn)練,初始學(xué)習(xí)率為0.001,批(batch size)設(shè)置為8,epoch設(shè)置為100(每迭代5步輸出一次損失值)和200(每迭代10步輸出一次損失值)兩種情況對網(wǎng)絡(luò)進(jìn)行訓(xùn)練。如圖7所示為損失函數(shù)衰減變化情況。從圖7(a)和圖7(b)可以看出網(wǎng)絡(luò)損失函數(shù)在隨著網(wǎng)絡(luò)的迭代周期不斷下降,驗證了GIoU損失函數(shù)在改進(jìn)YOLOv3中的有效性,且網(wǎng)絡(luò)的迭代次數(shù)越多,損失函數(shù)越小。
圖7 損失函數(shù)
見表1,YOLO v3和改進(jìn)網(wǎng)絡(luò)的性能。通過對比可以發(fā)現(xiàn):使用GIoU損失函數(shù)的算法性能可以產(chǎn)生很好的檢測效果,在改進(jìn)的網(wǎng)絡(luò)檢測精度上提升了2.1%。同時,改進(jìn)的網(wǎng)絡(luò)相比于YOLO v3參數(shù)量壓縮了3.2倍,檢測速度(幀數(shù)/秒)相比于YOLO v3提升了2倍。
表1 性能對比
網(wǎng)絡(luò)測試效果如圖8、9所示,圖8為輸入尺寸1044×916遙感圖像檢測結(jié)果,圖9為輸入尺寸3840×2160遙感圖像檢測結(jié)果??梢钥闯鏊惴o論是在檢測精度、檢測速度以及泛化能力都達(dá)到了較好的效果。
圖8 圖像大小為1044×916
圖9 圖像大小為3840×2160
本文提出了一種輕量化的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),用于視頻衛(wèi)星對空中目標(biāo)實時檢測。該網(wǎng)絡(luò)基于YOLO v3進(jìn)行了輕量化的改進(jìn),利用MobileNet v3中的高效卷積模塊Bnec搭建“金字塔”型的精簡骨干網(wǎng)絡(luò)。Bneck模塊中引入的注意力機制,在一定程度上解決了高像素小目標(biāo)漏檢、錯檢以及重復(fù)檢測等問題。同時,在邊界框回歸損失函數(shù)中引入了GIoU損失函數(shù),增強了目標(biāo)定位精度。改進(jìn)的輕量化網(wǎng)絡(luò)在檢測精度上達(dá)到了88.7%,并獲得了43.7FPS的檢測速度。在后續(xù)的工作中,將進(jìn)一步研究高像素小目標(biāo)的輕量化檢測算法,并且利用改進(jìn)型的算法和星載平臺結(jié)合,實現(xiàn)衛(wèi)星在軌實時檢測。