
- 收藏
- 加入书签
基于OpenPose和STM32下的老人防摔倒检测系统
摘要:随着我国老龄化社会的加剧,不可避免的风险是老人摔倒,数据显示,跌倒是我国65岁以上老人伤害死亡的首位原因。人们在行走和奔跑等情况下,经常会发生摔倒的情况。对于正常人而言,在摔倒不是特别严重的情况下,人们可以立刻起来或者打电话报警或者通知家人,然而对于一些特殊的群体,例如空巢老人等,在摔倒时可能无法站立起来,也无法及时电话报警或者通知家人协助帮助。有证据表明,跌倒是全球意外伤害死亡的第二大原因,全球每年有684000人死于跌倒,并且60岁以上的老年人跌倒致命次数最多。为解决以上问题,本文利用基于深度学习的OpenPose提取算法在CASIA-B视频数据库提取人体姿态骨架,并通过 STM32单片机系统发出预警,从而为老年人安全问题提供一个智能高效的监测系统。
关键词:老人摔倒;OpenPose;姿态骨架;STM32单片机;预警
1.研究意义
老年人跌倒是一个非常严重的问题,尤其是对于那些年迈体弱、身体不适的人来说。智能监测系统可以通过监测老年人的动作、姿势和行动路径等方面的变化检测到跌倒,从而及时预警并采取应急措施,防止跌倒带来的危害。
2.研究难点
(1)协变量变化问题。在姿态识别中协变量的变化往往影响姿态序列的检测与识别,一其协变量包括视角、衣着打扮和携带物等。从某种角度来说,视角是产生遮挡的间接原因。在实际应用领域摄像头的探头固定,但行人行走方向、外观和动作幅度是不可控因素,因此姿态识别项目落地比较难。衣着打扮和携带物会因不同风格变化被主观地认为是人体姿态变化的一部分,故被这些协变量影响的人体姿态并不能客观代表步态特征,也会导致姿态特征表达与提取不准确。总之,如何忽略协变量的变化情况以精确提取姿态特征成为这项技术成功的重难点。
(2) 姿态数据库不足。现有的姿态数据库大多都是在室内无背景干扰的情况下拍摄的,而且样本数据库数量小,对于验证算法的有效性比较差,缺乏大规模、标准化的姿态数据集。未来创建姿态数据库应考虑增加样本数据集和更多的实际影响因素,比如路况、环境等。
3.深度学习和姿态识别算法的理论研究
OpenPose姿态识别首先用一种人体姿态估计检测算法,找出视频中出现目标人体概率最大的区域,以此来缩小下一步待处理图像的大小;其次将上一步得出的图像单独剪切下来作为新的图像,并且记录运动目标在原始图像的位置;然后将新的图像作为OpenPose算法的输入,得到人体骨骼的关键点并且标注;最后根据第一步记录的位置将处理后的图像填充回原始图像,得到已经标注了人体骨骼关键点的图像,接下来对关键的两个步骤进行详细介绍。
3.1深度学习
深度学习神经网络随着人工神经网络在各个科技领域的发展快速崛起,因其能学习解释复杂问题的强大能力占据人工神经网络重要的位置。它能模拟人脑更深层次的结构和思想机制,受到各界研究者的青睐。而步态识别技术需要这样一个能通过多层拓扑网络结构依次提取浅层特征和深层特征的识别系统,故利用深度学习的强大优势详细探索网络度、神经元个数和特征提取性能之间的关系,对形成步态高维度的特征样本以提高识别精度是有重大意义的。
3.2姿态识别理论模型
3.2.1运动检测
常用的运动目标检测方法有:帧间差分法、背景差分法、光流法、运动能量法。
运动目标检测的主要目的是从视频图像中提取出运动目标并获得其特征信心,如形状、轮廓等。提取运动目标的过程实际就是一个图像分割的过程,而运动物体只有在连续的图像序列(如视频图像序列)中才能体现出来,运动目标提取的过程就是在连续的图像序列中寻找差异,并把由于物体运动和表现出来的差异提取出来。
3.2.2 OpenPose姿态算法
OpenPose是依赖于卷积神经网络和监督学习实现人体姿态评估算法,其主要的优点在于适用于多人二维且较为精准和迅速的识别开源模型。
整个动作监测系统的搭建主要是依赖于OpenPose的姿态识别环境。而OpenPose的基 本环境依赖于Python,CUDA和swig的支持,其中Python是作为OpenPose的代码编写和运行工具,CUDA作为调用显卡训练测试的必须软件需要和Python版本有一定的关系,swig目的在于给OpenPose编译环境。根据OpenPose官方提供的cmu模型、mobilenet_thin模型、mobilenet__v2_ large模型和mobilenet__v2_smal模型的评价,我们选择cmu模型作为姿态识别的调用模型,主要原因在于cmu具有更高一些的识别精度。
OpenPose的网络结构图如图1.3所示,该网络能在多人姿态估计的众多算法中脱颖而出是因为它能进行实时检测多人姿态,这是前所未有的。另一方面它能同频同时检测置信图,并及时做出预估计;提出部分亲和场(PAF),即利用向量对检测到的可变数量的人体关节进行配对。OpenPose网络结构由并行的PAF和置信图两部分组成,网络上半部分是PAF部分,用于预估计人体各个关节部位的位置,解决了只编码位置和支撑区太多的限制问题;下半部分是置信图部分,用于将各个部位的置信度根据人体数量对关节点进行配对分组。
OpenPose算法提取人体骨架关节点不需要进行复杂的预处理环节,减少了多环节引起的步态特征提取的误差,故本文利用其提取步态骨架,针对出现的问题对网络进行改进,从而实现高精度的姿态识别。
4.研究思路和方法
在对老人摔倒模型进行python环境搭建,采用OpenPose深度学习算法来对于各种摄像设备进行定义,使得实时检测老人的行为状况,做到及时预警。
(1)针对老年人现实需求,针对老年人室内、外活动或出行的安全监测要求,比较选择合理的技术方案,设计系统功能。
(2)通过查阅文献和调研比较,可选择基于加速度传感器、陀螺仪、摄像头等单传感器,或多传感器融合的方式,配合适当的检测算法,进行状态检测判断;
(3)方案确定后,开发设计电路板、检测模块、定位模块、通信模块等,设计开发可穿戴式设备,配合算法,检测摔倒情况,准确率达到85%以上。
(4)检测到摔倒等意外情况后,能通过网络将GPS定位信息、时间、摔倒等信息,通过适当的方式进行报警和通知监护人。
(5)监测数据可通过网络发送到云平台进行处理;
5.总结
文章主要探讨了针对老人防摔倒提出的解决方案,从研究背景和研究难点出发,通过分析OpenPose姿态算法搭建理论框架模型,切实解决老人防摔倒问题,同时目前姿态识别技术亟需解决的问题就是精确表征姿态特征和提高识别率,故本文着重研究了基于深度学习的骨架提取姿态识别。
参考文献
[1] Chen Xin, Luo Xizhao, Weng Jian, et al. Multi-View Gait Image Generation for Cross-ViewGait Recognition[J]. IEEE Transactions on Image Processing, 2021, 30:3041-3055.
[2] 张诚.基于深度学习的步态识别关键技术研究[D].北京:北京邮电大学,2016.
[3] 蔡哲栋.基于YOLOv3剪枝模型的姿态和步态识别算法研究[D].杭州:杭州电子科技大学,2020.
[4] Tang Jing, Luo Jian, Tjahjadi Tardi, et al. 2.5D Multi-View Gait Recognition Based on Point
Cloud Registration[J]. Sensors, 2014, 14(4):6124-6143.
[5] 韩丹.多视角下基于人体骨架的步态分析[D].北京:北京交通大学,2019.