掌桥专利:专业的专利平台
掌桥专利
首页

一种睡姿学习和识别方法

文献发布时间:2023-06-19 16:09:34



技术领域

本发明涉及智能枕头领域,具体涉及一种智能枕头的睡姿学习和识别方法。

背景技术

现代社会,许多人天天用电脑,由于姿势不对,导致颈椎病频发,严重影响人们生活,所以许多人睡觉时,都希望平卧时枕头低一些,侧卧时枕头可以高一些,这样对颈椎的保护很有帮助,这就涉及到自动控制枕头的高度问题,同时就面对一个睡姿检测的问题,目前,睡姿检测是难点所在。

发明内容

针对上述问题,本发明旨在提供一种睡姿学习和识别方法。

为了实现这个目的,本发明采用以下技术方案:一种睡姿学习和识别方法,至少包括:一个包含若干压力传感器的睡姿检测传感带,一个嵌入式微处理器;通过采集不同人在平睡和侧睡状态下的若干组传感器数据,用这组数据训练一个包含若干神经元的多层神经网络分类器,将这个训练好的神经网络用嵌入式微处理器编程实现,就可以实现睡姿识别。

附图说明

图1 是睡姿检测学习的原理图。

图2是平睡时睡姿检测器的受压图。

图3是侧睡时睡姿检测器的受压图。

图4 是一个2输入,4个隐层节点,一个输出节点的神经网络结构图。

具体实施方式

下面结合附图和具体实施例对本发明做进一步详细说明.

一种睡姿学习和识别方法,至少包括:一个包含若干压力传感器的睡姿检测传感带,一个嵌入式微处理器;通过采集不同人在平睡和侧睡状态下的若干组传感器数据,用这组数据训练一个包含若干神经元的多层神经网络分类器,将这个训练好的神经网络用嵌入式微处理器实现,用以识别睡姿。

参考图(2)和图(3),睡姿检测传感带放在枕头下面,可以在肩膀和颈椎的位置,也可以安装在更下面;其长度应比正常人的肩膀稍微宽一些,宽度一般为几到几十厘米;图(2)和图(3)分别是平睡和侧睡时睡姿检测传感带的受压情况,可以看出,使用者平睡和侧睡时,睡姿检测传感带的受压面积是不同的,睡姿检测传感带内被压住的压力传感器输出会不同,通过采集不同的人平睡和侧睡的数据,分成两组,一组是平睡数据,一组是侧睡数据,侧睡数据对应的输出为1,平睡数据对应的输出为0,将两组数据随机打乱,用以训练一个多层神经网络,获得神经网络的权值和偏置值,训练后的神经网络就具有分类能力,可以识别出两种睡姿。

作为优化,采集到的传感器数据在用于训练神经网络前,还需要归一化(normalization);第一种是归一化数据使得数据在一个标准的范围――通常是负1到1,可以通过下面的方法实现:

其中是包含数据集中输入向量每一维度上最小值的向量,是包含相应最大值的向量,表示两个向量按元素进行除法操作,是归一化后的输入向量。

另一种归一化是调整数据,使其具有特定的均值和方差――通常是0和1 ,可以使用如下的转换实现:

其中,是数据集中的输入向量的平均,是包含输入向量中的每个元素的标准差的向量。通常情况下,对数据集中的输入向量和目标向量都要归一化。

除了线性归一化,还有非线性变换,特征提取,主成分分析,核主成分分析等方法。

下面举例一个简化的单隐层神经网络,详细说明本发明的工作原理和计算过程,图4是一个2输入,1输出,包含4个隐层神经元的神经网络; 输入层与隐层神经元采用全连接;隐层神经元激励函数采用“对数-S”函数g(x)=1/1+e−(x+b),这个函数的特点是可以无限次求导数,因此误差函数对于前面每一层的参数都可以求导,这样误差才能进行反向传播;输出层采用直接求和的线性函数;

网络的计算过程如下:输入是睡姿检测传感带内的两个压力传器经过归一化处理的值,写成向量为X=(x1 x2) ;输入层与4个隐层结点的连接权值写成4行2列矩阵为:W(w11w21,w12 w22,w13 w23,w14 w24);隐层输出向量A=(a1 a2 a3 a4); 隐层到输出层的连接权值V=(v1 v2 v3 v4); 隐层的输出等于g(V)T=g(W*XT+b); 也即每一个隐层神经元用“对数-S”函数g(x)对前一层的输入计算输出值;最终输出f(x)=A*VT+c;其中,A是隐层节点的输出行向量,V是隐层到输出层权值行向量,c是输出神经元的偏置。

神经网络的权值和偏置必须经过学习,才具有分类能力。一般的,神经网络都采用反向传播算法(backpragation)进行学习,采用均方误差即F(x)=E(e2)=(t-a)T(t-a)衡量网络的当前工作质量(这里的t是目标输出,a是实际输出),同时也做为网络优化目标函数,当均方误差达到极小时,网络结束学习;权值w的调整采用梯度下降法,每一次调整权值的方向是误差F(x)对权值Wi,j的偏导数的负方向,为了使学习平稳,计算时对这个导数值乘上一个小于1的学习率因子a,a太大会造成学习振荡,误差不收敛;a太小,学习会非常缓慢,一般取0.01-0.2;偏置值b,c的学习调整和权值的学习调整方法一样,两个学习调整参数的公式如下:

wji(k+1)= wji(k)-a*∂F(x)/∂Wji,

bji(k+1)= bji(k)-a*∂F(x)/∂Wji

wji(k+1)第j层第i个神经元的下一次的权值,bji(k+1)是第j层第i个神经元下一次的偏置值;

wji(k)是第j层第i个神经元的当前权值,bji(k)是第j层第i个神经元的当前偏置值。

有两种学习方法,一种采用增量学习,一种采用批量学习;增量学习的过程是每输入一个样本,计算并更新网络的权值和偏置值,直到结束学习;而批量学习是整个样本一次连续输入,每一次的误差累积起来取平均值(除以样本数),用以上两个公式计算新的权值和偏置值。每一次计算完,判断误差的梯度小于一个事先设定的值时,网络结束学习。

网络训练好后,用实际的数据输入,当输出大于(侧睡输出-平睡输出)/2时,判断为侧睡,反之判断为平睡。

以上用一个2-4-1的简化单层神经网络说明了本发明所述算法的工作过程,实际的输入可以远远多于2个,隐层神经元的个数和层数目前没有一个具体的算法计算,需要通过调试确定,一般隐层层数取1或者2层,样本的数量不要小于待寻优参数的个数;隐层神经元的激励函数也有多种,输出层的激励函数也有多种可选,输出神经元的个数也是可变的,可根据实际效果调整。

以上所述,仅为本发明的较佳实施例,并不用以限制本发明,凡是依据本发明的技术实质对以上实施例所作的任何细微修改、等同替换和改进,均应包含在本发明技术方案的保护范围之内。

技术分类

06120114728209