方 伟, 王 玉, 闫文君, 林 冲
(1. 海军航空大学航空作战勤务学院, 山东 烟台 264001; 2. 海战场信息感知与融合技术国家级实验教学中心, 山东 烟台 264001)
近年来,美国国防高级研究计划局为实现空对空自动作战制定了“空战进化”项目,该项目将开展以人工智能驱动的空中格斗竞赛。进而推动战斗机作战的人工智能化控制,使飞行员有能力掌控更大的空中战场。但无论是“空战进化”项目还是其他智能空战技术的研究都离不开飞行动作识别技术。在模拟飞行和飞行训练中,快速有效的飞行动作识别有利于对参训飞行员的飞行动作进行质量评估,辅助提高飞行员操作水平;在实际飞行任务中,快速有效的飞行动作识别有利于实现对方行动意图分析,辅助飞行员进行战场决策,为进一步夺取制空权提供条件。
目前,飞行动作识别方法主要可以分成两类:一是基于专家系统的识别方法,如随机森林识别方法、蒙特卡罗搜索法等;二是基于模型的识别方法,如神经网络模型、支持向量机、贝叶斯网络模型等。专家系统的识别方法以专家先验知识为基础构建知识库,通过逐条对比匹配形成动作推理机识别飞行动作,该方法虽然简单有效,但过于依赖于先验知识,可扩展性差。现有基于模型的识别方法,能够通过输入已知的飞行动作数据集迭代训练生成规则判据,不但有效解决了对先验知识依赖大的问题,而且有效提高了识别准确度。但现有的模型识别方法存在两个主要问题:① 需要对输入数据根据规则判据进行逐一判断,当需要处理批量数据时,所需识别时间较长;② 需预先给出飞行动作的起止时间,无法对整段飞行过程进行有效分段识别。
为解决上述两个问题,结合卷积神经网络(convolutional neural networks, CNN)和长短期记忆(long-short term memory, LSTM)在目标识别中的应用。本文提出一种基于神经网络符号化模型的识别方法,首先运用CNN对基本飞行动作进行符号化处理,通过符号对整段飞行数据进行分段,提取复杂飞行动作符号变化的起止位置,再根据复杂飞行动作符号段的时序特征利用LSTM进行复杂飞行动作的识别。该方法通过神经网络训练可以直接获得模型参数,利用模型参数计算识别飞行动作,实现飞行数据的批量化处理。
图1 坐标系示意图Fig.1 Coordinate system diagram
根据实际飞行轨迹,本文将飞行动作划分为基本飞行动作和复杂飞行动作。其中,基本飞行动作可以为完整飞行动作,也可以为飞行片段,表示每个片段的动作;复杂飞行动作由基本飞行动作片段按时间顺序组合而得。
美国国家航空航天局将基本飞行动作划分为7种:原状态飞行、加速直线飞行、减速直线飞行、左转飞行、右转飞行、爬升飞行、俯冲飞行。以此为基础再根据飞行动作的实际情况将基本飞行动作总结为平飞类、转弯类和滚转类三大基础类。其中,平飞类为主要的常态基本飞行动作,包括直线上升飞行、直线水平飞行和直线下降飞行;转弯类为状态转换的基本飞行动作,包括右转水平飞行、左转水平飞行、右转上升飞行、右转下降飞行、左转上升飞行、左转下降飞行、垂直上升转弯飞行和垂直下降转弯飞行;滚转类为特殊状态的基本飞行动作,包括直线滚转飞行和斜滚转飞行。基本飞行动作分类如表1所示。
表1 基本飞行动作
复杂飞行动作是检验飞行员掌握飞行包线、深知飞行性能和熟练驾驶飞机的标准,主要包括告警改出机动、特技飞行机动和高级操作机动等。例如告警改出、筋斗机动、殷麦曼、半滚倒转、草花筋斗、大姿态回转、下降急转、反转滚转等,部分复杂飞行动作如图2所示。
图2 复杂飞行动作Fig.2 Complex flight actions
但无论是哪种飞行动作,都可以看作是基本飞行按时间顺序组合而成,每一个飞行动作可划分为改入段、动作段和改出段。假设一个复杂飞行动作以平飞改入和改出,部分复杂飞行的组合构成如表2所示。以半滚倒转为例,可以将飞行动作分解为直线水平飞行段、直线滚转段、垂直上升飞行段、飞行动作调整段和直线水平飞行段。其中,飞行动作调整段是飞行动作改变必须的姿态调整阶段,由飞行员驾驶水平和飞机性能决定,并且其同样可以分解为基本飞行动作,一般时间不长,其状态特征如图3所示。
表2 复杂飞行的组合构成
图3 复杂飞行动作分解Fig.3 Decomposition of complex flight actions
飞机在飞行过程中,飞行员通过电传操纵系统控制飞行姿态,进而随时间保持或变换飞行姿态得到飞行动作,产生的飞行参数具有明显的时间特性。为通过时间特性识别飞行动作,本文提出一种基于神经网络符号化模型的方法,利用微分分割将数据切片后按时间顺序排列,将时间特征转换为图像特征,通过CNN自动识别形成特征图,完成对基本飞行动作的识别;基本飞行动作按时间顺序进行排列组合组成复杂飞行动作,以符号化基本飞行动作作为词典,利用LSTM完成对复杂飞行动作的识别,网络结构如图4所示。
图4 飞行动作识别网络结构Fig.4 Flight actions recognition network architecture
由于飞机性能的不同和驾驶员驾驶水平的差异,相同的飞行动作具有时间不等长的特点。在传统的飞行动作识别方法中,需要首先对飞行动作状态变化的变点进行检测,具体确定需识别飞行段,对识别速度和准确率有较大影响。因此本文通过对飞行参数进行微分分割的预处理有效避免这一问题的出现。
对选取的飞行参数采样点进行按时间等样的微分分割,得到符合飞行动作的组合特点飞行数据片段,将其重新构造为飞参数据的矩阵形式,这种重构的矩阵形式以基本飞行动作空间特征代替表示其原本的时序特征,将其作为飞行动作图像输入CNN。由于CNN对图像处理具有明显优势,因此可以利用CNN提取飞行动作图像相关特征,实现基本飞行动作的快速识别。
将飞行过程按选定的特征参数向量按时间顺序组成单一基本飞行动作的全过程特征参数矩阵(,,…,),其中为总采样个数。由于CNN需要等长且具有特征属性的输入样本,利用微分思想,将全过程特征参数矩阵按时间等样分割,得到基本飞行动作单元的矩阵形式,再通过CNN的核计算将其时序特征转换为特征图,基本飞行动作的特征图如图5所示。通过微分分割全过程特征参数矩阵可以有效避免传统算法中的推理判断,对基本飞行动作进行模块化处理,进而提高识别速度。
图5 基本飞行动作的特征图Fig.5 Features of basic flight actions
以为微分参数,将(,,…,)等长分割为+1个基本飞行动作特征参数矩阵,表示为
=[(,,…,),(+1,+2,…,2),…,
(+1,+2,…,)]
(1)
利用独热编码方式将基本飞行动作进行符号化预处理得到数据标签,如表3所示,,即为CNN输入样本。
表3 基本飞行动作动作符号化
该网络主要由填充层、卷积层、丢弃层和全连接层组成。填充层在卷积层之前,实现输入数据的边缘补齐防止边缘信息丢失;利用卷积层完成特征图提取;丢弃层在卷积层之后,防止过拟合;全连接层为最后一层,使用归一化指数函数实现基本飞行动作单元的分类。网络参数如表4所示。
表4 CNN参数
利用CNN将复杂飞行动作分解为由基本飞行动作符号组成的飞行动作向量,利用独热编码方式将复杂飞行动作进行预处理得到数据标签,(,)即为LSTM输入样本。
该网络主要由嵌入层、LSTM层、丢弃层和全连接层组成。嵌入层可以对输入数据进行升维处理,扩大其特征;丢弃层和全连接层的作用与CNN结构中的丢弃层和全连接层的作用相同;LSTM层由一组递归连接的块组成,称为存储块。每一个存储块主要包括传递数据信息的细胞状态和控制单元,控制单元由输入门、输出门和遗忘门组成,为细胞状态提供输入、输出和信息保留与删除的操作。有效解决了传统循环网络的梯度消失和梯度爆炸问题,有利于对时间较长的复杂飞行动作进行学习训练。网络参数如表5所示(以两种复杂飞行动作的识别为例)。
表5 LSTM网络参数
将复杂飞行动作看作一段特殊的语言描述,其字典由符号化的基本飞行动作单元组成。在同类复杂飞行动作中,每个基本飞行动作单元的排列及出现顺序具有较强的相似性,且前后出现的基本飞行动作具有强相关性,利用LSTM可以有效解决长期依赖问题,得到复杂飞行动作的权重参数,以此将复杂飞行动作模块化,进而实现复杂飞行动作的快速识别。
本文对整段飞行过程识别进行建模,完成整段飞行动作的全过程识别。该模型主要由两部分构成:第一部分为模型训练部分,主要完成基本飞行动作和复杂飞行动作网络权重的训练;第二部分为动作识别部分,主要完成整段飞行过程的分割和识别。基本步骤如图6所示。
图6 流程图Fig.6 Flow graph
提取飞行特征参数矩阵,组成基本飞行动作和复杂飞行动作的训练数据。
通过微分分割对训练数据切片。
训练CNN,得到基本飞行动作权重参数。
对复杂飞行动作的训练数据执行步骤1和步骤2,利用步骤3中的权重参数将复杂飞行动作的训练数据分解为基本飞行动作。
符号化基本飞行动作。
训练LSTM,得到复杂飞行动作权重参数。
提取整段飞行过程的特征参数矩阵,形成待识别数据。
执行步骤2,利用步骤3中的权重参数将待识别数据分解为基本飞行动作单元。
设置飞行动作阈值判断是否为复杂飞行动作。
判断为否的数据段识别为基本飞行动作,判断为是的数据段利用步骤6中得到复杂飞行动作权重参数对其进行识别分类。
为验证基于神经网络的符号化飞行动作识别的有效性,进行了实验仿真,提取所需的飞行参数输入识别网络,依次训练完成基本飞行动作和复杂飞行动作的识别。再取一段完整飞行过程的飞参数据输入网络,完成整段数据的分割和识别工作,验证本文方法对整段飞行识别的有效性。本实验通过PREPAR3D(P3D)软件产生飞行动作;利用Tacview软件记录飞行轨迹、输出飞行参数;飞参数据存储频率为30 Hz。
对基本飞行动作进行识别分类得到训练损失与验证损失,如图7(a)所示,从图中可以看出,随迭代次数的增加,模型的损失逐渐减小。训练准确率与验证准确率如图7(b)所示,可以看出,随迭代次数的增加,模型的准确率逐渐升高,最终准确率达到93.8%。当训练至58轮时,网络训练趋于稳定,其损失和准确率基本不再发生变化。
图7 CNN模型性能Fig.7 Performance of CNN model
提取CNN训练中测试数据相关参数,得到每种基本飞行动作单元识别种类,即预测符号,个数记为。已知每种基本飞行动作单元的真实符号的个数为。两者相比得到每种基本飞行动作单元识别准确率。识别准确率的计算公式为
(2)
混淆矩阵如图8所示,图中每个小方块的数值代表每种基本飞行动作单元识别准确率,对角线中数值为识别正确的识别准确率,其他数值为识别错误的识别准确率,且颜色越深识别准确率越高。不难看出,网络识别预测符号能够正确反应13种基本飞行单元真实符号,证明本网络充分区分13种基本飞行单元,分类效果较好。
图8 CNN混淆矩阵Fig.8 Matrix of CNN confusion
本文以筋斗和殷麦曼两种复杂飞行动作作为实验对象验证本文方法的有效性,使用P3D软件仿真生成筋斗和殷麦曼两种复杂飞行动作各315条数据样本,从Tacview软件记录的飞行参数中提取全过程特征参数矩阵,同样利用微分思想将每条数据分割为同等大小的征参数矩阵来表示基本飞行动作单元,利用训练得到的CNN权重参数对特征参数矩阵进行识别,将复杂飞行动作分解为基本飞行动作单元,如图9所示。
图9 复杂飞行动作分解表示Fig.9 Decomposition representation of complex flight actions
图9(a)为某一段殷麦曼飞行动作的基本飞行动作分解,以输入时间为开始时间,殷麦曼飞行动作分解过程如表6所示。
表6 殷麦曼飞行动作分解
图9(b)为某一段筋斗飞行动作的基本飞行动作分解,以输入时间为开始时间,筋斗飞行动分解过程如表7所示。
表7 筋斗飞行动作分解
将全部数据样本通过CNN识别后得到730条由基本飞行动作单元符号表示的不等长飞行动作向量,由于复杂飞行动作以直线水平飞行为改入改出,本文以最长的数据样本长度作为LSTM的样本长度,再使用直线水平飞行的符号将所有飞行动作向量两端补齐,进而得到等长的飞行动作向量。利用嵌入层将基本飞行动作符号升维,扩大其特征。对复杂飞行动作进行识别得到训练损失与验证损失如图10所示。
图10 训练损失与验证损失Fig.10 Training loss and validation loss
从图10中可以看出,网络训练到第5轮时开始收敛,20轮后网络的训练损失与验证损失接近到达最小值并趋于稳定,网络的收敛速度快,较好地与复杂动作的飞行过程进行了拟合,最终准确率高达到98.7%。与传统神经网络识别算法、动态贝叶斯识别算法和多元动态时间规整识别算法相比,本文算法对复杂飞行动作的识别率均有明显提高,如表8所示。本文算法通过LSTM将复杂飞行动作模块化,能够更加有效地提取复杂飞行动作的特征,消除了传统算法需用对飞参数据逐一判断推理的缺点,进而提高了识别准确率。同时,通过对基本飞行动作单元的符号化,实现对飞参数据的降维,能够自动判断飞行动作变化点的位置,实现对整段飞行过程的识别,更有利于飞行训练后的飞行质量评估。
表8 算法识别率对比
根据式(2)得出LSTM模型的混淆矩阵如图11所示。其中,数字“0”代表筋斗,数字“1”代表殷麦曼飞行动作,对角线区域表示识别正确的飞行动作。
图11 LSTM混淆矩阵Fig.11 Matrix of LSTM confusion
从图11中可以看出,两种复杂飞行动作颜色区分明显,并且真实标签与网络识别标签一致,证明本网络可以有效对复杂飞行动作进行分类。
无论是基本飞行动作还是复杂飞行动作都是飞行全过程的一部分,为解决现有方法中仅对飞行片段识别的问题,本文利用神经网络符号化模型的方法对整段飞行数据进行识别。首先利用P3D软件模拟仿真出一整段F16飞行过程,设定本段飞行只包含筋斗和殷麦曼两种复杂飞行动作。使用Tacview软件复现飞行轨迹,如图12所示,并输出特征参数向量所需的飞参数据,按=10对整段特征参数向量微分预处理生成飞行全过程特征参数矩阵。
图12 飞行轨迹Fig.12 Flight path
利用CNN训练好的权重参数对飞行全过程特征参数矩阵进行基本动作识别,得到由基本飞行动作单元组成的飞行轨迹。为提取飞行过程中复杂飞行动作,将基本飞行动作单元划分为平飞类飞行单元、转弯类飞行单元和滚转类飞行单元。其中,平飞类飞行单元包括直线上升飞行单元、直线水平飞行单元和直线下降飞行单元,飞行轨迹分解如图13所示。
为消除由于飞行员操作失误或识别错误产生的误差,设置飞行动作阈值=10,去除相同飞行动作单元中相连个数小于飞行动作阈值且两端为同类飞行动作单元的飞行段。根据筋斗和殷麦曼两种复杂飞行动作的特点,图13中转弯类和滚转类飞行动作单元即为去除改入改出飞行过程的复杂飞行动作。将直线水平飞行作为改入改出飞行过程,两端补齐复杂飞行动作,形成由基本飞行动作单元符号化表示的复杂飞行动作的飞行动作向量,最后利用LSTM训练好的权重参数对分割出的飞行动作向量识别,实现复杂飞行动作识别,如图14所示。
图13 飞行轨迹分解Fig.13 Decomposition of flight path
图14 整段飞行动作识别Fig.14 Recognition of whole flight actions
文本针对飞行动作识别的问题,提出了一种基于神经网络符号化模型的深度学习识别算法。提取与飞行动作识别相关的飞参数据,对其进行微分分割切片后构成飞行动作相对应的矩阵形式,通过CNN和LSTM分别实现基本飞行动作和复杂飞行动作的识别,并利用识别后的基本飞行动作单元对完整飞行过程进行分段,实现全飞行过程中基本飞行动作和复杂飞行动作的提取和识别。本文方法可以根据先验知识设置不同的识别个数,具有较好的可扩展性,并且通过模型建立实现了飞行动作的快速正确识别。在自动化飞行训练评估、空战智能决策、预估目标作战意图等应用方面具有重大意义。