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