# FallDetection ToolKit **Repository Path**: wangxiaoxi-1/fall-detection-tool-kit-1.0 ## Basic Information - **Project Name**: FallDetection ToolKit - **Description**: 老人健康监控平台1.0 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 1 - **Created**: 2021-10-17 - **Last Updated**: 2024-12-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FallDetection ToolKit 1.0 参考 - [EasyNVR官网](http://www.easynvr.com/) - [EasyNVR源码](https://gitee.com/afeey/EasyNVR?_from=gitee_search) - [AKStream](https://github.com/chatop2020/AKStream) ### 1、项目介绍 该项目是基于flask + Bootstrap + Vue + sqlite 框架实现的老人健康监控平台,主要包括3大功能:**网络摄像头配置,网络摄像头监控,监控数据离线分析**。 #### 1)网络摄像头配置 其中**网络摄像头配置**包括如下3个内容 - 网络摄像头基础配置 - 网络摄像头功能配置 - 网络摄像头配置查询 整个模块主要完成对**基于rtsp协议**的网络摄像头的增删改查,以及关于摄像头对相应检测算法的配置操作。通常情况下,每个网络摄像头可以配置多个检测算法,用于多任务的检测。每个摄像头位置是固定的,但可以在配置新任务时对摄像头位置进行修改,此时系统会对该摄像头的其他任务的位置信息进行自动更新。 ![](./img/Snipaste_2021-10-17_23-15-33.jpg) #### 2)网络摄像头监控 对于**网络摄像头监控**,包括本地检测和实时检测两个方面: - 本地检测:本地检测调用的是本地摄像头(笔记本内置或外接摄像头),方便在没有网络摄像头设备下,实现对检测算法效果的显示。 - 实时检测:实时检测调用的是基于rtsp协议的网络摄像头 检测算法主要包括如下4种,目前共5种模型: - 摔倒检测算法:基于openpifpaf的摔倒检测算法 - 表情识别算法:基于py-Feat工具包实现的表情识别算法 - 头部位姿估计算法:基于PnP的头部位姿估计算法,基于img2pose的头部位姿估计算法 - 眨眼检测算法:基于滑动窗口EAR阈值设置的眨眼检测算法 在实时监控页面上,一个检测窗口对应一个检测算法,即一个检测任务。 ![](./img/Snipaste_2021-10-17_23-22-17.jpg) #### 3)监控数据离线分析 监控数据离线分析主要包括单任务的数据分析和多任务的数据分析: - 单任务的数据分析:需要依次选择任务,报表和日期,通过**单组折线图**来展示报表,该图可用于**研究同一个人在某个时间段在某个位置的具体情况**。对于单任务的数据分析,支持以上4种检测算法。 - 多任务的数据分析:需要依次选择位置,报表和日期,通过**多组条形图**来展示报表,该图可用于**研究不同人在多个位置的具体情况,通过比较这些位置上的条形图,分析该位置是否令人满意**。 ![](./img/Snipaste_2021-10-17_23-24-09.jpg) ### 2、安装 先拷贝该项目到本地 ```git git clone https://gitee.com/wangxiaoxi-1/fall-detection-tool-kit-1.0.git ``` #### 1)windows 版本 **前提**: 配置了 `python`$\geq$`3.7` 的Anaconda环境 + cmake + gcc环境 **环境配置**: 进入项目根目录下,安装`requirements.txt` ```python pip install -r requirements.txt ``` **Note**: > 1)在进行报表分析时,应该会出现路径切分报错的问题。主要原因是该项目是在ubuntu20.04下开发,两个系统对于路径的获取格式不同,使得在windows中路径切分报错。 > > 解决方法:找到`file_util.py`,修改如下即可 > > ```python > temp = path.split("\\")[1] # windows ntfs文件系统 > # temp = path.split("/")[-1] #linux ext4文件系统 > ``` > 2)将人脸表情识别权重放置在`app/blueprints/algorithm/imageDetector`下,权重文件可以在 下载(提取码:s3vn) > 3)安装python3.7及以上版本,否则openpifpaf可能会存在`.functional`找不到的问题。 #### 2)linux 版本 **前提**: 配置了 $\geq$ `python3.6` 的Anaconda环境,我使用的linux环境是`ubuntu20.04` **环境配置**: - 安装cmake和gcc: ```bash apt-get update apt-get install sudo sudo apt update sudo apt install -y build-essential sudo apt install -y cmake sudo apt-get update sudo apt install -y libgl1-mesa-glx ``` - 安装项目环境: 进入项目根目录下,安装`requirements.txt` ```python pip install -r requirements.txt ``` #### 3)docker 版本 **前提**: 当前系统是linux系统,且配置了docker环境 **环境配置**: 执行项目根目录下的`dockerfile`脚本,等待生成镜像文件 ```dockerfile # . 表示当前路径(一定不要在最后忘了'.',否则会报"docker build" requires exactly 1 argument.) docker build -f dockerfile -t fall_detection_env:1.0 . #-f表示dockerfile路径 -t表示镜像标签 ``` 接着在`pycharm ultimate`中,进行docker插件的配置,使得pycharm可以正常连接刚才下载好的docker的镜像文件 - `fall_detection_env:1.0`,参考该博客[Pycharm使用docker容器内的环境开发](https://blog.csdn.net/a1023660/article/details/88060667)。 **Note**:这么做虽然环境搭建容易,且可以进行代码调试,但是查看不了底层源码 ### 3、使用 在项目根目录下执行如下命令 ```python python runApp.py ``` 接着在浏览器输入`http://localhost:5001/signin`,访问登陆页面,用户名和密码默认为`wxx`, `123456`。在无网络摄像头设备下,可以进行基于本地摄像头的实时检测。 在使用该项目时**注意要联网**,因为有些`css`,`js`插件是通过cdn源访问的。 如果想要增加新的检测算法,可以在`imageDetector`或者`videoDetector`的文件夹下增加,并在`data_dev.sqlite`的`detectModel`中加入该算法的具体路径,可**用于页面本地检测中算法的选择**,以及**网络摄像头算法的配置**。![](C:\Users\THINKPAD\AppData\Roaming\marktext\images\2022-10-09-22-38-02-image.png) ### 4、引用代码 - **人脸检测模型SCRFD-0.5GF**:[GitHub - linghu8812/scrfd](https://github.com/linghu8812/scrfd) - **人脸关键点检测模型mobileNetV2-0.25**:[GitHub - cunjian/pytorch_face_landmark: Fast and accurate face landmark detection library using PyTorch; Support 68-point s](https://github.com/cunjian/pytorch_face_landmark) - **人脸表情识别模型ResMaskNet**:[GitHub - phamquiluan/ResidualMaskingNetwork: ICPR 2020: Facial Expression Recognition using Residual Masking Network](https://github.com/phamquiluan/ResidualMaskingNetwork) - **摔倒检测模型openpifpaf**:[GitHub - openpifpaf/openpifpaf](https://github.com/openpifpaf/openpifpaf) ### 5、存在的问题 1)未实现对支持ONVIF协议的网络摄像头的全方位旋转(左右/上下),变焦等控制的功能。 2)未提供检测算法的接入接口,暂时只能通过手动接入的方式来实现模型的扩充。 3)`img`标签动态绑定`src`导致的监控页面无法正常显示的问题 4)报表分析页面加载时间较长 ### 5、License Copyright 2021. Developer: wangxiaoxi with email: 1046474088@qq.com