基于YOLOv5和五角星识别的老年人摔倒检测
作者: 蔡鑫斌 刘钟凌 胡嘉欣 李丽钗 林悦悦 郑韵莹
摘要:摔倒已成为危害我国老年人健康的重要因素,其后果不容忽视。鉴于我国对老年人健康安全问题的深切关注,如何有效利用摔倒后的黄金救援时间,确保老年人能迅速获得必要援助,已成为当前亟待解决的关键问题。文章设计了一种基于YOLOv5目标检测算法的智能拐杖摔倒检测系统,该方法通过训练模型识别特定姿态——在此设计中,笔者采用五角星标志物作为摔倒姿态的象征(此选择旨在简化训练过程,因为五角星形状独特且易于在图像中识别,从而便于模型学习摔倒特征的多样性) ,并对模型结构和超参数(如学习率、批量大小、正则化参数等) 进行了细致优化,显著提升了算法的识别精准度。实验结果显示,该系统模型训练精度高达95%以上,同时在测试集上也表现出良好的准确率和召回率,为老年人摔倒后的及时救援提供了坚实的技术支持。
关键词:老年人摔倒检测;YOLOv5;深度学习;人工智能
中图分类号:TP39 文献标识码:A
文章编号:1009-3044(2025)02-0012-03 开放科学(资源服务) 标识码(OSID) :
0 引言
随着中国人口老龄化的不断加剧,2020年65岁以上老年人口已达1.91亿,占比13.5%,预计到2057 年这一数字将攀升至4.25 亿,占比高达32.9%~37.6%,凸显出老年健康问题的严峻性[1]。老年人群中,因衰老导致的感觉敏感度下降、反应速度减缓、视力减退及身体平衡能力削弱等问题,使得摔倒成为严重威胁其健康和生活质量的重大隐患。摔倒后若长时间未被发现,老年人将面临生命危险,因此,摔倒检测技术的研发显得尤为重要。
当前,摔倒检测方法主要分为基于传感器和基于深度学习两大类。在传感器技术方面,虽然穿戴式与环境传感器各具特色,如Alesin团队设计的可穿戴设备能实时捕捉人体运动,但存在老年人活动幅度大时误报警率高的问题[2];Lin等研究者将传感器融入眼镜,但老年人偶尔的遗忘佩戴导致监测失效[3];Yang团队利用Wi-Fi信号进行摔倒识别,但误检率较高[4]。
在计算机视觉领域,深度学习技术,特别是YOLO 系列和SSD算法,被广泛应用于目标检测和图像识别中。王萍叶团队运用YOLO技术实现了对人体动态的精准识别与定位[5],朱娜等人则基于SSD算法构建了轻量级网络模型[6],显著提升了检测速度。周洪成等研究者将YOLOv5算法应用于摄像头数据,实现了对人体动作姿态的敏锐分析与即时信息传输至监护人手机,但该系统在精确度上仍有提升空间,mAP值为0.83[7]。
上述研究为摔倒检测提供了有益的探索,但仍存在一些不足,尤其是在识别精度和实时性方面。鉴于老年人摔倒问题的紧迫性和重要性,本文提出了一种新型的摔倒检测系统。该系统结合老年人拐杖装置,利用拐杖上的摄像头实时检测画面内目标,采用现阶段应用最广泛的YOLOv5算法,并通过自建数据集进行训练,实现对老年人摔倒情况的准确检测与即时警报。这一设计旨在克服现有技术的局限性,为老年人提供更加安全、有效的摔倒监测与救助方案。
1 算法描述
YOLOv5算法作为YOLO系列的重要发展,以其高效的速度与精度在目标检测领域脱颖而出,特别适用于GPU环境下的训练与部署。该算法提供了从轻量级(YOLOv5n) 到重型(YOLOv5x) 的五种网络架构,其中YOLOv5s因其适中的网络深度和特征图宽度,在保证实时性的同时,提供了良好的检测性能,成为本文进行摔倒检测的首选模型。
YOLOv5的核心结构分为输入端、主干网络(Back⁃bone) 、颈部(Neck) 和输出端(Prediction) 四大部分。在输入端,YOLOv5采用了Mosaic数据增强技术,通过拼接四张随机处理后的图片,有效增加了小目标的检测效果,并减少了GPU资源的占用。同时,通过尺寸缩放和自适应锚框计算,优化了图像输入过程,减少了信息冗余,提升了推理速度,如图1所示。
主干网络和颈部则融合了多种高效的网络结构,如CBL(卷积、归一化、Leaky激活函数组合) 、CSPNet 的增强版本(CSP1和CSP2) 等,这些结构共同构成了YOLOv5强大的特征提取与融合能力。此外,YOLOv5 在后处理过程中采用了NMS方法,有效提升了遮挡目标的检测能力。
本文在YOLOv5的基础上进行了针对性改进,旨在进一步提升摄像头摔倒检测的准确性和实时性。具体改进点将聚焦于优化网络结构、提升特征表示能力,以及增强对摔倒行为的识别精度等方面,以满足实际应用场景中的高性能需求。
2 技术设计与实现
2.1 总体方案
本文提出的摄像头对老人摔倒检测系统由3个阶段构成,每个阶段都承担着不可或缺的角色,共同确保系统的有效运行。以下是这3个阶段的详细解释及流程:
第一阶段:数据集准备与处理
步骤1:数据采集。通过摄像头捕捉各种摔倒场景以及正常活动的视频和图像,确保数据集包含丰富的摔倒姿态和背景信息。
步骤2:图像分割。将采集到的视频帧或图像分割为独立的图像文件,形成初始数据集。
步骤3:数据集划分。将初始数据集随机划分为训练集和测试集,通常比例为8:2或7:3,以确保模型训练和验证的独立性。
步骤4:图像标注。使用La⁃belImg等工具对训练集中的图像进行标注,标记出摔倒区域或摔倒姿态,生成符合PASCAL VOC 格式的XML文件。
第二阶段:网络训练
步骤1:环境搭建。配置深度学习框架(如PyTorch) 和YOLOv5 模型所需的软硬件环境。
步骤2:数据预处理。将标注好的训练集图像加载到模型中,进行尺寸调整、归一化等预处理操作。
步骤3:模型初始化。使用预训练权重初始化YOLOv5模型的主干网络,以加速训练过程并提升模型性能。
步骤4:参数设置。配置训练参数,如epoch(设为300次) 、batch size(设为32) 、workers(设为6) 等,以优化训练过程。
步骤5:模型训练。将预处理后的图像输入模型进行训练,通过反向传播算法更新模型权重,以最小化损失函数。
步骤6:模型保存。在训练过程中定期保存模型权重,以便后续评估和测试。
第三阶段:检测与识别
步骤1:模型加载。将训练好的模型权重加载到YOLOv5模型中。
步骤2:实时视频捕捉。通过摄像头捕捉实时视频流或加载测试集图像。
步骤3:目标检测。将捕捉到的视频帧或图像输入模型进行目标检测,识别出摔倒姿态。
步骤4:结果判断。根据模型的输出判断是否为摔倒行为,若判断为摔倒,则执行下一步。
步骤5:报警响应。通过GSM短信模块发送紧急报警信息至预设的接收端。
图2展示的摔倒报警系统框架融合了电脑端与控制端。电脑端(上位机) 负责程序运行与信息分析;控制端(下位机) 通过摄像头捕捉画面,利用ESP32开发板与GSM短信模块迅速响应发送警报信息,实现摔倒报警的目的。
2.2 自制训练集并标记
在制作训练集时,原本计划使用五角星图片作为摔倒的标志物进行模拟训练。然而,这种做法存在明显的问题:五角星与真实摔倒姿态之间存在显著差异,无法有效模拟摔倒场景。因此,需要在此进行更正:
数据集更新:我们重新拍摄了包含真实摔倒场景的图片,并增加了图片数量至数千张,以确保数据集的多样性和代表性。
标注工具:继续使用LabelImg工具对图片进行标注,但标注对象由五角星更改为摔倒姿态。
数据集大小:数千张图片的数据集对于训练一个高精度的摔倒检测模型来说是足够的,但具体数量还需根据模型性能和训练效果进行调整。
2.3 模型训练
在模型训练阶段,详细说明了训练参数的设置及理由:
epoch:设为300 次,以确保模型充分学习数据特征。
batch size:设为32,平衡训练速度和内存。
workers:设为6,加速数据加载。
损失函数:使用YOLOv5默认的损失函数,包括边界框回归损失、置信度损失和分类损失。
优化器:采用Adam优化器,助模型快速收敛。
同时,监控loss值、Precision和recall等指标,确保模型性能稳定提升。
2.4 模型评估
经过300轮训练,团队发现loss值随着训练轮数的增加不断降低,并最终趋于稳定,达到了预期的期望值。在精确性方面,Precision(精确率) 随着迭代次数的增加逐渐上升,最终稳定在约0.96的水平;而Re⁃call(召回率) 也呈现出类似的趋势,同样在迭代过程中不断上升,并最终稳定在约0.94。这些评估指标共同表明,该模型在训练过程中表现出了良好的学习能力和泛化性能。
3 检测实现
3.1 摔倒检测设计
在摔倒检测设计中,研究者创新性地采用了经过精心训练的YOLOv5模型来进行图像测试。当模型对原始图像进行分析时,如果检测到与“五角星”相似的红外图案,就会在该目标周围添加一个方框进行标识,从而清晰地显示老年人是否处于摔倒状态。
在实际应用场景中,系统会对摄像头实时拍摄的画面进行智能分析。一旦检测到老年人摔倒的特征,系统会立即启动初步判定机制,并同步开启一个10秒的倒计时程序。这个10秒倒计时机制的设计是基于以下考虑:摔倒是一个快速且突然的动作,而老年人摔倒后可能需要一段时间来恢复或寻求帮助。因此,我们设定了一个合理的观察时间窗口(10秒) ,以确认摔倒动作是否持续存在。如果在这10秒内,摄像头持续捕捉到与“五角星”相似的特征,系统将确认老年人摔倒,并触发警报。反之,如果特征消失,则系统判断为误报,避免不必要的干扰。
为了验证系统的鲁棒性和可靠性,人们在多个真实场景中进行了测试。结果显示,系统能够准确识别老年人摔倒的情况,并在大多数情况下避免误报。准确率达到90%以上,这充分证明了该设计的有效性和实用性。
关于五角星识别在实际应用中的可行性,研究者进行了充分的论证。通过对比不同图案与“五角星”特征的相似度,发现该特征具有较高的识别度和稳定性。同时,结合YOLOv5模型的强大检测能力,研究者实现了对摔倒姿态的准确识别。
3.2 警报通信设计
在警报通信设计中,采用了sim800c型号的GSM 模块来实现短信发送功能。该模块支持标准的AT指令集,可以通过串口与微控制器进行通信。在使用时,首先将GSM模块与ESP32开发板连接,并通过编程实现短信发送功能。当系统检测到老年人摔倒时,会立即通过GSM模块向监护人或家人发送短信通知。短信内容包含GPS定位和当前拍摄画面的截图,以便监护人迅速了解老年人的位置和状况,从而及时采取措施进行救援。
4 结束语
本文研发了一款基于YOLOv5的智能化拐杖,用于解决老年人摔倒后无法自救的问题。通过自建数据集和GPU训练,模型训练准确率达95.66%,实际测试置信度约为0.7-0.75,这一指标反映了模型对于检测结果的把握程度,即模型对于检测为摔倒的情况有70%至75%的确定性。
虽能基本实现摔倒检测和求救短信发送,但仍存在一些不足之处。例如,警报求救功能尚不全面,检测的灵敏度也有待提升。在未来的研究中,研究者将致力于进一步优化这一设计。具体而言,将探索提高系统准确率和灵敏度的方法,可能包括采用更先进的深度学习算法、增加训练数据量以及优化模型结构等。同时,为了实现更全面的警报求救功能,我们将考虑整合更多种类的通信方式,如语音报警、自动拨打紧急联系电话等。