首页 > 编程语言 >实战 | 用Python和OpenCV搭建一个老人跌倒智能监测系统 (步骤 + 源码)

实战 | 用Python和OpenCV搭建一个老人跌倒智能监测系统 (步骤 + 源码)

时间:2022-10-18 12:36:06浏览次数:91  
标签:函数 Python cv2 OpenCV 源码 跌倒 坐标 我们


导读

本文将使用Python、OpenCV和MediaPipe搭建一个老人跌倒智能监测系统。(公众号:OpenCV与AI深度学习)

背景介绍

    老人监测系统是一种智能检测系统,可以检测老人是否躺在床上或是否跌倒在地。这是一个解决实际问题的程序,可用于在您外出工作或外出时监控家中的老人,以便在出现任何问题时通知您。

实战 | 用Python和OpenCV搭建一个老人跌倒智能监测系统 (步骤 + 源码)_python

实现步骤

【1】导入必要的模块:    在 python 中导入 Numpy、MediaPipe 和 opencv

实战 | 用Python和OpenCV搭建一个老人跌倒智能监测系统 (步骤 + 源码)_python_02


【2】定义一个计算角度的函数:

    由于我们将根据我们使用 OpenCV 获得的角度和坐标来假设一个人是在行走还是跌倒在地上,因此,我们必须计算角度,最简单的方法是定义一个函数,然后调用它在程序中。

实战 | 用Python和OpenCV搭建一个老人跌倒智能监测系统 (步骤 + 源码)_公众号_03

【3】查找坐标:

    我们还必须找到坐标,以便我们可以在条件下使用它们,也可以将它们与calculate_angle函数一起使用。

实战 | 用Python和OpenCV搭建一个老人跌倒智能监测系统 (步骤 + 源码)_python_04

【4】如何知道主体(老人)是安全的还是跌倒的?

    我们将借助从 cv2 和 mediapipe 获得的坐标以及使用上述定义的函数获得的角度来找到这一点。

    由于我们正在获取眼睛臀部和脚踝的坐标,因此我们知道当一个人平躺(倒下)时,他的眼睛、臀部和脚踝之间的角度在 170 到 180 度的范围内。因此,我们可以简单地提出一个条件,当角度在 170 -180 度之间时,我们可以说一个人摔倒了。

实战 | 用Python和OpenCV搭建一个老人跌倒智能监测系统 (步骤 + 源码)_深度学习_05

    现在你的脑海中可能会出现一个问题,即如何确定这个人是否真的摔倒了,或者他是否只是躺在床上,因为在这两种情况下,角度都在相同的范围内。

我们也会回答它,所以请继续阅读:)

【5】如何区分床和地板?

    我们将再次使用从 OpenCV 获得的坐标,然后使用它来找到床的坐标,然后在检查跌倒条件时引入一个新条件,即当受试者的坐标与床坐标一致时,这意味着一个人在床上时自然是安全的。这种情况将排除跌倒的情况,程序将显示安全。只有当此条件变为假时,才会检查跌倒条件和其他步行和尝试步行条件。

实战 | 用Python和OpenCV搭建一个老人跌倒智能监测系统 (步骤 + 源码)_公众号_06

    因此,通过引入带有床坐标的单一条件,我们也解决了上述问题。

【6】让我们在屏幕上打印结果:

    现在打印摔倒和安全等的结果;我们可以很容易地使用 cv2 中的 putText 函数来显示保存在变量 stage 中的文本。

    该函数的示例用法如下所示:


cv2.putText(image, ‘Condition: ‘, (15,12), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0,0,0), 1, cv2.LINE_AA)

【7】添加图形用户界面:

    我们还可以添加一点 GUI 来进一步增加整个程序的外观并使其更加用户友好。实现最简单 GUI 的代码片段示例如下:

实战 | 用Python和OpenCV搭建一个老人跌倒智能监测系统 (步骤 + 源码)_公众号_07

最终效果:

实战 | 用Python和OpenCV搭建一个老人跌倒智能监测系统 (步骤 + 源码)_深度学习_08


实战 | 用Python和OpenCV搭建一个老人跌倒智能监测系统 (步骤 + 源码)_python_09

实战 | 用Python和OpenCV搭建一个老人跌倒智能监测系统 (步骤 + 源码)_公众号_10

实战 | 用Python和OpenCV搭建一个老人跌倒智能监测系统 (步骤 + 源码)_深度学习_11

完整代码下载链接:

​https://github.com/Alwaz-Sheikh/Alwaz​

—THE END—

下载1:Pytorch常用函数手册

在「OpenCV与AI深度学习」公众号后台回复:Pytorch函数手册即可下载学习全网第一份Pytorch函数常用手册,包括Tensors介绍、基础函数介绍、数据处理函数、优化函数、CUDA编程、多处理等十四章内容。


下载2:145个OpenCV实例应用代码

在「OpenCV与AI深度学习」公众号后台回复:OpenCV145即可下载学习145个OpenCV实例应用代码(Python和C++双语言实现)。



标签:函数,Python,cv2,OpenCV,源码,跌倒,坐标,我们
From: https://blog.51cto.com/stq054188/5765790

相关文章

  • OpenCV图像拼接函数vconcat()&hconcat()
        OpenCV图像直接拼接方法下面链接已做介绍,​​OpenCV常用图像拼接方法(一):直接拼接​​,只是这次我们将使用现成的函数实现,它们是vconcat()和hconcat(),当然也有一些......
  • Halcon实例转OpenCV:计算回形针方向
       Halcon中有一个计算回形针方向的实例clip.hdev,可以在例程中找到。原图如下:    处理后的结果图:    代码整理之后,核心部分如下:dev_close_window()dev_open_wi......
  • OpenCV加载图片显示对应类型(位深度)方法
     对于部分初学者,偶尔会想在代码中查看图片的位深度,一般我们会用Mat.type()来获得类型,但是默认输出的是整型数字,不便于理解,可能还需要自己对照宏定义去查看,这里有一段代码......
  • OpenCV4.2使用viz模块显示3D图像
        在OpenCV3D视觉中如果需要显示三维数据或图像就需要用到viz模块,viz是OpenCV的3D显示模块,OpenCV官方release版本不包含此模块,需要我们自己cmake编译。  Cmake步......
  • OpenCV绘制标记函数drawMarker()
       OpenCV绘制标记函数drawMarker(),作用是在给定位置绘制一个标记,以OpenCV4.4.0为例:​​https://docs.opencv.org/4.4.0/d6/d6e/group__imgproc__draw.html#ga644c4a170......
  • OpenCV常用图像拼接方法(一) :直接拼接
      OpenCV常用图像拼接方法将分为四部分与大家分享,这里是第一种方法,欢迎关注后续。  OpenCV常用图像拼接方法(一):直接拼接,俗称硬拼,就是简单的将两张图片合并成一张......
  • OpenCV常用图像拼接方法(二) :基于模板匹配拼接
      OpenCV常用图像拼接方法将分为四部分与大家分享,这里是第二种方法,欢迎关注后续,本文源码与素材链接位于文章末尾。  OpenCV常用图像拼接方法(二):基于模板匹配的图......
  • Python中的多线程
    线程和进程线程是程序执行的最小单位,而进程是操作系统分配资源的最小单位一个进程由一个或多个线程组成,线程是一个进程中代码的不同执行路线进程之间相互独立,但同一线程......
  • 【python】__init__.py文件到底是什么?
    __init__.py作用就是整个文件夹一个包来管理,每当有外部import的时候,就会自动执行里面的函数。1.概述在python中经常能看到__init__.py文件,似乎没什么用的样子,有的时候甚......
  • 基于SpringBoot+Vue乒乓球馆场地预约管理系统Java项目(源码调试+讲解+文档)
    ......