摘 要:本文设计并实现了一套基于优化后的YOLOv5算法的老年人跌倒行为检测与监测系统。采用深度学习技术和实时视频流处理,系统能够高效、准确地监测和识别老年人的跌倒行为,以提升其安全保障水平。优化后的算法在保持高检测率(97.08%)的同时,显著降低了错误检测率(仅为0.8%),并表现出优异的区分能力,有效减少了误报。该系统的设计不仅在试验中取得了显著成果,还在老年人健康管理中具有潜在应用价值。
关键词:老年人跌倒检测;YOLOv5算法优化;深度学习;实时视频处理;安全监测系统
中图分类号:TP 391 " " " " 文献标志码:A
老年人跌倒是导致伤害和死亡的常见原因,特别是在家庭和养老院等环境中,因此,及时检测和响应老年人的跌倒行为,对预防事故后果具有重要意义。深度学习技术在计算机视觉领域的快速发展为解决该问题提供了新的可能性。YOLOv5是一种先进的目标检测算法,具有高效的实时性能和精准的检测能力,在多个应用领域受到广泛关注。本文旨在利用优化和定制化YOLOv5算法,设计一套专门用于老年人跌倒行为检测与监测的系统。优化后的算法将结合实时视频流处理和高精度目标识别,在各种环境条件下稳定运行,并准确识别跌倒事件。利用本系统可以提升老年人的安全保障水平,及时发现跌倒并采取紧急救援措施,从而降低跌倒带来的风险和损害。
1 系统设计与实施
1.1 需求分析
在设计和实现基于优化YOLOv5算法的老年人跌倒行为检测与监测系统过程中,需要满足以下2个方面的需求。
1.1.1 系统功能需求
系统功能需求是老年人跌倒行为检测与监测系统设计的核心要素。首先,系统需要精确识别老年人的跌倒行为,包括准确识别站立、弯腰和躺倒等多种状态。这种能力基于优化后的YOLOv5算法,采用深度学习技术对人体姿态变化进行高效监测[1]。其次,系统需要具备实时处理能力,能够在视频流中连续监测并分析老年人的动作变化,以保证对跌倒事件进行即时响应[2]。最重要的是,一旦系统检测到老年人发生跌倒行为,能够立即触发警报或通知相关人员进行紧急处理,从而有效提升老年人的安全保障水平。
1.1.2 性能需求
系统的性能需求对老年人跌倒行为检测与监测系统至关重要。系统需要具备高准确性,保证能够准确识别老年人的跌倒行为,并能有效区分跌倒与其他日常活动[3]。此外,系统必须具有低延迟的特性,以保证跌倒事件发生后能够迅速做出反应,触发警报或通知相关人员及时处理。同时,系统应具备实时处理能力,能够在实时视频流中连续监测和识别跌倒行为,保证监测的即时性和连续性,以提高老年人的安全保障水平。
1.1.3 环境需求
在设计基于优化YOLOv5算法的老年人跌倒行为检测与监测系统过程中,需要保证系统在不同环境条件下的稳定性和可靠性。1) 光照条件。系统必须在各种光照条件下稳定运行,包括明亮、昏暗的环境和光线变化大的场景。系统应能利用优化YOLOv5算法,结合图像增强和自动曝光控制技术,准确识别老年人的跌倒行为,并在光线突然变化情况下迅速适应环境,避免误检和漏检。2) 复杂背景与摄像头配置。系统需要处理复杂背景中的干扰因素,例如家具、家电和其他人员活动。深度学习模型应针对常见背景干扰进行训练,保证能够准确检测跌倒行为。同时,系统还需要适应不同摄像头的安装位置和角度,利用多视角融合技术提升检测的准确性。
1.2 系统总体设计
系统采用优化后的YOLOv5算法的架构,对跌倒行为进行高效检测。整体架构包括以下4个关键组成部分。1) 数据采集模块。该模块能够从摄像头获取实时视频流数据。2) 数据预处理模块。该模块能够对采集的视频流进行预处理,包括调整图像大小、归一化像素值等,以便于后续的算法处理。3) YOLOv5模型集成。整合优化后的YOLOv5模型包括模型的加载、推理过程和结果输出。4) 警报触发与通知模块。当检测到老年人跌倒行为时,触发警报或通知相关人员及时处理。
1.3 详细设计
1.3.1 数据预处理与OpenCV集成
在处理实时视频流过程中,数据预处理在老年人跌倒行为检测系统中具有关键作用。数据预处理阶段包括调整图像和归一化2个主要步骤。调整图像包括调整图像大小、裁剪或填充图像,以适应模型的输入要求。
YOLOv5模型对输入图像的尺寸和格式有特定要求,需要保证每个输入图像具有相同的尺寸和像素值范围,以便模型能够正确地进行检测和分类。首先,在OpenCV中,可以使用resize函数来调整图像大小。其次,归一化是另一个重要步骤,它将图像的像素值映射到一个固定的范围内,通常为[0,1]或[-1,1]。这种归一化可以提高模型的训练速度和稳定性,并减少数据偏差对模型性能的影响。在实时视频流处理过程中,OpenCV是一个开源的计算机视觉库,它具有丰富的图像处理功能和视频处理能力,可以从摄像头或视频文件中轻松地获取实时视频流,并快速、有效地处理每一帧图像。此外,OpenCV还支持硬件加速和多线程处理,对实时视频流的高效处理至关重要。它能够利用现代计算硬件(例如GPU)来加速图像处理和算法推理过程,从而提高系统对实时视频流的即时响应和高效处理能力。OpenCV集成代码如下所示。
import cv2
# 打开摄像头(0为默认摄像头)
cap = cv2.VideoCapture(0)
while True:
# 读取视频流帧
ret, frame = cap.read()
if ret:
# 调整图像大小
target_size = (640, 480)
resized_frame = cv2.resize(frame, target_size)
# 灰度化和归一化处理
gray_frame = cv2.cvtColor(resized_frame, cv2.COLOR_BGR2GRAY)
normalized_frame = gray_frame / 255.0
# 在这里可以将normalized_frame送入YOLOv5模型进行跌倒行为检测
# 显示处理后的图像
cv2.imshow('Processed Frame', normalized_frame)
# 按下 'q' 键退出循环
if cv2.waitKey(1) amp; 0xFF == ord('q'):
break
# 释放摄像头并关闭所有窗口
cap.release()
cv2.destroyAllWindows()
采用以上方法,并利用OpenCV的功能对实时视频流进行预处理,使其适用于后续的跌倒行为检测任务。这种集成能够保证系统在各种光照条件和复杂背景下都能稳定运行。
1.3.2 YOLOv5算法设计与优化
1.3.2.1 YOLOv5架构
YOLO(You Only Look Once)算法是一种实时目标检测算法,其核心思想是将目标检测任务视为一个回归问题,利用单次前向传播来直接预测目标的位置和类别。YOLOv5是YOLO系列中的最新版本,在之前的版本基础上进行了显著改进和优化。YOLOv5的关键点可以描述如下。
对于给定的图像I,YOLOv5算法利用神经网络生成多个预测框,即B={b1,b2,...bN},其中N为预测框的总数。每个预测框b可以表示为公式(1)。
b=(bx,by,bw,bh,Conf,P(class|object)) " " " " " (1)
式中:bx、by分别为预测框b的中心点在网格单元(i,j)内的偏移;bw、bh分别为预测框b的宽度和高度;Conf为预测框b内物体的置信度;P(class|object)为预测框b内物体所属类别的概率分布。
公式(1)描述了YOLOv5算法如何通过神经网络输出预测框,并利用优化损失函数,使这些预测框尽可能地准确定位并图像中的物体进行分类。
1.3.2.2 YOLOv5算法优化
在YOLOv5中,无锚设计和多尺度检测技术是关键优化点,旨在提高目标检测的精度和速度。1) 无锚设计。YOLOv5放弃了传统目标检测算法中的锚框方法,采用无锚设计的方式进行物体检测。具体来说,YOLOv5使用自适应的格子预测框,每个图像被划分为S×S个网格单元,每个网格单元能够预测其内部的物体。这些预测框的位置和大小不再基于手动设计的锚框,而是利用神经网络预测物体中心点的偏移量和物体的尺寸。对于每个网格单元,YOLOv5预测物体的中心点相对于网格左上角的偏移量bx、by。这种方式不需要预先定义和调整多个锚框,不仅简化了设计,而且减少了计算复杂性。预测框的宽度bw、bh直接由网络输出,代表物体的尺寸信息。这些预测框不仅可以适应不同大小的物体,还能在单一的网络结构下统一处理各种尺度的物体。2) 多尺度检测。为了提高对不同大小物体的检测能力和适应性,YOLOv5引入了多尺度检测技术。YOLOv5的网络结构包括多个特征提取层,每个层次可产生不同分辨率的特征图。低层特征图可以捕获更精细的细节,高层特征图则具有更广泛的语义信息。利用这种层级结构,YOLOv5能够同时处理不同尺度的物体。在检测阶段,YOLOv5综合利用不同层次的特征图进行目标检测。每个预测框都可以从多个特征层次中获取信息,以提高对物体的定位精度和类别预测准确性。YOLOv5还引入了自适应的多尺度训练(Adaptive Multi-scale Training),在训练过程中动态调整输入图像的分辨率,从而使模型能够更好地适应不同尺度物体的检测需求。
1.3.3 数据集准备与标注
1.3.3.1 数据集描述:Fall-Down-Det-v1数据集
Fall-Down-Det-v1数据集是用于检测和监测老年人摔倒行为的数据集。该数据集包括摔倒和非摔倒场景的视频和图像数据,用于训练和评估摔倒检测算法的性能。
1.3.3.2 数据集划分与标注格式
数据集分为训练集和测试集。训练集用于训练摔倒检测模型,通常包括大量的摔倒和非摔倒场景的图像或视频。测试集用于评估模型在新数据上的泛化能力和性能。测试集与训练集具有相似的数据分布,但是数据不会重叠。
1.3.4 实时监测与警报系统集成
1.3.4.1 实时推理与结果处理
接收视频流或图像后,实时监测系统会进行以下处理。首先,对输入图像进行预处理,包括大小调整和归一化,以适应模型的输入要求。其次,将预处理后的图像输入摔倒检测模型中进行推理,得到每个检测框的位置、类别和置信度等信息。最后,根据模型输出结果进行后处理,例如滤除低置信度的检测框、合并重叠的检测框,以保证检测结果的准确性和可靠性。这一系列步骤保证系统能够实时、准确地监测和检测摔倒行为。
1.3.4.2 警报触发机制与系统响应时间优化
为了实现及时报警和系统快速响应,采用以下3个策略。1) 设定一个置信度阈值,只有置信度高于该阈值的检测框才会触发警报,从而减少误报。2) 当检测到摔倒行为时,系统应立即生成警报,通过多种方式通知相关人员或系统,例如短信、电子邮件或触发警报声。此外,采用实时通信技术(例如WebSocket),将警报信息即时推送到监控系统或手机应用,保证相关人员能够及时收到警报。3) 采用轻量化模型或模型优化技术(例如量化和剪枝),并利用硬件加速(例如GPU、TPU)优化模型推理和警报生成的流程,减少推理时间,保证系统能够在短时间内响应摔倒事件。
2 性能评估与分析
在试验过程中,首先,本文在室内走廊拍摄了多段模拟老年人摔倒的真实视频,将其作为测试数据,输入摔倒检测系统文件夹中。其次,打开系统服务器后台界面,系统读取真实视频并进行自动仿真识别,即将视频数据实时输入摔倒检测算法中,由算法对每一帧图像进行处理和分析,识别潜在的摔倒事件。最后,仿真结束后,系统后台展示了处理后的视频,从中能够清晰地看到,摔倒瞬间被准确识别,检测算法用红色框标注摔倒事件,并向系统服务器后台发送报警信号,提示有人员摔倒,需要救助。系统模拟检测结果如图1所示。
经过大量试验后,所得试验统计数据见表1。
试验结果表明,系统跌倒检测率为97.08%,表明系统在真实环境中具有较高的检测准确性,错误检测率仅为0.8%,在区分相似日常活动方面表现优越,极大减少了误报情况,提高了系统的可靠性。
3 结论
本文基于优化后的YOLOv5算法,设计了一种专门用于老年人跌倒行为检测与监测的系统。通过系统的设计与实施,本文成功解决了老年人跌倒带来的安全隐患问题。优化后的算法结合实时视频流处理和高精度目标识别,能够对跌倒行为进行高效监测和准确识别。试验结果表明,系统的跌倒检测率为97.08%,错误检测率仅为0.8%,并且在区分相似日常活动方面表现优越,有效减少了误报,具有在实际应用中广泛推广的潜力。这些特点使本系统在老年人健康管理和安全保障方面具有重要意义,为社会提供了一种有效的、应对老龄化社会问题的技术解决方案。
参考文献
[1]代菁菁,胡立夫,陈大越.一种适老化跌倒检测预警系统设计[J].电子制作,2024,32(9):20-23.
[2]王宁.基于STM32的老人跌倒监测系统设计与实现[D].银川:北方民族大学,2024.
[3]刘子琪,王芳,曾显,等.基于物联网的社区智慧养老系统设计[J].工业仪表与自动化装置,2024(1):34-37,46.
通信作者:陈丹丹(1990—),女,江苏南通市人,硕士,讲师,研究方向为信息系统。
电子邮箱:339472751@qq.com。