跌倒检测跌倒报警Android.docx
《跌倒检测跌倒报警Android.docx》由会员分享,可在线阅读,更多相关《跌倒检测跌倒报警Android.docx(53页珍藏版)》请在冰点文库上搜索。
![跌倒检测跌倒报警Android.docx](https://file1.bingdoc.com/fileroot1/2023-6/1/edf75473-2acc-4789-9f88-537d766b9878/edf75473-2acc-4789-9f88-537d766b98781.gif)
跌倒检测跌倒报警Android
跌倒检测-跌倒报警-Android
摘要
随着当今社会老龄化进程的逐步加剧,老年人跌倒造成的致病率、住院率和死亡率急速提高,带来了严重的社会经济负担。
因此,在不影响老年人正常活动的前提下,通过科学的手段监测老年人的活动,在检测到跌倒后迅速报警求助,可以有效地减少老年人跌倒带来的健康伤害和医疗开支。
在分析比较国内外跌倒检测相关技术研究后,本文提出了一种基于三轴加速度传感器和陀螺仪的跌倒检测与报警系统。
三轴加速度传感器和陀螺仪实时采集老人在日常活动中产生的加速度和角速度数据,通过蓝牙传送到Android手机。
手机上运行的软件对接收到的数据进行分析处理,并判断老年人的运动状态。
当系统检测到跌倒发生时,发出铃声提醒老人,老人可以确认报警或取消误报。
若在5s内没有做出响应,系统将按照设定的报警方式通知联系人。
报警方式有发短信和打电话,短信内容包含老年人跌倒时所在的位置信息。
老人也可以在感到身体不适时自主报警。
关键词:
跌倒检测,跌倒报警,Android
第1章绪论
1.1研究背景及意义
21世纪被称为“银发世纪”,人口老龄化是当今社会面临的重大挑战之一。
通常认为65岁以上的比率超过总人口的7%,就称为“老龄化社会”,而超过14%就称为“老龄社会”。
目前,世界上所有发达国家都已经进入老龄社会,许多发展中国家正在或即将进入老龄社会。
截至2008年底,我国65岁及以上人口10956万人,占全国总人口的8.3%。
中国作为世界上人口最多的发展中国家,人口老龄化的趋势加速发展,预计到2030年中国将进入深度老龄化,并超过日本成为全国人口老龄化程度最高的国家。
随着全球人口老龄化的到来,跌倒已经成为老年人致残和致死的重要原因之一。
据世界卫生报告,“2002年全球有39.1万人死于跌倒,其中60岁以上的占50%以上,70岁以上的占40%。
许多发达国家对居住在社区的65岁及以上的老年人研究发现,其中28%~35%在一年中发生过跌倒,80岁以上的则达到了50%。
大约40%~70%的跌倒会造成伤害。
”对于住在医院里的老年人,跌倒的发生率则会更高。
跌倒会严重影响老年人的健康水平和生活质量,也会到来沉重的经济负担。
因此,采取适当的措施为老年人提供救助十分重要。
随着计算机、通信等技术的发展,电子设备的智能化、小型化,我们希望设计出一种针对老年人跌倒的检测器,在检测到老年人跌倒后能够及时发出求救信号通知其家人或医护人员,使老年人能够得到及时的救助,从而降低伤害,提高老年人的生活质量。
1.2国内外研究现状
目前,国内外对跌到检测系统的研究很多,主要方法可分为以下几种:
(1)基于视频的跌倒检测系统
此种方法要求在用户可能活动的地方安装摄像头,来捕捉人体运动的画面,经过图像处理判断用户是否存在跌倒的图像特征。
该方法不需要用户穿戴任何装备,不影响日常生活,但是监测的范围有限。
例如加拿大的CarolineRougier通过摄像头采集老年人跌倒时的画面,将运动过程和人体的形态相结合,判断老人是否跌倒。
(2)基于地板震动的跌倒检测系统
此种方法是根据人体跌倒在木地板上的声音或人体跌倒时与地板的冲击来判断使用者是否跌倒。
但该方法只适用于室内,且不同质地的地板得到的震动信息也不同,应用范围较小。
例如弗吉尼亚大学的MARC研究中心通过检测不同物体落地时地板的震动方式来检测人体跌倒。
(3)基于可穿戴技术的跌倒检测系统
此种方法将传感器嵌入到可穿戴的设备,可以实时监测人体的活动,并在检测到跌倒时进行及时的报警。
该方法不受地点的限制,使用范围广,且设备便于携带。
基于可穿戴跌到检测系统,目前国内外的研究很多,基本上都是通过各种传感器采集人体的活动数据,并通过一定的算法判断老人是否跌倒。
1.3论文的主要内容及组织结构
本文以可穿戴计算技术为基础,提出了一种基于三轴加速度传感器和陀螺仪的跌倒检测系统。
该系统能够实时采集用户的活动数据,通过蓝牙传送到手机端,手机上运行的软件对接收到的数据进行分析处理,从而判断用户是否跌倒,并采取相应的报警措施。
本文共分为以下几个部分:
第1章为绪论。
阐述了项目背景及研究意义,国内外的研究状况,简要说明了论文的内容和组织结构。
第2章为对跌倒检测理论和相关技术算法进行了简要的介绍。
第3章阐述了系统的总体方案。
描述了系统的需求,和系统的总体架构。
第4章为系统的软件设计与实现,详细地分类分模块说明了实现方法。
第5章为测试与实验。
对系统的运行情况进行了测试,并对实验数据和结
果进行了分析。
结论部分概括了论文的主要工作和亟待解决的问题,并对今后的进一步研究做了展望。
第2章跌倒检测技术
2.1理论基础
2.1.1跌倒分析
造成老年人跌倒的原因有很多,主要分为内因和外因。
内因指的是老年人的机体老化,如疾病、视力差、身体机能退化等。
外因主要是环境因素,如室内地板太滑、家具摆放位置不好、台阶灯,室外的危险因素更多。
另外社会因素造成空巢老人越来越多,也是老年人跌倒的原因之一。
人体在跌倒时由于失去平衡,身体会向某一方向倾倒,可能会有以下几种跌倒姿态:
(1)向前跌倒
(2)向后跌倒(3)向左跌倒(4)向右跌倒。
如图2.1所示:
图2.1人体跌倒姿势
一般情况下,人体跌倒行为通常发生在2秒左右。
跌倒过程中身体重心的瞬间移动会产生一个加速度,身体的倾倒也会产生一个偏离竖直方向的角度。
在非跌倒状态如行走过程中,人体上躯干偏离Z轴的倾斜角处于一个相对安全的范围内,而跌倒后人体多处于俯卧、侧卧或仰卧的状态,躯干方向接近于水平,即偏离竖直方向的倾斜角接近90度。
因此我们选取加速度和身体的倾斜角这两个特征作为判别跌倒与其它日常活动的依据。
2.1.2坐标建立
为了研究人体在跌倒过程中的运动情况,需要建立三维直角坐标系。
如图2.2所示,设人体躯干坐标系为Oxyz,其中x轴指向前方,y轴指向左方,z轴指向上方。
图2.2坐标系定义
根据图2.1坐标系的定义,人体在运动过程中沿x轴方向加速度为
,沿y轴方向的加速度为
,沿z轴方向的加速度为
,则合加速度为:
a=
(2-1)
人体躯干绕x轴转动的角速度为
,绕y轴转动的角速度为
则合速度为:
(2-2)
2.2跌倒检测技术
2.2.1可穿戴计算技术
在1.2节中介绍了几种目前的跌倒检测技术,由于可穿戴计算技术应用范围广泛、不受地点限制,因此本文采用了此种方法,将微型传感器嵌入到可穿戴设备中,如可穿戴背心、帽子等,从而将传感器固定在身体某些部位,实时采集人体的活动数据。
可穿戴计算是一种新兴技术,目前尚无较规范、明确和完备的定义。
国际上公认的可穿戴式计算机的发明人之一,加拿大的斯蒂夫·曼恩教授认为可穿戴计算机是这样一类计算机系统:
“属于用户的个人空间,由穿戴者控制,同时具有操作和互动的持续性,即alwaysonandalwaysaccessible”。
可穿戴计算技术在航空、军事、医学等领域和日常生活中有着广阔的应用前景。
在航空领域,可穿戴计算机可以用于宇航员的训练,航天器和飞行器的维护;在军事上,是特种兵和数字化士兵的必备装备。
在医疗上,可穿戴计算机可用于的病情监测护理、远程诊断、药物疗效的检测等。
在日常生活中,能够根据用户所处环境,适时提供信息和建议,成为人们生活中的得力助手。
可穿戴计算技术主要具有以下几个特征:
(1)可以在运动状态下使用
(2)可以方便地“穿”在身上
(3)具有持续可用性,即系统可以在用户需要的任何时候提供服务
(4)可以腾出双手做其它事情
由此可以看出本文提出的基于可穿戴计算技术的跌倒检测系统也具有以上特性:
数据采集装置嵌入到可穿戴背心中穿在用户的身上,便于携带;可以在用户任何运动状态下采集活动数据;系统随时处于备用状态,可以在用户需要的任何时候提供服务;在系统运行过程中,用户可以做其它事情,不影响正常活动。
2.2.2硬件平台介绍
本系统中使用的硬件是一个基于蓝牙的3D加速度和角速度实时采集与发送模块,我们只需要在Arduino环境下编写程序并下载到板子中就可以实现采集人体运动过程中的三轴加速度和角速度数据,并通过蓝牙进行传输。
该模块采用了AnalogDevices公司生产的ADXL345加速度传感器采集物体活动的三轴加速度,该传感器测量范围为±16g;采用InvenSense的ITG-3205陀螺仪采集物体活动的3D角速度,该传感器的感应精度为14.375LSB1/(°/s),量程范围为±2000°/s,这两类传感器具有测量精度高、体积小、功耗低等特点;采用Atmel公司的Atmega168作为中央处理单元MCU;选择CSR公司的BC417143蓝牙模块,最大传输距离10m,数据传输速率可为1200~1382400Bits/S;采用FT232RQ串行通信芯片为本模块提供USB接口和串行通信支持;采用LP2992锂电池控制芯片和MAX1555充电控制器,使模块能够通过3~5V锂电池供电。
图2.3硬件实物图
该模块的硬件实物图如图2.3所示,它有三种工作模式,可以通过改变跳线进行设置。
当1号和3号引脚相连、2号和4号引脚相连时,MCU和蓝牙模块相连,此时模块处于正常工作状态,微控制器将从传感器实时采集到的活动数据传送给蓝牙模块,由蓝牙模块进行无线传输;当3号和5号引脚相连、4号和6号引脚相连时,MCU和串口USB连接,此时可通过串口进行程序的烧写;当1号和6号引脚相连、2号和5号引脚相连时,蓝牙模块和串口USB相连,此时可通过串口来对蓝牙进行命令行操作,以检测蓝牙模块的工作状态或改变蓝牙模块的传输波特率等信息。
图2.4跳线连接
2.3跌倒检测算法
2.3.1阈值法
人体跌倒过程与其它日常活动过程相比,在运动学信息变化方面有其独有的特征。
从统计学角度来说,多数跌倒过程中产生的加速度和身体倾角的改变会比日常生活中的其它活动比如坐下、行走等一般过程要大。
因此,国内外研究中大多使用加速度和角速度阈值法检测跌倒的发生。
由于人体运动行为过程的复杂性和随机性,使用单一的加速度或角速度判断人体跌倒行为的发生会带来很大的误判。
采用加速度传感器和角速度传感器分别获取三轴加速度和角速度,通过人体合加速度和偏离竖直方向(Z轴)的倾斜角来评估人体受到的冲击力和姿态变换,并设定阈值对人体跌倒行为进行检测。
基于人体上躯干合加速度和倾斜角阈值的跌倒检测算法主要步骤如下,设t时刻,人体上躯干合加速度为a(t),偏离竖直方向的倾斜角为θ(t)。
其中a1为实验确定的人体跌倒过程中上躯干合加速度角阈值,θ1为偏离Z轴的倾斜角阈值。
(1)定义一个数据存储空间,储存当前时刻前2秒钟内的合加速度和倾斜角,当有新的数据到来时,存入新数据,释放之前的数据。
(2)检测当前时刻跌倒冲击是否发生。
如果a(t)≦a1,则没有发生跌倒冲击返回步骤
(1);如果a(t)>a1,确认冲击发生,进入下一步。
(3)计算当前时刻前2秒的躯干偏离Z轴倾斜角度θ(t)。
(4)判断倾斜角是否满足跌倒行为特征。
如果θ(t)>θ1,则判断跌倒行为已经发生;否则判断跌倒行为过程未发生,应继续实时监测。
2.3.2支持向量机方法
由于人体跌倒的诸多不确定因素,不同阈值的选取对系统的判别效果有很大影响。
研究初期,采用了基于统计分析相关的方法确定了阈值,为了使系统判断跌倒更加准确,我们在此介绍使用支持向量机的方法确定阈值。
支持向量机(SupportVectorMachine,SVM)是Cortes和Vapnik于1995年提出的一种基于统计学习理论的机器学习方法,目前已经被广泛应用于模式识别领域。
SVM主要是通过使用核函数将低将输入向量映射到高维特征空间中,从而可以对原样本进行线性分析。
此外,SVM基于风险最小化理论在特征空间中建立最优分割超平面,使得分类器的效果最优化,增强了其推广性。
本文研究的跌倒问题是一个二类分为问题,即跌倒和其它日常活动。
两类问题可以这样定义:
设有两类n维训练样本,C1类的训练样本{xi},类别属性值为yi=1,C2类的训练样本{xj},属性值为yj=-1。
我们能够把这些样本通过一个超平面分开,这样的平面可以找到无穷多个,但是我们希望能够找到最佳的分类平面,即使得属于两个不同类的数据点间隔最大的那个面,该面称为最大间隔超平面。
与该界面平行的两平面之间距离应该是最大的,两个平面中的训练样本称为支持向量。
如图2.3所示,界面1、2和最优分类界面都能对样本进行分类,但是中间的界面分类效果最好。
图2.3分类界面
设用于分离的超平面方程是:
w·x+b=0。
其中w是超平面的法向量,b是超平面的常数项,x是超平面上的点。
我们要寻求最优的超平面就是寻找最优的w和b设为w0和b0,则最优分类超平面为:
w0·x+b0=0(2-3)
定义支持向量即满足下面条件的数据点(xi,yi):
w·xi+b=-1,yi=-1或w·xi+b=1,yi=1(2-4)
这两个就是超平面H1和H2的方程。
这两个超平面,在它们之间没有任何样本点并且这两个超平面之间的距离要最大。
不难得到这两个超平面之间的距离是
,要是这个距离最大,则使||w||最小化⇔
最小化。
且对于任意的(xi,yi)满足式(2-4),即yi(w·xi+b)≧1(2-5)
此时问题转化为一个二次最规划问题:
min
,且yi(w·xi+b)≧1,i=1,2,…..,N。
使用拉格朗日乘子法可以解决上述问题。
首先建立拉格朗日函数
L(w,b,a)=
(2-6)
其中
为拉格朗日乘子。
分别对w和b求偏导并令其为零,即可得极值条件:
(2-7)
(2-8)
由最优化问题的对偶原理,可得到原问题的对偶问题:
L(w,b,a)=
(2-9)
满足
。
求解出对偶问题的最优解,设用
表示最优的Lagrange乘子,则此时原问题的最优解为:
(2-10)
(2-11)
因此判断函数
,其中x为测试集中的样本。
至此问题得到了解决。
第3章总体方案
3.1功能需求
本文基于可穿戴计算的思想将主要集成了三轴加速度传感器、陀螺仪、蓝牙模块和Atmel168微控制器的模块置于可穿戴背心上,实时采集老年人在日常生活中的活动数据,通过蓝牙传送到手机端。
手机对数据进行处理和分析,当检测到跌倒发生时,提醒用户并采取报警措施。
3.1.1场景描述
(1)用户穿着可以自动捕获活动信息的可穿戴计算背心活动。
(2)传感器按每秒100次的频率实时获取用户活动的三轴加速度和角速度信息。
(3)可穿戴计算背心将采集到的数据通过蓝牙(速率:
115200B/S)实时传送给智能手机。
(4)智能手机存储接收到的数据,并按照一定的算法分析数据,判断用户是正常活动状态,还是跌倒状态。
(5)若检测出用户跌倒,且用户在5秒内没有响应,手机按照预设的报警方式报警(报警方式可以为:
响铃、发短信、拨打电话)。
(6)系统检测出跌倒后,用户可以再5秒内取消报警。
(7)手机自动通过GPS获得当前位置信息,并给手机中预设的联系人(如家庭成员、健康护理中心、医院)发送报警短信。
(8)用户可以设定联系人(内容包括:
姓名、联系电话)和报警方式。
3.1.2用例分析
图3.1系统用例图
本系统的主要参与者是用户(老年人或病人)和接收报警的联系人(家人或医护人员)。
图3.1为系统总体的用例图。
如图所示,系统以每秒100次的频率采集用户的日常活动数据、用户可以报警和取消报警、设置联系人、设置报警方式;联系人可以接收报警信息,及时提供救助。
描述用例场景最常用的手段是顺序图,如图3.2为整个系统的顺序。
由图可知,用户首先启动系统连接采集活动数据的设备,系统会自动进行初始化和校准,之后开始实时采集数据并通过蓝牙传送到智能手机,当系统检测到跌倒发生时会询问用户是否确认报警。
图3.2系统顺序图
3.1.3典型用例行为描述
用例数据采集行为描述如下:
用例:
数据采集
用例描述:
采集老人日常活动的三轴加速度和角速度数据
参与者:
可穿戴设备
前置条件:
用户已经穿上装有传感器和主板的可穿戴背心,设备已启动。
行为序列:
1)用户穿着可以自动捕获活动信息的可穿戴计算背心活动
2)加速度传感器采集三轴加速度信息
3)陀螺仪采集三轴角速度信息
4)处理器控制传感器的采样频率(每10ms采集一次)
异常:
取消:
用户退出跌倒检测系统,系统停止采集。
后置条件:
系统通过蓝牙将采集到的数据实时传送到智能手机。
用例跌倒检测行为描述如下:
用例:
跌倒检测
用例描述:
系统对接收到的用户的活动数据进行处理分析,按照一定算法检测跌倒是否发生
参与者:
智能手机
前置条件:
手机接收到采集的活动数据
行为序列:
1)系统存储接收的数据
2)对接收到的数据进行匹配,丢掉不符合格式的数据,在手机屏幕上显示结果
3)与加速度阈值比较,判断跌倒冲击是否发生
4)与加速度阈值比较,判断跌倒冲击是否发生
5)与倾角阈值比较,判断是否满足跌倒行为特征
6)如果系统判断跌倒发生,则进行报警
异常:
取消:
用户退出跌倒检测系统,系统停止检测。
后置条件:
系统检测到跌倒调用报警模块;系统未检测到跌倒继续进行实时监测。
用例报警行为描述如下:
用例:
报警
用例描述:
系统检测到跌倒发生后进行报警求助
参与者:
用户、智能手机
前置条件:
系统检测到跌倒发生或用户主动按按钮报警
行为序列:
1)主动报警为系统监听用户的按钮操作
2)若用户点击报警按钮,系统读取报警方式设置
3)响铃、短信、打电话报警调用相应的实现方法
4)自动报警是系统实时监测用户活动状况
5)若系统监测到跌到发生,系统读取报警方式设置
6)响铃、短信、打电话报警调用相应的实现方法
异常:
取消:
用户退出跌倒检测系统,系统停止检测;系统监测到跌倒后已经报警,不再进行二次报警。
后置条件:
用户听到响铃;联系人接到报警短信或电话。
3.2性能需求
3.2.1性能需求
性能
描述
实时性
系统每秒100次实时采集数据
响应性
系统检测到跌倒后用户5s内做出响应
易用性
界面友好
低耗性
降低功耗
安全性
设备不会对人有危险;保证设备不易损坏
3.2.2性能补充描述
(1)实时性
要求系统能够实时地不断地采集用户在日常活动中的数据,如图3.3所示传感器的采样频率为每秒100次,蓝牙实时传送的速率为115200bps。
图3.3系统实时性
(2)响应性
图3.4系统响应性
系统对于跌倒的发生要能及时作出响应。
为了尽量避免误报,系统检测到跌倒后响铃提醒用户,5s内用户没有做出没有响应系统再进行报警,如图3.4。
(2)易用性
系统的界面是用户与系统交互的媒介。
由于系统所面向的用户多为老年人,他们不具备专业知识,所以界面在设计时应尽量简单、友好,显示的字体要尽可能的大,方便老年人或者不熟悉系统的用户操作。
(3)低耗性
该系统可能会长时间的运行,因此要保证尽量低耗能,系统采用3.7v锂电池供电,并可以通过usb串口充电。
(5)安全性
由于用户需要长时间佩戴该设备,设备不能具有危险性,不能影响用户的正常活动。
另外应保证设备在摔倒过程中不易损坏。
3.3系统架构
图3.5系统架构图
系统总体架构图如图3.5所示,传感器节点在用户穿的可穿戴背心上,用来采集用户的活动数据,并通过蓝牙发送到手机;手机上的软件进行跌倒检测,若系统检测到跌倒发生则通过GSM网络,将消息以短消息或者电话的形式通知给家人或医护中心。
第4章系统设计与实现
系统的设计分为可穿戴设备和智能手机端两部分。
可穿戴设备端的软件在Arduino环境下开发,采用类C语言。
智能手机端软件在Android平台下运行,采用Java语言在Eclipse环境下开发。
4.1可穿戴设备软件
4.1.1设计
可穿戴设备端的软件使用已有的数据采集和传送模块,采用简单的轮询结构,程序依次检查每一个I/O设备(传感器、蓝牙),为需要的设备提供服务。
微控制器控制传感器的采样频率和蓝牙的传输速率,是系统能够每秒100次实时采集和传送用户的三轴加速度和角速度信息。
图4.1可穿戴设备端类图
可穿戴设备端类图如上图4.1所示,主要有初始化Initial、加速度Acceleration、角速度AngularVelocity、传输数据Transmit几个类。
1)Initial:
系统启动连接后,需要对各个设备进行初始化,由微控制器MCU设置传感器的采样频率sensorSpeed和蓝牙的传输速率BluetoothSpeed。
同时传感器还需要进行校准,以便更精确的采集数据
2)Acceleration:
由于系统采用的是三轴加速度传感器器,因此在加速度信息类中有三个属性ax、ay、az分别表示方法getAcceleration()获得到的三个方向的加速度值。
另外acc表示计算后的合加速度。
3)AngularVelocity:
同样系统采用的陀螺仪采集三轴角速度,因此角速度信息类中的三个属性gx、gy、gz分别表示getAngularVelocity()得到的三个方向的角速度值。
4)Transmit:
Transmit类对系统计算所得的合加速度acc和采集到的三轴角速度gx、gy、gz进行实时传送。
4.1.2实现
数据采集和传输模块是在Arduino环境下使用类C语言实现的,通过Arduino开发软件向板子内烧写程序。
在4.2节中介绍了开发板的跳线连接,要烧写程序需要将MCU和串口USB连接,使用USB数据线连接开发板和PC,。
然后通过Arduino开发软件将程序下载到板子中,如图4.2所示
图4.2烧写程序
在程序中设计了两个函数getAccelerometerData()和getGyroscopeData()分别获取三轴加速度数据和三轴角速度数据。
由于人体的跌倒过程很短,所以要尽可能的提高传感器的采样频率,以提高判断的准确性。
我们采用定时中断的方法设定传感器的采样率。
首先添加头文件MsTimer2.h,这是一个定时中断库。
定义一个中断标志flag,初始为0,当调用了中断函数时则flag=1。
voidsetup()函数对Arduino板子的变量、库等进行初始化,代码如下。
首先设定串口传输率为115200bps,之后初始化加速度和角速度传感器。
MsTimer2是每隔10ms调用一次timer,即1s中断了100次,实现了每秒采集100次的频率。
voidloop()函数是让程序循环地被执行。
这段程序会一直重复运行直到Arduino被关闭。
flag标志用来判断是否发生中断。
为了便于后续操作,我们在Arduino开发板上计算出三轴加速度的合加速度。
Arduino上数据的传输通过串口的输出Serial.print()实现。
为了测试传感器模块的运行,我们可以通过串口调试工具读取采集的数据,如图4.3所示,包括了计算完的合加速度和三个方向的角速度。
图4.3串口读取传感器采集数据
4.2智能手机端软件
手机端的软件运行在Android系统的手机上,手机通过蓝牙接收到用户的活动数据,通过一定的算法检测跌倒是否发生。
当系统检测到跌倒发生时,及时采取报警措施为用户提供帮助。
图4.4手机端软件体系结构
手机端的软件体系结