基于人体骨架的跌倒行为识别研究
2020-03-15张程祝凯赵德鹏刘振宇刘迎松
张程 祝凯 赵德鹏 刘振宇 刘迎松
(1.青岛理工大学 山东省青岛市 266000 2.海尔智家股份有限公司 山东省青岛市 266000)
全球每年有65 万人由于跌倒而死亡,跌倒已经成为导致意外死亡的第二大主因。研究显示,中国老年人总体跌倒发生率为20.8%[1]。由于老人行动迟缓,行为不便,跌倒后若没有得到及时的救助,极有可能导致严重伤害甚至死亡[2]。跌倒检测系统可自动检测跌倒事件的发生并第一时间向他人发出求救信号从而极大地减小跌倒给老年人带来的伤害[3]。
关于检测跌倒的方法根据传感器的种类可分为三类:基于视觉、基于速度感知、基于无线电频传感器[4]。Zhao 等人[5]使用了Kinect V2 或 Orbbec Astra 来获得场景信息,采用随机森林提取人体上身信息和人与床之间的相对位置关系,有效地将人从床上跌倒行为和其他的一些日常动作区分开来。但是该方法容易受到干扰并且不能从盖着被子的人体身上获得上身信息,因此无法很好地应用在现实生活当中。文献[6]设计了一个基于骨骼信息的智能监控系统,可以检测暴力行为并跟踪施暴者,但识别的行为较简单无法应用到普遍的场景。文献[7]通过ViBe 算法并结合YUV 颜色空间去除视频中的背景信息,之后用普通的卷积神经网络对去除阴影后的运动人体图像来识别老人异常行为,但去除背景的方法很有可能也去除了人体的部分信息,导致结果不准确。文献[8]采用了基于视频与骨架的融合算法来对视频中关键帧进行特征提取与识别,虽然提高了精度,但极大增加了计算量,难以满足实时性的要求。
本文使用OpenPose,从视频中获取人体的骨架信息,之后采用基于骨架的深度学习方法MS-G3D 检测人体跌倒行为,对现有的数据集进行训练与测试,并与其他方法相比较分析,为搭建部署家居环境下老人跌倒行为检测系统提供参考。本文采用的MS-G3D网络模型以骨架数据作为输入,消除了视频背景信息的干扰,同时也保护了个人的隐私问题。
1 数据集的建立及预处理
考虑到深度学习方法的特性,本文收集了一些跌倒数据集用于网络的训练。其中URFD 数据集[8]一共包含了70 个(30 个跌倒数据和40 个日常行为数据)序列,所有跌倒数据集在七个不同的场景下通过两台Microsoft Kinect 相机收集的;NTU RGB+D 120[10]是目前最大的动作测试数据集,我们选取了其中的跌倒行为(共948个视频)和其他几种类似跌倒动作的行为如坐下,穿鞋,脱鞋,蹲下(共3804 个项目)作为对照试验的样本数据;UP-FALL[11]数据集,包括四个方向的摔倒和从椅子上摔倒五种(3 个角度的相机)。由于跌倒行为的时间通常为2-4 秒,本文对这些跌倒视频明显过大的样本,采用滑动窗口的方法分离出跌倒行为之外的动作。另外,由滑动窗口获取的子序列的标签根据所占比例最大的行为动作所决定,比如设置了大小为10 的滑动窗口,其中8 帧为跌倒行为,则标记该子序列的标签为跌倒。我们去除了过渡样本(如5 帧为跌倒,5 帧为躺着),剩下的子序列将用于跌倒检测。
图1:跌倒检测系统结构
图2:改进骨架信息
2 跌倒行为识别系统设计
本文搭建的家居环境下跌倒检测系统结构如图1 所示,该结构分为六个步骤。首先是数据采集,通过摄像机捕捉原始的图像信息。第二步通过OpenPose 算法从原始的数据中提取人体骨架信息。在第三步中,在现有的骨架关键点数据的基础上进行删除或添加操作,并生成新的人体骨架信息。第四步,将第三步得到的结果作为MSG3D[10]网络的输入,训练获得输出结果。第五步和第六步分别检测当前行为是否是跌倒动作,如果出现跌倒行为,发出警报并向相关的其他人员发出求救信号。
图3:识别跌倒及与跌倒相似日常行为的混淆矩阵
图4:识别错误的样本示例
为了得到关节点信息,本文使用目前流行的姿态估计算法OpenPose,来获取每帧样本中目标体的25 个关节点坐标。本文用(X,Y,Z)来表示每个关节点信息,其中X,Y 表示关节的二维坐标,C 表示该关节点的置信度。对于一个T 帧的视频,将其转换成(3,18,T)维的向量数据。为了符合网络模型的输入,本文调整了算法获取的关节点坐标范围,其中X 范围调整为[0,1],Y 范围调整为[-0.6,0.6]。图片左上角的坐标为(0,0.6),右下角的坐标为(1,-0.6)。根据跌倒行为特性,为减少网络参数与计算量,去掉了头部的四个关节点和脚上的四个关节点(图2(a)中的15,16,17,18 以及20,21,23,24),并根据现有的关节点增加了图2(b)中的2,3 两点的步骤。
目前基于人体骨架信息的行为识别的算法都是将连续帧中的信息分割为空间域和时间域,用GCN 和RNN 等算法分别在两者上提取特征后再进行融合,这种方法阻碍了不同帧之间相关联的其他位置的点的相互影响。MS-G3D 单击或点击此处输入文字。提出了多尺度扩展(MS)和统一时空图卷积模块(G3D),分别解决了以高阶多项式方式表示的邻接矩阵的偏置问题和利用复杂的跨时空节点关系来识别行为动作。将多尺度聚合方案与G3D 相结合,Multi-Scale G3D 计算公式见公式(1)。
3 实验结果与分析
整个实验的测试平台为:操作系统为Ubuntu 18 LTS64 位系统。计算机内存为16 GB,搭载Intel® Core ™ i5-8300KCPU @ 2.30 GHz 处理器,采用英伟达GTX1060 显卡加速图像处理。除了分析检测跌倒行为,本文还设置选取了其他几种类型的日常活动(行走,坐下,下蹲,弯腰等)以进行评估。这五项动作可能与跌倒行为的运动特征有关,并经常出现在日常生活中。
图3 为识别跌倒及与跌倒相似日常行为的混淆矩阵。由图可见,整体上网络模型在已处理过的骨架信息上可较好区分四个动作。其中坐下行为与跌倒最容易混淆,图4 为将坐下识别为跌倒的样本案例,所示四张图像分别是四个跌倒视频中的最后一帧,明显可以看出这些样本应该归类为蹲下、坐下等非跌倒行为,对此类情况还需专门研究与讨论。
4 结论
实时检测跌倒行为的发生对老年人生活护理至关重要。我们采用了基于视觉的方法来试图解决老年人的跌倒问题。我们通过利用家用相机来确保全天候24 小时的检测并避免了个人的隐私问题。采用最新的OPEN POSE 提取人体骨架并采用最新的MS-G3D 算法识别人体跌倒行为,结果表明算法取得较好的效果。由于目前的跌倒数据集所整理的视频样本有限,因此对网络模型的准确率有着较大的影响,且有一些动作和跌倒动作难以区分,后续我们将构建一个更大的跌倒数据集,并对难以区分的样本进行针对性研究。