基于BP神经网络的人体行为识别方法研究与实现
2017-03-22吴婷周宇
吴婷+周宇
摘要:针对人体行为识别问题,本文设计实现了基于BP神经网络的人体行为识别方法。该方法在对原始三维加速度信号预处理后提取出特征值,并将向量空间划分为训练样本集和测试样本集。通过不断修正网络参数优化学习效果。经过学习后的BP神经网络达到了较高的人体行为识别正确率,并对所研究的7种日常行为都较好识别。
关键词:BP神经网络;三维加速度;特征值提取
中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2016)51-0197-02
随着物联网的高速发展,智慧医疗的应用也越来越广泛,人体行为识别作为智能监测中一个重要的研究方向,也逐渐受到各国学者的广泛关注。随着我国人口老龄化不断加剧,老年人意外摔倒问题受到人们关注,而人体行为识别方法的研究将推进更有效更准确的跌倒检测算法研究。按照信号的获取方式,可将现有的人体行为识别方法分为以下两种:基于计算机视觉的方法和基于传感器的方法。基于三轴加速度信号的识别方法属于第二种,第二种方法相较于第一种具有低功耗、高精度、携带方便等优点。目前BP神经网络是目前人工神经网络中研究最深入、应用最广泛的一种。本文选用已有的三轴加速度信号数据集,在MATLAB仿真环境下,基于BP神经网络设计并实现人体行为识别算法。
一、数据预处理
本文选用的三轴加速度数据来源于南加州大学人体行为数据集,这个数据集包括了对14名受测者的12种动作的三轴加速度信号采集。采集过程中,三轴加速度传感器位于受测者右前臂;采样频率为100Hz;12种动作每种动作由每名受测者做5次,即对每种动作采集70个样本,每个样本采集时长不定但是足够捕获动作的所有信息。考虑实际意义,本文只选取上述14名受测者的7类动作,共计490个加速度数据样本。在特征值提取前需要对滤波得到的加速度数据再进行加窗处理。选用窗口长度N为512的矩形窗,则结合采样频率可得窗口时间跨度为5.12秒,足够包含单个完整动作。经过预处理后的数据才可以用于后续的特征值的提取,并用来训练和测试所建立的BP神经网络。
二、BP神经网络的建立
BP神经网络由输入层、输出层和隐含层组成,其中输入层与输出层各为一层,隐含层可以有多层。在网络中,相邻两层间实现全连接,而处于同一层的神经元之间无连接。BP学习算法需要提供教师信号。BP网络的学习过程包括工作信号的正向传播和误差信号的反向传播,并通过修改连接两个神经元的边的权值来使得误差函数达到最小。①工作信号的正向传播。设X■■表示第k层神经元i的输入总和,Y■■为输出,第k-1层神经元j到第k层神经元i的权值为Wij,则有如下函数关系:Y■■=f(X■■)X■■=■W■Y■■ (1)
称f激励函数,通常取f为非对称Sigmoid函数,即 f(X■■)=■ (2)
②误差信号的反向传播。设输出层为第m层,则输出层第i个神经元的实际输出为Y■■,设对应的教师信号为Yi,定义误差函数e为 e=■■(Y■■-Y■)■ (3)
定义d■■表示误差函数e关于U■■的偏导数,可推得 当k=m时,有d■■=Y■■(1-Y■■)(Y■■-Y■)(4)
當k ③权值的修正。设某一次学习权值的修改量为ΔWij,考虑两次学习的相关性,可定义权值修改量如下: ΔWij(t+1)=-μ·d■■·Y■■+γ·ΔWij(t)(6) 其中,γ为表示两次修正间的相关程度的系数, μ为学习速率。综上,BP神经网络的学习目标就是:找一组最合适的边的权值Wij,使得误差函数满足 e=min■■(Y■■-Y■)■ (7) 三、BP神经网络结构设计 1.输入层。BP神经网络的输入即为各种行为的特征向量,因此首先需要选取合适的特征值构建特征向量。根据统计学原理和所选加速度信号数据集的特征,选取5个特征值:均值、方差、相关系数、偏度和峰度。5个特征值均以窗长N为提取单位,特征值的计算直接使用MATLAB已有的函数。以窗长为单位,分别计算三个轴的加速度信号的上述5种特征值,一次特征值提取可得到一个15维的特征向量,将此向量作为BP神经网络的输入,则输入层可有15个神经元。 2.隐含层。隐含层待定的系数包括隐含层的层数和每个隐含层包含的神经元个数。为提高学习速率,通常选用单隐层的神经网络,但为获得更好的学习效果,本文考虑单隐层以及双隐层的BP神经网络。 关于隐含层神经元的个数n1选取,本文参考公式如下:n■=■+p (13) 其中,n0为输入层神经元个数,nm为输出层神经元个数,p为[1,10]之间的一个常数。在利用上述公式估算的基础上,根据网络学习的结果对隐含层神经元个数再做调整,以达到最好的学习效果。 3.输出层。神经网络的输出层表示人体行为识别的结果,即判断该动作属于哪一类。根据所研究的7类动作,可以构造一个7维的输出向量。每一个输出向量对应每一次输出,向量的每一维对应每一类动作。若输入特征值来源于第Z类动作,则期望的输出向量为第Z维置“1”,其余维置“0”,而实际的输出向量的7个维度的数值分别代表属于7种动作的可能性大小,取数值最大的维度为分类结果。 四、BP学习算法的执行 在确定上述网络结构后,使神经网络执行如下学习算法:(1)首先设定各层的权值Wij的初值,通常选较小的非零随机数。(2)确定训练数据集,输入一个特征向量X=(x1,x2,x3…x15),并向网络提供对应的教师信号Y=(y1,y2,y3,y4,y5,y6,y7)。(3)正向传播输入信号,计算各层的输出,最终得到实际输出向量。(4)反响传播误差信号,计算各层的学习误差d■■,并对权值Wij进行修正。(5)计算误差函数e,判断是否达到训练目标,若已达目标或迭代次数达到上限,则学习结束;若尚未达到目标,则返回步骤2循环执行。完成训练后,便可以利用测试样本集对神经网络进行测试,根据测试结果不断修正网络参数。
五、結果与分析
通过加窗处理,从选取的原始数据集中可以提取出共490组加速度特征数据,将其中的350组用来训练神经网络,剩余的140组用来测试训练后的神经网络。在经过仿真后,发现单隐层的网络虽然学习速率较快但识别准确度总是不够理想,而双隐层的网络可以获得较为理想的学习效果。经过比较,最终选用的BP神经网络具有2个隐含层、且每个隐含层神经元个数为31个,此时的总体行为识别准确度可以达到97.14%。每一类动作各测试20次。仿真结果表明,基于BP神经网络的人体行为识别方法取得了较高的识别准确度,对于日常生活中的7类行为都可以实现较好的识别。
通过对神经网络参数的不断修正,训练后的网络取得了较好的总体行为识别准确度,并且对数据集中的每一类动作都实现了较好的识别。这一方法在人体行为识别和智能健康监测领域都具有较好的应用前景和研究意义。
参考文献:
[1]卢先领,徐仙.基于加速度与HGA-BP神经网络的人体行为识别[J].计算机工程,2015,41(9).
[2]徐川龙,顾勤龙,姚明海.一种基于三维加速度传感器的人体行为识别方法[J].计算机系统应用,2013,22(6).
Research and Implementation of Human Activity Recognition Method Based on BP Neural Networks
WU Ting,ZHOU Yu
(College of Communication and Information Engineering,Nanjing University of Posts and Telecommunications,Nanjing,Jiangsu 210023,China)
Abstract:To address the problem of human activity recognition,this paper designs and implements a human activity recognition method based on BP neural networks. the method extracts feature values from the signals to build feature vectors of human activity and divides the vector space into training set and testing set. During the network training,network parameters are constantly revised in order to optimize the training result. BP neural networks achieves a high correct rate in human activity recognition after training and recognizes the studied seven daily activity well.
Key words:BP neural networks;three-dimensional acceleration;feature extraction