楊小偉,王澤躍,楊鶴猛,楊 雪,張莉莉,陳艷芳
(1.國網(wǎng)天津市電力公司城西供電分公司,天津 300301;2.天津航天中為數(shù)據(jù)系統(tǒng)科技有限公司,天津 300301)
近年來,無人機(jī)的普及給公共安全、個人隱私、低空領(lǐng)域安全造成了極大的隱患,無人機(jī)誤入機(jī)場、軍事區(qū)域等事件也頻有發(fā)生,因此對無人機(jī)進(jìn)行偵察管控變得至關(guān)重要。
通過探測無人機(jī)與其控制器通信的射頻信號并對其識別是一種有效的偵察無人機(jī)的方法[1-3]。由于在無人機(jī)中使用特定頻率的射頻信號,因此可以從智能手機(jī)和筆記本電腦等設(shè)備發(fā)射的所有其他無線電頻率中識別無人機(jī)通信信號。射頻分析能更準(zhǔn)確地識別無人機(jī),在某些情況下也可以識別出無人機(jī)的型號和品牌。
目前,許多學(xué)者都通過無人機(jī)與遙控間的通信信號進(jìn)行無人機(jī)識別,主要分為使用射頻指紋等傳統(tǒng)信號分析方法進(jìn)行識別和通過深度學(xué)習(xí)方法進(jìn)行信號識別[4-6]。
采用射頻指紋方法的工作通常是通過傳統(tǒng)方法提取信號特征對信號進(jìn)行識別。文獻(xiàn)[1]通過跳頻信號和圖傳信號識別無人機(jī)信號特征來進(jìn)行無人機(jī)監(jiān)測。文獻(xiàn)[2]采用圖像分類的方式對跳頻信號進(jìn)行識別,取得了不錯的效果,但跳頻信號容易遭到噪聲干擾,導(dǎo)致識別效果差。文獻(xiàn)[3]采用分形貝葉斯變點(diǎn)檢測算法檢測瞬態(tài)起始點(diǎn)并提取指紋特征進(jìn)行識別,但該方法只能區(qū)分不同型號間的無人機(jī),無法對同一型號的不同無人機(jī)個體進(jìn)行區(qū)分。
采用傳統(tǒng)方法進(jìn)行無人機(jī)信號識別雖取得了不錯的效果,但這些方法需要對信號進(jìn)行大量的預(yù)處理操作,且需具備無線通信方面大量的專業(yè)知識,而采用深度學(xué)習(xí)方法將大大簡化這個過程。文獻(xiàn)[4]使用深度學(xué)習(xí)算法對公開無人機(jī)數(shù)據(jù)集進(jìn)行信號識別,采用深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network,DNN)的方法實現(xiàn)了無人機(jī)型號和飛行模式的識別。文獻(xiàn)[5]和文獻(xiàn)[6]都是在文獻(xiàn)[4]的基礎(chǔ)上進(jìn)行提升:文獻(xiàn)[5]采用卷積神經(jīng)網(wǎng)絡(luò)對預(yù)處理后的信號進(jìn)行特征提取并識別,但該方法設(shè)計的神經(jīng)網(wǎng)絡(luò)模型較為簡單,效果相較于基準(zhǔn)方法提升不明顯;文獻(xiàn)[6]采用機(jī)器學(xué)習(xí)的方法對無人機(jī)信號進(jìn)行分類,但該方法所需要的預(yù)處理操作更繁雜,且該方法更適合于小樣本學(xué)習(xí),當(dāng)數(shù)據(jù)較多時所需的時間成本和計算復(fù)雜度將大大增加。
本文提出了一種基于殘差神經(jīng)網(wǎng)絡(luò)的無人機(jī)信號識別算法,旨在根據(jù)采集到的無人機(jī)射頻信號對無人機(jī)是否存在、無人機(jī)型號和無人機(jī)運(yùn)行模式進(jìn)行識別。相比較于文獻(xiàn)[4]和文獻(xiàn)[5],本文提出的方法根據(jù)無人機(jī)信號特征所設(shè)計的殘差神經(jīng)網(wǎng)絡(luò)能有效防止過擬合,解決網(wǎng)絡(luò)退化問題,識別準(zhǔn)確率有明顯提升。相比較于文獻(xiàn)[6],本文提出的方法所需的預(yù)處理操作更少,且模型的泛化性和適應(yīng)性更好。同時,相比較于常用的殘差網(wǎng)絡(luò)結(jié)構(gòu),本文方法根據(jù)無人機(jī)一維信號的特征,采用一維的卷積核及池化核,根據(jù)數(shù)據(jù)量及信號特征設(shè)計網(wǎng)絡(luò)深度,最終取得了更好的識別效果。
深度學(xué)習(xí)是在大量的數(shù)據(jù)基礎(chǔ)上進(jìn)行模型訓(xùn)練和測試,本文使用了一個開源數(shù)據(jù)集DroneRF[7]進(jìn)行模型訓(xùn)練。該數(shù)據(jù)集主要收集不同型號的無人機(jī)在不同運(yùn)行模式下的射頻通信信號,無人機(jī)的類型主要包括Parrot Bebop、Parrot AR和DJI Phantom。這些無人機(jī)主要用于民用研究,其大小、價格、性能和技術(shù)都不相同。此外,該數(shù)據(jù)集由454個射頻信號記錄組成,每段記錄包含代表所采集信號振幅的100萬個樣本。除了無人機(jī)的射頻信號外,該數(shù)據(jù)集還包含了沒有無人機(jī)活動的信號記錄。該數(shù)據(jù)集不僅可以識別無人機(jī)是否存在,也能利用無人機(jī)的射頻信號特征對無人機(jī)的類型和運(yùn)行模式進(jìn)行識別。表1為該數(shù)據(jù)集的數(shù)據(jù)分布,無人機(jī)的主要類型為沒有無人機(jī)、Bebop、AR和Phantom。此外,該數(shù)據(jù)集包含了在各種模式的無人機(jī)中捕獲的射頻信號,如開啟和連接、懸停、飛行、飛行并錄像。其中,包含無人機(jī)活動的數(shù)據(jù)占數(shù)據(jù)集總量約82%,沒有無人機(jī)活動的記錄占約18.06%。沒有無人機(jī)活動的數(shù)據(jù)即背景活動數(shù)據(jù),有利于降低噪聲信息的干擾。
數(shù)據(jù)集中的原始數(shù)據(jù)是用射頻接收設(shè)備進(jìn)行采集,無法直接作為訓(xùn)練數(shù)據(jù),因此在使用神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練之前還需要對原始數(shù)據(jù)進(jìn)行預(yù)處理操作。由于每臺射頻信號接收器的最大瞬時帶寬為40 MHz,因此需要使用兩個射頻信號接收器同時操作來捕獲帶寬80 MHz的WiFi信號,第一臺接收器捕獲低頻段40 MHz帶寬的頻帶,第二臺接收器捕獲高頻段40 MHz帶寬的頻帶,兩個接收器采集的數(shù)據(jù)長度一樣,分別計算兩段數(shù)據(jù)的離散傅里葉變換:
(1)
(2)
式中:xi(L)和xi(H)分別是第一臺信號接收器接收到的低頻段頻帶和第二臺信號接收器接收到的高頻段頻帶的第i段射頻信號;yi(L)和yi(H)是分別來自兩臺信號接收器的第i段射頻信號頻譜;n和m分別為xi和yi的索引號;N是射頻信號段總數(shù)。
將高頻段射頻數(shù)據(jù)進(jìn)行縮放,并接入到低頻段射頻數(shù)據(jù)的尾端,從而將兩個接收器的轉(zhuǎn)換信號連接起來,以建立完整的射頻信號:
(3)
(4)
式中:c是一個歸一化因子,其值為低頻段數(shù)據(jù)的最后Q個頻點(diǎn)值和高頻段數(shù)據(jù)的前Q個頻點(diǎn)值之比;M是將高低兩部分的頻段連接后yi的總頻點(diǎn)數(shù),即第i段射頻信號樣本數(shù)據(jù)長度。使用歸一化因子c將高低兩部分的頻段數(shù)據(jù)連接起來,從而確保了使用不同設(shè)備捕獲的兩段射頻信號之間的頻譜連續(xù)性。值得注意的是,Q必須相對較小才能成功縫合兩段信號,且需足夠大才能平衡隨機(jī)波動造成的影響,本文中Q取值為10。M取值2 048,即通過連接信號數(shù)據(jù)得到了長度為2 048的射頻信號樣本。原始RF信號片段如圖1所示,X(L)和X(H)振幅歸一化為-1~1,分別用藍(lán)色和紅色表示。
(a)背景信號
深度神經(jīng)網(wǎng)絡(luò)是深度學(xué)習(xí)的一種基本網(wǎng)絡(luò),由輸入層、輸出層和隱藏層組成。基準(zhǔn)網(wǎng)絡(luò)[7]使用DNN對無人機(jī)信號進(jìn)行分類,如圖2所示,第0層為輸入層,第1~L-1層為隱藏層,第L層為輸出層。其中,H(l)表示第l層的神經(jīng)元個數(shù),C為分類器的類別數(shù)。使用3個深度神經(jīng)網(wǎng)絡(luò)分別預(yù)測無人機(jī)是否存在、無人機(jī)的類型、無人機(jī)的運(yùn)行模式。
殘差網(wǎng)絡(luò)的主要優(yōu)點(diǎn)是將卷積層的前后連接起來,通過卷積層和池化層來提取信號特征,利用殘差網(wǎng)絡(luò)跳躍連接的特性,在網(wǎng)絡(luò)層數(shù)較深的情況下在網(wǎng)絡(luò)中多個尺度上提取特征,防止過擬合和梯度消失,解決網(wǎng)絡(luò)退化的問題,從而提高識別精度。圖3為殘差單元的結(jié)構(gòu)圖,卷積層的輸入x與殘差函數(shù)F(x)的維度需保持一致以滿足相加運(yùn)算的條件,記輸出函數(shù)為H(x),根據(jù)殘差特性可得到
H(x)=x+F(x)。
(5)
圖3 殘差單元
本文使用的殘差網(wǎng)絡(luò)基本結(jié)構(gòu)如圖4所示,整體網(wǎng)絡(luò)結(jié)構(gòu)及輸出大小如表2所示。針對無人機(jī)信號是一維數(shù)據(jù)的特征,網(wǎng)絡(luò)的輸入尺寸為1×N,1表示特征通道數(shù),N表示采樣點(diǎn)個數(shù),將數(shù)據(jù)經(jīng)過矩陣變換操作后,輸入數(shù)據(jù)轉(zhuǎn)換為1×N×1。網(wǎng)絡(luò)結(jié)構(gòu)共包含3個殘差塊,每個殘差塊包含兩個跳躍連接,跳躍連接之間包含兩個卷積層、批標(biāo)準(zhǔn)化層和一個激活函數(shù)用于特征提取。與傳統(tǒng)的殘差結(jié)構(gòu)相對比,將批標(biāo)準(zhǔn)化層和激活函數(shù)置于卷積層之前作為預(yù)激活,使網(wǎng)絡(luò)更易于優(yōu)化,并減少過擬合的現(xiàn)象。在殘差塊的最后加入最大池化層。其中,卷積層通道數(shù)為32,卷積步長為2,卷積核大小為3×1,池化核大小為2×1,激活函數(shù)使用滲漏整流線性單元(Leaky Relu)函數(shù)。整個網(wǎng)絡(luò)結(jié)構(gòu)使用3個殘差塊,同時通過使用兩個全連接層和Softmax層以輸出類別數(shù)量大小的特征向量,在網(wǎng)絡(luò)中加入dropout層以防止網(wǎng)絡(luò)在訓(xùn)練過程中出現(xiàn)過擬合的現(xiàn)象。
圖4 殘差塊基本結(jié)構(gòu)
表2 網(wǎng)絡(luò)框架及輸出
根據(jù)DroneRF數(shù)據(jù)集的特性,無人機(jī)信號數(shù)據(jù)被預(yù)處理為1×2 048大小的輸入數(shù)據(jù)。由于無人機(jī)信號為一維數(shù)據(jù),采用太深的卷積神經(jīng)網(wǎng)絡(luò)容易造成過擬合、對噪聲的適應(yīng)能力差的問題。因此,本文設(shè)計的網(wǎng)絡(luò)采用了殘差結(jié)構(gòu),且使用3個殘差塊進(jìn)行特征提取,從而避免了網(wǎng)絡(luò)過深導(dǎo)致的網(wǎng)絡(luò)退化問題。同時,由于輸入數(shù)據(jù)的形式為1×N,因此將網(wǎng)絡(luò)中原本為3×3大小的卷積核和2×2大小的池化核分別改為3×1和2×1大小。由于無人機(jī)識別包含不同的分類任務(wù),因此,在最后的Softmax層可以根據(jù)分類任務(wù)的不同設(shè)置不同的分類輸出,包括二分類以識別無人機(jī)存在、四分類以識別無人機(jī)型號以及十分類以識別無人機(jī)運(yùn)行模式。
模型訓(xùn)練采用了交叉驗證的方法。該方法是一種重復(fù)K次的迭代過程,從而在低偏差和方差的情況下得到模型的性能。該方法首先將數(shù)據(jù)集中的樣本平均分為K份,每份數(shù)據(jù)中各類的樣本數(shù)量相同。然后,在之后的每次迭代過程中將第K份數(shù)據(jù)作為測試集,其他的數(shù)據(jù)則作為訓(xùn)練集。將此迭代過程重復(fù)K次從而能將整個數(shù)據(jù)集都被模型測試,最后將K次的平均性能作為模型的性能評估[8]。
本文使用Matlab R2016a對數(shù)據(jù)集進(jìn)行預(yù)處理操作,將從信號接收器采集得到的原始數(shù)據(jù)進(jìn)行分段、頻域轉(zhuǎn)換、聚合、數(shù)據(jù)標(biāo)注、歸一化、維度轉(zhuǎn)換等操作,最終生成1×2 048×1大小的數(shù)據(jù)以輸入深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。其中,公式(4)中M設(shè)置為10,Q設(shè)置為2 048。
交叉驗證實驗中K的值設(shè)置為10,訓(xùn)練過程中,將學(xué)習(xí)率設(shè)置為0.001,批尺寸(batch_size)設(shè)置為10,實驗采用Keras深度學(xué)習(xí)框架,訓(xùn)練環(huán)境為Ubuntu 16.04操作系統(tǒng),NVIDIA GTX 2060 Super GPU計算平臺。
無人機(jī)信號識別模型的平均性能使用準(zhǔn)確率(accuracy)、精確度(precision)、召回率(recall)、錯誤率(error)、錯誤發(fā)現(xiàn)率(False Discovery Rate,FDR)、假負(fù)率(False Negative Rate,FNR)、F1分?jǐn)?shù)(F1 score)進(jìn)行衡量,其計算公式分別如下:
(6)
(7)
(8)
error=1-accuracy,
(9)
FDR=1-precision,
(10)
FNR=1-recall,
(11)
(12)
式中:TP、TN、FP、FN分別為真正例、真負(fù)例、假正例、假負(fù)例。
如圖5所示,對角線上綠色塊中表示正確分類的數(shù)據(jù)段,而非對角線上的紅色塊表示錯誤分類的數(shù)據(jù)段。其中的內(nèi)容分別是數(shù)據(jù)段及其所占總數(shù)據(jù)段的百分比,最右邊的灰色列綠色字體表示精度,紅色字體表示FDR。此外,底部的灰色行綠色字體表示召回率,紅色字體表示FNR;右下角的藍(lán)色單元格綠色字體表示整體準(zhǔn)確率,紅色字體為錯誤率。左側(cè)和頂部的黃色塊中,綠色字體為F1分?jǐn)?shù),紅色字體則為1-F1分?jǐn)?shù)。左上角的橙色塊綠色字體表示整體的F1分?jǐn)?shù),紅色字體表示整體的1-F1分?jǐn)?shù)。
(a)二分類結(jié)果
如圖5(a)所示,在對無人機(jī)是否存在進(jìn)行識別的情況下,整體準(zhǔn)確率達(dá)到了99.8%,平均錯誤率為0.2%,平均F1分?jǐn)?shù)為99.7%。如圖5(b)所示,對無人機(jī)型號進(jìn)行識別分為4類,其整體準(zhǔn)確率達(dá)到了91.1%,平均錯誤率為8.9%,平均F1分?jǐn)?shù)為92.9%。如圖5(c)所示,對無人機(jī)的飛行模式進(jìn)行識別分為10類,其整體準(zhǔn)確率達(dá)到了70.3%,平均錯誤率為29.7%,平均F1分?jǐn)?shù)為66.9%。
將本文方法與其他方法進(jìn)行比較,結(jié)果如表3所示。本文提出的方法相對于基準(zhǔn)方法DNN,識別無人機(jī)存在的準(zhǔn)確率提升了0.2%,識別無人機(jī)型號準(zhǔn)確率提升了6.6%,識別無人機(jī)運(yùn)行模式的準(zhǔn)確率提升了23.5%。
表3 本文方法與其他方法的準(zhǔn)確率對比
將本文方法與其他方法進(jìn)行時間性能的比較,表4所示為不同網(wǎng)絡(luò)模型的參數(shù)量和檢測一條1×2 048大小的樣本所耗費(fèi)的時間?;鶞?zhǔn)方法DNN僅包含輸入、輸出及全連接層,網(wǎng)絡(luò)層數(shù)僅有4層,本文方法相比較于基準(zhǔn)方法,網(wǎng)絡(luò)層數(shù)遠(yuǎn)比基準(zhǔn)方法更深,但在檢測所耗費(fèi)的時間上僅比基準(zhǔn)方法略高,且本文方法的時間性能明顯優(yōu)于其他方法。
表4 本文方法與其他方法參數(shù)量及時間性能對比
本文提出了一種基于殘差網(wǎng)絡(luò)結(jié)構(gòu)的無人機(jī)信號識別方法,通過學(xué)習(xí)無人機(jī)與控制器之間的通信信號特征來識別無人機(jī)是否存在、無人機(jī)的型號以及無人機(jī)的運(yùn)行模式。本文方法首先對數(shù)據(jù)集中的原始數(shù)據(jù)進(jìn)行分段、頻域轉(zhuǎn)換、聚合、數(shù)據(jù)標(biāo)注、歸一化、維度轉(zhuǎn)換等簡單的預(yù)處理操作,然后將處理后的數(shù)據(jù)送入改進(jìn)的殘差網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行訓(xùn)練,最后使用訓(xùn)練好的模型進(jìn)行實時識別。實驗結(jié)果驗證了通過無人機(jī)信號識別無人機(jī)的有效性,同時表明基于殘差網(wǎng)絡(luò)結(jié)構(gòu)的無人機(jī)識別方法的識別準(zhǔn)確度明顯優(yōu)于其他方法。