本发明涉及一种基于卷积神经网络和手机传感器数据的跌倒检测方法,该方法以数据驱动的方式建立人体跌倒检测模型,充分挖掘了手机传感器数据中的人体行为信息,尤其适合用于对老年人及幼小儿童的安全日常监测。
背景技术:
随着年势的增高,人体各项机能下降,老年人发生意外跌倒的可能性增大,发生意外跌倒并得不到及时救治,会给老年人身心带来严重的伤害,意外跌倒已经成为老年人致伤甚至死亡的直接原因之一,及时的发现和救治是保障老年人身体健康的重要环节。我国老年人口基数大,增长率高,实现有效的跌倒检测具有广泛的应用前景。智能手机内置丰富的传感器,一般包括加速度传感器、陀螺仪、重力传感器、光线传感器等,智能手机计算能力的快速提高使其可满足多种算法的计算开销。借助智能手机传感器建立跌倒检测系统具有普及广、成本低、低侵入的先发优势。大数据和云计算技术的快速进步,使得具有较高计算复杂度的算法模型得以有效实现,基于深度学习技术的多层神经网络模型可以应用到众多领域。在图像识别领域,卷积神经网络(cnn)得到的较为充分的研究,相比以往的方法大幅提高了识别的准确率。在携带智能手机前提下,当人体发生意外跌倒,手机加速度传感器和陀螺仪记录的数据会发生变化,预处理后的传感器数据通过有效的特征工程,可以用来实现人体跌倒检测。人为设计特征工程需要丰富的先验知识,在大规模数据的特征构建过程中并不适用。深度学习通过模拟人脑分层结构,对数据进行非线性映射,抽象了初始数据特征,实现了特征工程与分类算法的无缝结合。
技术实现要素:
为了有效实现人体跌倒检测,本发明提出了一种基于卷积神经网络和智能手机传感器数据的跌倒检测方法,该方法通过卷积神经网络对智能手机加速度数据和角速度数据进行特征映射和分类识别,将加速度数据和角速度数据设计为方阵格式,输入到多层卷积神经网络模型中,训练跌倒检测模型,包括以下步骤:
(1)在人体胸部和腿部分别放置智能手机,通过对智能手机加速度和陀螺仪(角速度)数据的不间断获取,记录人体行为信息,即是否发生跌倒;
(2)传感器记录的每个维度的数据记为一个特征数据,数据通过格式转换形成模型训练数据;即:通过滤波和标准化对初始数据进行预处理,对完成预处理的各特征数据进行样本划分,并对特征数据进行压缩转换;人体发生跌倒行为标签记为1,未发生跌倒记为0,取单个样本所有标签的众数为该样本的标签;
(3)依据数据结构设计卷积神经网络模型,该模型包括卷积层、池化层、全连接层和softmax分类层。卷积层用于做特征非线性映射,池化层用于降低数据规模、提高鲁棒性,全连接层和softmax层用于分类识别;
(4)将训练样本输入模型,学习和优化卷积神经网络的模型参数;可以通过多步训练得到跌倒检测模型;其中卷积神经网络模型以权值向量ω和偏置b以及激活函数f来描述,通过多步训练逐步调整ω和b,激活函数f采用relus,模型优化方法采用随机梯度下降(sgd);
(5)跌倒检测系统实时使用阶段,对手机传感器采集到数据进行如步骤(2)的处理方法,将处理后的样本输入到步骤(4)训练得到的模型之中,根据模型的输出分类结果识别跌倒检测是否发生。
上述技术方案中,所述的步骤2)可以具体包括:
(1)通过iir平滑滤波器对初始手机传感器数据进行滤波处理;
(2)滤波完成后,采用z-score标准化方法对全体数据进行标准化处理;
(3)将3秒内的数据划分为一个训练样本,通过对每25条记录进行平均值替换,将每个初始训练样本的300×12格式数据转换为12×12格式数据;
(4)取单个样本所有标签的众数为该样本的标签,保持样本数据和样本标签同步。
所述的步骤3)构建卷积神经网络模型具体包括:
(1)对12×12的数据输入,第一层卷积层,4×4的卷积核32种,卷积后数据特征为32×12×12,卷积过程使用padding方法;
(2)第二层池化层,2×2的最大池化操作,池化后的数据特征为32×6×6;
(3)第三层卷积层,4×4的卷积核64种,卷积后的数据特征为64×32×6×6;
(4)第四层池化层,2×2的最大池化操作,池化后的数据特征为64×32×3×3;
(5)对两层卷积、两层池化后的样本数据进行fatten操作,将高维数据特征拉伸为一维向量形式;
(6)拉伸后的样本数据传入全连接层和softmax层,分类输出预测是否跌倒。
所述的步骤4)训练卷积神经网络模型的方法具体包括如下步骤:
(1)卷积神经网络训练的参数为连接层间的权值向量ω和偏置b,训练过程使用随机梯度下降优化方法,其包括前向传播和反向传播两个阶段;
(2)初始化权值向量ω和偏置b,分别使用随机初始化和定值初始化;
(3)将训练样本数据t:{xi,yi}输入卷积神经网络,样本特征经各层向前传播;其中,t为训练集,xi,为训练样本特征数据,yi为样本标签;
(4)计算实际输出和样本标签误差ε;
(5)以最小化训练误差为目标调整网络权值;
(6)逐步训练,提升模型准确率。
本发明采用深度学习的方法,以数据驱动的方式建立人体跌倒检测模型,卷积神经网络和传统神经网络联合使用,充分挖掘了手机传感器数据中的人体行为信息,获得了较阈值检测和一般机器学习方法更高的精度。
附图说明
图1为本发明跌倒检测实现流程图;
图2为本发明初始数据格式转换流程图;
图3为本发明卷积神经网络模型构建层次图。
具体实施方式
下面结合附图和实施例对本发明作进一步说明:
图1是本发明跌倒检测实现流程图。
步骤s001,在人体胸部和大腿外侧放置内置加速度传感器和陀螺仪的智能手机,在人体活动过程中记录数据和行为信息。具体如下:在应用对象身上放置两组传感器,一般选择上衣口袋和裤子口袋,上衣口袋的手机加速传感器记为acc1,陀螺仪记为gyro1,裤子口袋加速度传感器记为acc2,陀螺仪记为gyro2。每个传感器在x,y,z三轴上记录数据,总计12个特征的数据。对每次传感器数据记录相应的人体行为标签,发生跌倒记为1,未发生跌倒记为0,将数据与标签同步对应。
步骤s002,初始数据进行格式转换,形成模型训练数据。传感器记录的每个维度的数据记为一个特征数据,初始数据需要进行平滑滤波做初步预处理、数据标准化方法处理。传感器记录频率为100hz,划分3秒内的全部特征的300次数据记录为一个训练样本,视为一个跌倒检测分析单元。将训练样本数据和标签同步对应,形成一个有标签的训练样本。需要对全部数据和标签做如是转换。
步骤s003,依据数据结构设计卷积神经网络模型,该模型包括卷积层、池化层、全连接层和softmax分类层。卷积层用于做特征非线性映射,池化层用于降低数据规模、提高鲁棒性,全连接层和softmax层用于分类识别;
步骤s004,步骤s004,将s002步骤完成的数据输入到s003步骤构建的模型中,卷积神经网络训练参数为连接层间的权值向量ω和偏置b,激活函数f采用relus,模型优化方法采用随机梯度下降(sgd)。该算法分为两个阶段。(1)前馈传递:对每个训练过程简单输出计算值。(2)反向传播:从输出层反向传播信号误差,权值被作为反向传播误差信号的函数进行调整。通过训练数据和标签进行不多训练模型。
步骤s005,运用训练完成的模型进行跌倒检测。通过智能手机传感器实时采集加速度和角速度数据,做同步骤s002的预处理和格式化。处理的样本包含传感器转换后的数据,需要通过模型预测标签。转换后的待预测样本数据输入步骤s004训练的卷积神经网络模型中,模型输出预测结果。
图2是本发明初始数据转换流程图。设置在身体上的四个三轴传感器获取到了12个特征的数据,以及记录的人体行为标签,传感器以100hz记录数据。首先对每个特征的数据进行iir平滑滤波处理,并采用z-score标准化操作对滤波后的数据进行标准化。标签的记录密度同传感器数据一致,实际操作过程中尽可能提高记录密度。对初始数据做划分以确定训练样本数据,将3秒内的12个特征的数据划分为一个分析单元。对3秒内每个特征的300条数据记录,每25条做平均值替换,替换后每个样本数据格式由300×12被转换为12×12。标签记录计算众数作为该样本的行为标签。
图3是本发明卷积神经网络模型构建层次图。模型包括以下层次:
(1)第一层采用32个4×4的卷积核对训练样本的不同特征进行提取,卷积核从样本数据左上角开始,从左往右至上而下,以步长等于1的方式扫描样本的全部数据,卷积过程采用padding方法,激活函数relus,卷积后的样本数据为32×12×12。
(2)第二层使用2×2的最大池化层,对2×2范围内的数据进行最大值替换。有效降低了样本分辨率,提高了鲁棒性,池化后的样本数据为32×6×6,降低了3/4的规模。
(3)第三层采用64个4×4的卷积核继续抽象数据特征,卷积核从样本数据左上角开始,从左往右至上而下,以步长等于1的方式扫描样本的全部数据,卷积过程采用padding方法,激活函数relus,卷积后的样本数据为64×32×6×6。
(4)第四层使用2×2的最大池化层,池化后的样本数据为64×32×3×3。
对两层卷积、两层池化后的样本数据进行fatten操作,将高维特征的样本数据拉伸为一维向量形式。拉伸后的样本数据传入全连接网络和softmax分类层。