一种基于人工智能的飞行员疲劳检测方法
文献发布时间:2024-04-18 20:01:30
技术领域
本发明属于航空救生技术领域,具体涉及一种基于人工智能的飞行员疲劳检测方法。
背景技术
现役空军飞行员疲劳检测方法还没有规范的方法,原因在于即使通过耳脉搏、心电等监测设备获取到飞行员的身体参数,由于没有疲劳判定方法,无法通过数据直接分辨飞行员处于清醒还是疲劳状态。为了提高飞行员的安全性保障,按照主机厂提出的生理检测设备的研制需求,对生理检测系统提出了分类更快,更准确的要求。
发明内容
本发明的目的在于,提供一种基于人工智能的飞行员疲劳检测方法,采用K-means算法对数据进行更为准确的分类,更好地实现飞行员生理参数的分类判别,同时更加智能化。
为解决上述技术问题,本发明的技术方案为:一种基于人工智能的飞行员疲劳检测方法,包括以下步骤:
获取飞行员的心率数据和脉搏信号数据并进行去噪;
对去噪后的数据进行特征提取,得到心搏间期数据;
对心搏间期数据进行均方根和标准差计算,得到相邻心搏间期数据差值的均方根数据RMSSD,全部窦性心搏间期数据的标准差数据SDNN和相邻心搏间期数据之差>50ms的个数占总窦性心搏个数的百分比数据PNN50;
对RMSSD、SDNN和PNN50进行特征提取,得到特征数据;
通过K-means算法建立K-means聚类模型,将特征数据作为K-means聚类模型数据集的输入,在数据集中选取80%的特征数据作为K-means算法的训练集,随机选取若干特征数据作为数据集质心,对数据集进行训练,迭代得到按序排列的不同簇类,其中,不同簇类代表不同等级的疲劳程度,簇类按照疲劳程度由低到高进行排列;
将数据集中剩下20%的特征数据作为测试集,进行测试,对测试结果进行验证,验证其与主观判断和客观判断中较高的疲劳等级是否接近,若接近则判断测试结果准确,将该测试结果作为预测结果;其中,主观判断为飞行员本人对自身心理疲劳程度的判断,客观判断为根据飞行员完成预设操作的完成度高低得出的生理疲劳程度的判断,测试结果、心理疲劳程度和生理疲劳程度的评级均与不同簇类对应的不同等级的疲劳程度的评级相对应;当测试结果的评级与主观判断和客观判断中较高的疲劳等级的评级相差小于或等于2个不同簇类对应不同等级的疲劳程度的评级等级差时,判定为测试结果与主观判断和客观判断中较高的疲劳等级接近;
对预测结果进行输出。
还包括以下步骤:在得到预测结果之后,将预测结果转换为类别标签,用于表征飞行员的疲劳状态。
采用平均轮廓系数法对K-means算法进行聚类分析K值的取值。
通过接触式设备对飞行员的心率数据和脉搏信号数据进行采集。
接触式设备至少包括耳脉搏PPG检测设备和ECG心电机检测设备。
心率数据和脉搏信号数据进行去噪的方法为小波去噪和三次样条插值法去噪。
K-means聚类模型至少包含7个代表不同等级的疲劳程度的簇类。
通过python对心搏间期数据进行均方根和标准差计算。
还提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一项所述方法的步骤。
还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述方法的步骤。
与现有技术相比,本发明的有益效果为:
本发明采用K-means算法对数据进行更为准确的分类,更好地实现飞行员生理参数的分类判别,同时更加智能化。
附图说明
图1为本发明实施例的流程示意图;
图2为本发明实施例的K-means算法的聚类代码示意图;
图3为本发明实施例的K-means算法进行K值取值的示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明的技术方案为:一种基于人工智能的飞行员疲劳检测方法,如图1所示,包括以下步骤:
获取飞行员的心率数据和脉搏信号数据并进行去噪;
对去噪后的数据进行特征提取,得到心搏间期数据;
对心搏间期数据进行均方根和标准差计算,得到相邻心搏间期数据差值的均方根数据RMSSD,全部窦性心搏间期数据的标准差数据SDNN和相邻心搏间期数据之差>50ms的个数占总窦性心搏个数的百分比数据PNN50;
对RMSSD、SDNN和PNN50进行特征提取,得到特征数据;
通过K-means算法建立K-means聚类模型,将特征数据作为K-means聚类模型数据集的输入,在数据集中选取80%的特征数据作为K-means算法的训练集,随机选取若干特征数据作为数据集质心,对数据集进行训练,迭代得到按序排列的不同簇类,其中,不同簇类代表不同等级的疲劳程度,簇类按照疲劳程度由低到高进行排列;
将数据集中剩下20%的特征数据作为测试集,进行测试,对测试结果进行验证,验证其与主观判断和客观判断中较高的疲劳等级是否接近,若接近则判断测试结果准确,将该测试结果作为预测结果;其中,主观判断为飞行员本人对自身心理疲劳程度的判断,客观判断为根据飞行员完成预设操作的完成度高低得出的生理疲劳程度的判断,测试结果、心理疲劳程度和生理疲劳程度的评级均与不同簇类对应的不同等级的疲劳程度的评级相对应;当测试结果的评级与主观判断和客观判断中较高的疲劳等级的评级相差小于或等于2个不同簇类对应不同等级的疲劳程度的评级等级差时,判定为测试结果与主观判断和客观判断中较高的疲劳等级接近;
对预测结果进行输出。
还包括以下步骤:在得到预测结果之后,将预测结果转换为类别标签,用于表征飞行员的疲劳状态。
采用平均轮廓系数法对K-means算法进行聚类分析K值的取值。
通过接触式设备对飞行员的心率数据和脉搏信号数据进行采集。
接触式设备至少包括耳脉搏PPG检测设备和ECG心电机检测设备。
心率数据和脉搏信号数据进行去噪的方法为小波去噪和三次样条插值法去噪。
K-means聚类模型至少包含7个代表不同等级的疲劳程度的簇类。
通过python对心搏间期数据进行均方根和标准差计算。
Kmeans是一种人工智能无监督算法,即对未标记的数据集进行聚类分析。算法步骤:首先随机选取k个初始聚类中心,每一个聚类中心代表一类数据集簇,然后将每一个数据点对初始聚类中心进行欧式距离计算,划分到最近的数据簇,再求每一个聚类距离的平均值,得到新的质心;通过不断的迭代,直到函数收敛。
对于飞行员疲劳检测而言,试验设备采用的是津发科技购买的德国ErgoLab生理检测设备,该设备可以实时检测人体生理参数,得到疲劳所需的特征参数,并将测试期间的所有数据保存至Excel中。每一小时的生理参数(RR间期数值)包含5700个数据值,将数据导入进Jupyter软件,通过Python代码查看数据的相关系数以及相关系数热力图,然后对数据进行预处理,即删除缺失项。将处理好的数据进行标准化处理,通过平均轮廓系数检验得到最佳K-means聚类模型,即根据数据特征,自动聚合成一定数量的类别,如图2所示,通过平均轮廓系数检验,将一小时数据分成了不同的7类,这7类则代表了7个不同等级的疲劳程度,从而提供了对飞行员疲劳检测等级的有效分类。
由于疲劳分为心理疲劳和体力疲劳,而心理疲劳对应飞行员主观的自我评价,所以需要主观评价方式,即卡罗琳斯卡嗜睡量表(KSS表)。根据实际情况,将KSS表原有9个等级重新划分为7个不同疲劳程度(1.十分清醒,对事物反应迅速;2.清醒,能够对外界变化保持关注;3.比较清醒,比正常状态略好一点;4.不太清醒,但也无困意;5.有一些困意倾向;6.有困意,且需要一定的努力保持清醒;7.非常困倦,需要极大的努力保持清醒),分别对应Kmeans7个不同的簇。同时,Kmeans数据的横坐标为时间轴,纵坐标为某一簇类对应的生理参数,KSS量表横坐标也为时间轴,纵坐标为KSS疲劳等级,且KSS量表与生理参数测量是同步进行,因此Kmeans的簇类可以与KSS主观疲劳等级相对应。
客观绩效评价方式采用西工大自主研发的飞行监控操作任务平台,验过程中,被试需要通过对显示界面上模拟的飞行姿态参数,即俯仰角、滚转角、航向角、空速、气压高度、转速和缸温进行监控并做出响应。在客观绩效评价任务中,同一时刻出现的异常信息不超过一个,而且每个飞行参数出现异常的概率均相同。异常信息出现的频率设置为每10~30s之间随机出现一次,被试需要迅速完成对异常信息的识别、判断和响应操作。当被试完成响应操作,无论结果正确与否,本次异常信息立即消除恢复正常。如果被试长时间未能注意到异常信息(漏检),未能响应异常,则异常信息会自动回复正常,并记录为漏记一次。软件后台自动记录被试者在完成飞行任务中的操作情况和反应时间作为被试绩效评价指标。因此客观绩效评价方法的横坐标依然为时间轴,纵坐标为绩效分值,同理可以对应kmeans的簇类。
由于疲劳具有延时性,不是瞬时发生的,所以将疲劳发生的前5分钟和后5分钟均定义为同一疲劳程度。因此,10分钟内测试结果与主观判断和客观绩效分值不做区分,且选取最高的疲劳等级。
在飞行员的驾驶过程中,随着疲劳程度的加深,其心电信号会有比较明显的规律性变化,其中主要表现在心电信号的时域和频域上。表征疲劳的心电信号时域指标主要有心率(Heart Rate HR)、RR间期(心脏每次搏动间期)和RR间期标准差SDNN等;频域指标主要是VF(0.04-0.15Hz频段的功率)、HF(0.15-0.4Hz频段的功率)和VF/HF。本发明重点关注SDNN、RMSSD、PNN50。因为在HRV中,SDNN表明的是交感神经与副交感神经的张力水平,RMSSD反应的是交感神经的张力水平,PNN50反应的是二者神经张力平衡状态,而人体的中枢神经就是通过交感神经和副交感神经进行控制的。
通过ErgoLAB ECG设备,对人体进行贴片式电极片采集心率,通过对获取的脉搏波信号进行去噪,即小波去噪和三次样条插值法去噪,抵消工频干扰和运动伪差。对基线漂移的情况采用最小二乘法进行拟合或者通过小波变换的尺度分解过程,在分解的低频系数中可以观察到信号的基线趋势,用原始信号减去趋势,从而解决基线漂移问题。三次样条插值法解决分段三阶Hermite插值要求,在每个分界点处输入函数的斜率必须已知的问题。原理:将点和点之间看出由一个三次曲线P(x)连续且每个分界点处连续。所以三阶多项式可以耦合,使得曲线在该点平滑,曲率变化均匀。最终得到校准后的PPG信号。
获取信号之后,利用Python代码对数据进行预处理,去除异常值和空白值,并对该数据利用数学公式求出SDNN、RMSSD、PNN50的值。
最后采用人工智能神经网络无监督学习方法。由于没有阈值的划分,所以无法一开始就进行有标签的分类方法。但是采用k-means方法进行数据集的聚类,将上述处理过的数据分为训练集和测试集,放入写好的代码中进行聚类训练,最终得到不同的分类结果,然后可以将k-means输出的结果作为有监督学习的输入,从而使得神经网络模型可以进行有监督学习,使得划分更加准确。
K-means算法的特点包括简单易懂,计算速度快,适合于连续型数据。首先,确定分成K个群组,这是算法的输入参数;然后从数据集中随机选择K个数据点作为初始的质心;接着对每个数据点计算它与质心得距离,然后将该数据点分配给距离最近的质心,形成K个群组。对于每个群组现在有自己的质心,然后进行重新选举,即计算每个群组中所有点的平均值,得到新的质心。若新的质心与旧的质心之间的距离小于预定的阈值,可以终止;若距离变化较大,需要重复上述步骤,直到收敛为止。最终,会形成多个不同的簇类。
由于计算机本身并不清楚获取到的数据是哪一类,需要实现的目标只是利用数据本身的规律把相似的样本聚到一起,从而实现数据的无标签分类。而Kmeans聚类是常见的无监督学习方法,它是基于划分方法聚类的,原理是:先初始化K个簇类中心,即质心(假设疲劳分为轻度疲劳、中度疲劳以及重度疲劳,那么K=3,这三类就是簇)。基于计算样本与中心点的距离归纳各簇类下的所属样本,迭代实现样本与其归属的簇类中心的距离为最小的目标(如下目标函数)。
其中x
其优化算法步骤为:
1.随机选择k个样本作为初始质心
2.针对数据集中每个样本,计算它到k个簇类中心的欧式距离,并将其归属到距离最小的簇类中心所对应的类中。
3.针对每个簇类,通过平均距离重新计算它的簇类中心位置。
4.重复迭代2、3两步操作,直到达到平稳,即质心不再进行变化。
K值的确定:常用方法有先验法,手肘法和平均轮廓系数法
1.先验法:
先验法就是凭借经验确定K的取值,该方法对程序员的经验要求多,且针对不同的数据偶然性大,不够稳定,但如果事先确定好需要划分的类别,先验法可以减少代码量,节省代码运行时间。
2.手肘法:
可以知道K值越大,划分的簇类越多,对应的各个点到簇中心的距离的平方和(类内距离,WSS)越低,我们通过确定WSS随着K的增加而减少的曲线拐点,作为K的取值。手肘法的缺点在于需要人为判断,不够智能化。
3.平均轮廓系数法(Silhouette Coefficient):
SC系数结合了凝聚度和分离度,从而使得聚类的内部距离最小,外部距离最大。并且计算机针对数据的特征,自动进行了K个簇的聚类,不需要人为确定K值。
如图3所示,原理如下:
1.计算样本i到同簇其他样本的平均距离ai,ai越小样本i的簇内不相似度越小,说明样本i越应该被聚类到该簇。
2.计算样本i到最近簇Cj的所有样本的平均距离bij,称样本i与最近簇Cj的不相似度,定义为样本i的簇间不相似度:bi=min{bi1,bi2…bik},bi越大,说明样本i越不属于其他簇。
3.求出所有样本的轮廓系数后再求平均值就得到平均轮廓系数。该取值范围为[-1,1],系数越大,聚类效果越好。簇内样本的距离越近,簇间样本距离越远。
综上,为了使得数据聚类更加准确化和智能化,选择平均轮廓系数法进行Kmeans聚类K值的取值。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
- 移动群智感知中抗感知平台和用户共谋攻击的方法及系统
- 一种群智感知中基于移动感知用户匿名信誉的高可靠感知数据收集算法