程向紅,曹 毅,胡彥鐘,張文卓,錢榮輝
(1.東南大學(xué) 儀器科學(xué)與工程學(xué)院·南京·210096;2. 微慣性儀表與先進(jìn)導(dǎo)航技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室·南京·210096)
無(wú)人機(jī)的圖像智能感知可以增強(qiáng)其場(chǎng)景理解及提取地物信息的能力,而目標(biāo)檢測(cè)技術(shù)是無(wú)人機(jī)對(duì)影像智能化感知的關(guān)鍵技術(shù)之一[1]。無(wú)人機(jī)航拍圖像一般具有背景復(fù)雜、目標(biāo)分布密集、尺度小、同一類目標(biāo)角度差大等特點(diǎn)。傳統(tǒng)的目標(biāo)檢測(cè)算法普遍基于手動(dòng)提取特征及分類器,對(duì)于此類環(huán)境復(fù)雜、尺度多變的對(duì)象難以滿足精度要求。隨著基于卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)[2]等的深度學(xué)習(xí)算法在檢測(cè)速率和識(shí)別準(zhǔn)確度上的提升,圖像處理越來(lái)越高效。將深度學(xué)習(xí)應(yīng)用于無(wú)人機(jī)航拍圖像的目標(biāo)檢測(cè),提取深度變化特征,可以有效提高檢測(cè)速率以及檢測(cè)精度。
目前,深度學(xué)習(xí)的主流算法有基于候選區(qū)域的雙階段(Two-Stage)檢測(cè)算法,如R-CNN[3]、SPP-Net[4]、Fast R-CNN[5]、Faster R-CNN[6]、R-FCN[7]以及NAS-FPN[8],和基于回歸計(jì)算的單階段(One-Stage)檢測(cè)方法[9],如SSD(Single Shot MultiBox Detector)系列和YOLO(You Only Look Once)[10]系列。隨著深度學(xué)習(xí)技術(shù)的發(fā)展,雙階段檢測(cè)算法在檢測(cè)效果上有了很大提升,但是還不能滿足無(wú)人機(jī)執(zhí)行目標(biāo)檢測(cè)任務(wù)對(duì)于實(shí)時(shí)性的要求。2020年提出的單階段檢測(cè)方法YOLO V5,檢測(cè)速率高,可以應(yīng)用于航拍圖像的目標(biāo)檢測(cè)。該方法與其他算法相比,模型框架小,部署靈活,檢測(cè)速率快,適用于無(wú)人機(jī)智能感知領(lǐng)域[11]。
將YOLO V5目標(biāo)檢測(cè)算法應(yīng)用于無(wú)人機(jī)航拍圖像時(shí)有2個(gè)難題。一是由于無(wú)人機(jī)飛行高度較高,拍攝鏡頭焦距較短,拍攝目標(biāo)在圖像中占比小,背景環(huán)境復(fù)雜,識(shí)別難度大;二是無(wú)人機(jī)飛行作業(yè)時(shí)間短,為了提升單次作業(yè)的效率,需要簡(jiǎn)化網(wǎng)絡(luò)以提高推理速度。這要求在改進(jìn)的算法中,在保持算法精度的同時(shí),需要改進(jìn)YOLO V5的主干網(wǎng)絡(luò)構(gòu)架,對(duì)算法網(wǎng)絡(luò)模型進(jìn)行輕量化處理以提升推理速度[12]。
首先,利用無(wú)人機(jī)航拍圖像制作數(shù)據(jù)集:在對(duì)無(wú)人機(jī)航拍圖像分類、標(biāo)注后,會(huì)得到帶有類別標(biāo)簽的圖像數(shù)據(jù)集[13]用于訓(xùn)練與測(cè)試。本方案中數(shù)據(jù)集80%的圖像作為訓(xùn)練集,20%的圖像作為測(cè)試集。
在YOLO V5網(wǎng)絡(luò)的主干網(wǎng)絡(luò)部分[13],將Focus模塊用卷積層替換掉,依次分別串聯(lián)卷積層模塊(Conv+BN+LeakyRelu,CBL)、跨階段局部網(wǎng)絡(luò)(Cross Stage Partial Network,CSP)和空間金字塔池化模塊(Spatial Pyramid Pooling Layer,SPP)[14]。對(duì)于得到的數(shù)據(jù)集,通過(guò)預(yù)處理操作得到特征圖。將預(yù)處理后的特征圖輸入到改進(jìn)的YOLO V5網(wǎng)絡(luò),就可以得到不同尺度的特征圖。將不同尺度的特征圖輸入到改進(jìn)后的YOLO V5網(wǎng)絡(luò)中的Neck部分,經(jīng)過(guò)上采樣與特征融合的處理后,獲得了不同尺度的張量數(shù)據(jù)。
對(duì)于YOLO V5網(wǎng)絡(luò)的預(yù)測(cè)層,優(yōu)化后剔除大檢測(cè)頭及自適應(yīng)錨框,輸入得到的不同尺度張量數(shù)據(jù),計(jì)算得出無(wú)人機(jī)航拍目標(biāo)的檢測(cè)框。最終對(duì)得到的檢測(cè)框,從泛化交并比(Generalized Intersec-tion over Union,GIOU)、平均精度(Mean Average Precision,MAP)及推理速度3個(gè)方面進(jìn)行評(píng)價(jià),判斷該技術(shù)的可用性。所提算法框架原理圖如圖1所示。
圖1 所提算法框架原理圖Fig.1 Schematic diagram of proposed algorithm
獲取到1400張無(wú)人機(jī)航拍圖像,對(duì)其進(jìn)行標(biāo)注與分類后,將帶有類別標(biāo)簽的數(shù)據(jù)集[15]分為1120張的訓(xùn)練集和280張的測(cè)試集,圖像大小統(tǒng)一為1024×1024像素。
對(duì)于主干網(wǎng)絡(luò)的改進(jìn)為將切片層(Slice)替換為卷積層(Conv),以簡(jiǎn)化數(shù)據(jù)傳輸過(guò)程(見(jiàn)圖2)。具體的特征提取過(guò)程為,對(duì)數(shù)據(jù)集中的圖像進(jìn)行預(yù)處理,調(diào)整為608×608×3;改進(jìn)后的Focus模塊中包括1個(gè)卷積層(Conv)和1個(gè)卷積層模塊,將預(yù)處理后的圖像輸入Focus模塊,得到大小為304×304×3的特征圖;然后將得到的特征圖依次輸入到2個(gè)卷積層模塊、2個(gè)跨階段局部網(wǎng)絡(luò)模塊和1個(gè)空間金字塔池化模塊,最終得到大小為19×19×256的特征圖。
圖2 改進(jìn)YOLO V5 主干網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.2 Backbone network structure diagram of improved YOLO V5
主干網(wǎng)絡(luò)中的卷積層模塊由卷積、歸一化、激活函數(shù)環(huán)節(jié)構(gòu)成。其中使用的激活函數(shù)為L(zhǎng)eaky激活函數(shù),批量歸一化公式與Leaky激活函數(shù)如下所示
(1)
(2)
將處理后的特征圖輸入到跨階段局部網(wǎng)絡(luò)模塊優(yōu)化處理,再將處理后的特征圖輸入至空間金字塔池化模塊,通過(guò)空間金字塔池化操作,對(duì)特征圖進(jìn)行處理,以獲得多尺度的圖像特征圖輸入Neck部分。
改進(jìn)后的YOLO V5網(wǎng)絡(luò)中的Neck部分由卷積層模塊、跨階段局部網(wǎng)絡(luò)、系列特征融合模塊(Concat)和上采樣模塊構(gòu)成。其中使用了能夠增強(qiáng)學(xué)習(xí)能力的深度網(wǎng)絡(luò)設(shè)計(jì)的跨階段局部網(wǎng)絡(luò)(CSPNet)[16]結(jié)構(gòu),加強(qiáng)了網(wǎng)絡(luò)的特征融合能力。將得到的多尺度圖像特征圖輸入Neck部分,通過(guò)跨階段局部網(wǎng)絡(luò)和卷積層模塊進(jìn)一步提取特征,然后經(jīng)過(guò)空間金字塔池化等操作,分3個(gè)尺度對(duì)特征圖進(jìn)行處理,最終獲得3個(gè)不同尺度的張量數(shù)據(jù),傳遞到預(yù)測(cè)層進(jìn)行檢測(cè)。
YOLO V5網(wǎng)絡(luò)中的預(yù)測(cè)層部分(見(jiàn)圖3)由卷積層和3個(gè)大小分別為76×76×255、38×38×255、19×19×255的檢測(cè)頭組成。在改進(jìn)過(guò)程中,針對(duì)無(wú)人機(jī)航拍圖像中目標(biāo)分布雜散、占像素小等問(wèn)題,優(yōu)化剔除了針對(duì)大目標(biāo)的76×76×255檢測(cè)頭。在網(wǎng)絡(luò)訓(xùn)練中,網(wǎng)絡(luò)在初始錨框的基礎(chǔ)上輸出預(yù)測(cè)框,進(jìn)而和真實(shí)框(Groundtruth)進(jìn)行比對(duì),計(jì)算兩者差距,再反向更新,迭代網(wǎng)絡(luò)參數(shù)。最后,基于損失函數(shù)和反向傳播對(duì)梯度輸出無(wú)人機(jī)航拍目標(biāo)的檢測(cè)框。對(duì)于該自適應(yīng)調(diào)整錨框(anchhor box),將原始的錨框調(diào)整為[10,14,23,27,37,58]與[81,82,135,169,344,319]。
圖3 改進(jìn)YOLO V5的預(yù)測(cè)層結(jié)構(gòu)圖Fig.3 Structure diagram of prediction layer of improved YOLO V5
對(duì)于輸出結(jié)果,通過(guò)泛化交并比損失值(L(GIoU))、平均精度和推理速度3個(gè)參數(shù)進(jìn)行評(píng)價(jià),解釋如下:
泛化交并比損失函數(shù)為回歸目標(biāo)框損失函數(shù)。泛化交并比作為評(píng)價(jià)指標(biāo)時(shí)具有非負(fù)性、對(duì)稱性以及尺度不變性。泛化交并比損失的值越小,目標(biāo)框輸出精度越高。其計(jì)算公式為
(3)
(4)
L(GIoU)=1-GIoU
(5)
式中,IoU表示交并比的值,在無(wú)人機(jī)航拍圖像識(shí)別中,對(duì)于2個(gè)無(wú)人機(jī)航拍目標(biāo)的檢測(cè)框A、B,找到一個(gè)能夠同時(shí)包含的最小方框C,然后計(jì)算C/(A∪B)的面積與C的面積的比值,再用A、B的IoU值減去這個(gè)比值,最終得到的就是泛化交并比的值GIoU[17],損失函數(shù)取1減去GIoU的值。
平均精度是衡量多標(biāo)簽圖像檢測(cè)精度的一個(gè)指標(biāo)。在多標(biāo)簽圖像檢測(cè)中,同一圖像的標(biāo)簽往往不止一個(gè),采用的計(jì)算精度方法和信息檢索中類似,稱為平均精度。目標(biāo)檢測(cè)的精度越高,平均精度值也就越大。平均精度是通過(guò)繪制PR曲線計(jì)算得到,即以準(zhǔn)確率(precision)和召回率(recall)作為縱、橫軸坐標(biāo)的二維曲線。
推理速度定義為目標(biāo)檢測(cè)過(guò)程中1s可檢測(cè)的圖像數(shù)目。目標(biāo)檢測(cè)網(wǎng)絡(luò)的實(shí)時(shí)性越好,推理速度越快。
具體實(shí)驗(yàn)環(huán)境配置如表1所示。
表1 實(shí)驗(yàn)環(huán)境
使用DOTA數(shù)據(jù)集進(jìn)行仿真。DOTA數(shù)據(jù)集一共包含了2806張無(wú)人機(jī)航拍圖像,對(duì)象類別包括:飛機(jī)、港口、船舶、儲(chǔ)罐、地面場(chǎng)地、直升機(jī)、棒球場(chǎng)、網(wǎng)球場(chǎng)、橋梁、小型車輛、大型車輛、環(huán)形交叉路口、籃球場(chǎng)、足球場(chǎng)、籃球場(chǎng)和集裝箱起重機(jī)。本次實(shí)驗(yàn)選擇了其中1400張圖片,對(duì)圖像進(jìn)行分類、標(biāo)注后,用其中1120張作為訓(xùn)練集,280張作為測(cè)試集。訓(xùn)練參數(shù)設(shè)置:訓(xùn)練輪數(shù)為300輪,每次投放16張圖片,初始學(xué)習(xí)率為0.001。圖4所示為數(shù)據(jù)集中被檢測(cè)目標(biāo)尺寸的散點(diǎn)熱力圖,其橫軸、縱軸分別為寬度比例值和高度比例值,目標(biāo)尺寸越集中,散點(diǎn)顏色越深。從圖4可以看出,無(wú)人機(jī)航拍數(shù)據(jù)集中被檢測(cè)目標(biāo)大多為小目標(biāo)。
圖4 被檢測(cè)目標(biāo)的尺寸散點(diǎn)熱力圖Fig.4 Size scatter thermal diagram of the detected target
基于改進(jìn)YOLO V5的無(wú)人機(jī)航拍圖像目標(biāo)檢測(cè)結(jié)果由泛化交并比、平均精度、推理速度3個(gè)參數(shù)進(jìn)行評(píng)價(jià)。泛化交并比值越小,說(shuō)明目標(biāo)框輸出精度越高。平均精度值越大,說(shuō)明目標(biāo)檢測(cè)精度越高。推理速度越快,說(shuō)明目標(biāo)檢測(cè)網(wǎng)絡(luò)的實(shí)時(shí)性越好。圖5所示為改進(jìn)的YOLO V5的泛化交并比參數(shù)曲線,其橫軸為訓(xùn)練輪數(shù),縱軸為泛化交并比值。在迭代約300次后,改進(jìn)的YOLO V5網(wǎng)絡(luò)比未改進(jìn)的YOLO V5的泛化交并比值小,說(shuō)明改進(jìn)后的YOLO V5網(wǎng)絡(luò)目標(biāo)框輸出精度更高,如圖6所示。圖8所示為改進(jìn)YOLO V5網(wǎng)絡(luò)的平均精度參數(shù)曲線,其橫軸為訓(xùn)練輪數(shù),縱軸為平均精度。在迭代約300次后,改進(jìn)的YOLO V5網(wǎng)絡(luò)的平均精度值為77,而未改進(jìn)的YOLO V5網(wǎng)絡(luò)的平均精度值為74.6,如圖7所示。改進(jìn)后的YOLO V5網(wǎng)絡(luò)目標(biāo)檢測(cè)精度有小幅度提升。在推理速度方面,改進(jìn)的YOLO V5網(wǎng)絡(luò)1s可以檢測(cè)143張圖片,未改進(jìn)的YOLO V5網(wǎng)絡(luò)1s僅可以檢測(cè)100張圖片,改進(jìn)的YOLO V5算法的檢測(cè)速度提高了31%,具有更好的實(shí)時(shí)性。
圖5 改進(jìn)前YOLO V5的L(GIoU)參數(shù)曲線Fig.5 L(GIoU)parameter curve of YOLO V5 before improvement
圖6 改進(jìn)后YOLO V5的L(GIoU)參數(shù)曲線Fig.6 L(GIoU)parameter curve of YOLO V5 after improvement
圖7 改進(jìn)前YOLO V5的MAP參數(shù)曲線Fig.7 MAP parameter curve of YOLO V5 before improvement
圖8 改進(jìn)后YOLO V5的MAP參數(shù)曲線Fig.8 MAP parameter curve of YOLO V5 after improvement
由以上參數(shù)可以看出,改進(jìn)后的YOLO V5網(wǎng)絡(luò)提升了識(shí)別的準(zhǔn)確性和特征提取的性能。本方法簡(jiǎn)化YOLO V5網(wǎng)絡(luò)模型的移植過(guò)程,進(jìn)一步提高了YOLO V5網(wǎng)絡(luò)模型的推理速度,可以實(shí)現(xiàn)無(wú)人機(jī)航拍圖像的快速、準(zhǔn)確檢測(cè)目標(biāo)。
本文針對(duì)無(wú)人機(jī)航拍圖像識(shí)別中存在的問(wèn)題以及航拍圖像的特點(diǎn),提出了一種改進(jìn)YOLO V5網(wǎng)絡(luò)提高識(shí)別速率與準(zhǔn)確度的方法。仿真實(shí)驗(yàn)?zāi)M結(jié)果顯示,無(wú)人機(jī)對(duì)小目標(biāo)的檢測(cè)能力得到提升,能夠滿足無(wú)人機(jī)在識(shí)別作業(yè)時(shí)對(duì)于準(zhǔn)確性與實(shí)時(shí)性的要求。在訓(xùn)練30輪后,MAP收斂于一個(gè)較理想的結(jié)果。但無(wú)人機(jī)航拍環(huán)境復(fù)雜,如何提升算法的環(huán)境魯棒性及無(wú)人機(jī)的智能感知能力還需進(jìn)一步研究。