基于 YOLO11 的跌倒检测预警系统 | 源码系统分享

简介: 本项目基于YOLO11n构建轻量高效跌倒检测系统,集成Streamlit实现Web可视化,支持图片、视频及摄像头实时检测。专注单类“跌倒”识别,精度达mAP@0.5=0.855,适配养老院、医院与独居监护等场景,附完整源码、预训练模型及演示视频。(239字)

基于 YOLO11 的跌倒检测预警系统 | 源码系统分享

一套面向养老院、医院病房、独居监护与公共场所安全场景的跌倒行为视觉识别方案,使用 YOLO11n + Streamlit 构建,可实时检出画面中的跌倒人员并定位位置,为及时救援与安全管理提供可量化的告警依据。

附完整源码与效果演示。

一、背景

1.1 行业痛点

跌倒被称为老年人的"隐形杀手",而监护环节长期依赖人力,存在三个结构性难题:

  1. 人工盯屏不可持续——护士站一台监控对着多间病房,值班人员不可能 24 小时逐画面注视,漏看往往就是几分钟的事;
  2. 事后查证滞后——传统方案只能回放录像,跌倒发生后常常错过最佳处置窗口;
  3. 独居监护无手段——老人独居场景下,家属与社区最需要的"跌倒即告警"能力恰恰最缺失。

本项目把"看画面"升级为"检跌倒":摄像头采集 → YOLO11 单 类 目标检测 → 框出跌倒人员并给出置信度,一个可立即落地、可复用换皮的视觉底座,覆盖机构监护与独居看护两类场景。

数据集来自真实跌倒场景,共 7250 张高质量标注图(train 5072 / valid 1450 / test 728),按 YOLO 格式组织,单类别 nc=1:跌倒。

视频演示与源码 下载

https://www.bilibili.com/video/BV1z1pB6vEWW/

在这里插入图片描述

包含: 📦完整项目源码 📦 预训练 模型权重

🗂️数据集

1.2 项目运行效果

  • *Web 界面总览

    在这里插入图片描述

  • *单张图片识别效果

  • 在这里插入图片描述

  • 批量图片检测

在这里插入图片描述

1.3 项目介绍

创新点 / 亮点

维度 说明
单类检测专注事件 只检"跌倒"一个目标,正样本聚焦、误报可控,适合做告警触发
原子配置即业务 project.yaml 描述场景、部署形态与预警阈值,前端 0 代码定制品牌
多源接入 同一 UI 支持单图、批量(含 ZIP)、视频、摄像头四种模式,零部署门槛
阈值可调 置信度阈值侧栏实时调节,养老 / 医院 / 公共场所可分别标定

系统功能概览

  • 单张图片检测:上传图片即得标注图 + 检测明细表
  • 批量图片检测:多图或 ZIP 上传,自动汇总每张图的检出数与平均置信度,结果打包下载
  • 视频检测:逐帧推理生成标注视频,附逐帧检出统计
  • 摄像头实时检测:浏览器拉本机摄像头,实时输出检测结果

技术栈

层级 技术选型
检测模型 YOLO11n(Ultralytics)
Web 框架 Streamlit
图像处理 OpenCV、Pillow
数据 / 图表 Pandas
视频编解码 imageio-ffmpeg
部署 Python 3.8+,本地 / 容器 / 边缘盒子 均可

类别定义:nc=1,names=['跌倒']。

二、设计框架

系统架构

┌────────────────────────────────────────────────────────────┐
│            用户浏览器(护理人员 / 家属 / 安保)             │
│        单张图片 │ 批量图片 │ 视频 │ 摄像头                   │
└──────────────────────┬─────────────────────────────────────┘
                       │ HTTP / WebSocket
┌──────────────────────▼─────────────────────────────────────┐
│              Streamlit App (app/streamlit_app.py)          │
│  · 模式路由(st.radio)                                     │
│  · 上传 / 预览 / 检测明细 / 结果 ZIP 导出                   │
│  · 行业品牌渲染(project.yaml 驱动)                        │
└──────────────────────┬─────────────────────────────────────┘
                       │ model.predict(conf=可调, iou=0.7)
┌──────────────────────▼─────────────────────────────────────┐
│                 YOLO11n 推理引擎                           │
│  Backbone (C2f + SPPF) → Neck (FPN + PAN) → Decoupled Head │
│  + DFL(分布式回归)→ NMS                                   │
└──────────────────────┬─────────────────────────────────────┘
                       │ result.boxes (cls, conf, xyxy)
┌──────────────────────▼─────────────────────────────────────┐
│   后处理:类别映射 → DataFrame 明细 → 统计汇总 → 前端渲染   │
└────────────────────────────────────────────────────────────┘

YOLO11 网络结构(沿用 v8 主干,更轻更深)

  • Backbone:Conv + C2f 堆叠下采样 5 次,末端 SPPF 融合多尺度特征
  • Neck:FPN(自顶向下语义)+ PAN(自底向上定位)双向特征金字塔
  • Head:解耦头 + DFL(分布回归),对人体这种非刚性、姿态多变的目标定位更稳
  • 损失:BCE(分类)+ CIoU + DFL(回归)

检测流程:图像/帧 → letterbox 至 imgsz=640 → 推理 → 置信度过滤(默认 0.25)→ NMS(iou=0.7)→ 类别映射 → 前端图表渲染。

三、代码结构(核心 50 行 + 解析)

项目结构:

跌倒检测系统_yolo11n/
├── app/streamlit_app.py        # Streamlit Web 入口
├── configs/project.yaml        # 业务配置(场景、部署、UI 主题、推理参数)
├── model/best.pt               # YOLO11n 权重
├── data/                       # train / valid / test
└── train/                      # 训练产物

核心代码(项目真实摘录):

PROJECT_ROOT = Path(__file__).resolve().parent.parent
APP_CONFIG = load_yaml(PROJECT_ROOT / "configs" / "project.yaml")
DEFAULT_CONF = float(INFERENCE_META.get("conf", 0.25))     # 阈值由配置驱动

@st.cache_resource(show_spinner=False)
def load_model(model_path: str) -> YOLO:
    return YOLO(model_path)                       # 全局缓存,避免反复加载

def infer_image_path(model: YOLO, image_path: Path, conf: float) -> tuple:
    result = model.predict(str(image_path), conf=conf, verbose=False)[0]
    annotated = result.plot()
    rows = []
    if result.boxes is not None:
        for box in result.boxes:
            cls_id = int(box.cls.item())
            rows.append({
   
                "class_name": result.names[cls_id],          # '跌倒'
                "confidence": round(float(box.conf.item()), 4),
                "x1": float(box.xyxy[0][0]), "y1": float(box.xyxy[0][1]),
                "x2": float(box.xyxy[0][2]), "y2": float(box.xyxy[0][3]),
            })
    return annotated[:, :, ::-1], pd.DataFrame(rows)   # BGR -> RGB

逐段解析

  1. project.yaml + INFER.get(...):置信度、iou、批量上限全部从配置读取,运营侧调阈值不用改代码。
  2. @st.cache_resource 缓存 YOLO(model_path):Streamlit 每次交互不重建模型,首屏后单图响应稳定在百毫秒级。
  3. model.predict 一行完成"预处理 + 推理 + NMS",.plot() 直接生成带标签框的 ndarray,[:, :, ::-1] 转回 RGB 喂给 Streamlit。
  4. result.boxes 迭代得到 cls / conf / xyxy,组成 DataFrame:单图、批量、视频、摄像头四个入口复用同一份推理逻辑。
  5. 批量入口在推理循环中同步完成"明细落表 + 标注图写 ZIP + 缩略预览"三件事,一次跑完即拿可下载结果包。

四、训练效果

训练采用 YOLO11n 预训练权重 微调 ,epochs=177(200 轮早停,patience=50),imgsz=640,batch\=16。best.pt 对应指标:

指标 数值
Precision (B) 0.850
Recall (B) 0.773
mAP@0.5 0.855
mAP@0.5:0.95 0.488
  • PR 曲线(mAP@0.5 = 0.855,单类检测下召回仍有提升空间)(原文此处为截图)
  • 归一化混淆矩阵(对角线主导,漏检主要来自遮挡、俯拍等困难样本)(原文此处为截图)
  • 类别分布:跌倒样本在画面中的尺度分布较散,模型对中小目标的定位依赖多尺度特征融合(原文此处为截图)

五、项目总结

做对了什么

  • 单类检测聚焦"跌倒"事件,语义清晰、告警链路短,适合作为监护系统的触发模块。
  • 业务话术、场景、部署形态全在 project.yaml,同一套代码可换皮复用到养老院、医院、社区等不同客户。
  • 推理函数返回 (annotated, DataFrame),单图 / 批量 / 视频 / 摄像头复用同一份逻辑,扩展新模式成本极低。

还能怎么做

  • 引入时序模型(LSTM / SlowFast)做行为序列判定,把单帧"跌倒框"汇聚成"倒地持续 10 秒"等高置信事件,抑制单帧误报。
  • 结合人体关键点(姿态估计)判断跌倒的持续状态与人员身份,区分"跌倒"与"蹲下系鞋带"。
  • 边缘部署:YOLO11n 轻量,可塞进摄像头本地芯片做离线推理,敏感画面不出户,兼顾隐私合规。
  • 告警联动:检测到跌倒后对接短信 / 电话 / 护理站看板,形成"检出—通知—处置"闭环。

一句话总结

YOLO11n + Streamlit 把"盯监控"升级为"检跌倒",给养老监护、医疗陪护与公共安全一个可立即落地、可配置化复用的视觉底座。

相关文章
|
5月前
|
监控 算法 安全
跌倒行为目标检测数据集| 5200张 YOLO安防监护数据集
本数据集含5200张YOLO格式标注图像,聚焦跌倒行为检测,覆盖居家、病房等真实场景,支持YOLOv5/v8/v10等主流模型。专为智慧养老、安防监护与目标检测研究设计,具备姿态多样、光照复杂、遮挡丰富、人工精标等优势。
|
22天前
|
运维 监控 算法
电网巡检缺陷检测数据集 | 4400张YOLO电力巡检数据集
本数据集含4400张YOLO格式标注图像,覆盖绝缘子、电缆、防振锤等10类电网部件及典型缺陷,专为无人机巡线与输电缺陷检测设计,适配YOLOv5-v12等主流模型,支持训练、验证与测试全流程。
|
25天前
|
监控 安全 算法
空中目标检测数据集 | 8900张YOLO低空安防数据集
本数据集含8900张YOLO格式标注图像,专注空中目标细分类(飞机/鸟类/无人机),直击反无人机系统误报痛点,提升小目标判别精度,适配YOLOv5-v12等主流模型,支撑低空安防、机场鸟防与空域监管研究。(239字)
|
1月前
|
监控 安全 算法
无人机检测数据集 | 5400张YOLO低空安防数据集
本数据集含5400张YOLO格式高质量标注图像,专注低空无人机检测,覆盖多机型、多姿态、小目标及复杂天空/建筑/云层背景,适配YOLOv5-v12等主流模型,支撑机场净空、安防反制与科研训练。(239字)
|
1月前
|
机器学习/深度学习 监控 算法
农业害虫检测数据集 | 3200张YOLO智慧农业数据集
本数据集含3200张YOLO格式标注图像,覆盖12类农田害虫与益虫(如蜜蜂、蚯蚓),专为田间复杂场景构建,支持YOLOv5-v12等模型,助力精准施药、绿色防控与农技App开发。(239字)
|
30天前
|
算法 机器人 人机交互
手势识别数据集 | 1900张YOLO人机交互数据集
本数据集含1900张YOLO格式标注图像,覆盖7类常用静态手势(上/下/左/右、停止、拇指向上/下),专为手势检测与人机交互研发设计,适配YOLOv5-v12等主流模型,支持车载、家居、机器人、无障碍等无接触交互场景。
|
2月前
|
监控 安全 算法
安全带检测数据集 | 8400张YOLO智慧交通数据集
本数据集含8400张YOLO格式标注图像,专注驾乘人员安全带佩戴状态检测(2类:seatbelt/no_seatbelt),覆盖多车型、多光照、多角度真实交通场景,适配YOLOv5-v12等主流模型,支持交通执法、车载监控、驾驶行为分析等应用。(239字)
|
1月前
|
机器学习/深度学习 算法 数据可视化
基于 YOLO26 的6类PCB缺陷智能检测系统(中英文双版)| 附完整源码与效果演示
本项目基于YOLO26算法,构建了支持中英文双语的6类PCB缺陷(漏孔、鼠咬、开路、短路、毛刺、多余铜)智能检测系统。集成PyQt5图形界面,具备图像/视频检测、实时可视化、多线程处理与灵活配置功能,附完整源码、预训练模型及演示视频。(239字)
|
1月前
|
传感器 数据采集 监控
无人机航拍行人检测数据集 | 7400张YOLO航拍检测数据集
本数据集含7400张无人机航拍图像,专注航拍视角下小目标行人检测(单类),标注精细、覆盖多城/多高/多视角场景,适配YOLOv5-v12等主流模型,适用于安防巡检、人群监测、应急搜救等实际应用。(239字)
|
1月前
|
人工智能 监控 算法
植物叶片病害检测数据集 | 4900张YOLO智慧农业数据集
本数据集含4900张真实田间采集的YOLO格式图像,覆盖13种作物、30类健康/病害叶片,专为细粒度病害检测设计。背景复杂、光照多变,贴近农户手机拍摄场景,适配YOLOv5-v12等主流模型,广泛用于智慧农业、农技App、无人机巡检与保险定损。(239字)

热门文章

最新文章