基于Kinect传感器的摔倒检测研究
2017-07-12姜博文李永泽王向南李泽政
鲍 楠,姜博文,李永泽,王向南,李泽政
(东北大学 辽宁 沈阳 110000)
基于Kinect传感器的摔倒检测研究
鲍 楠,姜博文,李永泽,王向南,李泽政
(东北大学 辽宁 沈阳 110000)
当今社会独居老人越来越多,老年人的监护已经成为了一个社会问题。为使独居老人在家摔倒时能够被及时发现,将对老年人的伤害减到最低,一种不受可见光影响的基于Kinect的摔倒检测方法被提出与研究。使用Kinect的深度信息去除背景,提取人物的关键点,采集大量的不同动作下的关键点运动曲线,并进行特征提取作为训练集,用SVM(支持向量机)建立了一个摔倒检测分类器。在实验中,500个摔倒动作和1 500个未摔倒动作作为训练数据,315个动作被用来作为检测数据,实验结果显示,算法的敏感度是91.4%,精确度是93.7%,由此可见这个方法对于摔倒特征有很好的分类能力和很高的辨别度。
Kinect;人物索引;SVM;摔倒检测
目前,中国已经成为世界上老年人口最多的国家[1],也是人口老龄化发展速度最快的国家之一[2]。根据联合国统计,到本世纪中期,中国将有5亿人口超过60岁[3],而这个数字将超过美国人口的总数,而更加不容忽视的是中国空巢老人问题更加突出,目前在城市有54%的老年家庭是空巢家庭,而随着农村进城务工人数的增加,近几年农村空巢老人的比例也已接近半数。随着年龄的增长,老年人的身体机能不断下降,摔倒已成为65岁以上老年人受到伤害和死亡的最大诱因[4]。因此针对老年人的摔倒检测系统的研究与设计有重大意义。
目前,对摔倒检测的研究已经成为了热点,主要由3种方法:一是基于穿戴式传感器的摔倒检测方法,主要原理是对人体的姿态进行监测,进而进行摔倒检测判断。其通常使用的传感器包括加速度传感器,陀螺仪传感器,压力传感器[5-8],不仅可以进行多传感器联合检测,还可以与心电、脉搏等设备结合进行检测。但是穿戴式的摔倒检测设备需要用户进行长期的佩戴,用户体验较差,不方便日常的活动,且长期的穿戴过程中对器材有一定的损耗,误报率很高,使得准确度一般;二是环境式的摔倒检测方法,原理是在检测人体目标的活动区域内安装多个传感器,主要基于目标人物摔倒时所发出的声音以及与地面接触时地面震动所产生的数据来进行摔倒判断。李云[9]等人设计了基于音频分析的原型麦克风阵列摔倒检测系统,通过采集提取的声音源信号判断摔倒动作和摔倒位置。该系统优势在于无需佩戴,对老年人的日常活动没有影响,但是数据量过大,算法复杂。且基于环境式的摔倒检测系统资金投入大,安装复杂,在实际应用中较少;三是基于视觉传感器的摔倒检测系统,原理是在一定区域中安装一个或几个摄像头采集人体运动图像,提取摔倒动作的特征向量,进行匹配实现摔倒检测,Vaidechi[10]等人利用相机设计实现了一种基于静态人体图像特征的摔倒检测系统,并通过提取人体的长宽比和倾斜角度两个特征进行摔倒判断。该系统的计算量较小,但只适用于检测目标的静止状态,不能对运动目标的摔倒过程进行实时动态检测。另外,基于视频的摔倒检测将会暴露老年人的隐私,这也是它的弊端之一。
文中分析和研究目前现有的摔倒检测算法,并且对算法的优缺点进行比较分析。开发出一种基于Kinect传感器的摔倒检测算法,克服了现有常用的摔倒检测方法的一些缺点。利用Kinect深度信息中的人物索引去除背景,提取目标人物和关键点,基于不同动作下的关键点运动曲线,提取摔倒动作的特征,并采用机器学习中的SVM方法对摔倒动作进行分类识别,最终形成一种不受光照等环境因素影响的摔倒动作识别方法,提高了系统检测的准确性以及系统的实时性,同时也保证了用户体验的舒适性。
1 系统总体设计
1.1 系统的硬件结构和图像信息
Kinect是微软公司开发的一种3D体感摄影机,它有3个用于采集图像的装置,分别是彩色摄像头,红外投影机,红外摄像头,其中深度数据由后两个传感器提供。在深度数据流所提供的图像帧中,每一个像素点代表的是在深度感应器的视野中,特定的(x,y)坐标处物体到离摄像头平面最近的距离(以毫米为单位)。如图1所示。
图1 深度概念图
1.2 系统的整体设计流程
基于Kinect所采集的红外深度图像进行摔倒检测系统的设计,系统总体结构如图2所示。
图2 深度概念图
2 摔倒检测算法实现
2.1 人体目标提取
文中基于Kinect深度图像的数据格式,实现了一种基于人物索引功能的运动目标检测识别算法。在Kinect深度图像的每个像素信息[11]中,数据位共存储 16位,其中前 13位为深度信息位,存储的是深度值,后 3位为用户索引位[12],存储的是用户索引值。例如:深度图像的像素数据是 0000010110111,意思是实际深度 183 mm,索引数据位是 011,代表索引号3。利用深度位可以对检测的有效范围进行设定,利用索引位可以对人物前景进行提取。
具体实现步骤为:
1)从Kinect获取的深度图像中,提取像素点的景深距离值和索引编号。
2)由于Kinect的检测范围是有限的,微软建议在开发中使用1~3.8 m范围内的值。为保证算法的精度,设定深度阈值范围:1.2~3.5 m。我们只对该阈值范围内的目标进行检测识别,如果在这个范围之外,就将像素点的灰度值设置为 0当作背景来处理;如果在这个范围之内,就对该像素点进行后续处理。
3)将深度图像二值化,将在景深阈值范围内的像素值归一化为 255,反之归一为0。
4)人体目标识别,通过索引值player index将位于景深阈值范围内的像素点进行目标人物像素点的判定,根据Kinect索引值的定义,索引值为1-6的像素点为人物前景,反之就是背景点,将其归一为0。
5)利用人物索引提取前景后,存在一些噪声。对提取的图像进行形态学[13]和滤波去噪的相关预处理,最后通过均值法确定人物目标的中心点。前后对比如图3所示。
图3 基于人物索引的目标提取算法前后对比图
通过实验验证该算法对目标人物的识别提取具有很好的准确性和鲁棒性,不管是处于静止、运动还是与障碍物相接触,目标人物都能很好地检测并提取出来。
2.2 摔倒检测算法
基于上节提取的人物中心点获取运动轨迹曲线,并以曲线加速度为特征,利用SVM分类器进行摔倒检测的初步分类与识别,并基于所提取的人物目标的顶点进行二次判断。
2.2.1 SVM分类检测
本课题所采用的SVM[14]是机器学习的一种。SVM在解决小样本、非线性及高维模式识别有特有的优势,所以本文选取SVM分类器用于判决运动物体是否处于摔倒状态。
2.2.2不同动作下人物中心点的运动轨迹获取及特征提取
基于上节人物中心点提取的结果,我们获取了人体不同动作下中心点的实时运动轨迹曲线,以行走动作和摔倒动作为例,如图4所示。
图4 基于SVM分类器的训练集的曲线图
曲线图的横坐标为所获取中心点的帧数,即时间。曲线的纵坐标为目标中心点的Y坐标。由摔倒曲线可以看出在摔倒的那一时刻加速度激增。基于此我们选取加速度作为特征进行分析,对不同动作下的人物中心点轨迹曲线进行特征提取,并基于SVM训练摔倒检测分类器。因为所获取的图像并不连续,所以利用差分求运动物体Y方向加速度,如公式1所示。
公式中 y(t1)表示当前帧的 Y 坐标值,y(t2)表示前一帧的Y坐标值,Δt表示两帧数据的时间间隔,a即为加速度。利用求得的加速度特征进行分类器的训练和分类判断。
2.2.3 摔倒检测二次判断
为提高摔倒判断的准确性,基于SVM进行一次判断后,对被认为是摔倒动作的数据引入了二次判断机制。提取人物前景中Y坐标最大点为顶点,摔倒动作发生时,由于人平躺在地面上,因此顶点比起直立、坐下、下蹲或者平躺等其他动作的顶点更低,我们设定一个阈值法,当顶点低于阈值时认为是摔倒动作,从而实现摔倒检测的二次判断。这有效地避免了由快速下蹲等动作所引起人物中心点加速度的突变导致被误判为摔倒的情况。
摔倒检测算法的具体流程图5所示。
图5 摔倒检测算法流程图
3 实验评估
3.1.1 训练数据采集
为验证本文所述方法的准确性,我们选取6种动作进行SVM分类训练,摔倒动作采集了500组,其余5种动作每种采集了300组,训练细节如表1所示。
表1 实验数据分组情况
在数据采集过程中,每一组视频样本时长大约为30秒,从每一个视频中大约可以提取出600帧有效的视频帧作为样本,提取人物中心点Y坐标加速度为特征,采用SVM分类器进行训练。
3.1.2 实验测试
在测试实验中,为了保证系统的普适性,选择了7位不同类型的实验对象:三位女性 (158 cm,45 kg;167 cm,52 kg;170 cm,54 kg)和四位男性(170 cm,63 kg;173 cm,64 kg;177 cm,70 kg;180 cm,74 kg)。实验中每人做6种不同的动作,其中摔倒动作每人做20次,其余5种非摔倒动作每人做 5次,共315个测试样本。
在实验中,使用分类准确率、敏感度、特异性[15]3项作为分类效果的评价指标,其定义分别如公式2,3,4 所示:
式中:TP表示真阳,即摔倒的样本被检测为摔倒的数量;TN表示为真阴,即没有摔倒的样本被检测为没有摔倒的数量;FP表示为假阳,即没有摔倒的样本被检测为摔倒的数量;FN表示为假阴,即摔倒的样本被检测为没有摔倒的数量。
将测试数据用SVM分类器做摔倒动作的一次判断,用人物顶点做二次判断。实验结果在表2中体现。
表2 实验数据分析
在实验中,140个摔倒动作中128个被成功的检测了出来,灵敏度为91.4%。在总共175个未摔倒动作中,有8个被误判为摔倒。该算法的总体精度为93.7%,这是非常高的。12个未被检测出的摔倒动作都是发生在实验对象在模拟后摔的过程中。因为后摔时很难控制身体,导致实验对象在整个模拟后摔的过程中有些犹豫,或者臀部与地面接触前下意识的用胳膊或手支撑了地面,影响了测试数据的准确性,导致摔倒动作未被检测出来。但事实上,在真正摔倒的时候,运动目标没有防备,完全陷入失重的状态,数据的特征将会更加明显,漏判的情况将会大大减少。在未摔倒动作的检测中有8处错误是由于检测时运动目标躺下的速度过快,系统把其归类为摔倒所致。此外,实验中训练数据量是有限的,只有2 000组的摔倒和非摔倒的动作数据集合。如果我们扩大训练集,并扩大非摔倒的动作种类,摔倒检测的准确度将会提高。
4 结 论
文中所研究的摔倒检测方法是基于Kinect获取到的深度数据,提取人物前景和中心点,并获取中心点运动轨迹,利用SVM分类器对运动曲线的加速度特征进行分类学习,训练了一个摔倒检测分类器,从而判断人体是否摔倒。实验过程表明,此系统具有良好的实时性和普适性。实验结果显示,对摔倒和未摔倒动作的检测,系统的准确率达到93.7%,充分说明系统对摔倒检测的鲁棒性。同时Kinect的红外摄像头受外界光照等环境因素影响较小,可实现在黑暗环境下进行摔倒检测。可广泛地用于独居老人的日常监护,具有一定的应用价值。
[1]邓桂芳.未来我国老年社区护理浅论[J].临床医药实践,2014,23(4):300-302.
[2]李建民,杜鹏,桂世勋,等.新时期的老龄问题我们应该如何面对[J].人口研究,2011,35(4):30-44.
[3]叶云.关注老年健康拥抱美好夕阳[J].健康博览,2015(10):4-8.
[4]卫生部.老年人跌倒干预技术指南[J].中国实用乡村医生杂志,2012,19(8):1672-7185.
[5]刘鹏,卢潭城,吕愿愿,等.基于MEMS三轴加速度传感器的摔倒检测 [J].传感技术学报,2014(4):570-574.
[6]欧志球,戴坚锋,王铮.基于高斯模糊的摔倒自检测算法设计与应用[J].计算机测量与控制,2015,23(11):3867-3870.
[7]崔英辉,詹林.基于三轴加速度传感器的老人摔倒检测[J].现代电子技术,2013,36(3):130-132.
[8]许继平,景涛,彭森,等.基于三轴加速度传感器的老年人摔倒检测系统[J].计算机仿真,2014,31(12):434-437.
[9]Li Y,Ho K C,Popescu M.A microphone array system for automatic fall detection[J].Biomedical Engineering, IEEE Transactions on, 2012,59(5):1291-1301.
[10]Vaidehi V,Ganapathy K,Mohan K,et al.Video based automatic fall detection in indoor environment[C]//Recent Trends in Information Technology(ICRTIT),2011 International Conference on.IEEE,2011:1016-1020.
[11]Samuele Gasparrini,Enea Cippitelli,Susanna Spinsante and Ennio Gambi.A Depth-Based Fall Detection System Using a Kinect Sensor[J].Sensors 2014,14(2):2756-2775.
[12]邢关生,张慧,卫朋,等.基于Kinect的特定人员鲁棒识别与定位[J].河北工业大学学报,2014,43(5):1-7.
[13]李亚宁,王俊平,高艳红.图空间上彩色矢量形态学算子[J].电子学报,2015,43(3):424-430.
[14]申晓霞,张桦,高赞,等.基于Kinect和金字塔特征的行为识别算法[J].光电子·激光, 2014,25(2):357-363.
[15]Askari M, Eslami S, Rijn M,et al.Assessment of the quality of fall detection and management in primary care in the Netherlands based on the ACOVE quality indicators [J]. Osteoporosis International, 2016,27(2):569-576.
Fall detection system based on Kinect
BAO Nan, JIANG Bo-wen, LI Yong-ze,WANG Xiang-nan, LI Ze-zheng
(Northeastern University, Shenyang 110000, China)
Nowadays society, more and more elderly people living alone,Theelderly people's healthcare has become a social problem.In order to make some old people falls down at home can be found in time andminimize the harm of elderly people falls.So,a kind of fall detection based on Kinect camera which is not affected by the visible light is proposed and studied.By using Kinect camera’s depth information remove the background, to extract the key points of the characters, and get the motion curves under different actions based on the key points,and then extract the feature as the training database.We use the SVM established a fall detection classifier.In the experiment,500 fall action and 1500 did not fall action as the training data, 315 actionswere used as test data.Sensitivity is 91.4%,the accuracy of the algorithm is 93.7%.The experiment results show that the method has good classification capability and high recognition rate for fall detection features.
Kinect; playerindex; SVM; fall detection
TN911.73
A
1674-6236(2017)12-0149-04
2016-05-06稿件编号:201605054
第九批大学生创新训练计划项目(150092)
鲍 楠(1981—),女,内蒙古赤峰人,硕士,讲师。研究方向:医学图像处理、医学信号处理。