发明内容
本发明的主要目的在于提供一种疲劳检测方法,旨在解决现有的疲劳检测方式检测实时性差、检测结果不准确以及检测成本高的技术问题。
为实现上述目的,本发明提供一种疲劳检测方法,包括:
通过可穿戴设备获取被测对象的多模态数据,并对所述多模态数据进行数据预处理得到高维矩阵;
将所述高维矩阵输入预设疲劳检测模型中的数据表征子模型,得到所述高维矩阵对应的特征矩阵、以及所述数据表征子模型在所述高维矩阵下的重构误差;
将所述特征矩阵输入所述预设疲劳检测模型中的信息记忆子模型,得到所述信息记忆子模型在所述特征矩阵下的预测误差;
根据所述重构误差和所述预测误差,判断所述被测对象是否疲劳。
可选地,所述根据所述重构误差和所述预测误差,判断所述被测对象是否疲劳的步骤包括:
确定所述重构误差和所述预测误差的加权和;
根据所述加权和以及预设决策标准公式,确定决策值;
根据所述决策值与所述加权和的大小关系,判断所述被测对象是否疲劳。
可选地,所述确定所述重构误差和所述预测误差的加权和的步骤包括:
根据以下公式,计算得出所述重构误差和所述预测误差的加权和,其中公式为:
其中,J(θ)为重构误差和预测误差的加权和,N为预设疲劳检测模型的一次训练的样本数,T为预设疲劳检测模型的一个周期的窗口大小,xit为高维矩阵中在t时刻的数据矩阵,xit’为经过数据表征子模型后得到的、与xit有相同结构的重构值,L(xit,xit’)为求xit与xit’两个数据之间的重构误差,Ei为的信息记忆子模型的预测误差,λ为预设疲劳检测模型的元参数,用于调整重构误差和预测误差之间的权重大小。
可选地,所述根据所述加权和以及预设决策标准公式,确定决策值的步骤包括:
根据以下公式,计算得出决策值,其中公式为:
其中,threshold为决策值,xi为预先采集的正常状态下的多模态数据,N为预设疲劳检测模型的一次训练的样本数,Error(xi)为xi的重构误差和预测误差的加权和,μ为对于i=1,...,N来说,Error(x)的平均值。
可选地,所述根据所述决策值与所述加权和的大小关系,判断所述被测对象是否疲劳的步骤包括:
若所述加权和大于或等于所述决策值,则确定所述被测对象为疲劳;
若所述加权和小于所述决策值,则确定所述被测对象为正常。
可选地,所述通过可穿戴设备获取被测对象的多模态数据,并对所述多模态数据进行数据预处理得到高维矩阵的步骤包括:
设定多模态数据的采样周期;
通过可穿戴设备获取采样周期内的被测对象的各个模态生理信号的数据流,得到被测对象的多模态数据;
将所述多模态数据整合为高维矩阵。
可选地,通过可穿戴设备获取被测对象的多模态数据,并对所述多模态数据进行数据预处理得到高维矩阵的步骤之前还包括:
获取训练数据集,并对所述训练数据集中的每条多模态数据进行数据预处理得到对应的高维矩阵,以形成高维矩阵集;
依据所述高维矩阵集中的每个高维矩阵,对待训练模型进行迭代训练,直至待训练模型收敛以生成预设疲劳检测模型。
此外,为实现上述目的,本发明还提供一种疲劳检测装置,所述疲劳检测装置包括:
数据收集模块,用于通过可穿戴设备获取被测对象的多模态数据,并对所述多模态数据进行数据预处理得到高维矩阵;
第一数据处理模块,用于将所述高维矩阵输入预设疲劳检测模型中的数据表征子模型,得到所述高维矩阵对应的特征矩阵、以及所述数据表征子模型在所述高维矩阵下的重构误差;
第二数据处理模块,用于将所述特征矩阵输入所述预设疲劳检测模型中的信息记忆子模型,得到所述信息记忆子模型在所述特征矩阵下的预测误差;
疲劳判断模块,用于根据所述重构误差和所述预测误差,判断所述被测对象是否疲劳。
此外,为实现上述目的,本发明还提供一种疲劳检测设备,所述疲劳检测设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的疲劳检测程序,所述疲劳检测程序被所述处理器执行时实现如上所述的疲劳检测方法的步骤。
此外,为实现上述目的,本发明还提供一种可读存储介质,所述可读存储介质上存储有疲劳检测程序,所述疲劳检测程序被处理器执行时实现如上所述的疲劳检测方法的步骤。
本发明实施例提出的一种疲劳检测方法、装置、设备及可读存储介质,通过可穿戴设备获取被测对象的多模态生理信号,得到多模态数据,避免了生理信号采集过程干扰到被测对象的正常驾驶;并对多模态数据进行数据预处理得到高维矩阵后;将高维矩阵输入预设疲劳检测模型中的数据表征子模型,得到高维矩阵对应的特征矩阵、以及数据表征子模型在高维矩阵下的重构误差;将特征矩阵输入预设疲劳检测模型中的信息记忆子模型,得到信息记忆子模型在特征矩阵下的预测误差;根据重构误差和预测误差,判断被测对象是否疲劳;检测实时性强、成本低、检测结果不受环境和被测对象等个性化因素影响,使得检测结果更准确。且预设疲劳检测模型通过端对端学习架构,自动融合和表征多模生理信号,减少人工干预,预设疲劳检测模型在训练过程中不需要疲劳状态下数据的参与,解决了正常与疲劳数据不平衡的问题,使得预设疲劳检测模型对于检测不同程度疲劳状态的泛化能力较强。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:通过可穿戴设备获取被测对象的多模态数据,并对多模态数据进行数据预处理得到高维矩阵;将高维矩阵输入预设疲劳检测模型中的数据表征子模型,得到高维矩阵对应的特征矩阵、以及数据表征子模型在高维矩阵下的重构误差;将特征矩阵输入预设疲劳检测模型中的信息记忆子模型,得到信息记忆子模型在特征矩阵下的预测误差;根据重构误差和预测误差,判断被测对象是否疲劳。
由于现有技术中,现有的疲劳检测方式中,主观检测法受到被试者个性化约束检测结果不准确,且实时性较差;基于视觉信息的检测方法实时检测过程很大程度上受环境和摄像头拍摄角度的影响,导致检测结果不够准确;基于汽车行驶状态的检测方法受到车辆的具体型号、道路的具体状况和驾驶员的个人驾驶习惯、驾驶经验限制,检测结果不准确,且检测成本高。
本发明提供一种解决方案,疲劳检测的检测实时性强、成本低、检测结果不受环境和被测对象等个性化因素影响,使得检测结果更准确。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图。
本发明实施例疲劳检测设备可以是PC,也可以是智能手机、平板电脑、便携计算机等可移动式终端设备。
如图1所示,该设备可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及疲劳检测程序。
在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的疲劳检测程序,并执行以下操作:
通过可穿戴设备获取被测对象的多模态数据,并对所述多模态数据进行数据预处理得到高维矩阵;
将所述高维矩阵输入预设疲劳检测模型中的数据表征子模型,得到所述高维矩阵对应的特征矩阵、以及所述数据表征子模型在所述高维矩阵下的重构误差;
将所述特征矩阵输入所述预设疲劳检测模型中的信息记忆子模型,得到所述信息记忆子模型在所述特征矩阵下的预测误差;
根据所述重构误差和所述预测误差,判断所述被测对象是否疲劳。
进一步地,处理器1001可以用于调用存储器1005中存储的疲劳检测程序,并执行以下操作:
确定所述重构误差和所述预测误差的加权和;
根据所述加权和以及预设决策标准公式,确定决策值;
根据所述决策值与所述加权和的大小关系,判断所述被测对象是否疲劳。
进一步地,处理器1001可以用于调用存储器1005中存储的疲劳检测程序,并执行以下操作:
根据以下公式,计算得出所述重构误差和所述预测误差的加权和,其中公式为:
其中,J(θ)为重构误差和预测误差的加权和,N为预设疲劳检测模型的一次训练的样本数,T为预设疲劳检测模型的一个周期的窗口大小,xit为高维矩阵中在t时刻的数据矩阵,xit’为经过数据表征子模型后得到的、与xit有相同结构的重构值,L(xit,xit’)为求xit与xit’两个数据之间的重构误差,Ei为的信息记忆子模型的预测误差,λ为预设疲劳检测模型的元参数,用于调整重构误差和预测误差之间的权重大小。
进一步地,处理器1001可以用于调用存储器1005中存储的疲劳检测程序,并执行以下操作:
根据以下公式,计算得出决策值,其中公式为:
其中,threshold为决策值,xi为预先采集的正常状态下的多模态数据,N为预设疲劳检测模型的一次训练的样本数,Error(xi)为xi的重构误差和预测误差的加权和,μ为对于i=1,...,N来说,Error(x)的平均值。
进一步地,处理器1001可以用于调用存储器1005中存储的疲劳检测程序,并执行以下操作:
若所述加权和大于或等于所述决策值,则确定所述被测对象为疲劳;
若所述加权和小于所述决策值,则确定所述被测对象为正常。
进一步地,处理器1001可以用于调用存储器1005中存储的疲劳检测程序,并执行以下操作:
设定多模态数据的采样周期;
通过可穿戴设备获取采样周期内的被测对象的各个模态生理信号的数据流,得到被测对象的多模态数据;
将所述多模态数据整合为高维矩阵。
进一步地,所述通过可穿戴设备获取被测对象的多模态数据,并对所述多模态数据进行数据预处理得到高维矩阵的步骤之前,处理器1001可以用于调用存储器1005中存储的疲劳检测程序,并执行以下操作:
获取训练数据集,并对所述训练数据集中的每条多模态数据进行数据预处理得到对应的高维矩阵,以形成高维矩阵集;
依据所述高维矩阵集中的每个高维矩阵,对待训练模型进行迭代训练,直至待训练模型收敛以生成预设疲劳检测模型。
基于上述硬件结构,提出本发明方法实施例。
参照图2,在本发明疲劳检测方法第一实施例中,所述疲劳检测方法包括:
步骤S10,通过可穿戴设备获取被测对象的多模态数据,并对所述多模态数据进行数据预处理得到高维矩阵;
为方便理解,参照图3,可穿戴设备与被测对象接触,通过可穿戴设备采集被测对象各个模态生理信号,从而可以实时采集被测对象的生理指标变化;可穿戴设备采集的被测对象的模态生理信号具有多模态性及时序性。在本实施例中,采集的被测对象的多模态生理信号是指被测皮肤电阻、心率、心率间期和皮肤温度四种模态的生理信号;可以理解的是,在其他实施例中,可以采用比本实施例更多或更少种模态的生理信号。具体地,获取被测对象的各个模态生理信号的数据流,从而得到被测对象的多模态数据;并将多模态数据进行数据预处理整合为高维矩阵。其中,多模态数据,是指将被测对象各个模态生理信号的数据。
进一步地,步骤S10包括:
步骤S11,设定多模态数据的采样周期;
同一种模态数据的当前信息(如xn,t)往往与其一段时间内的历史信息(如xn,t-1至xn,t-m)具有相关性;不同模态数据间的信息(如x1,t至xn,t)也可能具有潜在的相关性。具体地,设定多模态数据的采样周期。
步骤S12,通过可穿戴设备获取采样周期内的被测对象的各个模态生理信号的数据流,得到被测对象的多模态数据;
具体地,在本实施例中,通过可穿戴设备获取采样周期内被测对象的各个模态生理信号的数据流,周期内被测对象的各个模态生理信号的数据流整体形成被测对象的多模态数据。
各个模态生理信号在采集过程中有不同的采样率,利用最近邻插值法将各个模态生理信号进行数据对齐,便于之后数据的融合。为了方便理解,以一具体实施例进行说明。例如,皮肤电阻的采样率为0.2Hz,皮肤温度的采样率为1Hz,心率的采样率为1Hz,心率间期的采样率数值随心率采集而变化,肤电阻的采样率最高,则将所有数据与皮肤电阻的采样率对齐。
由于传感器数据的高灵敏性,需要对各个模态生理信号进行滤波操作。本实施例中采用Savitzky-Golay滤波器和三阶一维中值滤波器消除模态生理信号的峰值,采用移动平均滤波消除噪声。其中,Savitzky-Golay滤波器是一种在时域内基于局域多项式最小二乘法拟合的滤波方法,将移动窗口进行加权平均,但加权系数不是简单的常数窗口,而是通过在滑动窗口内对给定高阶多项式的最小二乘拟合得出。中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术,它的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近真实值,从而消除孤立的噪声点。移动平均滤波基于统计规律,将连续的采样数据看成一个长度固定为N的队列,在新的一次测量后,上述队列的首数据去掉,其余N-1个数据依次前移,并将新的采样数据插入,作为新队列的尾;然后对这个队列进行算术运算,并将其结果做为本次测量的结果。经过三种滤波器后,数据变得平滑,消除了峰值和噪声。
步骤S13,将所述多模态数据整合为高维矩阵。
为了方便理解,以一具体实施例进行说明。如,设定采样周期为t,有皮肤电阻、心率、心率间期和皮肤温度四种模态,则分别获取采样周期t时间内皮肤电阻的数据流、采样周期t时间内心率的数据流、采样周期t时间内心率间期的数据流、采样周期t时间内皮肤温度的数据流;这些数据整体就形成了被测对象的多模态数据。然后,将采样周期内的数据流大小作为一个维度,采样周期内的时间作为一个维度,将各个模态生理信号的采样率作为一个维度,将不同的模态生理信号作为一个维度,将多模态数据整合为高维矩阵。
在本实施例中,通过可穿戴设备获取被测对象的多模态生理信号,避免了生理信号采集过程干扰到被测对象的正常驾驶;通过获取采样周期内的被测对象的各个模态生理信号的数据流,并将获取的各个模态生理信号的数据流作为一个整体整合成为高维矩阵,使得多模态数据具有时序性和多模态性;为预设疲劳检测模型提供准确、全面的多模态数据,以便准确判断被测对象是否疲劳。
步骤S20,将所述高维矩阵输入预设疲劳检测模型中的数据表征子模型,得到所述高维矩阵对应的特征矩阵、以及所述数据表征子模型在所述高维矩阵下的重构误差;
其中,预设疲劳检测模型是已经提前训练好的检测模型,通过将被测对象的多模态数据输入至预设疲劳检测模型,可以检测出被测对象是否疲劳。
数据表征子模型由卷积自动编码器网络实现,将不同数据通道在同一时间输入的数据一并进行逐级的卷积操作,使得不同模态间的数据仍然具有关联性并经由卷积网络中的多个卷积层加以抽象化描述。数据表征子模型包括卷积层、池化层和反池化层,其中,将卷积层描述为以下表达式:
其中,hk为当前层的第k个特征映射的表征,σ(.)为线性整流函数(ReLU),它是激活函数的一种,公式表达为σ(.)=max(0,x),xl为前一层的L个特征映射中的第l个特征映射,*为2D卷积运算,wk和bk分别为当前层的第k个特征映射的卷积核和偏差值。
池化层使用最大池化,将输入数据进行下采样,每次选取区域中的最大值代替这一个区域的值。反池化层通过记录池化过程中最大激活值的坐标位置,在反池化时,将池化过程中最大激活值所在的位置坐标的值激活,其他的值置为0。
卷积自动编码器由编码器和解码器组成,旨在计算低维表达和重构误差,卷积自动编码器运行原理的数学表达如下:
Zf=Encoder(x)
x'=Decoder(Zf)
Zr=||x'-x||
其中,Zf表示低维表达,Zr表示重构误差,Encoder表示编码器,由卷积层和池化层组成,Decoder表示解码器,由卷积层和反池化层组成,x’表示与x有着相同结构的重构值。
在t时刻的多模态数据经由L-1层的卷积操作,在L层最终可被表征为特征矩阵,其中,特征矩阵表示为:
将高维矩阵中各个模态数据通过对应的各个数据通道输入预设疲劳检测模型中的数据表征子模型进行表征、并计算得到重构误差;具体地,为高维矩阵的每一模态维度中的数据设立相应的数据通道,将高维矩阵的各个模态数据分别通过对应的各个数据通道输入预设疲劳检测模型的数据表征子模型,高维矩阵输入预设疲劳检测模型中的数据表征子模型后,通过数据表征子模型的卷积层、池化层和反池化层,将得到该高维矩阵对应的特征矩阵、以及数据表征子模型在该高维矩阵下的重构误差。
步骤S30,将所述特征矩阵输入所述预设疲劳检测模型中的信息记忆子模型,得到所述信息记忆子模型在所述特征矩阵下的预测误差;
将通过数据表征子模型表征后得到的特征矩阵输入至预设疲劳检测模型中的信息记忆子模型,经过信息记忆子模型中拟采用的目标函数,计算得到预测误差,其中拟采用的目标函数为:
步骤S40,根据所述重构误差和所述预测误差,判断所述被测对象是否疲劳。
具体地,根据预设疲劳检测模型的复合型目标函数,确定重构误差和预测误差的加权和;根据重构误差和预测误差的加权和以及预设决策标准公式,确定决策值;并依据预设疲劳检测模型的预设决策规则、以及重构误差和预测误差的加权与决策值之间的大小关系,确定被测对象是否疲劳。
可选地,参照图3,在预设疲劳检测模型判断被测对象是否疲劳之后,将被测对象的疲劳检测结果发送至可穿戴设备;当检测到被测对象为疲劳状态时,通过疲劳预警模块输出预警信息,以提醒被测对象已经处于疲劳状态,应进行休息,避免被测对象继续进行驾驶、影响行车安全。
在本实施例中,通过可穿戴设备获取被测对象的多模态生理信号,避免了生理信号采集过程干扰到被测对象的正常驾驶;将对被测对象的多模态数据进行数据预处理形成高维矩阵后输入至预设疲劳检测模型,采用预设疲劳检测模型的数据表征子模型进行表征得到特征矩阵,并得到数据表征子模型在该高维矩阵的重构误差;采用预设疲劳检测模型的信息记忆子模型计算出预测误差;通过重构误差和预测误差作为依据,判断被测对象是否疲劳,采用数据表征子模型的重构误差和信息记忆子模型的预测误差作为依据,使得疲劳检测结果更加精准。使得本发明检测实时性强、成本低、检测结果不受环境和被测对象等个性化因素影响,使得检测结果准确。
进一步地,在本发明疲劳检测方法第二实施例中,基于图2所述的实施例,步骤S40包括:
步骤S41,确定所述重构误差和所述预测误差的加权和;
具体地,在确定数据表征子模型在高维矩阵下的重构误差,以及信息记忆子模型在特征矩阵下的预测误差后,根据预设疲劳检测模型预设的复合型目标函数,确定重构误差和预测误差的加权和。
进一步地,步骤S41包括:
根据以下公式,计算得出所述重构误差和所述预测误差的加权和,其中公式为:
其中,J(θ)为重构误差和预测误差的加权和,N为预设疲劳检测模型的一次训练的样本数,T为预设疲劳检测模型的一个周期的窗口大小,xit为高维矩阵中在t时刻的数据矩阵,xit’为经过数据表征子模型后得到的、与xit有相同结构的重构值,L(xit,xit’)为求xit与xit’两个数据之间的重构误差,Ei为的信息记忆子模型的预测误差,λ为预设疲劳检测模型的元参数,用于调整重构误差和预测误差之间的权重大小。
具体地,根据预设疲劳检测模型预设的复合型目标函数,确定重构误差和预测误差的加权和。其中,复合型目标函数如下:
其中,J(θ)为重构误差和预测误差的加权和,N为预设疲劳检测模型的一次训练的样本数,比如在预设疲劳检测模型训练时将N设置成16,则每训练16个样本的多模态数据,优化一次模型,T为预设疲劳检测模型的一个周期的窗口大小,xit为高维矩阵中在t时刻的数据矩阵,xit’为经过数据表征子模型后得到的、与xit有相同结构的重构值,L(xit,xit’)为求xit与xit’两个数据之间的重构误差,Ei为的信息记忆子模型的预测误差,λ为预设疲劳检测模型的元参数,用于调整重构误差和预测误差之间的权重大小。
在本实施例中,利用预设疲劳检测模型预设的复合型目标函数,确定重构误差和预测误差的加权和,复合型目标函数中的各个参数为预设疲劳检测模型经过训练后确定,可以准确调整重构误差和预测误差之间的权重大小,使得重构误差和预测误差的加权和更贴近标准需求,为疲劳检测过程判断提供精准的数据,使得疲劳检测结果更加的精确。
步骤S42,根据所述加权和以及预设决策标准公式,确定决策值;
进一步地,步骤S42,包括:
根据以下公式,计算得出决策值,其中公式为:
其中,threshold为决策值,xi为预先采集的正常状态下的多模态数据,N为预设疲劳检测模型的一次训练的样本数,Error(xi)为xi的重构误差和预测误差的加权和,μ为对于i=1,...,N来说,Error(x)的平均值。
具体地,根据重构误差和预测误差的加权和以及预设决策标准公式,确定复合式异常度量的决策值,利用复合式异常度量的决策值作为数据正常模式与异常模式之间的边界;其中,预设决策标准公式如下:
其中,threshold为决策值,xi为预先采集的正常状态下的多模态数据,N为预设疲劳检测模型的一次训练的样本数,Error(xi)为xi的重构误差和预测误差的加权和,μ为对于i=1,...,N来说,Error(x)的平均值。
xi为预先采集的正常状态下的多模态数据,这里的正常状态下的多模态数据是指被采集人员的在非疲劳状态下的多模态数据;不同的被采集人员、以及相同的被采集人员在不同程度疲劳状态下的多模态数据可能均不同,采集每个非疲劳状态下的多模态数据作为一个样本数据,每个xi采用一个样本数据,多个xi形成正常状态下的多模态数据集D={x1,x2,x3,...,xn}。为了方便理解,以一具体实施例进行说明。具体地,采用以下主观问卷评测方式确定被采集人员是否疲劳,采集非疲劳状态下的被采集人员的多模态数据xi,采集的多个xi形成多模态数据集D;并采集疲劳状态下的被采集人员的多模态数据,以在预设疲劳检测模型训练后、测试过程中,分别将疲劳状态下的多模态数据、以及非疲劳状态下的多模态数据输入模型中进行检测验证,以观察模型的检测精度。其中,主观问卷评测规则为:让被采集人员根据以下问题、对自己当前的状态进行打分,轻重程度从0到3划分,问卷的总分数达到18分则证明被试者当前已经进入疲劳状态;其中,主观问卷包括以下问题:
(1)你感觉疲劳吗?
(2)你需要更多的休息吗?
(3)你感觉想睡觉或昏昏欲睡吗?
(4)你现在开始做一件事困难吗?
(5)你缺乏能量吗?
(6)你感觉肌肉无力吗?
(7)你感觉虚弱吗?
(8)你感觉精神很难集中吗?
(9)你说话的时候会有口误吗?
(10)你是否觉得在说话的时候找到合适的措辞更加困难了?
(11)你的记忆力现在如何?
在本实施例中,通过重构误差和预测误差的加权和以及预设决策标准公式,确定复合式异常度量的决策值,利用复合式异常度量的决策值作为数据正常模式与异常模式之间的边界,以实现对正常和疲劳两种状态下数据的准确识别;预设疲劳检测模型的预设决策标准公式中,只采用了正常状态下的多模态数据,避免了正常与疲劳数据不平衡的问题,使得预设疲劳检测模型对于检测不同程度疲劳状态的泛化能力较强。
步骤S43,根据所述决策值与所述加权和的大小关系,判断所述被测对象是否疲劳。
采用预设疲劳检测模型的预设决策规则,根据决策值与重构误差和预测误差的加权和确定被测对象是否疲劳。
进一步地,步骤S43包括:
若所述加权和大于或等于所述决策值,则确定所述被测对象为疲劳;
若所述加权和小于所述决策值,则确定所述被测对象为正常。
具体地,当重构误差和预测误差的加权和大于或等于决策值时,则确定被测对象处于异常状态,即被测对象处于疲劳状态;当重构误差和预测误差的加权小于决策值时,则确定被测对象处于正常状态。
在本实施例中,通过采用预设疲劳检测模型的预设决策规则,判断输入的多模态数据是否为异常状态来判断被测对象是否疲劳,实现了对正常和疲劳两种状态下数据的准确识别。
在本实施例中,通过确定重构误差和预测误差的加权和,根据重构误差和预测误差的加权和和以及预设决策标准公式,确定决策值;根据决策值与重构误差和预测误差的加权和的大小关系,判断被测对象是否疲劳;使得预设疲劳检测模型实现对正常和疲劳两种状态下数据的准确识别,避免了疲劳检测方式中检测结果不够准确,且实时性较差以及检测成本高的问题。
进一步地,在本发明疲劳检测方法第三实施例中,基于图2所述的实施例,步骤S10之前还包括:
步骤S50,获取训练数据集,并对所述训练数据集中的每条多模态数据进行数据预处理得到对应的高维矩阵,以形成高维矩阵集;
参照图4,预设疲劳检测模型包括数据表征子模型和信息记忆子模型,在采用预设疲劳检测模型对多模态数据进行检测,判断被测对象是否疲劳之前,需要对待训练模型进行训练,以生成预设疲劳检测模型。首先,采集多个多模态数据,从而得到训练数据集,并通过量化疲劳状态对多模态数据进行标注,多模态数据主要包括皮肤电阻、皮肤温度、心率、心率间期。皮肤电阻是对交感神经系统最敏感的唤醒方式,也被称作皮肤电反应,它起源于皮肤中汗腺的自主活化,汗腺活动的变化与疲劳、压力和兴奋密切相关。心率和心率间期常被用来间接评估自主神经活动,心率表示平均每分钟心跳次数,心率间期测量连续心脏跳动之间的时间间隔变化。皮肤是人体的主要冷却系统,身体和周围环境之间的自然平衡将提高身体机能,皮肤温度的变化会干扰认知思维能力,对疲劳产生一定的影响。然后,对训练数据集中的每条多模态数据进行数据预处理得到对应的高维矩阵,以形成高维矩阵集;每条多模态数据的采集、以及进行数据预处理得到对应的高维矩阵的过程,可以参照步骤S11至步骤S13,在此不再赘述。
步骤S60,依据所述高维矩阵集中的每个高维矩阵,对待训练模型进行迭代训练,直至待训练模型收敛以生成预设疲劳检测模型。
具体地,将每个高维矩阵中各个模态数据通过对应的各个数据通道输入待训练模型中的数据表征子模型进行表征。在本实施例中,数据表征子模型使用的卷积自动编码器,窗口大小设置为160,卷积自动编码器的编码器交替使用卷积层和最大池化层,卷积自动编码器的解码器交替使用卷积层和上采样层,将解码器得到的T个时间间隔的输出数据输入到待训练模型的信息记忆子模型中,利用前T-1个时刻的所有数据预测第T时刻的值,得到预测误差,整个待训练模型的损失函数为预测误差和重构误差的加权和,即预设的复合型目标函数,优化器选择RMSprop,在本发明实施例中RMSprop算法可以参照以下算法:
Require:全局学习率∈,衰减速率ρ
Require:初始参数θ
Require:小常数δ,通常设为10-6(用于被小数除时的数值稳定)
初始化累积变量r=0
While没有达到停止准则do
从训练集中采包含m个样本{x(1),…,x(m)}的小批量,对应目标为y(i)。
累积平方梯度:r←ρr+(1-ρ)g⊙g
应用更新:θ←θ+Δθ
End while
在待训练模型训练期间,目标是利用反向传播算法最小化复合型目标函数,为了进一步提高模型表现,待训练模型训练实验过程中设置了一些重要的参数,如:
正则化:为了防止训练数据过拟合,加入了dropout层,在每一轮训练过程中,对隐含层的每个神经元以一定的概率p舍弃掉,这样相当于每一个样本都训练出一个模型。假设有H个神经元,那么就有2H种可能性,对应2H模型,训练起来时间复杂度太高。我们通过权重共享的方法来简化训练过程,每个样本所对应模型是部分权重共享的,只有被舍弃掉那部分权重不同。使用dropout可以使一个隐含结点不能与其它隐含结点完全协同合作,因此其它的隐含结点可能被舍弃,这样就不能通过所有的隐含结点共同作用训练出复杂的模型(只针对某一个训练样本),训练过程中不能确定其它隐含结点此时是否被激活,这样就有效的防止了过拟合现象。
超参数优化:本发明实施例模型训练实验过程中使用了Hyperopt库进行参数优化,使用深度学习时,参数的数量会指数式增长,因此自动化选择参数变得尤为重要,Hyperopt库在选择参数和值时实现贝叶斯优化算法,即为超参数分布设置一个先决条件,然后在观察不同实验的同时逐步更新它,能够让模型可以更好地拟合超参数空间,从而更好地找到最小值。本发明实施例实验中,定义了超参数空间(词典中的关键词)和它们的选项集(值),例如时间窗口、神经元个数、学习率、激活函数类型、优化条件、迭代次数等选项。
提前终止:它是一种迭代次数截断的方法来防止过拟合的方法,即在模型对训练数据集迭代收敛之前停止迭代来防止过拟合。具体做法是,在每一个迭代结束时,一个迭代集为对所有的训练数据的一轮遍历,计算验证集的准确率,当准确率不再提高时,就停止训练。这样做既可以防止过拟合也可以节省训练时间。
待训练模型训练完成后得到预设疲劳检测模型,将验证集输入到预设疲劳检测模型中计算判别阈值,在测试阶段,根据阈值即可判断数据属于正常状态或疲劳状态。
其中,数据表征子模型对每个高维矩阵进行表征的表征过程可以参照步骤S20。在t时刻的多模态数据经由L-1层的卷积操作,在L层最终可被表征为特征矩阵,其中,特征矩阵表示为:
在t时刻的多模态数据经由L-1层的卷积操作,在L层最终可被表征为特征矩阵之后,将特征矩阵的时序相关性传递到信息记忆子模型中进行学习。当序列输入时,随着序列的不断增长,原始数据根据时间步的方式表现的越来越差,这是由于原始数据的这种时间步模型设计结构有缺陷,即所有的上下文输入信息都被限制到固定长度,整个模型的能力都同样受到限制,而注意力机制恰好能够解决这个问题。为了整合注意力机制,需要在模型训练过程中存储来自数据表征子模型的历史特征,自动生成包含权重和加权和,计算过程如下:
Cx=[Zt-w+1;...;Zt-1]
wx=soft max(ex)
Zc=(wxCx)T
其中,w表示权重设置个数,rx和Qx分别表示基于注意力的权重向量和矩阵,Cx通过数据表征子模型不断被更新,序列最开始训练时不包含足够的输入,因此方法采用零向量去填充历史上下文信息矩阵,Zc作为基于注意力的上下文输出结果。
在对数据上下文情境进行分析后,将Zc添加到信息记忆子模型,信息记忆子模型可以学习以及存储时序数据中的关键信息,注意力机制则起到了增强模型短期记忆的能力,因此提出了基于注意力机制的信息记忆子模型,其特点是结合了数据的长期依赖性和短期关注点。信息记忆子模型有很多类型,比如递归神经网络(RNN)、长短期记忆网络(LSTM)、门限循环单元(GRU)等。RNN网络的缺点是缺乏对长期依赖关系的学习,因此在本次研究中选择了GRU网络作为信息记忆子模型的单元,它的优点是在保证相似精度的同时,使用比LSTM更少的参数,减小模型复杂度,在实时检测系统中,低复杂度少参数更为重要。GRU网络的模型构造如下式:
ht=σ(Wh·zt+Uh·yt-1+bh)
rt=σ(Wr·zt+Ur·yt-1+br)
其中y0=0,°代表哈达玛积,zt是输入向量,yt是输出向量,ht是更新门向量,rt是复位门向量,W、U、b为模型的参数。
信息记忆子模型的拟采用的目标函数,即预测误差为:
模型构建完成后,使用反向传播的梯度下降法最小化复合型目标函数,即最小化数据表征子模型的重构误差和最小化信息记忆子模型的预测误差,最小化复合型目标函数如下:
该式包含两个组成部分,其中,
为数据表征子模型的重构误差,如果重构误差较低,则说明低维表达z
f能够更好地保留输入样本的关键信息,这里
Ei表示信息记忆子模型的预测误差,通过最小化预测误差,使得数据表征子模型中的低维表达和重构误差能够准确表达当前时间段的关键信息,并有效预测下一个时间段的特征。其中λ为模型目标函数的元参数,用于调整预测误差和重构误差之间的权重大小。
本在实施例中,预设疲劳检测模型在训练过程中,利用复合型目标函数对整个模型进行共同优化和调整,使预设疲劳检测模型达到收敛。预设疲劳检测模型的优势在于采用端到端的形式完成训练,数据表征子模型用于融合多模态数据并能够自动提取特征,信息记忆子模型的训练可以优化数据表征子模型,使数据表征子模型提取到更好的特征、并通过存储长历史信息对下一时间段的特征进行准确预测。预设疲劳检测模型通过端对端学习架构,自动融合和表征多模生理信号,减少人工干预,预设疲劳检测模型在训练过程中不需要疲劳状态下数据的参与,解决了正常与疲劳数据不平衡的问题,使得预设疲劳检测模型对于检测不同程度疲劳状态的泛化能力较强。
此外,本发明实施例还提出一种疲劳检测装置,所述疲劳检测装置包括:
数据收集模块,用于通过可穿戴设备获取被测对象的多模态数据,并对所述多模态数据进行数据预处理得到高维矩阵;
第一数据处理模块,用于将所述高维矩阵输入预设疲劳检测模型中的数据表征子模型,得到所述高维矩阵对应的特征矩阵、以及所述数据表征子模型在所述高维矩阵下的重构误差;
第二数据处理模块,用于将所述特征矩阵输入所述预设疲劳检测模型中的信息记忆子模型,得到所述信息记忆子模型在所述特征矩阵下的预测误差;
疲劳判断模块,用于根据所述重构误差和所述预测误差,判断所述被测对象是否疲劳。
可选地,疲劳判断模块还用于:
确定所述重构误差和所述预测误差的加权和;
根据所述加权和以及预设决策标准公式,确定决策值;
根据所述决策值与所述加权和的大小关系,判断所述被测对象是否疲劳。
可选地,疲劳判断模块还用于:
根据以下公式,计算得出所述重构误差和所述预测误差的加权和,其中公式为:
其中,J(θ)为重构误差和预测误差的加权和,N为预设疲劳检测模型的一次训练的样本数,T为预设疲劳检测模型的一个周期的窗口大小,xit为高维矩阵中在t时刻的数据矩阵,xit’为经过数据表征子模型后得到的、与xit有相同结构的重构值,L(xit,xit’)为求xit与xit’两个数据之间的重构误差,Ei为的信息记忆子模型的预测误差,λ为预设疲劳检测模型的元参数,用于调整重构误差和预测误差之间的权重大小。
可选地,疲劳判断模块还用于:
根据以下公式,计算得出决策值,其中公式为:
其中,threshold为决策值,xi为预先采集的正常状态下的多模态数据,N为预设疲劳检测模型的一次训练的样本数,Error(xi)为xi的重构误差和预测误差的加权和,μ为对于i=1,...,N来说,Error(x)的平均值。
可选地,疲劳判断模块还用于:
若所述加权和大于或等于所述决策值,则确定所述被测对象为疲劳;
若所述加权和小于所述决策值,则确定所述被测对象为正常。
可选地,数据收集模块还用于:
设定多模态数据的采样周期;
通过可穿戴设备获取采样周期内的被测对象的各个模态生理信号的数据流,得到被测对象的多模态数据;
将所述多模态数据整合为高维矩阵。
可选地,疲劳检测装置还包括训练模块,训练模块用于:
获取训练数据集,并对所述训练数据集中的每条多模态数据进行数据预处理得到对应的高维矩阵,以形成高维矩阵集;
依据所述高维矩阵集中的每个高维矩阵,对待训练模型进行迭代训练,直至待训练模型收敛以生成预设疲劳检测模型。
此外,本发明实施例还提供一种疲劳检测设备,所述疲劳检测设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的疲劳检测程序,所述疲劳检测程序被所述处理器执行时实现如上所述的疲劳检测方法的步骤。
本发明疲劳检测装置具体实施方式可以参照上述疲劳检测方法各实施例,在此不再赘述。
此外,本发明实施例还提出一种可读存储介质,所述可读存储介质上存储有疲劳检测程序,所述疲劳检测程序被处理器执行时实现如上所述的疲劳检测方法的步骤。
本发明疲劳检测设备和可读存储介质具体实施方式可以参照上述疲劳检测方法各实施例,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。