采用卷积神经网络的老年人跌倒检测系统设计
Design of elderly fall detection system using CNN
通讯作者:
收稿日期: 2018-05-4
Received: 2018-05-4
作者简介 About authors
吕艳(1982—),女,博士,从事语义网,数据建模研究.orcid.org/0000-0001-8991-085X.E-mail:
为了利用便携式设备准确检测老年人的跌倒状况,针对传统算法中人为设计特征造成的不完备性,构建一种基于卷积神经网络(CNN)的老年人跌倒检测模型. 以智能手机内置的三轴传感器作为数据获取源,将采集的人体姿态信息进行滤波、标准化、采样等操作后,输入到所设计的模型中;采用梯度下降和适应性动量优化方法进行多层卷积神经网络训练和优化,获得模型关键参数训练并优化模型关键参数;利用学习到的深层次特征进行样本分类. 实验结果表明:所设计的模型对于跌倒检测的准确率明显高于一般的机器学习算法模型,并且在对跌倒和非跌倒的区分检测中,精确率和召回率都保持了较高的稳定水平.
关键词:
A fall detection model based on convolutional neural network (CNN) was constructed, in order to use portable device to accurately detect the fall of the elderly and to avoid the incompleteness caused by the artificial designed features in traditional algorithms. The three-axis sensor built in the smart phone was used as the data acquisition source; the collected human body posture information was filtered, standardized, and sampled, etc. and then inputted into the designed model. Multi-layer CNN was used to train and optimize the key parameters of the model, combined with gradient descent and adaptive moment estimation optimization methods; the learned deep features were used for samples, classification. The experimental results show that the accuracy of the designed model for fall detection is significantly higher than that of the general machine learning algorithm model. In addition, the evaluation indicators have maintained a high level of stability in the detection of falls and non-falls.
Keywords:
本文引用格式
吕艳, 张萌, 姜吴昊, 倪益华, 钱小鸿.
LV Yan, ZHANG Meng, JIANG Wu-hao, NI Yi-hua, QIAN Xiao-hong.
基于环境感知的方法主要采用机器视觉检测,该方法中的视频图像易受到遮挡且严重侵犯了应用对象的个人隐私[4],不适用于日常生活场景,因而很多学者转向基于三维传感数据方法的研究[5]. 跌倒检测的本质是一种分类问题,可以通过有监督或无监督的分类模型算法来实现该过程. 常用的分类方法有基于规则的分类器、最近邻分类器、决策树分类器、贝叶斯分类器、支持向量机、人工神经网络以及各类组合方法[6]. 人体运动过程可以被描述为一组马尔可夫过程. Lim等[7]将阈值方法与2层隐马尔可夫分析方法相结合,设计的跌倒检测模型实现了较高的实验准确率. Aziz等[8]基于人体三维加速度数据对比分析了阈值方法和多种机器学习方法,结果表明实验中采用的机器学习算法性能均优于阈值方法,支持向量机模型具有最好的敏锐度和准确率. Ozdemir等[9]利用可穿戴传感器采集的数据分析了包括最近邻、动态贝叶斯、人工神经网络在内的6种机器学习方法,以灵敏性、特异性和准确率3个指标对比了各类方法的性能,结果神经网络模型表现出一定的优势[10].
机器学习模型的性能受制于多方面因素,其中原始数据、特征工程和分类算法是主要影响因素. 人的日常活动包括躺、卧、行走等多种姿势,这些活动的三维加速数据与跌倒的三维数据非常相似,利用机器学习算法识别的错误率较高。样本数据的特征属性选取以及模型构建过程的阈值设定过分依赖先验知识,在大规模数据的特征构建过程中效果不佳. 本文以智能手机的三轴传感器为数据获取源,使用Tensor flow深度学习框架,搭建多层卷积神经网络,将特征工程和分类识别任务合为一体,减少人为设计特征造成的不完备性;采用2组跌倒样本数据进行实验验证和对比.
1. 跌倒检测系统设计
跌倒检测的关键在于对样本数据特征的提取. 深度学习方法通过模拟人脑分层结构,对输入数据进行非线性映射,抽象数据特征. 卷积神经网络(convolutional neural network,CNN)是其中应用较为广泛的一种建模方法,其本质是一种特征编码过程,通过降低单层特征数目,提高特征维度,已被广泛应用于图像识别领域[11]. 本文采用三轴加速度传感器和三轴角速度传感器作为数据获取源,数值的时域属性主要有最大/最小值、平均值、方差、偏度、峰度等,频域属性主要有频谱分量、频谱平坦度、频谱中心等. 在构建人体三维空间模型时,信号幅度矢量定义空间三轴速度矢量的合加速度,反映了人体动作的剧烈程度;信号强度区域定义三轴速度在时间t内的平均变化率,反映单位时间内人体动作的改变程度;人体与垂直方向的夹角反映人体姿态. 对人体三轴加速度、三轴角速度的数据进行结构转换,采用有监督的方法训练卷积神经网络跌倒检测模型,其实现过程如图1所示.
图 1
图 1 采用卷积神经网络(CNN)的老年人跌倒检测实现过程
Fig.1 Elderly fall detection process using convolutional neural network (CNN)
1.1. 卷积神经网络模型
设计的跌倒检测卷积神经网络模型包含卷积操作、采样操作、拉伸操作、全连接网络和Softmax网络,用于实现样本数据特征的抽象化、模型的鲁棒性和分类识别任务,激活函数用于网络从输入到输出的非线性映射,其模型结构如图2所示.
图 2
跌倒检测过程可简化为二值分类任务,假设模型输入样本的数据格式为
激活函数
式中:y为输入值,f(y)为输出值. 当输入y<0时,输出都是0;当输入y≥0时,输出等于输入.
1.2. 特征提取
智能手机内置传感器中与人体姿态关联较强的有加速度传感器和角速度传感器2类,其频率可以达到100 Hz,其数据为时间序列. 通过模拟完整跌倒过程实验发现,从失稳到倾斜再到最后倒地,整个跌倒过程一般不超过3 s. 因此本研究将单个样本数据定义为3 s内传感器记录的数据,通过对样本数据进行整理和结构转换,使其满足卷积神经网络模型的数据输入. 对格式为
1.3. 模型优化过程
卷积神经网络模型的学习本质上是一个权重矩阵W和偏置向量b优化调整的过程. 通过输入大量有标签的训练样本数据,被初始化的W和b逐步接近目标值. 本文的模型优化过程使用了梯度下降算法,为了避免算法陷入局部最优,模型优化过程使用适应性动量估计算法,目的是给模型优化过程增加一定的动量项,当遇到局部最优情况时,可加快收敛速度并减弱震荡。
1.3.1. 梯度下降优化
基于梯度下降优化导出的反向传播算法(back propagation,BP)主要包括2个阶段:1)前馈传递:样本数据通过网络逐层向前传递,数据特征逐步抽象并最终输出分类结果. 2)反向传播:从输出层向输入层反向传播一个误差信号,将权值作为反向传播误差信号的函数进行调整. 网络的输出结果与数据标签的误差被返回到模型中,用于对网络的参数进行修正.
本文使用的卷积神经网络模型在结构上是一种前馈网络,以误差平方和为目标函数的前馈神经网络,对于每一个输入模式p,有
式中:
优化过程使用ReLUs激活函数,根据式(1),隐层单元和输出单元均使用求和单元。采用梯度下降法更新权重,如式(3)、(4)所示.
式中:
式中:
1.3.2. 适应性动量估计
适应性动量估计(adaptive moment estimation,Adam)本质上是带有动量项的均方根反向传播算法,通过梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率. Adam的优势是经过偏置调整后的学习率,在每次迭代过程中都保持在一个确定范围内,参数的变化较为平稳,同时由于对计算内存的需求较小,其适用于非凸优化和高维数据集的模型优化过程.
2. 实验与结果分析
以2组数据集作为实验分析对象,分别标记为Dataset1和Dataset2. 数据处理环境如下:处理器Intel(R)Core(TM)i5-5200U CPU @ 2.20GHz 、RAM 4.00GB 、Ubuntu 16.10 64位操作系统DELL PC,使用Tensorflow Python API r1.1构建模型[12],并结合Tensorboard工具对模型结构和检测结果进行说明. 选择6种常用算法作为对照组,对照算法的数据处理环境如下:处理器Intel Xeon E5-2609 V3 CPU@1.90GHz、RAM16GB、Windows Server 2008 r2 64位操作系统IBM塔式服务器,使用Python+Sklearn构建模型.
2.1. 数据准备
第一组数据集Dataset1通过智能手机内置的微型传感器采集得到,如图3所示. 使用的手机型号为一加手机X,记录数据的APP为Sense-it,如图4(a)所示. 数据通过普通加速度传感器、陀螺仪(角速度传感器)和线性加速度传感器这3类传感器获得. 普通加速度传感器记录了包含重力的三轴加速度数据,产品型号为意法半导体LIS3DSH,是纳米级超低功耗高性能三轴加速度传感器,如图4(b)所示. 陀螺仪记录了三轴旋转角速度数据,产品型号为意法半导体L3GD20,是采用微加工工艺制造的低功耗角速度传感器,如图4(c)所示. 线性加速度传感器记录了不包含重力的三轴加速度数据,产品型号为博世半导体BMA250,如图4(d)所示. 数据采集过程记录了加速度、角速度和线性加速度3类数据,如图3所示. 将智能手机放置在上衣口袋,大概位于心脏位置,模拟随机跌倒过程并同步记录传感器数据和标签数据. 跌倒情形标签记录为意外跌倒(label=1),站立走动等情形标签记录为日常活动(label=0),数据记录频率为100 Hz,记录时长为7 200 s,共有72万组数据. 3种传感器共记录了9组特征数据,分别为普通加速度传感器在x轴、y轴和z轴上的加速度值;陀螺仪在x轴、y轴和z轴上的角速度值;线性加速度传感器在x轴、y轴和z轴上的线性加速度值.
图 3
图 3 手机传感器数据(Dataset1)采集过程
Fig.3 Acquisition process of mobile phone sensor data (Dataset1)
图 4
第二组数据集Dataset2来自UCI机器学习数据库,由英国考文垂大学Cogent Labs提供[13]. 实验邀请青年志愿者模拟老年人跌倒情形,通过在实验对象胸部和腿部分别设置2组三维传感器收集实验数据,每组传感器包括1个三轴加速度传感器和1个三轴角速度传感器. 传感器数据和标签数据记录方法同Dataset1一致,传感器数据采集频率为100 Hz,志愿者在1 200~2 000 s内随机模拟数次跌倒过程,共有将近150万组数据量,2组三轴传感器共记录12组特征数据.
2.2. 数据预处理
数据集Dataset1和Dataset2的初始采集数据记为
其中,
式中:
加速度传感器测量数据的单位为
式中:
在基于卷积神经网络模型设计的跌倒检测系统中,训练样本数据的输入格式区别于一般机器学习模型向量形式的输入数据,卷积神经网络的输入数据采用矩阵形式,输入样本的数据格式应为
在建立训练样本的过程中,考虑到单个行为动作的用时,本文将3 s内的数据作为一个训练样本,同时为了过渡2个动作,将2组训练样本间重叠25%的数据. 由于传感器数据采集频率为100 Hz,单个训练样本包含了300组左右的三维特征数据. 在Dataset1中,一个训练样本初始矩阵形式是300×9,其数据特征维度是9,为了便于数据的处理,将训练样本的三维特征数据数量取为297组. 将297组数据再划分为9组. 由于1 s内记录了100组数据,大部分数据都是相差无几,取平均数更能反映出在这段时间内的平均状况,因此对每33组数据进行平均值替换,转换后的训练样本数据结构为
图 5
图 5 用于跌倒检测的训练样本数据格式转换
Fig.5 Training sample data format conversion for fall detection
由于转换后的Dataset1和Dataset2的数据中跌倒的样本数据占比极小,样本数据不均衡,为了对跌倒检测更加准确,本文采用SMOTE(Synthetic minority over-sampling technique)算法对跌倒的样本数据进行上采样操作,对非跌倒的样本数据中的边界样本、噪音样本和冗余样本进行去除的下采样操作,通过上采样和下采样结合的采样方法,使得跌倒样本和非跌倒样本的比例为1∶1. 采样前、后的样本分布详见表1.
表 1 采样前、后的样本数量分布
Tab.1
数据集 | 跌倒样本 | 非跌倒样本 | |||
采样前 | 采样后 | 采样前 | 采样后 | ||
Dataset1 | 328 | 656 | 2 072 | 656 | |
Dataset2 | 845 | 1 690 | 4 155 | 1 690 |
SMOTE算法的原理如下:对于少数类样本中的每一个样本,以欧式距离为标准计算该样本到少数类样本集中所有样本的距离,得到其K近邻;根据样本不平衡比例设置一个采样比例以确定采样的倍率;对于每一个少数类样本,从该样本的K近邻中随机选择若干个样本;对于随机选择出来的近邻样本,重新构建新的样本,完成上采样操作.
2.3. 模型训练与参数优化
跌倒检测卷积神经网络模型结构的设计依赖于训练样本的属性和格式. 本文实验中2组数据集属性一致,经过预处理后,训练样本数据分布格式分别为
图 6
图 6 采用卷积神经网络的跌倒检测模型结构设计
Fig.6 Structure design of fall detection model using CNN
将数据集Dataset1和Dataset2基于卷积神经网络建立的跌倒检测模型,分别记为Model_Dataset1、Model_Dataset2. 模型主要参数有
使用损失函数定义卷积神经网络模型的效果以及优化的目标,估量模型预测值和真实值的不一致程度,损失函数越小,模型的鲁棒性越好. 将训练样本数据输入到模型中,逐步调整
式中:
以上2组模型的训练过程均采用适应性动量估计(Adam)优化算法,卷积和池化操作过程中均引入了Padding方法,使得样本数据在卷积前、后的格式保持不变. 模型的准确率定义如下:
其中,TP为正类数,即跌倒检测为跌倒;TN为负类数,即非跌倒检测为非跌倒;FP为负类判定为正类,即非跌倒检测为跌倒;FN为正类判定为负类,即跌倒检测为非跌倒.
图 7
图 7 跌倒检测模型数据集训练结果(Dataset1)
Fig.7 Fall detection model training data set training results (Dataset1)
图 8
图 8 跌倒检测模型数据集训练结果(Dataset2)
Fig.8 Fall detection model training data set training results (Dataset2)
2.4. 结果分析
将检测数据输入训练得到的跌倒检测模型,计算其跌倒检测的准确率,并且采用了4个指标对算法的性能进行评估,分别是精确率(P)、召回率(R)、F1值和准确率(A). 精确率表示算法分类得到的正确跌倒数和算法分类得到的总跌倒数之间的比例;召回率表示算法分类得到的正确跌倒数和数据集中的总跌倒数之间的比例;F1值表示准确率和召回率之间的均衡,通常用F1值作为评估算法性能的综合指标;准确率表示算法分类的跌倒数和非跌倒数与数据集中样本的类标相比的总准确率. 精确率、召回率和F1值定义如下:
选择支持向量机(SVM)、决策树(decision tree,DT)、随机森林(random forest,RF)、梯度增强树(gradient boosting decision tree,GBDT)、AdaBoost、Voting六种分类模型作为对比. 上述6种分类模型在特征工程阶段采用一种基于符号化聚合近似(SAX)的改进算法. 2组数据集的准确率检测结果如图9所示,各算法模型的检测结果和性能评估如表2所示. 数据集Dataset1的检测结果显示,AdaBoost模型的检测准确率最低、为85.0%;随机森林模型的准确率最高,为89.8%;随机森林模型的性能(F1)在机器学习模型中最高,达到了89.9%,而基于卷积神经网络设计的跌倒检测模型的准确率达到了99.2%,较随机森林模型提高了1%,并且在各个指标上,卷积神经网络模型均高于6种机器学习模型. 数据集Dataset2的检测结果显示,随机森林模型的准确率最高,为88.8%,并且模型的性能也较其他的机器学习分类模型要好,而CNN模型的准确率达到了99.8%,并且在各个评估指标上都大幅领先于其他模型,在对500组样本的跌倒检测中,仅有1组判断错误.
图 9
图 9 采用不同分类模型得到的跌倒数据集Dataset1和Dataset2检测准确率对比
Fig.9 Detection accuracy of different classification models on fall datasets Dataset1 and Dataset2
表 2 跌倒数据集Dataset1和Dataset2的各模型检测结果对比
Tab.2
% | |||||||||||
分类模型 | P | R | F1 | A | |||||||
Dataset1 | Dataset2 | Dataset1 | Dataset2 | Dataset1 | Dataset2 | Dataset1 | Dataset2 | ||||
SVM | 93.4 | 76.8 | 82.8 | 92.1 | 87.8 | 83.7 | 88.1 | 82.2 | |||
DT | 90.0 | 80.9 | 87.9 | 68.1 | 88.9 | 73.9 | 88.8 | 76.1 | |||
RF | 91.3 | 89.0 | 88.6 | 88.5 | 89.9 | 88.8 | 89.8 | 88.8 | |||
GBDT | 90.8 | 86.1 | 87.0 | 86.6 | 88.8 | 86.4 | 88.7 | 86.4 | |||
AdaBoost | 87.6 | 79.9 | 82.7 | 82.5 | 85.0 | 81.2 | 85.0 | 80.9 | |||
Voting | 91.4 | 84.7 | 86.7 | 88.0 | 89.0 | 86.3 | 88.9 | 86.1 | |||
CNN | 99.5 | 100 | 98.5 | 99.5 | 98.9 | 99.7 | 99.2 | 99.8 |
为了衡量模型对于跌倒和非跌倒的区分检测,对2组数据集进行非跌倒的精确率和召回率的横向比较,如图10、11所示. Dataset1的比较结果显示,各类模型跌倒检测的精确率均高于非跌倒检测的精确率。本文设计的卷积神经网络模型在跌倒检测和非跌倒检测中的精确率均高于其余6种对比模型,分别达到了99.5%和98.51%. 同时对比Dataset1中各个模型的召回率可知,卷积神经网络模型在跌倒和非跌倒检测上的召回率都是最高的. Dataset2的对比结果同样显示,卷积神经网络模型不论在精确率上还是在召回率上都是大幅领先于其他6种模型. 综上可知,卷积神经网络模型在跌倒和非跌倒的区分检测上均具有较高的精确率和召回率,可以精确识别跌倒与非跌倒.
图 10
图 10 采用跌倒数据集Dataset1的各模型精确率和召回率比较
Fig.10 Comparison of accuracy and recall of each model using fall dataset Dataset1
图 11
图 11 采用跌倒数据集Dataset2的各模型精确率和召回率比较
Fig.11 Comparison of accuracy and recall of each model using fall dataset Dataset2
3. 结 语
为了准确检测老年人的跌倒状况,本文以智能手机等设备内置的三轴传感器作为数据获取源,采用卷积神经网络构建了老年人跌倒检测模型。针对传统算法人为设计特征造成的不完备性,本文将模型建立过程中的特征工程和分类识别任务合为一体,采用梯度下降和适应性动量估计方法进行模型训练及优化,避免算法陷入局部最优,并利用优化获得的模型关键参数,将数据样本逐层抽样,学习深层次特征进行样本分类。为了消除数据采样过程的噪音、量纲、样本分布不均等问题对模型分类准确率的影响,采用IIR滤波器对采集的人体姿态信息数据进行处理,解决了噪音数据干扰的问题;对滤波后的数据采用Z-SCORE方法进行标准化处理,解决了不同特征数据量纲不一致的问题;对标准化后的数据进行上采样处理,解决了样本数据分布不均的问题。采用2组数据集进行模型验证和分析,实验结果表明:本文所设计的模型对于跌倒检测的准确率、召回率、精确度等各项评价指标明显高于其他常用的机器学习算法模型,并且在对跌倒和非跌倒的区分检测中,精确率和召回率都保持了较高的稳定水平。
参考文献
中国老年跌倒研究的现状与对策
[J].
The present situation and countermeasures of the study of senile falls in China
[J].
养老机构老年人跌倒效能状况及其影响因素分析
[J].DOI:10.3760/cma.j.issn.1672-7088.2016.06.004 [本文引用: 1]
Investigation on the fall efficacy of elderly people in nursing homes and its influencing factors
[J].DOI:10.3760/cma.j.issn.1672-7088.2016.06.004 [本文引用: 1]
Review of fall detection techniques: a data availability perspective
[J].
Enhanced characterization of an accelerometer-based fall detection algorithm using a repository
[J].
Accelerometer-based fall detection using feature extraction and support vector machine algorithms
[J].
Fall-detection algorithm using 3-axis acceleration: combination with simple threshold and hidden markov model
[J].
A comparison of accuracy of fall detection algorithms (threshold-based vs. machine learning) using waist-mounted tri-axial accelerometer signals from a comprehensive set of falls and non-fall trials
[J].DOI:10.1007/s11517-016-1504-y [本文引用: 1]
Detecting falls with wearable sensors using machine learning techniques
[J].DOI:10.3390/s140610691 [本文引用: 1]
Detecting atrial fibrillation by deep convolutional neural networks
[J].
/
〈 |
|
〉 |
