基于 YOLO11 的智能行人摔倒检测系统

0 阅读7分钟

1. 项目背景

随着人口老龄化趋势加剧,老年人跌倒已成为一个严重的社会问题。据统计,跌倒是65岁以上老年人意外伤害的首要原因。为及时发现和响应摔倒事件,本博主开发了这套基于深度学习的智能检测系统。本系统采用最新的 YOLO11 目标检测模型,结合 Electron 桌面应用框架和 FastAPI 后端服务,实现了对图像和视频中行人摔倒行为的实时检测与分析。

2. 系统特点

核心优势

  • 高性能检测:基于 YOLO11 深度学习模型,检测速度快、准确率高

  • 跨平台支持:Electron 框架支持 Windows、macOS、Linux 多平台运行

  • 现代化界面:采用 Material Design 3.0 设计语言,界面美观易用

  • 数据可视化:实时统计分析,多维度数据展示

  • 灵活扩展:支持模型热切换,可根据场景选择不同模型

  • 完整日志:详细的操作日志记录,便于追溯和分析

技术亮点

  • 零框架前端:使用原生 JavaScript 开发,无 React/Vue 依赖,轻量高效

  • 原生 SVG 图表:不依赖第三方图表库,完全自主实现数据可视化

  • 模型热切换:运行时动态切换检测模型,无需重启服务

  • 批量处理:支持批量上传、检测、下载,提高工作效率

  • 实时监控:系统资源实时监控,CPU、内存、磁盘使用一目了然

3. 系统架构

技术栈

  • Electron - 跨平台桌面应用框架

  • 原生 JavaScript (ES6+) - 无框架依赖

  • CSS3 + Material Design - 现代化界面设计

  • SVG - 数据可视化图表

  • FastAPI - 高性能 Python Web 框架

  • YOLO11 (Ultralytics) - 最新目标检测模型

  • OpenCV - 图像视频处理

  • psutil - 系统监控

架构设计

系统采用前后端分离架构,通过 RESTful API 进行通信:

┌─────────────────────────────────────────┐
│        Electron 桌面应用层              │
│  ┌───────────────────────────────────┐  │
│  │  图像检测 | 视频检测 | 资源管理   │  │
│  │  数据大屏 | 系统监控 | 模型管理   │  │
│  └───────────────────────────────────┘  │
└─────────────────────────────────────────┘
              ↕ HTTP/REST API
┌─────────────────────────────────────────┐
│        FastAPI 后端服务层               │
│  ┌───────────────────────────────────┐  │
│  │  路由层:API 接口定义             │  │
│  │  业务层:逻辑处理和数据管理       │  │
│  │  AI 层:YOLO11 模型推理          │  │
│  └───────────────────────────────────┘  │
└─────────────────────────────────────────┘
              ↕ 文件系统
┌─────────────────────────────────────────┐
│  images/ | videos/ | models/ | logs/   │
└─────────────────────────────────────────┘

4. 核心功能详解

1. 图像摔倒检测

这是系统的核心功能之一。用户可以通过拖拽或点击的方式上传图像,系统会自动调用 YOLO11 模型进行检测。

  • 用户上传图像(支持 PNG、JPG、JPEG、GIF、BMP 格式)

  • 后端保存图像到 images/upload/ 目录

  • 用户点击”检测”按钮

  • YOLO11 模型对图像进行推理

  • 识别图像中的行人和摔倒姿态

  • 在图像上绘制检测框和置信度标签

  • 保存标注结果到 images/detected/ 目录

  • 前端展示检测结果

2. 视频摔倒检测

  • 用户上传视频文件(最大 500MB)

  • 系统读取视频属性(FPS、分辨率、时长)

  • 逐帧提取视频画面

  • 对每一帧执行 YOLO11 检测

  • 在帧上绘制检测框

  • 使用 H.264 编码器重新编码视频

  • 保存检测结果视频

3. 数据可视化大屏

数据大屏提供了系统运行的全局视图,包括统计数据、趋势分析和实时监控。

  • 统计卡片:图像总数、视频总数、检测次数、目标数量

  • 饼图:数据分布、检测结果分布

  • 折线图:检测趋势分析(按时间维度)

  • 柱状图:摔倒检测统计

  • 数据表格:最近检测记录

4. 系统监控

  • CPU 使用率:实时显示 CPU 占用百分比和核心数

  • 内存使用率:总内存、已用内存、可用内存

  • 磁盘使用率:磁盘总容量、已用空间、剩余空间

  • 网络流量:发送和接收的字节数

  • 系统运行时间:系统启动时间和运行天数+

5. 模型管理

支持多模型管理,用户可以上传、切换、下载不同的 YOLO 模型。

  • 显示当前使用的模型

  • 上传自定义训练的模型文件

  • 一键切换模型,无需重启服务

  • 下载和删除模型文件

  • 模型信息持久化存储

6. 资源管理

  • 标签页切换:已上传 / 检测结果

  • 文件预览:缩略图展示

  • 批量操作:批量下载、批量删除

  • 文件信息:文件名、大小、创建时间

  • 视频对比:并排显示原始和检测结果

5. 性能指标

API 响应时间

资源占用

  • 内存:基础 500MB,每个检测任务额外 200-500MB

  • CPU:检测时 CPU 使用率 60-90%

  • 磁盘:日志约 10MB/天,检测结果根据使用量

并发能力

  • 单进程:支持 50-100 并发请求

  • 多进程(4 workers):支持 200-500 并发请求

6. 快速开始

环境要求

  • Python 3.9+

  • Node.js 14+

  • 4GB+ RAM

  • 10GB+ 磁盘空间

安装步骤

cd fall-detection-system
cd backend
pip install -r requirements.txt
npm install
cd backend
python main.py

服务将在 http://localhost:10077 启动

npm start

使用指南

  • 上传图像:在”图像摔倒检测”页面,拖拽或点击上传图像

  • 执行检测:点击图像下方的”检测”按钮

  • 查看结果:系统会弹窗显示检测结果图像

  • 下载结果:可以单个下载或批量下载检测结果

  • 视频检测:在”视频摔倒检测”页面上传视频并检测

  • 查看统计:在”数据可视化大屏”查看系统统计信息

  • 系统监控:在”系统监控”页面查看资源使用情况

  • 模型管理:在”模型管理”页面上传和切换模型

7. 界面展示

主界面

添加图片注释,不超过 140 字(可选)

系统采用侧边栏导航设计,左侧为功能菜单,右侧为内容区域。界面采用 Material Design 3.0 设计语言,配色清新,操作直观。

图像检测页面

添加图片注释,不超过 140 字(可选)

支持拖拽上传,网格展示图像缩略图,每个图像都有独立的操作按钮。

视频检测页面

添加图片注释,不超过 140 字(可选)

检测结果以模态框形式展示,清晰显示检测到的目标、置信度和边界框。

数据可视化大屏

添加图片注释,不超过 140 字(可选)

多维度数据展示,包括统计卡片、饼图、折线图、柱状图和数据表格。

系统监控页面

添加图片注释,不超过 140 字(可选)

实时显示 CPU、内存、磁盘使用情况,带有趋势曲线图。

大模型聊天页面

添加图片注释,不超过 140 字(可选)

8. 未来规划

功能扩展

  • 实时视频流检测:支持摄像头实时检测

  • 告警推送:检测到摔倒时发送通知

  • 多用户支持:添加用户认证和权限管理

  • 数据库集成:使用 PostgreSQL 存储检测记录

  • 移动端应用:开发 iOS/Android 移动应用

  • 云端部署:支持云服务器部署和分布式处理

性能优化

  • GPU 加速:使用 CUDA 加速模型推理

  • 模型量化:减小模型体积,提升推理速度

  • 缓存机制:缓存常用数据,减少重复计算

  • 异步队列:使用消息队列处理耗时任务

  • CDN 加速:静态资源使用 CDN 分发

技术升级

  • TypeScript 重构:提升代码可维护性

  • Docker 容器化:简化部署流程

  • CI/CD 集成:自动化测试和部署

  • 单元测试:提高代码质量和稳定性

  • 性能监控:集成 APM 工具监控系统性能

9. 总结

这个行人摔倒检测系统是一个完整的端到端解决方案,从前端界面到后端服务,从模型推理到数据可视化,每个环节都经过精心设计和实现。

技术特色

  • 零框架前端,轻量高效

  • 原生 SVG 图表,完全自主

  • 模型热切换,灵活便捷

  • 批量处理,提高效率

  • 实时监控,稳定可靠

适用场景

  • 🏥 医疗护理:养老院、医院病房监控

  • 🏠 居家养老:独居老人安全监护

  • 🏢 公共场所:商场、地铁站等人流密集区域

  • 🏗️ 工地安全:建筑工地安全监控

  • 🎓 科研教学:计算机视觉教学和研究+