使用姿势估计进行跌倒检测_使用姿势估计进行跌倒检测的方法
liuian 2025-10-23 07:06 29 浏览
所有目标检测已成为动作识别研究的重要垫脚石,即训练AI对行走和坐下等一般动作进行分类。为了使AI能够理解接收到的输入,我们需要教它检测特定的图案和形状,并制定自己的规则。
为了构建能够检测跌倒的AI ,我们决定不收集大型数据集和为此目的专门训练模型。相反,我们使用姿势估计作为构建基块。
姿势估计
姿势估计是人体关节(通常称为关键点)在图像和视频帧中的定位。通常,每个人都将由多个关键点组成。将在关键点对之间绘制线条,有效地绘制人的粗略形状。基于输入和检测方法的姿势估计方法有很多种。
为了使每个人都可以轻松访问此模型,我将输入选择为RGB图像并由OpenCV处理。这意味着它与典型的网络摄像头,视频文件甚至HTTP / RTSP流兼容。
预训练模型
我们使用的姿势估计模型是EPFL的VITA实验室的OpenPifPaf。检测方法是自下而上的,这意味着AI首先分析整个图像并找出它看到的所有关键点。然后,它将关键点组合在一起以确定图像中的人物。这与自顶向下方法不同,在自顶向下方法中,AI使用基本人员检测器来识别感兴趣的区域,然后再放大以识别各个关键点。要了解有关OpenPifPaf如何开发的更多信息,请查看其CVPR 2019论文或阅读其源代码。
多流输入
大多数开源模型只能在任何时候处理单个输入。为了将来使它更具通用性和可扩展性,我们使用了Python中的多处理库来使用子进程同时处理多个流。这使我们能够在具有此功能的计算机上充分利用多个处理器。
人员追踪
在有多个人的视频帧中,可能很难找出一个跌倒的人。这是因为算法需要在连续的帧之间关联同一个人。但是,如果他/她不断移动,它如何知道是否在看同一个人呢?
解决方案是实施多人跟踪器。不一定要花哨;只需一个简单的通用对象跟踪器就足够了。如何完成跟踪非常简单明了,可以在以下步骤中进行概述:
1. 计算质心(以脖子为准)。
2. 为每个质心分配唯一的ID。
3. 在下一帧中计算新质心。
4. 计算当前帧和上一帧的质心之间的欧几里得距离,并根据最小距离对其进行关联。
5. 如果找到相关性,请使用旧质心的ID更新新质心。
6. 如果未找到相关性,则给新质心一个唯一的ID(新人进入框架)。
7. 如果此人离开框架达一定数量的框架,请移除质心和ID。
跌倒检测算法
概念化的初始跌倒检测算法相对简单。我首先选择脖子作为稳定的参考点(与摆动的胳膊和腿比较)。接下来,我根据定义整个人的边界框计算了人的感知高度。然后,我以帧间隔计算了脖子点之间的垂直距离。如果垂直距离超过人的感知身高的一半,则该算法将发出跌倒信号。
但是,在观看多部关于摔倒的YouTube视频之后,我意识到摔倒的方式和方向不同。当视场倾斜时,未检测到一些跌倒,因为受害者似乎并没有剧烈运动变化。我的模型也不够精确,当人们弯腰绑鞋带或直接沿着视频帧奔跑时,我的模型总是会产生误报。
我们决定实施更多功能来完善算法:
我们没有分析一维运动(y轴),而是分析了二维运动(x轴和y轴)以包含不同的相机角度。
添加了边界框检查,以查看人的宽度是否大于其身高。这假定该人在地面上而不是直立的。通过使用这种方法,快速移动的人或骑自行车的人可以消除误报。
添加了两点检查功能,仅当可以同时检测到该人的脖子和脚踝点时才注意跌倒。如果由于遮挡而无法完全识别人的身高,这可以防止对人的身高进行不正确的计算
试验结果
在撰写本文时,缺乏大量的跌倒检测数据集。我们选择UR跌倒检测数据集来测试我的模型,因为它包含不同的跌倒场景。在总共30个视频中,该模型正确地识别了25个跌倒,并在主体掉出画面时错过了另外5个跌倒。这给了我们83.33%的精确度和90.91%的F1分数。
这些结果可以被认为是一个良好的开端,但由于样本量较小,因此尚无定论。由于没有其他类似跌倒的动作(例如系鞋带),这也意味着我无法对模型进行压力测试。
该测试是在两台NVIDIA Quadro GV100上执行的,平均速度为6 FPS,仅够进行实时处理。由于众多层的结果,计算量非常大。声称以高于15 FPS的速度运行的模型通常是不准确的,或者由可怕的GPU支持。
应用领域
跌倒检测可用于许多情况下以提供帮助。一个非详尽的清单包括:
1. 喝醉的人
2. 老人
3. 孩子们在操场上
4. 患有心脏病或中风等疾病的人
5. 粗心的人跌倒
对于更严重的情况,对跌倒的迅速反应可能意味着生与死之间的差异。
未来发展
跌倒检测的准确性在很大程度上取决于姿势估计的准确性。典型的姿势估计模型是在具有对象正面视图的清晰图像上训练的。但是,跌倒会导致对象被扭曲为怪异的姿势,并且大多数姿势估计模型都无法在这种情况下准确定义骨骼。此外,这些模型的鲁棒性不足以克服遮挡或图像噪声。
为了达到人类水平的检测精度,当前的姿势估计模型将需要在更多种姿势上进行训练,并包括具有遮挡的低分辨率图像。
当前的硬件限制也阻碍了姿势估计模型在具有高帧频的视频上平稳运行的能力。这些模型将需要一段时间才能在具有基本GPU甚至仅具有CPU的任何笔记本电脑上轻松运行。
除了姿势估计之外,专门针对跌倒进行训练的深度学习模型可能会表现得甚至更好。必须仔细训练模型,以将跌倒与其他类似跌倒的动作区分开。当然,这必须与广泛的数据集相结合,以训练模型。当然,这种模型的范围是有限的,因为它只能标识一个特定的动作,而不能标识各种动作。
另一种可能的方法也将是基于知识的系统,该系统正在开发一种模型,以使其能够学习人类的行为。这可以通过基于规则的系统在其中基于某些规则进行决策来实现,也可以通过基于案例的系统在过去的案例中应用相似性来实现,而过去的案例表明该案例可以对新案例做出明智的判断。
结论
为了解决包括多个动作在内的一般动作识别这一更困难的问题,我们必须首先理解并掌握检测单个动作的复杂性。如果我们能够开发出一个可以轻松识别跌倒的模型,那么我们将能够提取某些模式,从而使该模型能够轻松地检测其他类型的动作。
相关推荐
-
- mediaplayer播放记录在哪里(mediaplayer历史记录)
-
《WindowsMediaPlayer》无法播放该文件,表示《WindowsMediaPlayer》目前的版本不支持该视频的格式编码。解决方法: 1.如果安装的是正版操作系统,点帮助→检查更新,稍待片刻,WindowsMed...
-
2026-01-14 02:37 liuian
- 电脑xp怎么换系统win7(电脑xp系统换win7教程)
-
第一种方法:自助安装win7系统 我们在进行自助安装win7系统之前我们要保证我们的电脑是联网的。为了能更加顺利的完成对xp系统的升级,我们的电脑最好是能高速上网的,只有能联网我们才可以下载最新的系...
- appstore官方网站(appstore.apple.com)
-
Appstore即applicationstore,通常理解为应用商店。Appstore是苹果公司基于iPhone的软件应用商店,向iPhone的用户提供第三方的应用软件服务,这是苹果开创的一...
- 电脑开不了机怎么办显示英文字母
-
win7操作系统电脑在开机的时候屏幕界面出现CLIENTMACADDR,然后就一直停在了这个界面,要等很长时间才能进入系统登入界面。出现这样问题的原因是什么?这是因为网卡启用了BOOTROM芯片...
- win7此windows副本不是正版(win7 此windows副本不是正版)
-
win7系统提示副本不是正版解决方法:1.打开设备,调出运行窗口,输入命令“cmd”,并按下回车键;2.这时命令提示符窗口便会自动弹出;3.输入命令“SLMGR-REARM”,再按下回车键;4.命令...
- win7安装选版本(win7选哪个版本)
-
Win7旗舰版更好用。Windows7旗舰版属于微软公司开发的Windows7系统系列中的终结版本,是为了取代WindowsXP系统的新系统,Windows7的版本还有简易版、家庭普通版、家庭高...
-
- 电脑psd文件用什么打开(电脑上psd文件打不开)
-
具体操作步骤如下:1、首先鼠标右键单击PSD格式的图片,然后点击“打开方式”选项。2、然后在该页面中点击“选择默认程序”选项。3、之后在该页面中点击“浏览”选项。4、然后在该页面中点击选择要打开的软件后点击“确定”选项即可打开了。PSD文...
-
2026-01-14 01:05 liuian
- tplink登陆密码(tplink登录密码)
-
TP-LINK路由器默认的出厂登录用户名和密码均为小写字母“admin”。该密码是保护路由器免遭攻击的重要密码,忘记了登录的管理员密码,只能通过路由器的Reset复位键(部分路由器为Reset小孔)进...
- windows8中文版激活(windows8激活怎么操作)
-
要激活Windows8操作系统,可以按照以下步骤进行操作:1.打开“开始”菜单,点击桌面图标,进入桌面模式。2.从屏幕右侧滑动以打开“设置”栏,然后点击“更改PC设置”。3.在左侧导航栏中选择...
-
- 手机app怎么下载(手机app怎么下载安装)
-
每个手机上都有下载APP的应用商店,以下面为例演示,下载方法如下:1、首先在手机上找到并打开应用商店。2、接下来进入到应用商店之后,选择红色箭头所指处的搜索栏,搜索需要下载的应用。3、接下来会弹出搜索的应用,点击红色箭头所...
-
2026-01-13 23:37 liuian
- dell电脑蓝屏开不了机怎么办
-
电脑蓝屏的解决方法,先软件后硬件,一般软件问题比较多一点。1、最后一次正确的配置:在开机启动未进入到操作系统之前我们不停按下F8键,选择“最后一次正确的配置”然后回车即可。2、安全模式:如果“最后一次...
- 如何单独改c盘为mbr模式(如何c盘改为mbr分区 免格式化)
-
硬盘分为两种格式的分区,一种是GPT,一种是MBR,一般win7或者以下系统是安装在MBR分区中,而win8和win10一般是安装在gpt分区中的,这两个分区格...
- 一周热门
-
-
飞牛OS入门安装遇到问题,如何解决?
-
如何在 iPhone 和 Android 上恢复已删除的抖音消息
-
Boost高性能并发无锁队列指南:boost::lockfree::queue
-
大模型手册: 保姆级用CherryStudio知识库
-
用什么工具在Win中查看8G大的log文件?
-
如何在 Windows 10 或 11 上通过命令行安装 Node.js 和 NPM
-
威联通NAS安装阿里云盘WebDAV服务并添加到Infuse
-
Trae IDE 如何与 GitHub 无缝对接?
-
idea插件之maven search(工欲善其事,必先利其器)
-
如何修改图片拍摄日期?快速修改图片拍摄日期的6种方法
-
- 最近发表
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)
- c++ 字符串查找 (35)
- mysql刷新权限 (34)
