第五章 跌倒检测算法剖析(含跌到检测源码)

第五章  跌倒检测算法剖析

 

一、跌倒特征的研究

跌倒检测步骤一般包含为:1)人体特征检测:此阶段需要把人从背景中提取出来,并处理得到需要的人体特征,一般包括骨骼坐标点和人体姿态等;2)动作识别:对人体的特征进行分析和处理,本文是分析人体中心点的速度和高度特征,从而检测是否发生跌倒事件,排除误检和漏检,提高准确率。

跌倒是瞬间动作,人体的动作、高度和速度等会快速的改变。人体在跌倒过程中,一般是从站着到坐到地板上或者躺倒地板上,人体的中心点从较高的位置快速下降到了地面或者接近地面的高度。第一个特征可以选择从高度[10-17]入手,在[10]中作者将头部,颈部,脊椎,臀部,膝盖等骨骼点连线,检测连线与地面是否平行以及脊椎的高度是否小于给定阈值且超过10s。在[11]中作者实时检测头部的高度变化,当头部的高度小于给定阈值时,表明发生了跌倒事件。除了头部,脊椎、身体质心、两髋中心点等骨骼点也是常考虑的点。刘国帅等人[17]根据三个特征点(头部、身体质心、小腿中心)相对位置的变化和特征向量与水平地面的夹角来检测人体跌倒事件。跌倒过程人体的中心点从比较高的位置快速下降到了地面或者接近地面的高度,第二个检测特征即检测速度。通过连续的视频帧,来计算身体质心或者骨骼点的速度,如果该速度超过给定阈值,跌倒事件发生。可以检测目标人体的质心下降速度[12][16]和头部的运动速度[10][11]以及多个骨骼点实时速度值的加权平均[14][15]等等,另外[16]中的作者对快速摔倒和慢速摔倒2种情况分别检测,检测的阈值条件有所不同。

跌到检测源码函数http://download.csdn.net/detail/baolinq/9798436

 

二、系统方案的最终选择

1)利用Kinect体感器的实时骨骼跟踪技术,选取人体的中心点(spinemid)、两髋中心(spinebase)、右脚掌(rightfoot)等3个骨骼点,实时计算人体中心点的空间位置、运动速度,以及两髋中心点的空间位置、离地面的高度以及在较低高度下停留的时间等参数。

2)如果人中心点的下降速度超过V(阈值速度),同时两髋中心点离地面高度低于H且停留时间大于T,则判定跌倒事件发生,系统会自动发出警报并切换到RGB画面,以及自动保存当前时刻的具体时间、深度图、骨骼图和所有骨骼坐标,并自动把现场重要信息通过邮件通知监护人。

3)实验结果表明:该检测系统的检测准确率可以达到91%以上。该系统正常工作时,只会显示深度图和骨骼图而没有RGB图,保护被监护人的个人隐私,Kinect不受光照影响,系统晚上也可以实时检测。Kinect无需穿戴,实用性和舒适性较好,不会影响老年人的日常活动,Kinect价格不高,比较容易和适合推广和使用。

 

三、检测跌倒事件

本检测系统只适用于空间不大的房间,该限制由Kinect的深度识别范围是0.5-4.5米所决定的,如果目标不在这个范围,则Kinect的精度将急剧下降,导致检测系统的准确度急剧下降。先获取骨骼数据,通过获取的骨骼数据来分析和判断目标人体的运动状态,主要检测特征是目标人体的中心点(JointType_SpineMid)的下降速度和两髋中心点(JointType_SpineBase)离地面的高度。

1.第一个检测特征

通过对目标人体监测,对返回的骨骼数据实时处理,在每相邻10帧求一次人体中心点的下降速度spineV。当spineV>VT(临界值),则认为检测到了第一个跌倒特征。根据文献[19]里面的结果,VT一般在1.21m/s-2.05m/s,结合实验测试结果,本文选取1.37m/s做为人体中心点下降速度的阈值。一旦超过该阈值,则认为检测到第一个跌倒特征。部分代码如下:

tin = GetTickCount(); //获取时间间隔

float  SpineHeightin = joints[spinemid].Position.Y;//获取人体中心点的高度。

if (framenumber % 10==1)

{

tout = GetTickCount();

float  SpineHeightout = joints[spinemid].Position.Y;

   //求得当前速度

float  SpineV = 1000 * (SpineHeightout - SpineHeightin) / (tout - tin);    

if (SpineV > 1.37) //当前速度和阈值比较

{

vDetection = true;

cout << "身体中心向下的速度是:   " << vDetection << "m/s" << endl;

}

else 

vDetection = false;

}

 

2. 第二个检测特征

检测目标人体中心点的下降速度是第一个检测特征,如果检测到了第一个检测特征,将进一步检测第二个特征,即两髋中心点离地面的高度。地面检测的难度比较大,通过查询Kinect SDK可以发现在IBodyFrame类里面有一个get_FloorClipPlane方法,函数的参数是vector4 *floorClipPlane,返回值是HRESULT类型。vector4结构体里有4float类型的数据成员,分别是x,y,z,w,这4个参数即为地面方程的系数(x,y,z)和常数项(w),将这四个数分别赋值给ABCD,则可得地面方程为

 

                  (4-4)

 

此处的地面方程是在Kinect的深度相机坐标系下得到的,常数项表示Kinect的深度相机的中心点到地面的距离。知道骨骼点的三维坐标和地面方程,则可计算两髋中心离地面的距离baseH

 

(4-5)

baseH<HT(临界值),则认为检测到第二个检测特征。通过实验测试发现,这4个参数并不总是能准确获取,常数项(w)经常无法正确获取,系统自动用0代替,显然这样是不对的,这将对高度特征检测带来致命错误。当不能正确检测到地面方程时,本文近似采用右脚掌代表地面作为备选方案,因为在日常生活中,人的脚掌一般都是在地面上,这样只要计算两髋中心点距离右脚掌的高度baseH。当baseH<HT(临界值),则认为检测到第二个检测特征。

一般情况下,人体跌倒后,身体一般是仰卧式、俯卧式和侧卧式,这时两髋中心点离地面的高度非常小,大概只有人身体腰厚大小或臀宽大小的一半。根据文献[20]对老年人身体尺寸的研究调查结果,第95百分位的男性腰厚大小和女性腰厚大小分别为330mm300mm,男性臀宽大小和女性臀宽大小分别为370mm380mm。考虑到衣服的厚度或身体接触地面不充分等因素,结合实验测试结果,该高度阈值需要设置更大一点才能准确检测到跌倒事件,本文选取0.22m做为第二个检测特征的阈值。当baseH<0.22m,则判定检测到第二个检测特征。

 3.语音询问和确认跌倒事件

当检测到了上述2个特征,且第二个特征持续了5s,则表明跌倒事件很有可能发生了,系统自动向外界发出询问,“请问您跌倒了吗”,并以每2秒的频率连续发送3次。本系统把此处的语音询问函数写到子线程里,这样系统不会在语音播报时而阻塞了系统的实时检测功能。如果在询问的这段时间里面识别到了“NO”或者做出某指定动作(本系统的解除警报动作是双手的高度同时高于头部),则表明没有人跌倒,退出警报;如果识别到了“Yes”或者什么都没有识别到,则表明有人跌倒了,启动警报。

4. 对跌倒事件的处理

当系统成功检测到跌倒事件,系统会自动做出一系列处理。首先,系统自动切换到RGB画面,对于后台监控可以不必时刻关注监控画面,发生跌倒事件后系统会自动切换到RGB画面,监护人员只需通过RGB画面确认是否有人跌倒即可,极大减少了工作量,并很好地保护被监护人的隐私,因为在正常情况下,本系统只会显示深度图和骨骼图。然后,系统自动记录当前时间和保存深度图、骨骼图及骨骼点坐标等数据,这给医护人员判断跌倒老人的病情时提供了一定的线索和依据,同时可以记录跌倒瞬间的画面,为进一步研究跌倒特征提供数据基础,也可用作机器学习的数据源。最后,系统通过邮件服务器自动向指定联系人发送邮件,邮件内容包含被监护人姓名、跌倒事件发生的时间以及现场RGB图片等重要信息,确保相关监护人会在第一时间收到老年人发生跌倒的通知,以便提供及时有效救助,减少损失和伤害。

 

四、跌倒检测核心算法流程图

 

 


 

这篇文章大部分是我毕业论文里面的部分,内容比较偏向理论,读起来可能不是很容易,或者不感兴趣,这也没办法,我尽量写的口语化一点了。每个东西都会要有足够的理论支撑,不然让人难以信服。文中讲了这么多,最主要的是那个算法流程图,写了这么多也是想把这个算法降低通俗易懂一点。

 跌到检测源码函数http://download.csdn.net/detail/baolinq/9798436

参考文献:

[1] 丛丽,王卫红,何彩云.住院老人生存质量的研究现状[J].中国老年学杂志,2015,1:142.

[2] 王颖,何国平,贺达仁.空巢老人的健康问题及对策思考[J]. 中国医学伦理学,2007, 20(3):106-107.

[3] Noury N,Remeau PBourke A Ket al.A Proposal for the classification and evaluation of fall detectors[J]IRBM2008,29(6)340-349

[4] Mathie M J,Coster A C F, Lovell N H,et al.Accelerometry:providing an integrated,practical method for long-term,ambulatory monitoring of human movement[J].Physiological Measurement,2004,volume 25(2):R1-R20(20).

[5] Litvak D,Zigel Y,Gannot I.Fall Detection of Elderly through Floor Vibrations and Sound[C]// Conference proceedings:Annual International Conference of the IEEE Engineering in Medicine and Biology Society.IEEE Engineering in Medicine and Biology Society.Conference.2008:4632 - 4635.

[6] Rougier CMeunier JSt-Arnaud A, et al. Robust video surveillance for fall detection based on human shape deformation[J]Circuits and Systems for Video TechnologyIEEE Transactions on201121(5)611-622

[7] Shotton J,Sharp T,Kipman A,et al.Real-time human pose recognition in parts from single depth images[J].Communications of the ACM,2013,56(1):116-124.

[8] https://www.microsoft.com/en-us/download/details.aspx?id=44561

[9] 毛星云.Opencv编程入门[M]电子工业出版社2015

[10] Planinc R,Kampel M.Introducing the use of depth data for all detection[J].Personal and ubiquitous computing,2013, 17(6): 1063-1072

[11] Zhang Z, Liu W,Metsis V,et al.A viewpoint-independent statistical method for fall detection[C]//Pattern Recognition(ICPR),2012 21st International Conference on.IEEE,2012:3626-3630.

[12] Igual R,Medrano C,Plaza I.Challenges,issues and trends in fall detection systems[J].Biomed. Eng.Online,2013,12(66):1-66

[13] Zhang C,Tian Y.Capezuti E.Privacy preserving automatic fall detection for elderly using RGBD cameras[M].Springer Berlin Heidelberg,2012:625-633

[14] Bian Z P,Chau L P,Magnenat-Thalmann N.A depth video approach for fall detection based on human joints height and falling velocity[J].International Coference on Computer Animation and Social Agents,2012

[15] Kawatsu C,Li J,Chung C J.Development of a fall detection system with Microsoft Kinect[M]//Robot Intelligence Technology and Applications 2012.Springer Berlin Heidelberg,2013:623-630

[16] 王君泽,朱小龙,瞿畅.基于Kinect骨架追踪的人体摔倒自动检测[J].上海交通大学学报,2015,49(9):1359-1365.

[17] 刘国帅,熊平.基于三个特征点的人体跌倒检测[J].科技视界, 2015(21)5-6

[18] 蒋成林.霍尔特指数平滑法参数的优选[J].统计教育,2004(4):13-15.

[19] Kobayashi J,Abdulrazak L,Mokhtari M.Inclusive Society:Health and Wellbeing in the Community,and Care at Home[M].Springer Berlin Heidelberg,2013:238-244

[20] 胡海滔,李志忠,肖惠,等.北京地区老年人人体尺寸测量[J].人类工效学,2006,12(1):39-42.

[21] 吴天昊.基于3轴加速度传感器及陀螺仪的老年人摔倒识别[D].北京工业大学,2013.

 

The end~下偏见

超跑开起来

 

 

展开阅读全文

没有更多推荐了,返回首页