基于python的室内老人实时摔倒智能监测系统-跌倒检测系统(康复训练检测+代码)

简介: 基于python的室内老人实时摔倒智能监测系统-跌倒检测系统(康复训练检测+代码)

概述

  • 导入所需的库,包括cv2、和numpy
  • 定义了一个用于计算角度的函数calculate_angle(a, b, c),其中a、b和c是三个关键点的坐标。
  • 初始化姿态检测和绘图工具。
  • 打开并读取视频文件。

-摔倒检测(fallen)

  • 循环遍历视频的每一帧: a. 将帧转换为RGB格式。 b. 使用MediaPipe进行姿态检测,得到结果。 c.
    将帧重新转换为BGR格式。 d. 从结果中提取关键点的坐标。 e. 调用calculate_angle函数计算角度。
  • 该代码的研究原理是利用姿态识别技术来检测人体的关键点,并根据这些关键点的位置计算出特定关节的角度。在这段代码中,使用了姿态检测功能来获取人体的关键点坐标。然后,根据关键点的位置,计算出左眼、左髋、左脚跟、右眼、右髋、右脚跟、右手食指、左手食指之间的角度。


抬手检测

• 1

angle1 = calculate_angle(left_eye, left_hip, left_heel)

angle2 = calculate_angle(right_eye, right_hip, right_heel)


            
            # Visualize angle
            cv2.putText(image, str(angle1), 
                           tuple(np.multiply(left_hip, [640, 480]).astype(int)), 
                           cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 255, 255), 2, cv2.LINE_AA
                                )
            cv2.putText(image, str(angle2), 
                           tuple(np.multiply(right_hip, [640, 480]).astype(int)), 
                           cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 255, 255), 2, cv2.LINE_AA
                                )
            print(f"left_eye={left_eye}")
            print(f"right_eye={right_eye}")
            
            print(f"left_hip={left_hip}")
            print(f"right_hip={right_hip}")

            print(f"left_heel={left_heel}")
            print(f"right_heel={right_heel}")

            print(f"right index={right_index}")
            print(f"left index={left_index}")

            if ((left_eye[0]>=0.41 and left_eye[0]<=0.43) and (left_hip[0]>=0.44 and left_hip[0]<=0.46) and (left_heel[0]>=0.41 and left_heel[0]<=0.43) or (right_eye[0]>=0.41 and right_eye[0]<=0.43) and (right_hip[0]<=0.43 and right_hip[0]>=0.41) and (right_heel[0]>=0.37 and right_heel[0]<=0.39)):

                if ((left_eye[1]>=0.24 and left_eye[1]<=0.33) and (left_hip[1]<=0.35 and left_hip[1]>=0.45) and (left_heel[1]<=0.74 and left_heel[1]>=0.72) or (right_eye[1]<=0.30 and right_eye[1]>=0.24) and (right_hip[1]<=0.50 and right_hip[1]>=0.32) and (right_heel[1]>=0.71 and right_heel[0]<=0.73)):
                    stage = "safe :)"
            # Curl counter logic
            else:
                if angle1 != angle2 and (angle1>170 and angle2>170):
                    if (((right_index[0]<0.70 and right_index[0]>0.20) and (right_index[1]<0.56 and right_index[1]>0.15)) or ((left_index[0]<0.55 and left_index[0]>0.18) and (left_index[1]<0.56 and left_index[1]>0.15))):
                        stage="Hanging on !!"
                    else:
                        stage = "fallen :("    

                elif angle1 != angle2 and (angle1<140 or angle2<140) :
                    stage = "Trying to Walk"
                elif angle1!=angle2 and ((angle1<168 and angle1>140) and (angle2<168 and angle2>140)):
                    stage="Barely Walking"
                else:
                    pass

这段代码可以用于识别人体的摔倒动作。通过检测特定角度的变化,可以判断人体是否发生了摔倒行为。例如,当角度超过一定阈值时,可以认定为摔倒,并进行相应的处理操作。


需要注意的是,该段代码仅提供了角度计算的基础框架,具体的摔倒检测算法需要根据实际需求进行进一步的开发和优化


接下来,进入一个循环,不断读取视频的每一帧。在每一帧中,首先通过cv2.cvtColor函数将图像从BGR格式转换为RGB格式,因为mediapipe库需要RGB格式的图像进行处理。然后,将图像的可写属性设置为False,确保图像数据不可更改。

结果展示

摔倒时

接下来,从结果对象中提取姿态关键点的坐标。通过属性可以获取到每个关键点的坐标,例如左眼、左髋、左脚跟、右眼、右髋、右脚跟、右手食指和左手食指等。

正常安全状态时

最后,在获取到关键点坐标之后,调用calculate_angle函数计算特定关节之间的角度。这些关节包括左眼、左髋、左脚跟、右眼、右髋、右脚跟、右手食指和左手食指。


通过检测特定角度的变化,可以判断人体是否发生了摔倒行为。例如,当角度超过一定阈值时,可以认定为摔倒,并进行相应的处理操作。摔倒检测是一个重要的研究领域,可以应用于老年人护理、安全监控等领域。


正常行走状态时

应用领域

摔倒检测技术在多个领域都有应用的潜力。以下是一些可能的应用领域:


  1. 老年人照护:老年人摔倒是导致伤害和事故的主要原因之一。通过使用摔倒检测技术,可以实时监测老年人的姿态并及时发现是否发生了摔倒事件。一旦检测到摔倒,系统可以自动触发警报、通知护理人员或紧急救援服务。
  2. 安全监控:在公共场所、工业领域和建筑工地等环境中,摔倒检测技术可以用于监测员工、访客或工人的安全。一旦检测到摔倒,系统可以立即发出警报,以便采取必要的紧急措施。
  3. 运动训练:在体育训练和康复治疗中,摔倒检测技术可以帮助教练或治疗师监测运动员或患者的姿势和动作。通过实时检测和反馈,可以改善运动技能、预防运动损伤,并提高康复治疗的效果。
  4. 虚拟现实:在虚拟现实(VR)和增强现实(AR)应用中,摔倒检测技术可以用于更加真实和沉浸的用户体验。通过监测用户的姿态和动作,系统可以相应地调整虚拟世界的呈现,以提供更加逼真和交互性的体验。
  5. 自动驾驶汽车:在自动驾驶汽车领域,摔倒检测技术可以用于监测乘客或驾驶员的状态。一旦检测到乘客或驾驶员发生摔倒,系统可以自动采取措施,如停车、呼叫急救等,以确保安全。


这些应用领域只是摔倒检测技术潜在应用的一部分。随着技术的不断发展和创新,摔倒检测技术可能在更多领域得到应用,并为人们的生活带来更多便利和安全。

相关文章
|
8月前
|
算法 搜索推荐 JavaScript
基于python智能推荐算法的全屋定制系统
本研究聚焦基于智能推荐算法的全屋定制平台网站设计,旨在解决消费者在个性化定制中面临的选择难题。通过整合Django、Vue、Python与MySQL等技术,构建集家装设计、材料推荐、家具搭配于一体的一站式智能服务平台,提升用户体验与行业数字化水平。
|
8月前
|
存储 分布式计算 大数据
基于Python大数据的的电商用户行为分析系统
本系统基于Django、Scrapy与Hadoop技术,构建电商用户行为分析平台。通过爬取与处理海量用户数据,实现行为追踪、偏好分析与个性化推荐,助力企业提升营销精准度与用户体验,推动电商智能化发展。
|
8月前
|
机器学习/深度学习 大数据 关系型数据库
基于python大数据的台风灾害分析及预测系统
针对台风灾害预警滞后、精度不足等问题,本研究基于Python与大数据技术,构建多源数据融合的台风预测系统。利用机器学习提升路径与强度预测准确率,结合Django框架实现动态可视化与实时预警,为防灾决策提供科学支持,显著提高应急响应效率,具有重要社会经济价值。
|
8月前
|
机器学习/深度学习 大数据 关系型数据库
基于python大数据的青少年网络使用情况分析及预测系统
本研究基于Python大数据技术,构建青少年网络行为分析系统,旨在破解现有防沉迷模式下用户画像模糊、预警滞后等难题。通过整合多平台亿级数据,运用机器学习实现精准行为预测与实时干预,推动数字治理向“数据驱动”转型,为家庭、学校及政府提供科学决策支持,助力青少年健康上网。
|
9月前
|
数据采集 数据可视化 关系型数据库
基于python大数据的电影数据可视化分析系统
电影分析与可视化平台顺应电影产业数字化趋势,整合大数据处理、人工智能与Web技术,实现电影数据的采集、分析与可视化展示。平台支持票房、评分、观众行为等多维度分析,助力行业洞察与决策,同时提供互动界面,增强观众对电影文化的理解。技术上依托Python、MySQL、Flask、HTML等构建,融合数据采集与AI分析,提升电影行业的数据应用能力。
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的电影订票管理系统
该项目是基于Python+Vue开发的电影订票管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的电影订票管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
275 1
|
数据采集 数据可视化 关系型数据库
【优秀python web设计】基于Python flask的猫眼电影可视化系统,可视化用echart,前端Layui,数据库用MySQL,包括爬虫
本文介绍了一个基于Python Flask框架、MySQL数据库和Layui前端框架的猫眼电影数据采集分析与可视化系统,该系统通过爬虫技术采集电影数据,利用数据分析库进行处理,并使用Echart进行数据的可视化展示,以提供全面、准确的电影市场分析结果。
907 4

推荐镜像

更多