













文章編號:1671-3559(2024)04-0445-11DOI:10.13349/j.cnki.jdxbn.20240605.002
摘要: 針對無人機(jī)因目標(biāo)較小而難以檢測、 檢測速度慢、 難于跟蹤等問題,提出一種基于目標(biāo)檢測YOLOv5s算法和目標(biāo)跟蹤DeepSORT算法的無人機(jī)檢測跟蹤方法; 采用自采數(shù)據(jù)集和公開數(shù)據(jù)集構(gòu)建無人機(jī)檢測數(shù)據(jù)集,使用針對小目標(biāo)的數(shù)據(jù)增強(qiáng)方法以擴(kuò)充數(shù)據(jù)集多樣性; 選擇合適的YOLOv5算法模型實(shí)現(xiàn)無人機(jī)目標(biāo)的精準(zhǔn)、 快速檢測,引入基于批標(biāo)準(zhǔn)化層的模型剪枝方法進(jìn)一步提高模型檢測速度; 利用DeepSORT算法實(shí)現(xiàn)無人機(jī)目標(biāo)的實(shí)時追蹤;通過對比YOLOv3、 YOLOv4、 Fast R-CNN以及改進(jìn)前的YOLOv5算法,驗(yàn)證了本文方法在無人機(jī)檢測方面的性能。結(jié)果表明: 提出的無人機(jī)檢測跟蹤方法的全類平均精度達(dá)到0.947,每秒浮點(diǎn)運(yùn)算次數(shù)達(dá)到2.93×109,在無人機(jī)檢測的精度和速度方面均具有優(yōu)勢。
關(guān)鍵詞: 計算機(jī)視覺技術(shù); 無人機(jī)檢測; 目標(biāo)跟蹤; 模型剪枝
中圖分類號: TP391.4
文獻(xiàn)標(biāo)志碼: A
開放科學(xué)識別碼(OSID碼):
Unmanned Aerial Vehicle Detection and Tracking Method Based on
Computer Vision Technology
LIU Xinfenga,b, CHEN Mengyaa, LI Chenglonga, CHEN Guanzhonga, ZHANG Xiaoa,c
(a. School of Computer Science and Technology, b. Industry Big Data Research Center,
c. Editorial Department, Shandong Jianzhu University, Jinan 250101, Shandong, China)
Abstract: To solve the problems of difficult detection, slow detection speed and difficult tracking for unmanned aerial vehicles (UAVs) due to small target, a UAVs detection and tracking method based on YOLOv5s algorithm and DeepSORT algorithm was proposed. Self-collected data set and open data set were used to construct UAVs detection data set, and data enhancement method for small targets was used to expand the diversity of data set. The appropriate YOLOv5 algorithm model was selected to achieve accurate and fast detection of UAVs targets, and the model pruning method based on batch normalization layer was introduced to further improve the model detection speed. DeepSORT algorithm was applied to realize the real-time tracking of UAVs targets. By comparing YOLOv3 YOLOv4, Fast R-CNN, and the unimproved YOLOv5 algorithm have verified the performance of the proposed method in drone detection. The results show that the whole class average accuracy of the proposed UAVs detection and tracking method reaches 0.947, and the number of floating-point operations reaches 2.93×109 times per second, which has the advantages in detection accuracy and detection speed of UAVs detection.
Keywords: computer vision technology; unmanned aerial vehicle detection; target tracking; model pruning
收稿日期: 2023-04-20""""""""" 網(wǎng)絡(luò)首發(fā)時間:2024-06-05T18:02:18
基金項(xiàng)目: 國家自然科學(xué)基金項(xiàng)目(51975332);山東省重點(diǎn)研發(fā)計劃 (重大科技創(chuàng)新工程) 項(xiàng)目(2021CXGC011204) ;山東省自然科學(xué)
基金(ZR2020QF029);山東建筑大學(xué)博士基金資助項(xiàng)目(X19023Z0101,XNBS20117)
第一作者簡介: 劉新鋒(1977—),男,山東聊城人。 副教授, 博士, 研究方向?yàn)楣I(yè)互聯(lián)網(wǎng)領(lǐng)域大數(shù)據(jù)系統(tǒng)建設(shè)及智慧運(yùn)維、 流程挖掘、
預(yù)測性維護(hù)等。 E-mail: liuxinfeng18@sdjzu.edu.cn。
通信作者簡介: 張曉(1983—),女,山東新泰人。編輯,博士,研究方向?yàn)橛嬎銠C(jī)應(yīng)用技術(shù)。E-mail: zhangxiao19@sdjzu.edu.cn。
網(wǎng)絡(luò)首發(fā)地址: https://link.cnki.net/urlid/37.1378.N.20240605.1508.004
近年來,無人機(jī)在航拍、 環(huán)境監(jiān)測[1]、 農(nóng)業(yè)[2]、 林業(yè)[3]、 應(yīng)急救援[4]等行業(yè)得到了廣泛應(yīng)用。《通用航空產(chǎn)業(yè)發(fā)展白皮書(2022)》顯示,預(yù)計在2025年全球民用無人機(jī)市場規(guī)模將達(dá)到5 000億元。與此同時,利用無人機(jī)進(jìn)行恐怖襲擊[5]、 惡意偵察監(jiān)視、 機(jī)場黑飛事件[6]時有發(fā)生。如果無人機(jī)裝載危險物品進(jìn)入軍事重地、 機(jī)場、 重要活動等場地,將對國家的國防和公共安全構(gòu)成嚴(yán)重的威脅[7],因此迫切需要一種可靠的無人機(jī)檢測方法以防范可能出現(xiàn)的的風(fēng)險。
目前,國內(nèi)外普遍采用的無人機(jī)檢測方法主要有雷達(dá)、 射頻、 音頻及視覺探測4種[8]。其中,雷達(dá)、 射頻、 音頻探測方法的檢測受到環(huán)境的限制,且雷達(dá)、 射頻探測的成本較高,難以推廣應(yīng)用。視覺探測方法具有成本低、 技術(shù)成熟且靈活性好等優(yōu)點(diǎn),在無人機(jī)檢測方面具有很好的發(fā)展前景[9]。由于無人機(jī)飛行軌跡低,體積小,且飛行過程中場景復(fù)雜,存在遮擋物等,因此視覺檢測也存在一定的難度[10]。此外,無人機(jī)檢測對檢測速度要求較高。
在無人機(jī)視覺檢測方面,Martínez等[11]在2011年率先提出了一種基于外部攝像機(jī)系統(tǒng)實(shí)現(xiàn)無人機(jī)檢測的方法,能夠適應(yīng)不同環(huán)境的檢測,但觀測點(diǎn)固定,對無人機(jī)的監(jiān)視范圍有限。Rozantsev等[12]在此基礎(chǔ)上選擇移動攝像機(jī)拍攝,以物體為中心實(shí)現(xiàn)了運(yùn)動補(bǔ)償,使用卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)和增強(qiáng)樹方法檢測復(fù)雜戶外環(huán)境中的無人機(jī),物體和背景的外觀變化對檢測結(jié)果的影響較小,但采用的深層次卷積神經(jīng)網(wǎng)絡(luò)在訓(xùn)練中易產(chǎn)生退化現(xiàn)象。2016年,Redmon等[13]首次提出YOLO目標(biāo)檢測算法,在檢測實(shí)時性方面具有很大的優(yōu)勢。Hassan等[14] 首先聚焦于YOLO系列算法, 創(chuàng)建了自己的數(shù)據(jù)集, 并測試YOLOv2、 YOLOv3算法在無人機(jī)檢測方法上的性能, 但這些算法存在定位不準(zhǔn)的問題。李斌等[15]在YOLOv3算法基礎(chǔ)上, 針對無人機(jī)定位不準(zhǔn)和樣本不平衡的問題改進(jìn)損失函數(shù), 能在一定程度上解決環(huán)境干擾問題, 但檢測實(shí)時性較差。楊銳等[16]提出一種改進(jìn)的YOLOv4算法的輕量化版本以提升檢測速度, 但不適合于運(yùn)動中的無人機(jī)目標(biāo), 且檢測效果仍有待提升。
目前目標(biāo)檢測算法主要分為兩階段目標(biāo)檢測算法和單階段目標(biāo)檢測算法。兩階段目標(biāo)檢測算法在檢測前要先獲得目標(biāo)候選區(qū)域, 再通過候選區(qū)域預(yù)測位置和類別[17], 具有檢測精度較高但速度較慢的特點(diǎn)。 單階段目標(biāo)檢測算法直接基于整幅圖像預(yù)測目標(biāo)的位置和類別[18], 檢測速度更快,但精度稍差。 作為單階段目標(biāo)檢測算法之一的YOLO系列算法不斷發(fā)展, 性能逐步提升, 其中YOLOv5算法提供多尺度目標(biāo)檢測和多種數(shù)據(jù)預(yù)處理方式[19], 對于無人機(jī)等小目標(biāo)的檢測效果較好。
為了實(shí)現(xiàn)快速準(zhǔn)確的無人機(jī)目標(biāo)檢測, 本文中基于計算機(jī)視覺技術(shù), 采用YOLOv5算法和具有深度關(guān)聯(lián)度量的簡易在線實(shí)時跟蹤(simple online and realtime tracking with a deep association metric, DeepSORT)算法進(jìn)行無人機(jī)檢測, 構(gòu)建無人機(jī)實(shí)時檢測與跟蹤模型。模型基于YOLOv5算法實(shí)現(xiàn)實(shí)時準(zhǔn)確的無人機(jī)目標(biāo)檢測, 運(yùn)用基于批標(biāo)準(zhǔn)化(batch normalization, BN)層的模型剪枝方法, 以犧牲較小精度的方式大幅提高模型檢測速度, 同時加入DeepSORT算法實(shí)現(xiàn)對無人機(jī)目標(biāo)的實(shí)時跟蹤, 避免運(yùn)動中的無人機(jī)目標(biāo)在出現(xiàn)遮擋、 重疊或不清晰等狀況時出現(xiàn)的錯檢、 漏檢。 在數(shù)據(jù)集方面, 選用自采數(shù)據(jù)集和公開數(shù)據(jù)集創(chuàng)建無人機(jī)數(shù)據(jù)集, 加入一種針對小目標(biāo)檢測的數(shù)據(jù)增強(qiáng)方法提升數(shù)據(jù)多樣性。 為了評估所提算法的精度和速度, 構(gòu)建了包含超過20 000幅圖像的無人機(jī)數(shù)據(jù)集, 其中絕大部分圖像中的無人機(jī)目標(biāo)面積在整幅圖像中的占比小于0.024%。 最后通過實(shí)驗(yàn)驗(yàn)證該方法的有效性。
濟(jì)南大學(xué)學(xué)報(自然科學(xué)版)第38卷
1" YOLOv5算法和DeepSORT算法
1.1" YOLOv5算法
YOLOv5算法是YOLO系列算法的第5個版本,檢測精度和速度顯著提升。YOLOv5算法采用了輕量化的設(shè)計,在模型結(jié)構(gòu)、 檢測精度、 推理速度和檢測效果等方面都比YOLOv4算法有所改進(jìn), 且靈活性更好, 在模型的快速部署上具有極強(qiáng)優(yōu)勢。YOLOv5算法目前主要包括4個版本,即YOLOv5s、 YOLOv5m、 YOLOv5l、 YOLOv5x, 由于它們的網(wǎng)絡(luò)寬度、 深度各不相同, 因此檢測精度和速度有一定的差別。
YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)主要包括輸入端、主干網(wǎng)絡(luò)、多尺度特征融合模塊和輸出端等部分。
1)輸入端。 輸入端加入了Mosaic數(shù)據(jù)增強(qiáng)、 自適應(yīng)錨框計算、 自適應(yīng)圖片縮放等多種數(shù)據(jù)預(yù)處理方法。 Mosaic數(shù)據(jù)增強(qiáng)利用隨機(jī)縮放、 隨機(jī)裁剪、 隨機(jī)排布的方式將4幅圖像拼接, 豐富了待檢測圖像的背景信息, 并解決了小目標(biāo)數(shù)量少、 分布不均所造成的學(xué)習(xí)困難問題。 自適應(yīng)錨框計算可以根據(jù)不同的數(shù)據(jù)集計算出最佳錨框值。 自適應(yīng)圖片縮放盡可能地減少了統(tǒng)一圖像尺寸帶來的信息冗余。
2)主干網(wǎng)絡(luò)。主干網(wǎng)絡(luò)主要由聚焦(focus)結(jié)構(gòu)、 瓶頸層跨階段局部網(wǎng)絡(luò)(BottleneckCSP)結(jié)構(gòu)和空間金字塔池化(spatial pyramid pooling,SPP)結(jié)構(gòu)組成。聚焦結(jié)構(gòu)把高分辨率的圖片切成多個低分辨率的圖片,運(yùn)用間隔采樣加拼接的方式,使檢測速度大幅提升;BottleneckCSP由瓶頸(bottleneck)層和跨階段網(wǎng)絡(luò)(cross stage partial,CSP)兩部分構(gòu)成,其中“Bottleneck”部分可以靈活調(diào)整通道數(shù)量,提高網(wǎng)絡(luò)復(fù)雜性,CSP可以在減少計算量的同時增強(qiáng)網(wǎng)絡(luò)的學(xué)習(xí)能力;SPP采用統(tǒng)一步長但不同尺寸的卷積核組合,實(shí)現(xiàn)了特征融合。
3)多尺度特征融合模塊。多尺度特征融合模塊由特征金字塔(feature pyramid networks,F(xiàn)PN)結(jié)構(gòu)和路徑聚合結(jié)構(gòu)(path aggregation network,PAN)組成。FPN 自上而下傳遞語義信息,而PAN 自下而上傳遞定位信息,實(shí)現(xiàn)了網(wǎng)絡(luò)上下信息流的融合,提高了網(wǎng)絡(luò)檢測能力。
4)輸出端。輸出端確定最終預(yù)測框。使用廣義交并比(generalized intersection over union,GIoU)損失作為損失函數(shù),可以區(qū)分出交并比(intersection over union,IoU)相同時預(yù)測框與真實(shí)框相交情況的不同, 并且使用非極大值抑制操作, 去掉多余的預(yù)測框。
在YOLOv5算法檢測時,將輸入圖像分成M×N(長度、 寬度方向分別為M、 N個格子),每個格子只負(fù)責(zé)檢測中心落在該方格的目標(biāo)。每個格子預(yù)測B個候選框,而每個候選框預(yù)測信息包括位置信息x、 y、 w、 h和Cf(O),其中x、 y為預(yù)測框中心坐標(biāo), w、 h分別為預(yù)測框?qū)挾取?高度, Cf(O)為候選框存在目標(biāo)的置信度,表達(dá)式為
Cf(O)=p(O)×RIoU ,(1)
式中: p(O)為物體存在的概率,若目標(biāo)落在框中,則p(O)取1,否則取0; RIoU為算法生成的候選區(qū)與原標(biāo)記框的交并比,即2個框交集與并集的比值。
此外,若檢測類別數(shù)為C,每個候選框還需預(yù)測C個類別的概率。本文中只檢測無人機(jī)一類,候選框中的目標(biāo)物是無人機(jī)目標(biāo)的條件概率為p(D│O),則無人機(jī)類別的置信度為
Cf(D)=p(DO)×p(O)×RIoU 。(2)
每個候選框預(yù)測值包括(x, y, w, h, Cf(O), Cf(D)), 共有M×N×B個候選框。這種檢測方法拋棄了兩階段目標(biāo)檢測算法中預(yù)先獲得目標(biāo)候選區(qū)域的步驟,能夠節(jié)省大量計算,提高檢測速度。
1.2" DeepSORT算法
目標(biāo)跟蹤算法主要利用圖像在時間、 空間上的相關(guān)性,運(yùn)用上下文信息預(yù)測當(dāng)前目標(biāo)的位置。根據(jù)追蹤任務(wù)和應(yīng)用場景的不同,又可將目標(biāo)跟蹤算法分為單目標(biāo)追蹤(single-object track,SOT)算法和多目標(biāo)追蹤(multi-object track,MOT)算法[20]。基于匈牙利算法的簡易在線實(shí)時跟蹤(simple online and realtime tracking,SORT)算法、 DeepSORT算法等,是目前應(yīng)用較為廣泛的多目標(biāo)跟蹤算法。SORT算法采用卡爾曼濾波和匈牙利算法,可以有效地關(guān)聯(lián)目標(biāo),在實(shí)時性方面性能優(yōu)越。DeepSORT算法在SORT 算法的基礎(chǔ)上,增加了深度關(guān)聯(lián)度量鑒別網(wǎng)絡(luò),并加入外觀圖像信息解決對被遮擋時間較長的目標(biāo)的跟蹤問題,進(jìn)一步提高了多目標(biāo)的跟蹤效果。DeepSORT算法采用卡爾曼濾波算法逐幀處理軌跡信息,使用匈牙利算法對目標(biāo)進(jìn)行級聯(lián)匹配或IoU匹配,并不斷更新卡爾曼濾波器以進(jìn)行下一步更精準(zhǔn)的軌跡預(yù)判。
DeepSORT算法定義在八維狀態(tài)空間(u, v, r, m,u·,v·,r·,m·),其中(u, v)為檢測框中心坐標(biāo),r為檢測框長寬比,m為檢測框高度,(u·,v·,r·,m·)為前4項(xiàng)的導(dǎo)數(shù),即目標(biāo)移動速度。對目標(biāo)進(jìn)行運(yùn)動信息和外觀信息的匹配,利用馬氏距離計算預(yù)測框和檢測框之間的運(yùn)動信息匹配度,計算公式為
d(1)(i, j)=(dj-yi )TS-1i(dj-yi ) ,(3)
式中: d(1)(i, j)為第j個檢測框與第i個預(yù)測框的運(yùn)動信息匹配度; dj為第j個檢測框的位置信息; yi為第i個預(yù)測框的位置預(yù)測; Si為檢測位置與預(yù)測位置的協(xié)方差矩陣。
利用余弦距離計算預(yù)測框和檢測框之間的外觀信息匹配度,計算公式為
d(2)(i, j)=min{1-rTj r(i)k}," r(i)k∈Ri ,(4)
式中: d(2)(i, j)為第j個檢測框與第i個預(yù)測框的最小余弦距離; rj為第j個檢測框的外觀描述符,其中rj=1; Ri={r(i)k}Lkk=1為第i個軌跡成功匹配后前Lk個外觀描述的集合。
最終度量為馬氏距離和余弦距離度量的加權(quán),
ci, j=λd(1)(i, j)+(1-λ)d(2)(i, j) ,(5)
式中超參數(shù)λ控制運(yùn)動信息和外觀信息2種匹配方式的占比。
DeepSORT算法實(shí)現(xiàn)了對多個目標(biāo)的有效實(shí)時跟蹤,在跟蹤過程中可以自動識別目標(biāo)。該算法中還加入了重識別算法,避免了同一個目標(biāo)被識別成不同個體,同時對運(yùn)行過程中存在部分被遮擋的目標(biāo)跟蹤效果較好。
2" 無人機(jī)檢測與跟蹤模型
2.1" 技術(shù)路線
利用深度學(xué)習(xí)方法,通過視頻監(jiān)控實(shí)時檢測和跟蹤出現(xiàn)在固定場景下的無人機(jī)目標(biāo)的技術(shù)路線如圖1所示。該技術(shù)路線主要包括以下5個部分:
DeepSORT算法—具有深度關(guān)聯(lián)度量的
簡易在線實(shí)時跟蹤算法。
1)數(shù)據(jù)集構(gòu)建。選用自采數(shù)據(jù)集和公開的飛行器檢測數(shù)據(jù)集Det-Fly[21]相結(jié)合的方式構(gòu)建無人機(jī)檢測數(shù)據(jù)集,選用一種針對小目標(biāo)的數(shù)據(jù)增強(qiáng)方法擴(kuò)充數(shù)據(jù)集多樣性。
2)基于YOLOv5算法的目標(biāo)檢測模型實(shí)現(xiàn)。選用YOLOv5算法實(shí)現(xiàn)無人機(jī)檢測模型的構(gòu)建,測試YOLOv5算法的4個版本以及圖像分辨率等參數(shù),最終確定模型的最優(yōu)參數(shù)。
3)基于BN層的模型剪枝方法。在目標(biāo)檢測模型基礎(chǔ)上加入基于BN層的剪枝方法,以犧牲少部分精度為代價獲得檢測速度的大幅提升。
4)目標(biāo)跟蹤模型實(shí)現(xiàn)。選用多目標(biāo)實(shí)時跟蹤的DeepSORT算法實(shí)現(xiàn)對無人機(jī)目標(biāo)的實(shí)時跟蹤,在優(yōu)化實(shí)時性的同時解決了目標(biāo)因遮擋、 重復(fù)、 不清晰帶來的錯檢、 漏檢問題。
5)對比驗(yàn)證。通過與其他算法對比,驗(yàn)證本文方法的有效性。
2.2" 數(shù)據(jù)集構(gòu)建與數(shù)據(jù)增強(qiáng)
2.2.1" 數(shù)據(jù)集構(gòu)建
數(shù)據(jù)集主要分為自采數(shù)據(jù)集和公開數(shù)據(jù)集。公開數(shù)據(jù)集的加入彌補(bǔ)了自采數(shù)據(jù)集采集機(jī)型、 角度的限制問題,同時自采數(shù)據(jù)集也是對公開數(shù)據(jù)集的一種擴(kuò)充。
1)自采數(shù)據(jù)集。自采圖像采用光電轉(zhuǎn)臺設(shè)備進(jìn)行拍攝,于某校園內(nèi)外多處場景、 多種時間段取景,包含晴天和陰天等多種不同氣象條件,并在期間不斷調(diào)整拍攝角度和放大倍數(shù),滿足無人機(jī)數(shù)據(jù)集所需的背景、 光照條件、 尺度與視角多樣性。由于使用的無人機(jī)設(shè)備在大風(fēng)、 雨天等惡劣天氣下難以操作,因此未進(jìn)行此類天氣情況下的數(shù)據(jù)采集。采集后的圖像首先手動篩選,剔除部分拍攝模糊、遮擋嚴(yán)重的無人機(jī)圖像,對剩余圖像采用Darklabel多目標(biāo)跟蹤標(biāo)注工具標(biāo)注。總計拍攝訓(xùn)練圖像7 000余幅,不同場景下的視頻78段,平均時長為1 min。所采視頻主要用于DeepSORT算法的跟蹤測試。所采集的圖像分辨率均為1 920像素×1 080像素。自采數(shù)據(jù)集主要背景類型及數(shù)量見表1。
2)公開數(shù)據(jù)集。由于自采條件受限,無人機(jī)型號多樣性難以滿足,在背景、 光照條件、 角度多樣性方面也存在不足,例如在角度方面,自采數(shù)據(jù)集多為自下而上的拍攝角度,難以實(shí)現(xiàn)自上而下拍攝,而實(shí)際應(yīng)用中可能出現(xiàn)無人機(jī)在監(jiān)測位置下方的情況,因此,需增加其他數(shù)據(jù)進(jìn)行補(bǔ)充。公開數(shù)據(jù)集Det-Fly擁有更大的數(shù)據(jù)規(guī)模、更豐富的環(huán)境信息、更廣泛的光照條件、更全面的視角和更貼近實(shí)際的無人機(jī)探測場景,選擇其中包含無人機(jī)的13 000余幅圖像。
將上述2種數(shù)據(jù)集共計20 000余幅圖像以6∶2∶2的比例劃分訓(xùn)練集、 驗(yàn)證集、 測試集,得到訓(xùn)練集圖像12 000余幅、 驗(yàn)證集圖像4 000余幅、 測試集圖像4 000余幅。數(shù)據(jù)集部分樣本如圖2所示。
2.2.2" 針對小目標(biāo)的數(shù)據(jù)增強(qiáng)方法
由于無人機(jī)設(shè)備數(shù)量限制,數(shù)據(jù)集每幅圖像中只有1架無人機(jī),因此,為了進(jìn)一步擴(kuò)充無人機(jī)位置、 背景多樣性,同時提升數(shù)據(jù)集每幅圖像中的無人機(jī)樣本數(shù)量,本文中引入Kisantal等[22]提出的針對小目標(biāo)檢測的數(shù)據(jù)增強(qiáng)方法,通過在圖像中多次復(fù)制、 粘貼無人機(jī)目標(biāo)以達(dá)到數(shù)據(jù)擴(kuò)充的目的。
因?yàn)閿?shù)據(jù)增強(qiáng)的目的是提高模型檢測精度,所以本文中只對訓(xùn)練集12 000余幅圖像進(jìn)行數(shù)據(jù)增強(qiáng)處理。數(shù)據(jù)增強(qiáng)后每幅訓(xùn)練集圖像包含6個無人機(jī)目標(biāo),訓(xùn)練集總數(shù)保持不變。為了保證每個訓(xùn)練目標(biāo)的清晰完整,粘貼無人機(jī)目標(biāo)時需保證所有目標(biāo)互不重疊。具體操作步驟如下:
1)對訓(xùn)練集中的所有無人機(jī)目標(biāo),按照標(biāo)注文件給定的位置截取,得到不包含背景信息的無人機(jī)目標(biāo)圖像集。
2)由于目標(biāo)小的無人機(jī)更難檢測,因此將構(gòu)建的無人機(jī)目標(biāo)圖像集按照無人機(jī)目標(biāo)像素分為大、 中、 小3類。分類標(biāo)準(zhǔn)為無人機(jī)目標(biāo)在圖像中的面積,面積小于256像素的為小無人機(jī)圖像,面積為256~512像素的為中無人機(jī)圖像,面積大于512像素的為大無人機(jī)圖像。最終構(gòu)建的無人機(jī)目標(biāo)圖像集的各個分類圖像幅數(shù)相差不大。
3)從創(chuàng)建的無人機(jī)目標(biāo)圖像集中隨機(jī)選取5幅無人機(jī)目標(biāo),其中包含小無人機(jī)圖像3幅,中無人機(jī)圖像和大無人機(jī)圖像各1幅,粘貼到訓(xùn)練集圖片中的任意位置。粘貼時保證所有無人機(jī)目標(biāo)互不重疊,并采用多種核尺寸的高斯濾波器對粘貼目標(biāo)進(jìn)行邊緣平滑處理。
無人機(jī)樣本數(shù)據(jù)增強(qiáng)效果示例如圖3所示。
2.3" 基于YOLOv5算法的目標(biāo)檢測模型
2.3.1" 評價指標(biāo)
1)全類平均精度。在目標(biāo)檢測算法的性能評價中,一般將目標(biāo)作為正樣本,其余類作為負(fù)樣本,本文中以無人機(jī)為正樣本,非無人機(jī)為負(fù)樣本,真陽類(true positive,TP)表示實(shí)際屬于正樣本也被預(yù)測成正樣本的樣本數(shù)STP,假陽類(1 positive,F(xiàn)P)表示實(shí)際屬于負(fù)樣本但被預(yù)測成正樣本的樣本數(shù)SFP,則精確度P為
P=STPSTP+SFP 。(6)
P表示檢測出的樣本中有多大比例的目標(biāo)是正樣本,即檢測出所有的無人機(jī)目標(biāo)中有多少是真正的無人機(jī)。
平均精度(average precision,AP)即精確度的平均值,代表的是單一種類的精確度,計算公式為
PAP=∫10P(r)dr ,(7)
式中P(r)為第r個類的精確度。
全類平均精度(mean average precision,mAP)是將所有類別檢測的平均精度進(jìn)行綜合加權(quán)平均而得到的,表示模型對所有類別的檢測能力,是衡量目標(biāo)檢測算法的性能的重要指標(biāo)。
2)浮點(diǎn)運(yùn)算次數(shù)。浮點(diǎn)運(yùn)算次數(shù)(floating point operations,F(xiàn)LOPs)可理解為計算量,常用來衡量算法或模型的復(fù)雜度。假設(shè)輸入特征圖大小為Win×Hin×Gin(Win、 Hin、 Gin分別為輸入特征圖的寬度、 高度和深度),輸出特征圖大小為Wout×Hout×Gout(Wout 、Hout、 Gout分別為輸出特征圖的寬度、 高度和深度),卷積核大小為dk×dk(dk為卷積核長度),則標(biāo)準(zhǔn)卷積FLOPs值為dk×dk×Gin×Wout×Hout×Gout。
由于模型的速度與計算量FLOPs成正比,因此可用FLOPs作為模型檢測速度的衡量標(biāo)準(zhǔn)。本文中FLOPs值代表的是模型檢測一幅圖像所產(chǎn)生的計算量。
2.3.2" 目標(biāo)檢測模型實(shí)驗(yàn)設(shè)計與參數(shù)調(diào)優(yōu)
本文方法所需實(shí)驗(yàn)配置見表2。
YOLOv5 算法根據(jù)模型規(guī)模分為4個版本,分別為YOLOv5s、 YOLOv5m、 YOLOv5l和YOLOv5x,各版本的網(wǎng)絡(luò)深度與寬度呈遞增趨勢。本文中測試了4種版本模型,得到最適合無人機(jī)檢測的模型。初始設(shè)置圖像輸入分辨率為640像素×640像素,迭代次數(shù)(epoch)為300,批次大小(batch size)為16幅。測試上述4種版本模型的檢測效果,結(jié)果見表3。其中, 最大mAP值是在訓(xùn)練模型期間對驗(yàn)證集進(jìn)行檢測計算得出的mAP值中的最大值, 測試mAP值則是在訓(xùn)練結(jié)束后對測試集進(jìn)行檢測計算得出的mAP值, 本文中模型檢測精度的主要參考標(biāo)準(zhǔn)為測試mAP值。由表可以看出: 在檢測精度方面, 選用YOLOv5l、 YOLOv5s版本模型訓(xùn)練得出的無人機(jī)檢測模型測試mAP值最大,達(dá)到0.950,
YOLOv5l版本模型的最大mAP稍大; 在檢測速度方面, 隨著模型深度與寬度的遞增,模型FLOPs值逐步增大,YOLOv5s版本模型的每秒FLOPs最小,為4.89×109,與YOLOv5l版本模型的每秒FLOPs相差了29.33×109,但mAP值相差卻不大。考慮到無人機(jī)檢測模型實(shí)際應(yīng)用場景的速度優(yōu)先原則,本文中選用YOLOv5s版本模型進(jìn)行無人機(jī)實(shí)時檢測。
除了網(wǎng)絡(luò)的深度與寬度, 圖像輸入分辨率也是決定模型檢測精度的重要標(biāo)準(zhǔn)。本文中在迭代次數(shù)等相關(guān)參數(shù)保持不變的前提下測試了YOLOv5s算法網(wǎng)絡(luò)的輸入分辨率, 結(jié)果見表4。其中, 所選測試圖像分辨率640、 1 280、 1 920像素均與數(shù)據(jù)集圖像分辨率大小相關(guān)。由表中結(jié)果可知, 測試的3種輸入圖像分辨率中, 該模型的mAP值隨著分辨率的增加而增大, 但在輸入分辨率為640、1 920像素時測試mAP值只相差0.015,每秒FLOPs卻相差
36.75×109。為了保證模型的檢測速度,最終選擇網(wǎng)絡(luò)的輸入分辨率為640像素,檢測模型測試mAP值為0.950, 每秒FLOPs為4.89×109, 初步構(gòu)建了精準(zhǔn)實(shí)時的無人機(jī)檢測模型。
2.4" 基于BN層的模型剪枝方法
隨著神經(jīng)網(wǎng)絡(luò)的發(fā)展,模型參數(shù)量越來越大, YOLOv5算法中的大量參數(shù)對最終檢測結(jié)果影響很小,卻占據(jù)了大量的計算量和大部分內(nèi)存,因此,為了進(jìn)一步提高模型檢測速度,本文中引入一種基于BN層的模型剪枝方法[23],將不重要的參數(shù)去除,在減少模型計算量的同時保持模型表達(dá)能力基本不變。
選擇BN層的尺度因子作為裁剪通道的衡量指標(biāo)。在訓(xùn)練時,對BN層的尺度因子添加L1正則化,起到稀疏化的作用,再通過BN層的尺度因子趨于0來識別不重要的通道。
為了加快網(wǎng)絡(luò)收斂,防止過擬合,YOLO算法加入BN層對網(wǎng)絡(luò)每一層的輸入進(jìn)行歸一化,計算公式為
zout=γzin-μBσ2B+ε+β ,(8)
式中: zout為BN層輸出值; zin為上一個卷積層的輸出; μB為均值; σ2B為方差,加入趨于0的小數(shù)ε避免分母為0; γ、 β為可學(xué)習(xí)重構(gòu)參數(shù),其中γ為BN層縮放系數(shù), β為平移系數(shù)。
選擇縮放系數(shù)γ作為BN層的尺度因子,每個通道激活值zout與γ正相關(guān),如果γ趨近于0,激活值也非常小,可以將其舍棄。
損失函數(shù)為
L=∑(x,y)l(f(x,W),y)+δ∑γ∈Γg(γ) ,(9)
式中: 第一項(xiàng)為正常的網(wǎng)絡(luò)損失函數(shù); (x, y)為訓(xùn)練的輸入和真值; W為訓(xùn)練權(quán)重;第二項(xiàng)是尺度因子的正則化,δ為懲罰稀疏項(xiàng)。
基于BN層模型剪枝方法的流程如圖4所示。具體剪枝步驟如下:
1)稀疏訓(xùn)練。通過稀疏訓(xùn)練使大多數(shù)網(wǎng)絡(luò)權(quán)重趨近于0。
2)模型剪枝。去除稀疏訓(xùn)練中識別的不重要通道,在剪枝時可以設(shè)置剪枝率,即剪去通道的比例。本文中測試了4組剪枝率,分別為50%、 60%、 70%和80%,保持輸入分辨率為640像素,迭代次數(shù)為300,批次大小為16幅,mAP值、 FLOPs、 模型規(guī)模變化如圖5所示。由圖可以看出,隨著剪枝率增大,測試mAP值逐漸減小,相比之下,F(xiàn)LOPs和模型規(guī)模減小幅度較大,原因是剪去的參數(shù)比例越多,檢測精度越低,計算量FLOPs和模型規(guī)模越小;但基于BN層的模型剪枝主要是剪去了對最終檢測結(jié)果影響較小的部分參數(shù),因此mAP降幅較小。由圖5(a)可知, 剪枝率70%為拐點(diǎn),剪枝率大于70%后mAP值明顯減小。為了確保模型檢測精度與剪枝前無較大差異,設(shè)置剪枝率為70%。
3)模型微調(diào)。剪枝后的模型的mAP值有所減小, 此時可以通過模型微調(diào)實(shí)現(xiàn)精度補(bǔ)償, 提高檢測精度。 經(jīng)稀疏訓(xùn)練、 模型剪枝、 模型微調(diào)后的YOLOv5s算法檢測結(jié)果見表5,并與未剪枝前模型進(jìn)行對比。由表中數(shù)據(jù)可知,模型微調(diào)后測試mAP值比剪枝后增加了0.032, 表明模型剪枝是一種有效的精度補(bǔ)償方法。 將微調(diào)后的模型與未剪枝前的模型進(jìn)行對比, 模型測試mAP值只減小0.003, 但每秒FLOPs減少了1.96×109, 模型規(guī)模減小了11.4 MB,在不影響檢測精度的前提下極大地減少了模型的計算量和模型規(guī)模,進(jìn)而使模型檢測速度得到提升,模型存儲空間顯著減小。
2.5" 基于DeepSORT算法的無人機(jī)目標(biāo)跟蹤模型
基于YOLOv5s算法的無人機(jī)檢測模型仍存在以下問題: 1)當(dāng)出現(xiàn)遮擋、 重疊或不清晰等情況時,可能導(dǎo)致無人機(jī)目標(biāo)無法被準(zhǔn)確檢測,進(jìn)而導(dǎo)致
檢測器失效; 2)目前無法為每個出現(xiàn)的無人機(jī)目標(biāo)分配獨(dú)特的檢測編號(ID),從而無法實(shí)時跟蹤其運(yùn)動軌跡; 3)相對于實(shí)時檢測的要求,當(dāng)前方法的速度還不夠快。
為了解決以上問題,在基于YOLOv5s算法的無人機(jī)檢測模型上加入DeepSORT算法實(shí)現(xiàn)無人機(jī)實(shí)時跟蹤。DeepSORT算法為每個檢測出的無人機(jī)目標(biāo)都賦予一個ID值,并持續(xù)追蹤該目標(biāo)的運(yùn)動軌跡,當(dāng)無人機(jī)目標(biāo)出現(xiàn)遮擋、重疊或不清晰的狀況,也能根據(jù)上下文信息進(jìn)行推斷,實(shí)時性也更強(qiáng)。
向基于YOLOv5s-DeepSORT算法的無人機(jī)檢測模型輸入一段視頻,主要跟蹤過程為:
1)通過訓(xùn)練好的基于YOLOv5s算法的無人機(jī)檢測模型得到第1幀圖像的無人機(jī)目標(biāo)邊界框。DeepSORT算法根據(jù)第1幀的檢測結(jié)果創(chuàng)建對應(yīng)的軌跡,將卡爾曼濾波的運(yùn)動變量初始化,通過卡爾曼濾波得到下一幀圖像的預(yù)測框。
2)對下一幀圖像進(jìn)行檢測,使用匈牙利算法將得到的檢測框與預(yù)測框數(shù)據(jù)關(guān)聯(lián),進(jìn)行級聯(lián)匹配或IoU匹配,計算其代價矩陣。其中,連續(xù)匹配大于3次的軌跡為確認(rèn)態(tài),與檢測框進(jìn)行級聯(lián)匹配;不滿足此條件的為非確認(rèn)態(tài),與檢測框進(jìn)行IoU匹配。預(yù)測框與檢測框匹配不成功有2種可能:一是只有預(yù)測框,此時若軌跡為確認(rèn)態(tài)且失配次數(shù)小于預(yù)設(shè)失配次數(shù)(默認(rèn)為30次),則繼續(xù)預(yù)測,否則刪除該軌跡信息;二是只有檢測框,此時為出現(xiàn)新目標(biāo),則創(chuàng)建新軌跡信息。
3)預(yù)測框與檢測框匹配成功后,DeepSORT算法通過卡爾曼算法濾波器更新對應(yīng)的軌跡變量,使檢測框與預(yù)測的跟蹤框位置達(dá)到相同,從而更好地預(yù)測后續(xù)的跟蹤框。
4)反復(fù)重復(fù)以上步驟直到視頻結(jié)束。
基于DeepSORT算法的無人機(jī)目標(biāo)跟蹤模型具體實(shí)現(xiàn)流程圖如圖6所示。
選取一段拍攝的無人機(jī)視頻,采用基于YOLOv5s-DeepSORT算法的無人機(jī)檢測方法,實(shí)時跟蹤結(jié)果如圖7所示。當(dāng)檢測到有無人機(jī)目標(biāo)后,即為該目標(biāo)賦一個新ID值,并不斷追蹤。由圖可知,基于DeepSORT算法的無人機(jī)目標(biāo)跟蹤模型能夠?qū)σ曨l中的無人機(jī)目標(biāo)進(jìn)行精準(zhǔn)檢測與定位。
3" 實(shí)驗(yàn)驗(yàn)證
1)為了驗(yàn)證YOLOv5s算法在無人機(jī)目標(biāo)檢測領(lǐng)域的優(yōu)越性,與常用目標(biāo)檢測算法的檢測性能進(jìn)行對比,結(jié)果見表6。由對比結(jié)果可知:在檢測精度方面,YOLOv5s算法采用聚焦、BottleneckCSP和SPP結(jié)構(gòu)代替YOLOv3、 YOLOv4算法的DarkNet53網(wǎng)絡(luò),并選用自適應(yīng)圖像縮放替換原始圖像縮放方式,檢測精度較高,略低于兩階段目標(biāo)檢測算法——快速區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(Faster R-CNN),但差距不
大; 在檢測速度上, YOLOv5s算法采用輕量化的設(shè)計, 在YOLOv4算法基礎(chǔ)上優(yōu)化了計算方法, 速度更快。 Faster R-CNN算法需要先獲得目標(biāo)候選區(qū)域再預(yù)測, 在檢測速度上不具有優(yōu)勢。 本文方法在YOLOv5s算法的基礎(chǔ)上通過基于BN層的模型剪枝進(jìn)一步減少了模型的計算量, 每秒FLOPs達(dá)到2.93×109,檢測速度得到大幅提升。由于無人機(jī)檢測實(shí)際應(yīng)用場景具有速度優(yōu)先原則,因此本文方法有很大的優(yōu)勢。
2)為了驗(yàn)證DeepSORT算法在無人機(jī)實(shí)時跟蹤方面的優(yōu)越性,選取自采數(shù)據(jù)集中78段視頻作為測試集,采用改進(jìn)后的基于YOLOv5s算法的無人機(jī)檢測模型,對3種目標(biāo)跟蹤算法的誤報次數(shù)、 未命中次數(shù)、 跟丟次數(shù)、 運(yùn)行時間進(jìn)行統(tǒng)計,結(jié)果見表7。其中,誤報次數(shù)指將其他目標(biāo)誤認(rèn)為無人機(jī)目標(biāo)的次數(shù),未命中次數(shù)指視頻中存在的目標(biāo)沒有被識別出來的次數(shù),跟丟次數(shù)指檢測出的目標(biāo)后續(xù)未繼續(xù)識別出的次數(shù),運(yùn)行時間選取的是一段時長為65 s的視頻在不同目標(biāo)跟蹤模型下的運(yùn)行時間。
跟蹤準(zhǔn)確度根據(jù)誤報次數(shù)、 未命中次數(shù)、 跟丟次數(shù)3個維度進(jìn)行評判。從表7中可以看出:在誤報次數(shù)和未命中次數(shù)方面,DeepSORT算法誤報次數(shù)為67、 未命中次數(shù)為43,均為3個算法中最少的;在跟丟次數(shù)方面,核相關(guān)濾波(kernel correlation filter,KCF)算法跟丟次數(shù)為72,為3個算法中最少,但與DeepSORT的84次差別不大。綜合3個維度來看,DeepSORT算法跟蹤準(zhǔn)確度更高,主要原因是KCF算法和SORT算法存在對目標(biāo)被遮擋的狀況檢測困難的問題,而DeepSORT算法中加入了外觀圖像信息,能夠很好地解決此問題,檢測準(zhǔn)確度更高。跟蹤速度的評價標(biāo)準(zhǔn)為算法對同一視頻的運(yùn)行時間。由表7可知, DeepSORT算法運(yùn)行一段65 s的視頻時間最短,為75.45 s,與KCF算法相比,速度提升了約4.8%,可以滿足實(shí)時跟蹤要求。綜合而言,DeepSORT算法最適合作為無人機(jī)實(shí)時跟蹤算法。
4" 結(jié)論
為了解決無人機(jī)因目標(biāo)較小而難以檢測、檢測速度慢、難于跟蹤等問題,本文中開發(fā)了基于YOLOv5s-DeepSORT算法的無人機(jī)檢測方法,并通過對比實(shí)驗(yàn)得到如下結(jié)論:
1)采用YOLOv5s算法和基于BN層的模型剪枝方法生成的無人機(jī)目標(biāo)檢測模型的測試mAP、 每秒FLOPs分別達(dá)到0.947、 2.93×109,與YOLOv4算法生成的模型相比,測試mAP提升了0.03,每秒FLOPs減少了約4×109,能夠?qū)崿F(xiàn)精準(zhǔn)、 實(shí)時的無人機(jī)檢測。
2)基于DeepSORT算法的目標(biāo)跟蹤準(zhǔn)確度較高,運(yùn)行一段65 s的視頻時間為75.45 s,可以滿足實(shí)際應(yīng)用場景對實(shí)時跟蹤要求,與KCF算法相比,誤報次數(shù)減少約10.7%,未命中次數(shù)減少約27.1%,檢測速度提升約4.8%。
未來可以針對更復(fù)雜的場景繼續(xù)優(yōu)化模型結(jié)構(gòu),進(jìn)一步提高檢測的準(zhǔn)確性和速度,并探索更廣泛的應(yīng)用領(lǐng)域。
參考文獻(xiàn):
[1]" 胡義強(qiáng), 楊驥, 荊文龍, 等. 基于無人機(jī)遙感的海岸帶生態(tài)環(huán)境監(jiān)測研究綜述[J]. 測繪通報, 2022(6): 18.
[2]" TSOUROS D C, BIBI S, SARIGIANNIDIS P G. A review on UAV-based applications for precision agriculture[J]. Information, 2019, 10(11): 349.
[3]" GUIMARES N, PDUA L, MARQUES P, et al. Forestry remote sensing from unmanned aerial vehicles: a review focusing on the data, processing and potentialities[J]. Remote Sensing, 2020, 12(6): 1046.
[4]" STEINHOFF C. Use of drones for the rescue service and transport of medicaments: possibilities and risks[J]. Der Unfallchirurg, 2021, 124(12): 965-973.
[5]" 蔣镕圻, 白若楷, 彭月平. 低慢小無人機(jī)目標(biāo)探測技術(shù)綜述[J]. 飛航導(dǎo)彈, 2020(9): 100.
[6]" 屈旭濤, 莊東曄, 謝海斌. “低慢小”無人機(jī)探測方法[J]. 指揮控制與仿真, 2020, 42(2): 128.
[7]" 馬旗, 朱斌, 張宏偉, 等. 基于優(yōu)化YOLOv3的低空無人機(jī)檢測識別方法[J]. 激光與光電子學(xué)進(jìn)展, 2019, 56(20): 279.
[8]" 薛猛, 周學(xué)文, 孔維亮. 反無人機(jī)系統(tǒng)研究現(xiàn)狀及關(guān)鍵技術(shù)分析[J]. 飛航導(dǎo)彈, 2021(5): 52.
[9]" 趙玥萌, 劉會剛. 基于優(yōu)化YOLOv4算法的低空無人機(jī)檢測與跟蹤[J]. 激光與光電子學(xué)進(jìn)展, 2022, 59(12): 397.
[10]" 王峰, 晉良念. 知識輔助的無人機(jī)目標(biāo)恒虛警率檢測方法[J]. 桂林電子科技大學(xué)學(xué)報, 2022, 42(3): 211.
[11]" MARTNEZ C, MONDRAGN I F, OLIVARES-MNDEZ M A, et al. On-board and ground visual pose estimation techniques for UAV control[J]. Journal of Intelligent amp; Robotic Systems, 2011, 61(1): 301.
[12]" ROZANTSEV A, LEPETIT V, FUA P. Detecting flying objects using a single moving camera[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39(5): 879.
[13]" REDMON J, DIVVALA S, GIRSHICK R, et al. You only look once: unified, real-time object detection[C]//2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), June 27-30, 2016, Las Vegas, USA. Piscataway: IEEE, 2016: 779.
[14]" HASSAN S A, RAHIM T, SHIN S Y. Real-time UAV detection based on deep learning network[C]//2019 International Conference on Information and Communication Technology Convergence (ICTC), October 16-18,2019,Jeju,Korea (South). Piscataway: IEEE, 2019: 630.
[15]"" 李斌, 張彩霞, 楊陽, 等. 復(fù)雜場景下深度表示的無人機(jī)目標(biāo)檢測算法[J]. 計算機(jī)工程與應(yīng)用, 2020, 56(15): 118.
[16]" 楊銳, 黃山. 改進(jìn)的YOLOv4-tiny算法及其在無人機(jī)目標(biāo)檢測中的應(yīng)用[J]. 電光與控制, 2022, 29(12): 71.
[17]" 劉洋, 戰(zhàn)蔭偉. 基于深度學(xué)習(xí)的小目標(biāo)檢測算法綜述[J]. 計算機(jī)工程與應(yīng)用, 2021, 57(2): 37.
[18]" 鞠默然, 羅海波, 王仲博, 等. 改進(jìn)的YOLO V3算法及其在小目標(biāo)檢測中的應(yīng)用[J], 光學(xué)學(xué)報, 2019, 39(7): 253.
[19]" 江磊, 崔艷榮. 基于YOLOv5的小目標(biāo)檢測[J]. 電腦知識與技術(shù), 2021, 17(26): 131.
[20]" LUO W H, XING J L, MILAN A, et al. Multiple object tracking:a literature review[J]. Artificial Intelligence, 2021, 293: 103448.
[21]" ZHENG Y, CHEN Z, LV D L, et al. Air-to-air visual detection of micro-UAVs: an experimental evaluation of deep learning[J]. IEEE Robotics and Automation Letters, 2021, 6(2): 1020.
[22]" KISANTAL M, WOJNA Z, MURAWSKI J, et al. Augmentation for small object detection[EB/OL]. (2019-02-19)[2023-04-01]. https://doi.org/10.48550/arXiv.1902.07296.
[23]" LIU Z, LI J G, SHEN Z Q, et al. Learning efficient convolutional networks through network slimming[C]//2017 IEEE International Conference on Computer Vision (ICCV), October 22-29, 2017, Venice, Italy.Piscataway: IEEE, 2017:2755.
(責(zé)任編輯:劉建亭)