# fall_detection_alarm **Repository Path**: primusmj/fall_detection_alarm ## Basic Information - **Project Name**: fall_detection_alarm - **Description**: 本项目是一个基于yoloV8/11和flask的智能摔倒检测报警系统,旨在通过计算机视觉技术实时监控和识别人员摔倒事件,并在检测到异常时自动触发报警机制。系统适用于养老院、医院、家庭护理等场景,能够及时发现跌倒风险并通知相关人员进行救助,有效减少因跌倒导致的二次伤害。 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-09 - **Last Updated**: 2025-09-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 摔倒检测报警系统 ## 项目概述 本项目是一个基于yoloV8/11的智能摔倒检测报警系统,旨在通过计算机视觉技术实时监控和识别人员摔倒事件,并在检测到异常时自动触发报警机制。系统适用于养老院、医院、家庭护理等场景,能够及时发现跌倒风险并通知相关人员进行救助,有效减少因跌倒导致的二次伤害。 ## 功能特性 ### 1. 实时摔倒检测 - 基于YOLO系列深度学习模型(默认使用YOLOv11)实现高精度摔倒检测 - 支持摄像头实时视频流分析和视频文件离线处理 - 可配置检测灵敏度、置信度阈值和IOU参数 - 自动记录检测结果和事件时间戳 ### 2. 智能报警机制 - 检测到摔倒事件后立即触发多级报警 - 通过QQ邮箱发送详细报警信息,包含事件时间、地点、人员信息和AI建议 - 支持报警确认和超时处理流程 - 报警事件自动记录到CSV文件,便于后续分析 ### 3. 可视化监控界面 - 基于Flask框架开发的Web应用,提供直观的监控界面 - 通过Socket.IO实现实时视频流传输 - 支持查看实时视频、历史报警记录和系统日志 - 提供资源监控功能,显示CPU/GPU使用率 ### 4. 灵活配置管理 - 使用JSON文件存储系统配置,支持动态更新 - 提供Web界面进行配置修改,实时生效 - 支持配置覆盖机制,便于多环境部署 ### 5. 扩展功能 - 集成大语言模型(GLM-4.5)提供摔倒后的应急处理建议 - 支持截图保存和视频录制功能 - 资源监控和性能优化 ## 技术栈 - **后端框架**:Flask - **实时通信**:Socket.IO - **深度学习**:YOLOv11 (Ultralytics) - **计算机视觉**:OpenCV - **前端技术**:HTML, CSS, JavaScript,bootstrap,echarts - **数据存储**:CSV文件 (报警记录) - **配置管理**:JSON文件 - **邮件通知**:SMTP协议 ## 项目结构 ``` fall_detection_alarm/ ├── .idea/ # IDE配置文件 ├── App/ # 应用主目录 │ ├── __init__.py # 应用初始化 │ ├── alert_manager.py # 报警事件管理 │ ├── config.json # 系统配置 │ ├── config_overrides.json # 配置覆盖 │ ├── config.py # 配置加载工具 │ ├── logger.py # 日志工具 │ ├── models.py # 数据模型 │ ├── socketio.py # Socket.IO配置 │ ├── views.py # Web路由和视图 │ ├── alarm/ # 报警模块 │ │ ├── __init__.py │ │ ├── notifier.py # QQ邮件通知器 │ │ └── openai_client.py # 大语言模型客户端 │ ├── cpu_or_gpu/ # 资源监控模块 │ │ ├── __init__.py │ │ └── resource_monitor.py # 资源监控工具 │ ├── detection/ # 检测模块 │ │ ├── __init__.py │ │ ├── data/ # 训练数据 │ │ ├── data.yaml # 数据配置 │ │ ├── detector.py # 摔倒检测器 │ │ ├── models/ # 模型文件 │ │ ├── runs/ # 训练运行记录 │ │ ├── save_screenshot.py # 截图工具 │ │ └── train.py # 模型训练脚本 │ ├── logs/ # 日志目录 │ ├── static/ # 静态资源 │ │ ├── css/ # 样式文件 │ │ ├── image/ # 图片资源 │ │ ├── js/ # JavaScript文件 │ │ ├── screenshot/ # 截图保存 │ │ ├── uploads/ # 上传文件 │ │ └── video/ # 视频保存 │ └── templates/ # HTML模板 ├── logs/ # 系统日志 │ └── alerts.csv # 报警记录CSV ├── static/ # 外部静态资源 ├── uploads/ # 外部上传目录 ├── app.py # 应用入口 ├── download.py # 下载脚本 ├── environment_windows.yml # Windows环境配置,导入请使用:conda env create -f environment_windows.yml(由于Linux的配置比较繁琐所以这里不进行说明) ├── README.md # 项目说明文档 └── yolo11s.pt # YOLO模型权重 ``` ## 环境配置 ### 硬件要求(本机配置) - **CPU**:AMD Ryzen 7 7735H with Radeon Graphics 3.20 GHz - **GPU**:NVIDIA GeForce GTX 4060laptop(显存8G)或更高(可选,用于加速模型推理) - **内存**:32GB - **存储空间**:至少100GB可用空间 ### 软件要求 - **操作系统**:Windows 10/11 - **Python**:3.9 - **依赖库**:见`environment_windows.yml` ### 安装步骤 1. 克隆项目到本地 ```bash git clone https://github.com/your-username/fall_detection_alarm.git cd fall_detection_alarm ``` 2. 创建并激活conda环境 ```bash conda env create -f environment_windows.yml conda activate pytorch ``` 3. 下载YOLO模型权重(在App/detection/models/yolo_weights目录下) 将`yolo11s.pt`模型文件放在项目根目录下 4. 配置系统参数 编辑`App/config.json`文件,设置以下关键参数: - `device`: 选择`cuda`(GPU)或`cpu` - `api_key`: 大语言模型API密钥 - `qq_email`: QQ邮箱地址 - `smtp`: QQ邮箱SMTP授权码 - 其他检测参数(`conf`, `iou`, `frame_count`等) ## 使用说明 ### 启动应用 ```bash python app.py ``` ### 访问系统 打开浏览器,访问以下地址: ``` http://localhost:5000 ``` ### 主要功能页面 - **检测页面** (`/detect`): 实时监控和摔倒检测 - **报警记录** (`/alerts`): 查看历史报警事件 - **系统配置** (`/config`): 修改系统参数 - **日志查看** (`/logs`): 查看系统运行日志 - **资源监控** (`/resources`): 查看CPU/GPU使用率 ### 视频源选择 系统支持两种视频源: 1. **摄像头**:默认使用本地摄像头 2. **视频文件**:上传视频文件进行分析 ## 配置参数详解 `App/config.json`文件包含以下主要参数: - `device`: 计算设备选择 (`cuda`或`cpu`) - `conf`: 检测置信度阈值 (0.0-1.0) - `iou`: 交并比阈值 (0.0-1.0) - `frame_count`: 连续检测帧数 - `save_path`: 检测结果保存路径 - `api_key`: 大语言模型API密钥 - `base_url`: 大语言模型API地址 - `llm_model`: 大语言模型名称 - `age`: 监控对象年龄 - `location`: 监控位置 - `sex`: 监控对象性别 - `is_disease`: 监控对象疾病史 - `qq_email`: QQ邮箱地址 - `smtp`: QQ邮箱SMTP授权码 - `alert_delay`: 报警延迟时间(秒) ## 开发指南 ### 代码贡献 1. Fork 项目 2. 创建特性分支 3. 提交更改 4. 创建Pull Request ### 模型训练 如需重新训练模型,请使用`App/detection/train.py`脚本,里面有具体参数可以进行调整。 ## 故障排除 ### 常见问题 1. **模型无法加载** - 检查`yolo11s.pt`文件是否存在 - 确认PyTorch版本是否兼容 2. **报警邮件发送失败** - 检查QQ邮箱配置是否正确 - 确认网络连接正常 - 检查SMTP授权码是否有效( 注意这个不是你的qq密码,配置方法请看:https://wx.mail.qq.com/list/readtemplate?name=app_intro.html#/agreement/authorizationCode) 3. **视频流卡顿** - 降低视频分辨率 - 调整检测帧率 - 切换到CPU模式(如果GPU性能不足) ## 未来展望 1. 集成更多检测模型,提高检测精度 2. 添加多目标跟踪功能 3. 开发移动端配套应用 4. 增加语音报警功能 5. 优化算法,降低硬件要求 6. 解决现有BUG 7. 迁移到服务器端并结合多用户 ## 联系方式 如有问题或建议,请联系: - 邮箱:[2134992989@qq.com](mailto:2134992989@qq.com)