摘要:本文面向智慧养老与公共安防的行人跌倒告警需求,围绕YOLOv5到YOLOv12的迭代升级,构建并实现一套可落地的跌倒检测系统,提供完整代码、数据集与可视化界面。系统在统一数据集与训练配置下对YOLOv5--YOLOv12多版本模型进行对比评估,分析精度、速度与误报特性差异;结合跌倒与下蹲、弯腰等相似动作的混淆问题,引入推理后处理与时序稳定策略提升告警可靠性。工程端基于PySide6实现图片/视频/摄像头多源输入与结果可视化,支持Conf/IOU阈值调节、事件统计与导出;并以SQLite实现登录注册与记录持久化,形成检测与管理闭环,为相关系统研发与部署提供参考。
讲解视频地址: 行人跌倒检测系统YOLOv12-v11至v5(八个模型,含示例论文)合集(完整Python项目演示,UI界面,含论文等)
文章目录
- [1. 前言综述](#1. 前言综述)
- [2. 数据集介绍](#2. 数据集介绍)
- [3. 模型设计与实现](#3. 模型设计与实现)
- [4. 训练策略与模型优化](#4. 训练策略与模型优化)
- [5. 实验与结果分析](#5. 实验与结果分析)
- [6. 系统设计与实现](#6. 系统设计与实现)
-
- [6.1 系统设计思路](#6.1 系统设计思路)
- [6.2 登录与账户管理](#6.2 登录与账户管理)
- [7. 下载链接](#7. 下载链接)
- [8. 参考文献(GB/T 7714)](#8. 参考文献(GB/T 7714))
1. 前言综述
随着人口老龄化与公共空间安全治理需求的同步上升,跌倒事件因其高致伤性与"黄金救援窗口"短的特点,促使"可实时、可部署、可解释"的自动跌倒检测成为智慧养老与城市安防中的关键环节。1 (World Health Organization) 现有研究普遍将跌倒检测划分为可穿戴、环境传感与视觉感知三类路线,其中视觉路线能够提供更丰富的场景语义与动作上下文,但也更容易受到遮挡、光照变化、视角差异与隐私合规约束的共同影响。2 (ScienceDirect) 在数据层面,公开数据的拍摄场景、人员构成与动作脚本往往较为受控,这使得模型在真实家庭与公共场景中面临分布偏移、误报上升和阈值难以统一的问题,研究者因此强调数据可用性与可迁移评测对算法可信部署的重要性。3 (ScienceDirect)
从方法演进来看,早期跌倒检测多依赖背景建模、人体外接框高宽比、运动能量与形状几何等手工特征,再通过规则或浅层分类器实现告警;该范式实现简单但对复杂动作(如弯腰、坐下、躺卧)与遮挡场景区分能力有限。4 (ScienceDirect) 为降低误报并提升全天候可用性,RGB-D与多源融合方案利用深度信息或惯性触发机制进行验证,能一定程度缓解低照度与背景干扰,但其硬件依赖与安装条件也增加了工程门槛。5 (ScienceDirect)
国内研究在"轻量化骨干网络、关键点/姿态约束与多判别条件融合"等方向形成了较多面向落地的工作,例如在轻量网络提取人体表征的同时,引入人体躯干与四肢相对地面的角度、外接框尺度变化等判别特征以增强泛化与实时性。6 (JCAD) 面向复杂遮挡与尺度变化,一些工作进一步在YOLO框架中引入可变形卷积、注意力机制与更细粒度的特征融合结构,并通过解耦头设计改善分类与回归的优化冲突,从而提升跌倒目标的检出率与稳定性。7 (Baidu Xueshu)
在算法谱系上,实时目标检测的工程化落地很大程度上受益于YOLO范式将检测问题转化为单阶段密集预测,从而在速度与精度之间取得可控折中。8 以开源生态为牵引,Ultralytics 的 YOLOv5 在工程部署、模型导出与推理加速方面形成了成熟工具链,使其成为行业中搭建快速原型与迭代数据闭环的常用起点。9 (GitHub) 随后的版本迭代围绕训练策略、结构设计与推理效率持续改进,例如 YOLOv7 在可训练的"免费提升项"设计与模型扩展策略上推动了实时检测的性能上限。10 (CVF Open Access) 在轻量网络与梯度信息利用方面,YOLOv9 通过可编程梯度信息与高效层聚合结构强化了信息传递与参数利用率。[11] (arXiv) 面向端到端部署的进一步约束,YOLOv10 针对后处理带来的延迟与冗余进行系统性优化,并提出面向无NMS训练的一致分配策略以降低推理链路开销。[12] (arXiv)
进入更近阶段,Ultralytics 围绕 YOLO11 的工程化特性继续扩展其多任务与部署支持,使"多模型切换+统一推理接口"的系统化集成更易实现。[13] (Ultralytics Docs) 与此同时,YOLOv12 的研究开始更明确地将注意力机制纳入实时检测的核心设计,试图在保持实时性的同时提升对拥挤、遮挡与细粒度姿态差异的表征能力。[14] 但在跌倒检测这一强时序、强场景依赖的任务中,公开视频数据集(如 ImViA/Le2i 的相关工作)与真实监控流在镜头高度、视场范围、动作先验与标注粒度上仍存在差距,这要求算法必须与数据构建、阈值策略及系统交互共同设计,才能在实际告警链路中保持低误报与可维护性。[15] (arXiv)
为更直观对比现有路线与本文任务定位,可将代表性研究归纳如下表所示(同一类方法在不同数据与部署约束下往往呈现不同的优缺点)。
| 方法/代表工作 | 典型数据集/设置 | 主要优势 | 主要局限 |
|---|---|---|---|
| 传统/浅层学习(如可穿戴触发+视觉验证思路)4 | RGB-D/IMU融合、阈值触发+分类器 | 降低部分误报、具备隐私与低照度优势(深度) | 依赖硬件与安装,跨场景迁移仍困难 |
| 纯RGB端侧检测(嵌入式/移动平台)5 | 摄像头视频流+端侧推理 | 部署成本低、链路简单 | 易受光照/遮挡/视角影响,阈值与误报控制难 |
| 多判别特征融合的姿态/关键点思路(中文核心)6 | URFD/自建数据等 | 结合人体结构先验提升可解释性 | 判别条件对动作多样性敏感,需精细规则设计 |
| 改进YOLOv5的跌倒检测(中文核心)7 | 自建/专用跌倒数据 | 在尺度与遮挡场景上更稳健,端到端检测友好 | 依赖数据覆盖度,跨域需再训练与校准 |
| 公开数据集与评测基线(ImViA/Le2i相关工作)[15] | 受控场景多机位/室内脚本 | 便于复现实验与横向对比 | 与真实监控域差异显著,容易高估泛化能力 |
本文(老思/博主)的主要贡献可以概括为:面向"行人跌倒检测"的实际告警需求,将 YOLOv5 至 YOLOv12 的多代模型纳入统一实验框架进行对比评估,并在任务数据上完成标注、清洗、划分与可复现训练配置;在工程实现上,基于 PySide6 搭建可交互的桌面端检测系统,支持图片/视频/摄像头多源输入、阈值可调与结果导出,并提供可直接运行的完整代码、界面与数据集项目资源,便于读者复现实验与二次开发。
主要功能演示:
(1)启动与登录:程序启动后进入登录页,支持注册/登录/修改密码;登录成功后自动加载用户在 SQLite 中保存的个性化配置与历史记录,并进入主界面开始检测流程。

(2)多源输入与实时检测(摄像头/视频/图片/文件夹):主界面支持摄像头实时流、视频文件、单张图片与图片文件夹批量导入,统一走同一推理管线完成预处理、YOLO推理与结果可视化,实时显示检测框、类别与置信度,并支持暂停/保存/导出与统计。

(3)模型选择与对比演示:界面提供模型切换/权重导入入口,可在 YOLOv5--YOLOv12 间快速切换;对同一输入源输出不同模型的检测结果与关键指标统计,便于直观对比精度、误报与实时性差异。

(4)主题修改功能:新增主题切换与自定义(QSS),可一键切换深浅色风格并替换背景/图标/字体等界面元素,配置自动保存,下次启动可恢复。

2. 数据集介绍
本项目构建了一个面向行人跌倒检测的单类目标检测数据集,共计 1770 张 经人工细致筛选的图像,并按照 训练/验证/测试 = 1110/330/330 进行划分。老思在清洗阶段优先保证"跌倒姿态"与"复杂背景"的覆盖度:样本同时包含道路交通、体育运动、室外监控、室内地面等多种场景,目标尺度跨度较大,且普遍存在遮挡、运动模糊与低分辨率等真实监控常见退化,这类数据分布对模型的稳健性提出更接近落地环境的要求。由于任务仅包含 fall(跌倒) 一个类别,训练的核心矛盾不在于类别不均衡,而在于"跌倒与相似动作/相似外观"的判别边界:例如俯身、侧卧、拥挤遮挡或背景中存在类人体形状物体时,模型更容易出现误检或漏检,因此数据集在筛选时强调动作多样性与背景干扰的共存。

python
Chinese_name = {'fall': "跌倒"}
从标注统计特征来看(对应你提供的标签分布与相关性图),目标框中心点在归一化坐标系中明显集中于图像中部区域( x , y x,y x,y 主要分布在 0.5 附近),这与多数样本采用"主体居中取景/裁剪"的来源特征一致;同时, w w w 与 h h h 呈现较强的相关关系并覆盖较宽范围,反映出跌倒目标在不同镜头距离、不同姿态(横向躺倒、侧倒、蜷缩等)下的形状变化较大。预处理方面,数据统一转换为 YOLO 训练所需的归一化标注格式,并在训练阶段结合常规增强(如随机缩放、翻转、颜色扰动以及 Mosaic 等)提升对视角变化与尺度变化的泛化能力;模型输入通常统一到 640 × 640 640\times640 640×640 以兼顾实时性与小目标可检出性,便于后续在 PySide6 系统中实现稳定的多源推理与可视化展示。

📊 数据集规格说明 (Dataset Specification)
| 维度 | 参数项 | 详细数据 |
|---|---|---|
| 基础信息 | 标注软件 | LabelImg |
| 标注格式 | YOLO TXT (Normalized) | |
| 数量统计 | 训练集 (Train) | 1,110 张 (62.7%) |
| 验证集 (Val) | 330 张 (18.6%) | |
| 测试集 (Test) | 330 张 (18.6%) | |
| 总计 (Total) | 1,770 张 | |
| 类别清单 | Class ID: 0 | fall(跌倒) |
| 图像规格 | 输入尺寸 | 640 * 640 |
| 数据来源 | 公开视频/网络公开图像(人工筛选与清洗) |
3. 模型设计与实现
行人跌倒检测的核心难点在于"外观相近而语义不同":人体在弯腰、坐下、俯身捡物等姿态下,与跌倒在单帧图像中的几何形态可能高度接近;同时,监控场景常伴随遮挡、尺度变化与运动模糊,使得模型既要具备足够的表征能力捕获关键姿态线索,又必须在边缘设备或普通GPU上保持稳定的实时推理延迟。老思在本项目中采用"检测即判别"的建模路径,将跌倒状态视为目标检测中的类别属性:模型对每个行人输出边界框 b = ( x , y , w , h ) b=(x,y,w,h) b=(x,y,w,h)、类别 c ∈ 0 , ... , C − 1 c\in{0,\dots,C-1} c∈0,...,C−1 与置信度 s s s,其中类别集合可按数据集定义为 fall/non-fall(或进一步细分为 standing/sitting/lying/fall 等),从而把姿态判别问题统一到 YOLO 系列的一阶段检测框架内,便于在 PySide6 前端实现多源输入的端到端实时显示与告警联动。
在基线模型选择上,本项目以 YOLOv12n 作为默认主模型,并保持对 YOLOv5--YOLOv12 的权重兼容与切换能力。选择 YOLOv12 的原因并不在于"更大更深",而在于其架构层面对注意力机制的重新工程化:YOLOv12提出面积注意力(Area Attention, A2)以降低注意力计算与访存开销,并引入残差高效层聚合网络(R-ELAN)缓解注意力模块带来的优化不稳定,同时通过 FlashAttention 等手段在保证实时性的前提下获得更强的全局依赖建模能力。 这对跌倒检测尤其关键,因为"跌倒"往往由肢体相对位置与整体姿态共同决定,局部卷积对长程关系的表达在复杂场景下容易受限;而注意力的引入能更直接地在特征层面建立头-躯干-下肢以及人体与地面的相对关系,从而提升对"躺倒/侧倒"等姿态的可分性。

从网络结构看,YOLO 家族通常由 Backbone--Neck--Head 三段组成:Backbone 负责从输入图像 I ∈ R H × W × 3 I\in\mathbb{R}^{H\times W\times 3} I∈RH×W×3 提取分层语义特征,Neck 在多尺度上融合高低层信息以兼顾小目标与大目标,Head 在多个特征层(典型为 P 3 / P 4 / P 5 P3/P4/P5 P3/P4/P5)上完成分类与回归预测。YOLOv5 的典型做法是基于 CSP 风格主干与 PAN/FPN 融合,再接检测头输出多尺度预测。(Ultralytics Docs) 到 YOLOv10,研究进一步推动端到端与后处理优化(例如围绕 NMS-free 训练/推理的探索),强调在效率---精度约束下对检测流程做整体再设计。(arXiv) YOLOv12则把"注意力可用但不拖慢"作为结构目标:A2 将特征图按条带或区域做等分重排,使注意力在保持较大感受野的同时显著降低复杂度,并通过更贴近硬件友好的实现减少访存瓶颈;R-ELAN在块级别引入残差与改进的聚合方式,使深层模型在训练中更稳定。 在工程实现上,项目采用 YAML 方式显式描述网络的层级连接与多尺度检测头,便于在不同版本 YOLO 间快速切换主干与头部配置,并对 nano/small 等尺度做统一管理。(Ultralytics Docs)
针对任务建模与损失函数,项目沿用 Ultralytics/YOLO 系列的检测训练范式:对每个正样本,回归分支学习预测框 b ^ \hat b b^ 与真实框 b b b 的一致性,分类分支学习类别分布,置信度分支刻画"该位置存在目标"的概率。整体损失可写为
L = λ box L ∗ box + λ ∗ cls L ∗ cls + λ ∗ obj L ∗ obj , \mathcal{L}=\lambda_{\text{box}}\mathcal{L}*{\text{box}}+\lambda*{\text{cls}}\mathcal{L}*{\text{cls}}+\lambda*{\text{obj}}\mathcal{L}*{\text{obj}}, L=λboxL∗box+λ∗clsL∗cls+λ∗objL∗obj,
其中 L ∗ box \mathcal{L}*{\text{box}} L∗box 常用 IoU 系列损失(如 CIoU/GIoU 等)度量几何重叠与中心距离, L ∗ cls \mathcal{L}*{\text{cls}} L∗cls 与 L ∗ obj \mathcal{L}*{\text{obj}} L∗obj 多采用二元交叉熵(BCE)或其稳定变体。该设计对跌倒检测的直接意义在于:一方面,回归分支保证"人"的空间定位稳定,避免姿态类被背景噪声牵引;另一方面,分类分支将"跌倒"作为语义标签学习,使系统可在 UI 中直接以类别与置信度触发阈值告警。若数据集中存在明显类别不均衡(例如跌倒样本显著少于正常样本),实现层面通常会结合标签平滑或重采样策略,降低过拟合到少数极端姿态的风险,这部分在训练策略小节再展开。(Ultralytics Docs)
在正则化与超参数设置上,项目强调"实时可复现"的工程取向:以 Batch Normalization 与权重衰减控制泛化误差,以多尺度训练、常用数据增强与学习率调度提升鲁棒性;而对 YOLOv12 的注意力分支,则优先使用论文推荐的结构性改动(例如引入 FlashAttention、去除不必要的位置编码、调整 MLP ratio 等)来平衡速度与精度,而非在推理端叠加额外模块。 这使得同一套 PySide6 前端能够在不同 YOLO 权重间复用一致的前处理与后处理逻辑:输入统一做 letterbox 缩放与归一化,输出统一解析为框、类别、置信度与统计信息,保证"算法可替换、接口不变",从而把多模型对比的复杂度控制在 Detector 层而不是 UI 层。
4. 训练策略与模型优化
本项目的数据规模为 1770 张、单类 fall,且样本来源包含新闻画面、监控视角与多种室外场景,域间差异与噪声较强。在这种设置下,训练的主要风险并不是"学不会",而是"学得太像训练集":模型容易把特定背景纹理、拍摄机位和人体占比当作捷径特征,导致跨场景误报与漏检并存。老思在训练阶段的总体思路是先用大规模通用检测预训练权重建立稳定的低层表征,再通过有节制的数据增强扩大分布覆盖,同时在训练后期逐步收敛到接近真实的输入分布,以获得更稳定的定位与更可靠的置信度排序。
为保证 YOLOv5 至 YOLOv12 的横向对比公平性,训练流程采用统一的实验协议:固定输入分辨率 640 × 640 640\times640 640×640、相同的数据划分与同一套增强策略,尽量保持 batch、学习率与训练轮数一致,并固定随机种子以降低波动。训练环境建议基于 Python 3.12、PyTorch(CUDA)与 RTX 4090,开启 AMP 混合精度以提升吞吐与降低显存占用;同时启用 EMA(指数滑动平均)维护验证用的平滑权重,减少小数据集上验证指标的抖动,其更新形式为
θ EMA ← α θ EMA + ( 1 − α ) θ , α ∈ ( 0 , 1 ) . \theta_{\text{EMA}} \leftarrow \alpha \theta_{\text{EMA}} + (1-\alpha)\theta,\quad \alpha \in (0,1). θEMA←αθEMA+(1−α)θ,α∈(0,1).
在优化器方面,框架默认的 SGD/AdamW 往往都能稳定收敛,关键在于学习率调度与早停策略:本项目设置最大轮数 120,并使用 patience=50 的早停来抑制后期过拟合;学习率采用余弦退火更适合小数据集的平滑下降过程,可写为
l r ( t ) = l r min + 1 2 ( l r 0 − l r min ) ( 1 + cos π t T ) , lr(t)=lr_{\min}+\frac{1}{2}(lr_0-lr_{\min})\left(1+\cos\frac{\pi t}{T}\right), lr(t)=lrmin+21(lr0−lrmin)(1+cosTπt),
其中 l r 0 = 0.01 lr_0=0.01 lr0=0.01, l r min = l r f ⋅ l r 0 lr_{\min}=lrf\cdot lr_0 lrmin=lrf⋅lr0(取 l r f = 0.01 lrf=0.01 lrf=0.01), T T T 为总训练步数;同时设置 warmup_epochs=3 在训练初期逐步拉升学习率,避免刚开始梯度不稳定导致的损失震荡。
数据增强对跌倒检测的收益通常大于"盲目加深网络"。考虑到跌倒目标存在显著的尺度跨度与姿态变化,本项目在训练早期保留 Mosaic=1.0 以扩展背景与尺度组合,提升对小目标与遮挡场景的覆盖;但为了避免 Mosaic 带来的几何分布偏移在后期固化,设置 close_mosaic=10,在训练末段关闭 Mosaic,使模型在更接近真实画面的分布上"收口",通常更有利于推理时置信度的可校准性。正则化方面,权重衰减 5 × 10 − 4 5\times10^{-4} 5×10−4 与 BN 的统计约束用于控制模型复杂度;若出现明显的过拟合迹象(训练 mAP 持续上升而验证停滞或回落),优先调整增强强度、早停耐心与学习率,而不是简单增加 epochs。
推理侧的优化以"实时性与可维护性"为目标,博主更建议把优化集中在导出与后端加速,而不是在模型结构上堆叠额外模块。训练完成后统一导出 ONNX,并在 GPU 部署时使用 TensorRT FP16 进行加速;桌面端实时检测(batch=1)场景下,通过固定输入尺寸、减少不必要的同步操作、将推理线程与 UI 渲染解耦(Qt 信号槽传帧)来保证界面不卡顿。跌倒告警的稳定性则更多依赖阈值与时序策略:Conf/IOU 需要在验证集上做校准,并在系统侧引入简单的时序一致性约束(例如连续 K K K 帧满足 fall 且置信度超过阈值才触发告警),以抑制"弯腰/下蹲/坐下"带来的瞬时误报,同时避免因单帧漏检导致告警抖动。
为便于复现与记录,本项目训练默认参数可概括为下表(不同 YOLO 版本可在保持主参数不变的前提下,仅对显存敏感项如 batch 做微调):
| 名称 | 数值 |
|---|---|
| epochs | 120 |
| patience | 50 |
| batch | 16 |
| imgsz | 640 |
| pretrained | true |
| optimizer | auto |
| lr0 / lrf | 0.01 / 0.01 |
| momentum | 0.937 |
| weight_decay | 0.0005 |
| warmup_epochs | 3.0 |
| mosaic / close_mosaic | 1.0 / 10 |
上述策略的核心是把"可比性、泛化性与部署可用性"放在同一套训练闭环里:训练阶段用可控增强与调度获得稳定泛化,推理阶段用导出与加速保证实时,告警阶段用阈值与时序一致性把检测输出转化为更可靠的系统行为。
5. 实验与结果分析
本节实验的目标是回答两个工程上最关键的问题:其一,YOLOv5 至 YOLOv12 的版本迭代在跌倒这一"姿态强相关、易混淆"的任务上是否带来稳定收益;其二,在相同数据与训练协议下,轻量化(n)与小型(s)模型在精度与实时性之间如何取舍。老思在同一 PedFall 数据集划分上对 YOLOv5/6/7/8/9/10/11/12 进行对比,其中 n_type 组包含 YOLOv5nu、YOLOv6n、YOLOv7-tiny、YOLOv8n、YOLOv9t、YOLOv10n、YOLOv11n、YOLOv12n,s_type 组包含 YOLOv5su、YOLOv6s、YOLOv7、YOLOv8s、YOLOv9s、YOLOv10s、YOLOv11s、YOLOv12s。训练侧遵循前文给出的统一配置( 640 × 640 640\times640 640×640、epochs=120、batch=16、预训练权重初始化、余弦退火与早停),并在评测阶段记录精度指标与端到端耗时;需要说明的是,你提供的速度统计来自 NVIDIA GeForce RTX 3070 Laptop GPU(8GB) 的逐帧计时(包含预处理/推理/后处理),用于相对比较更为合适。

评价指标采用检测任务的标准组合:Precision、Recall、F1、mAP@0.5(记为 mAP50)与 mAP@0.5:0.95(记为 mAP50-95)。其中
F 1 = 2 P R P + R , F1=\frac{2PR}{P+R}, F1=P+R2PR,
用于描述告警系统更关心的"误报与漏报折中"。阈值选择方面,F1-Confidence 曲线显示在单类 fall 情况下,F1 在 conf≈0.555 附近取得峰值 0.76 (如下 F1-Confidence 曲线图所示),因此系统侧将 conf 默认设在 0.55 左右更容易得到稳健的综合表现;若场景以"宁可多报不可漏报"为目标,可在 UI 中将 conf 下调以换取更高召回。

从 n_type(轻量组)的总体结果看(如下对比柱状图、平均 PR 曲线与训练 mAP 曲线所示),性能并未随版本号单调提升,但高水平模型已形成明显的第一梯队。YOLOv9t 在该组中取得最高的 mAP50=0.850、F1=0.800、mAP50-95=0.477 ,表现出更强的整体检测能力;YOLOv11n 与 YOLOv12n紧随其后(mAP50 分别为 0.836 与 0.839),二者差距很小,但"偏好"不同:YOLOv11n 的 Precision 最高(0.843),更有利于压低误报;YOLOv12n 的 Recall 较高(0.795),在告警任务中往往更符合"先检出再二次确认"的工程逻辑。值得注意的是,YOLOv8n 的 Recall 同样达到 0.795,且端到端总耗时最低(约 10.17ms,折算 98 FPS),因此当部署目标是高帧率实时监控时,YOLOv8n属于性价比很高的选择。相反,YOLOv7-tiny 在该数据上出现明显下滑(mAP50=0.543,F1=0.562),其主要问题通常来自姿态细节表达不足与训练稳定性不如后续版本,容易在"弯腰/半蹲/侧卧"等干扰下产生漏检与低置信度。

n_type 组的量化结果汇总如下(Total 为预处理+推理+后处理的端到端时延):
| Model | Params(M) | FLOPs(G) | Precision | Recall | F1 Score | mAP50 | mAP50-95 | Total(ms) | FPS |
|---|---|---|---|---|---|---|---|---|---|
| YOLOv5nu | 2.6 | 7.7 | 0.813 | 0.736 | 0.772 | 0.824 | 0.430 | 10.94 | 91.4 |
| YOLOv6n | 4.3 | 11.1 | 0.740 | 0.679 | 0.708 | 0.743 | 0.371 | 10.34 | 96.7 |
| YOLOv7-tiny | 6.2 | 13.8 | 0.593 | 0.534 | 0.562 | 0.543 | 0.233 | 21.08 | 47.4 |
| YOLOv8n | 3.2 | 8.7 | 0.785 | 0.795 | 0.790 | 0.815 | 0.446 | 10.17 | 98.3 |
| YOLOv9t | 2.0 | 7.7 | 0.830 | 0.773 | 0.800 | 0.850 | 0.477 | 19.67 | 50.8 |
| YOLOv10n | 2.3 | 6.7 | 0.740 | 0.744 | 0.742 | 0.780 | 0.430 | 13.95 | 71.7 |
| YOLOv11n | 2.6 | 6.5 | 0.843 | 0.750 | 0.794 | 0.836 | 0.465 | 12.97 | 77.1 |
| YOLOv12n | 2.6 | 6.5 | 0.768 | 0.795 | 0.782 | 0.839 | 0.456 | 15.75 | 63.5 |

从 s_type(小型组)的结果看(如下对比柱状图、平均 PR 曲线与训练 mAP 曲线所示),更大的模型容量并不必然带来更高的 F1,但在 mAP 上确实更容易冲到更高上限。该组最优为 YOLOv11s(mAP50=0.847,F1=0.782),整体最均衡;YOLOv9s 的 mAP50-95 达到 0.460,说明其定位质量在更严格 IoU 阈值下更占优,但推理耗时显著增大(总耗时约 22.17ms),对高帧率场景不友好。YOLOv12s 的 Precision 最高(0.817),但 Recall 降至 0.702,意味着它更"保守",在跌倒告警这类任务中可能带来较多漏报,需要通过降低 conf 或引入时序一致性策略来补偿。速度方面,YOLOv8s 仍是该组最快(总耗时约 11.39ms,约 88 FPS),并保持 mAP50≈0.802 的可用精度,因此当系统更关注实时流畅与稳定响应时,YOLOv8s是更容易落地的方案。
s_type 组的量化结果汇总如下:
| Model | Params(M) | FLOPs(G) | Precision | Recall | F1 Score | mAP50 | mAP50-95 | Total(ms) | FPS |
|---|---|---|---|---|---|---|---|---|---|
| YOLOv5su | 9.1 | 24.0 | 0.800 | 0.730 | 0.764 | 0.799 | 0.424 | 12.24 | 81.7 |
| YOLOv6s | 17.2 | 44.2 | 0.701 | 0.707 | 0.704 | 0.738 | 0.367 | 12.26 | 81.6 |
| YOLOv7 | 36.9 | 104.7 | 0.575 | 0.585 | 0.580 | 0.562 | 0.218 | 29.52 | 33.9 |
| YOLOv8s | 11.2 | 28.6 | 0.792 | 0.741 | 0.766 | 0.802 | 0.437 | 11.39 | 87.8 |
| YOLOv9s | 7.2 | 26.7 | 0.817 | 0.733 | 0.773 | 0.840 | 0.460 | 22.17 | 45.1 |
| YOLOv10s | 7.2 | 21.6 | 0.779 | 0.702 | 0.738 | 0.776 | 0.420 | 14.19 | 70.5 |
| YOLOv11s | 9.4 | 21.5 | 0.810 | 0.756 | 0.782 | 0.847 | 0.447 | 13.47 | 74.2 |
| YOLOv12s | 9.3 | 21.4 | 0.817 | 0.702 | 0.755 | 0.812 | 0.445 | 16.74 | 59.7 |

结合 PR 曲线与训练过程曲线可以进一步解释这些差异。PR 曲线在中高召回区间(Recall>0.75)普遍出现 Precision 下降(如下 PR 曲线所示),这通常意味着模型为了"把更多跌倒都找出来",会把弯腰、侧卧、遮挡人体等难例也纳入候选,从而增加误报;这也是跌倒检测比一般目标检测更强调阈值可调与时序稳定的原因。训练曲线方面,mAP50 在前 20--40 个 epoch 快速上升,随后进入平台期(如下 mAP50-epoch 曲线所示),而 losses(box/cls/dfl)与验证指标同步收敛(如下训练结果总览图所示),说明当前训练协议总体稳定,最终上限更多由数据覆盖度与混淆样本决定,而非单纯优化器或训练轮数。

综合这些结果,若以"系统部署"为导向,老思更建议把选型分成两类:追求精度上限时,n_type 可优先 YOLOv9t、s_type 可优先 YOLOv11s;追求高帧率实时与交互流畅时,n_type 的 YOLOv8n 与 s_type 的 YOLOv8s 更稳妥。对于误报敏感场景(例如公共场所自动告警),可偏向 Precision 更高的 YOLOv11n 或 YOLOv12s,并通过 conf 与时序门控降低误触发;对于漏报敏感场景(例如独居老人监护),则应优先 Recall 更高的 YOLOv8n/YOLOv12n,并在系统侧用二次确认策略控制误报成本。
6. 系统设计与实现
6.1 系统设计思路
本系统以"推理链路稳定、界面交互顺滑、模型可替换"为设计目标,采用典型的三层解耦结构:Ui_MainWindow 负责界面元素与布局(按钮、标签、表格、阈值滑条、主题入口等),MainWindow 作为控制中枢承载状态机与槽函数,统一调度输入源、模型选择、播放控制与结果落库;Detector 作为处理层封装模型加载、推理与后处理,并通过 Qt 信号槽把结果以事件形式回传给界面层。这样的分层使 UI 修改(主题、图标、控件)与算法迭代(YOLOv5--YOLOv12/ONNX/TensorRT)互不牵连,避免"换模型就改界面"的耦合问题。

在数据流上,系统将摄像头、视频、图片与文件夹四类输入统一抽象为"帧流",从而复用同一条推理管线:采集/解码后执行 letterbox 与归一化,再进入 YOLO 前向推理,输出经阈值筛选与 NMS(或端到端输出解析)得到最终框、类别与置信度。针对跌倒告警的业务属性,后处理阶段额外引入轻量的时序稳定与告警门控思想,例如连续 K K K 帧满足 fall 且置信度超过阈值才触发告警,以削弱弯腰、下蹲等相似动作造成的瞬时误报;同时将 Conf/IOU 暴露在界面侧实现在线调参,便于不同场景快速校准。
工程实现层面,为保证实时性与界面响应,推理与视频解码通常运行在工作线程中,Detector 以 frameReady、statsUpdated、alarmTriggered 等信号把渲染帧与统计信息推送到主线程;MainWindow 只做轻量渲染与状态更新,避免阻塞事件循环。结果管理采用 SQLite:用户注册登录信息、个性化配置(默认模型、阈值、主题等)与检测记录分用户隔离存储;当用户触发导出时,系统将图片/视频帧、统计报表等写出到文件并在数据库中维护索引,形成可回溯的检测闭环。
图 系统流程图

图注:系统从初始化到多源输入,完成预处理、推理与界面联动,并通过交互形成闭环。
6.2 登录与账户管理

登录与账户管理模块并非"附加功能",而是把跌倒检测从一次性推理升级为可长期运行的系统能力:用户在登录后获得独立的配置空间与结果空间,系统从 SQLite 读取默认模型、Conf/IOU、主题样式与导出路径等参数并在主界面自动恢复,使同一套程序能在不同场景下快速复用而无需重复配置;检测过程中产生的告警记录、截图与统计报表会按用户维度持久化,便于事后追溯与对比分析,并与主检测流程的"保存/导出/筛选"交互自然衔接;当用户修改头像、密码或主题时,仅影响界面与个性化参数,不干扰推理线程与模型状态,从而在保证安全性的同时维持实时检测的稳定体验。

7. 下载链接
若您想获得博文中涉及的实现完整全部资源文件 (包括测试图片、视频,py, UI文件,训练数据集、训练代码、界面代码等),这里见可参考博客与视频,已将所有涉及的文件同时打包到里面,点击即可运行,完整文件截图如下:

完整资源中包含数据集及训练代码,环境配置与界面中文字、图片、logo等的修改方法请见视频,项目完整文件请见项目介绍及功能演示视频处给出:➷➷➷
项目介绍地址: https://my.feishu.cn/wiki/GcWMw19JAig2ZOkhSZhcaU07nse
功能效果展示视频: YOLOv5至YOLOv12升级:行人跌倒检测系统的设计与实现(完整代码+界面+数据集项目)
环境配置博客教程:(1)Pycharm软件安装教程;(2)Anaconda软件安装教程;(3)Python环境配置教程;
或者环境配置视频教程:(1)Pycharm软件安装教程;(2)Anaconda软件安装教程;(3)Python环境依赖配置教程
数据集标注教程(如需自行标注数据):数据标注合集
8. 参考文献(GB/T 7714)
1 World Health Organization. Falls[EB/OL]. (访问日期: 2026-02-12). (World Health Organization)
2 Alam E, Sufian A, Dutta P, Leo M. Vision-based human fall detection systems using deep learning: A review[J]. Computers in Biology and Medicine, 2022, 146: 105626. doi:10.1016/j.compbiomed.2022.105626. (ScienceDirect)
3 Khan S S, Hoey J. Review of fall detection techniques: A data availability perspective[J]. Medical Engineering & Physics, 2017, 39: 12-22. (ScienceDirect)
4 Kwolek B, Kepski M. Human fall detection on embedded platform using depth maps and wireless accelerometer[J]. Computer Methods and Programs in Biomedicine, 2014, 117(3): 489-501. doi:10.1016/j.cmpb.2014.09.005. (ScienceDirect)
5 Lafuente-Arroyo S, Acevedo-Rodríguez F J, et al. RGB camera-based fallen person detection system embedded on a mobile platform[J]. Expert Systems with Applications, 2022, 197: 116715. (ScienceDirect)
6 王鑫, 郑晓岩, 高焕兵, 曾子铭, 张吟龙. 基于卷积神经网络和多判别特征的跌倒检测算法[J]. 计算机辅助设计与图形学学报, 2023, 35(3): 452-462. doi:10.3724/SP.J.1089.2023.19361. (JCAD)
7 朱胜豪, 钱承山, 阚希. 改进YOLOv5的高精度跌倒检测算法[J]. 计算机工程与应用, 2024, 60(11): 105-114. doi:10.3778/j.issn.1002-8331.2307-0190. (Baidu Xueshu)
8 Redmon J, Divvala S, Girshick R, Farhadi A. You Only Look Once: Unified, Real-Time Object Detection[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016: 779-788.
9 Ultralytics. ultralytics/yolov5: YOLOv5 in PyTorch[EB/OL]. (访问日期: 2026-02-12). (GitHub)
10 Wang C-Y, Bochkovskiy A, Liao H-Y M. YOLOv7: Trainable Bag-of-Freebies Sets New State-of-the-Art for Real-Time Object Detectors[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2023. (CVF Open Access)
11\] Wang C-Y, Yeh I-H, Liao H-Y M. YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information\[EB/OL\]. arXiv:2402.13616, 2024. doi:10.48550/arXiv.2402.13616. ([arXiv](https://arxiv.org/abs/2402.13616 "https://arxiv.org/abs/2402.13616")) \[12\] Wang A, Chen H, Liu L, et al. YOLOv10: Real-Time End-to-End Object Detection\[EB/OL\]. arXiv:2405.14458, 2024. doi:10.48550/arXiv.2405.14458. ([arXiv](https://arxiv.org/abs/2405.14458 "https://arxiv.org/abs/2405.14458")) \[13\] Ultralytics. Ultralytics YOLO11 Documentation\[EB/OL\]. (访问日期: 2026-02-12). ([Ultralytics Docs](https://docs.ultralytics.com/models/yolo11/ "https://docs.ultralytics.com/models/yolo11/")) \[14\] Li X, et al. YOLOv12: Attention-Centric Real-Time Object Detectors\[EB/OL\]. arXiv preprint, 2025. \[15\] Charfi I, Miteran J, Dubois J, et al. Optimised spatio-temporal descriptors for real-time fall detection: Comparison of SVM and Adaboost classifiers\[C\]//Awais M, et al (eds). Image Analysis and Recognition (ICIAR 2015). Lecture Notes in Computer Science, vol 9164. Springer, 2015. doi:10.1007/978-3-319-20801-5_49. ([arXiv](https://arxiv.org/abs/2402.13616 "https://arxiv.org/abs/2402.13616"))