基于卷积神经网络的无人机射频信号识别
2022-03-30杨小伟文清丰杨鹤猛王泽跃
杨小伟,文清丰,杨 雪,杨鹤猛,金 熙,王泽跃
(1.国网天津市电力公司 城西供电分公司,天津 300301; 2.国网天津电力科学研究院,天津 300301; 3.天津航天中为数据系统科技有限公司,天津 300301)
0 引言
近年来,无人机(Unmanned Aerial Vehicle,UAV)应用越来越广泛,在专业摄影、拍摄、农业和灾难搜救等方面皆有应用[1],给人们工作和生活带来了极大的便利,但也引发了大量个人隐私和公共安全问题[2-3],如UAV被用于入侵、侦察和运输爆炸物等活动。因此由UAV引发的一系列事故警示人们,需要迅速有效地对抗无人机“黑飞”行为[4]。
目前,常用的UAV信号检测方法包括雷达探测、声学检测、视频检测和射频信号(Radio Frequency,RF)信号检测等[5-6]。其中,在雷达探测方面[7],可能存在频谱分辨率低,无法实现远距离探测;在声学检测方面[8],对环境噪声敏感;在视频检测方面[9],天气、光照及鸟类等也会极大影响检测性能。而RF信号属于无源信号,因此RF信号检测不用信号传输,不受UAV本身物理特性及天气光照的影响,检测条件相对较好,完全依赖于对目标UAV的RF信号接收[5,10-11]。
RF信号广泛应用于无人机与其控制器之间的通信,基于RF信号进行检测是识别无人机的有效方法[12-14]。文献[15]使用无人机信号在频域的三种特征组成三维矩阵,然后将其送入人工神经网络进行训练学习,实现了改进频域特征与人工神经网络算法的结合。文献[16]通过捕获与拦截UAV跳频信号和图传信号并进行信号识别来对无人机进行监测。文献[17]通过提取无人机RF信号的31个特征,并利用机器学习分类器识别无人机是否存在。
上述基于RF信号的UAV识别虽然取得了不错的效果,但也存在着噪声干扰、特征冗余等导致的识别准确率无法进一步提升,同时这些方法需要对信号进行大量的预处理操作,需具备无线通信方面的大量专业知识,因此本文采用深度学习的方法,通过简单的预处理结合卷积神经网络对无人机RF信号进行识别,大大简化了UVA检测过程,同时通过神经网络自动学习信号特征,能有效地提升检测准确率。
1 数据预处理
本文实验数据采用开源数据集DroneRF[5]进行实验与研究,该数据集利用射频接收设备对不同型号无人机,且不同无人机在不同运行模式下的射频通信信号进行采集,获得原始RF信号数据。其中无人机类型主要包括Parrot Bebop,Parrot AR和DJI Phantom三种型号,无人机运行模式包括开机连接、悬停、飞行、飞行录像四种状态,同时,该数据集还包含了不存在无人机活动的背景信号,原始RF信号如图1所示,其中两接收器的信号XL和XH的振幅归一化为[-1,1],具体类别及各类数据分布如表1所示。
(a) 背景信号
(b) 飞行录像时RF信号
(c) 开机连接时RF信号
表1 数据集数据分布
时域信号更易受环境噪声干扰,信号特征不明显,因此为了更好地检测信号,本文未将原始RF信号直接送入神经网络进行检测,而是进行了时频变换,将时域信号变换到频域,通过提取信号频域特征来进行检测识别。原始RF信号由2个不同的射频信号接收器采集,2个接收器采集数据长度一致,进行预处理后合并作为一条记录。计算2个接收器采集到数据的离散傅里叶变换可分别表示为:
(1)
(2)
(3)
式中,c是一个归一化因子,计算如下:
(4)
其值为低半频段的最后Q个样本和高半频段的前Q个样本之比,M是yi的总频点数。归一化因子c确保了使用不同设备捕获的2段射频频谱之间的频谱连续性。
2 算法介绍
2.1 基本网络
深度神经网络是深度学习的一种基本网络(Base Network, BaseNet)[5],由输入层、隐藏层及输出层组成,使用BaseNet对无人机信号进行分类时,如图2所示,第1层为输入层,第2~L-1层为隐藏层,第L层为输出层,其中H表示神经元个数,C为分类器的类别数。使用BaseNet可以分别检测无人机是否存在、无人机的类型及无人机的运行模式。
图2 BaseNet结构Fig.2 BaseNet structure
2.2 基于多残差块及通道注意力的卷积神经网络
本文检测UAV的神经网络如图3所示,将其分为4部分,分别为输入层(Input Layer,Input)、主干网络(Backbone Network,Backbone)、分类头(Classification Head Network,Classification Head)、输出层(Output Layer,Output),这样可以清楚解析网络结构,且每个部分都有其作用,其中Input包括数据归一化、构建输入矩阵等;Backbone由多个Stage组成,主要作用为提取信号特征;Classification Head由2个全连接层组成,作用为将Backbone提取的特征用于分类;Output包括网络输出后处理。
图3 本文卷积神经网络Fig.3 Convolutional neural network in the proposed method
在Backbone中,每个Stage的网络结构相同,仅仅超参数设置不同,设置多个Stage的作用主要是为了加深网络结构,提取更深层次的特征,在本文中设置Backbone具有6个Stage。每个Stage由2个残差块(Residual Network Block,ResBlock)及一个池化层组成,残差块包括两层卷积层及一个通道注意力机制层(Squeeze-and-Excitation Network,SENet),具体结构如图4所示。
图4 Stage结构Fig.4 Stage structure
Stage结构中采取残差块,是因为残差网络具有其优点,它将卷积层的前后连接起来,通过卷积层和池化层来提取信号特征,利用残差网络跳跃连接(Shortcut)的特性,在网络层数较深的情况下,可在网络中多个尺度上提取特征,防止梯度消失,解决网络退化的问题,提高识别精度。同时本文的ResBlock在传统的残差结构上进行改进,将批标准化层(Batch Norm Layer,BN)和Leaky ReLU激活函数前置,统一放在卷积层前作为预激活,使网络更易于优化及减少过拟合现象。在ResBlock中还加入通道注意力机制,如图4中的SENet,通过对卷积后的特征图按通道进行全局池化,得到通道级的全局特征,然后通过2层全连接层学习通道间重要性特征,最后通过一个Sigmoid函数输出一个[0,1]范围的数值,并将其作为权重乘上原卷积后的特征图。这种在通道维度上的注意力机制,可以使网络自动学习到不同通道特征的重要程度,更关注重要的通道特征,而抑制那些不太重要的通道,最终提升网络的整体检测精度。
3 实验验证
3.1 超参数设置与网络训练
本文网络结构如图3,首先对数据进行预处理,将从信号接收器采集得到的原始数据进行分段、频域转换、聚合、数据标注、归一化、维度转换等操作,最终生成维度为[1,1,2 048]的数据输入卷积神经网络进行训练。Backbone中Stage的输出通道数为32,32,64,64,128,128,卷积核尺寸为[1,3],池化层核尺寸为[1,2],具体的层尺寸如表2所示,其中B表示批尺寸(Batch size)。
表2 Backbone网络层尺寸
然后将Backbone输出的特征图拉伸为一维向量,输入Classification Head中进行分类,对于检测无人机是否存在设置输出函数为Sigmoid函数,用于二分类任务,对于4种无人机型号识别与10种无人机运行模式识别设置输出函数为softmax函数,用于多分类任务。
在训练网络前,将预处理完成的数据集按照0.8∶0.2的比例,分为训练集与测试集,其中测试集将在每次循环训练时随机切分128个样本用于验证集,主要作用是为了观测模型训练时测试集样本准确率的平稳性。测试集(包括验证集)不参与训练,主要用于网络模型性能的评估。
在训练过程中,将学习率设置为0.000 16,批尺寸设置为128,训练次数设置为128,并采用预热训练(Warm Up)的方法对网络进行预训练,有助于减缓模型在初始训练阶段对批量数据的提前过拟合现象,保持批量数据分布的平稳,并且保持深层网络在训练时的稳定性。同时,在对4种无人机型号识别与10种无人机运行模式识别的任务上采取了标签平滑(Label Smoothing)的正则化方法以抑制过拟合,具体如下:
(5)
式中,y为原始标签;ylabelsmoothing为标签平滑后的标签,用于网络训练;ε为一个较小的参数;K为类别数。
所有实验均基于Python实现,并采用Pytorch深度学习框架,训练环境为Windows 10操作系统,NVIDIA GTX 2060 Super GPU计算平台。
3.2 实验结果分析
实验分为3个任务,分别为检测无人机是否存在的二分类任务,实验结果如图5所示;识别4种无人机型号的四分类任务,实验结果如图6所示;以及识别10种无人机运行模式的十分类任务,实验结果如图7所示。
(a) 损失函数收敛曲线
(b) 准确率曲线
(a) 损失函数收敛曲线
(b) 准确率曲线
(a) 损失函数收敛曲线
(b) 准确率曲线
图5~图7中的(a)为损失函数收敛曲线(Loss曲线),横坐标为训练迭代次数,纵坐标为批量数据的损失函数值。由图可得,3个任务的Loss曲线最终收敛值分别为0.000 020,0.105 432,0.307 754。
图5~图7中的(b)为测试集与验证集的准确率随迭代次数而变化的曲线图(Acc曲线),横坐标为训练迭代次数,图中“(/50)”表示除以50,表示在训练时每迭代50次计算准确率,纵坐标为准确率值,其中红色曲线为验证集准确率,蓝色曲线为测试集准确率。由图可得,3个任务中,对于识别无人机是否存在的二分类任务,准确率达到了99.975 7%,对于识别4种无人机型号的四分类任务,准确率达到了91.211 5%,对于识别10种无人机运行模式的十分类任务,准确率达到了71.044 1%。
对比图5~图7中的图(a)与图(b)可得,随着分类类别减少,最终的收敛值也越小,模型的分类准确率越好,测试集的准确率分布越平稳。随着分类类别增多,性能就越差,因此在后续的研究中可以着重关注多分类任务。
与此同时,还将本文方法与其他方法进行了比较,结果如表3所示。本文提出的方法相对于BaseNet,识别无人机是否存在的准确率提升了0.37%,识别无人机型号准确率提升了6.7%,识别无人机运行模式的准确率提升了24.2%,且网络模型参数量更庞大的同时,推理耗时相差不大。由表3可得本文方法的检测性能,如耗时或检测准确率,均优于其他方法。
表3 与其他方法的对比
4 结束语
本文针对在复杂电磁环境下如何有效地检测无人机,设计了一种基于卷积神经网络的无人机射频信号识别方法。通过捕捉空域中无人机自身发射的射频信号,并进行时频变换预处理,然后送入一个基于多残差块及通道注意力的卷积神经网络进行分析与识别,大大地简化了UVA检测过程,并通过神经网络自动学习信号特征,有效地提升了检测精度。实验验证了该算法在检测无人机是否存在、识别4种无人机型号、识别10种无人机运行模式的任务上分别达到了99.975 7%,91.211 5%,71.044 1%的准确率,能够较准确地识别无人机信号及无人机类型,且相比于其他方法具备较强的鲁棒性和环境抗干扰能力。