1、2023 年 2 月 25 日第 7 卷第 4 期现代信息科技Modern Information Technology Feb.2023 Vol.7 No.41211212023.022023.02收稿日期:2022-10-10改进 YOLOv5 的人体摔倒检测张靖(太原师范学院 计算机科学与技术学院,山西 晋中 030619)摘 要:摔倒是影响老人生命安全的重要问题之一,为提高检测准确率,将YOLOv5模型应用于摔倒检测并做了改进。首先,用 K-means 聚类算法得到更符合目标形态的 anchor 长宽比例,使边界框更精确,提高摔倒检测准确率。其次,用 EIoU 损失函数替换 CIoU
2、损失函数,加快收敛速度,使目标定位更准确。实验结果表明,改进后的 YOLOv5 模型检测效果较好,准确率达到99.1%,mAP 值达到 99.3%,能够更好地满足摔倒检测的要求。关键词:改进 YOLOv5 算法;人体摔倒检测;K-means 聚类;EIoU 损失函数中图分类号:TP391.4 文献标识码:A 文章编号:2096-4706(2023)04-0121-04Improved YOLOv5 Human Fall DetectionZHANG Jing(College of Computer Science and Technology,Taiyuan Normal University
3、,Jinzhong 030619,china)Abstract:Falling is one of the important problems affecting the life safety of the elderly.In order to improve the detection accuracy,YOLOv5 model is applied to fall detection and improved.Firstly,K-means clustering algorithm is used to get the ratio of the length and width of
4、 the anchor which is more in line with the target shape,and it makes the bounding box more accurate and improves the accuracy of fall detection.Secondly,it replaces the CIoU loss function with EIoU loss function to speed up the convergence and make the target location more accurate.The experimental
5、results show that the improved YOLOv5 model has a better detection effect,with an accuracy rate of 99.1%and the mAP value reaches 99.3%,which can better meet the requirements of fall detection.Keywords:improved YOLOv5 algorithm;human fall detection;K-means clustering;EIoU loss0 引 言全国第七次人口普查结果显示 60 周
6、岁及以上人口突破2.6 亿,约占总人口数的 18.7%,比 2010 年上升 5.44%1。随着人口老龄化比例的逐年增加,摔倒是危害老年人健康的首要原因2,3。一旦老人摔倒后长时间不被发现将会有生命危险。目前,针对摔倒检测方法主要有以下两种:基于传感器和基于计算机视觉。基于传感器的设备有穿戴式和环境传感器两种。如 Alesin 等人4设计了多功能可穿戴设备,可以戴在手腕、上臂、上腿或脚踝上,用于监测人体的实时位置和运动活动。但是,人体运动幅度较大时误报警率高。Lin等人5通过在眼镜框上镶入加速度器和陀螺仪获取信号,检测加速度和用户头部方向的变化来判断是否发生摔倒。但老人经常会忘记佩戴。Yang
7、 等人6使用 Wi-Fi 设备的通道状态信息,通过识别不同活动会对 Wi-Fi 信号产生不同的影响进行摔倒检测。Wi-Fi 设备检测摔倒误检率较高。在计算机视觉领域深度学习技术广泛应用到目标检测和图像识别中,基于准确性与实时性两方面考虑,分为基于YOLO 系列算法的人体行为识别和基于 SSD 算法的人体行为识别。Wang 等人7在 YOLOv3 算法中引入锚点参数,通过 K-means 算法优化锚框,在 gpu 服务器上用自建数据集对网络模型进行训练和测试。实验结果 mAP 值为 0.83。周洪DOI:10.19850/ki.2096-4706.2023.04.031成等人8采用 YOLOv5
8、 算法对摄像头采集到的数据判断人体的动作姿态,将动作姿态信息经连接树莓派的 Wi-Fi 模块发送到监护人的手机上,如有摔倒发生可及时救助。实验结果 mAP 值为 0.83。精确度仍有待提高。马露等人9提出改进 FSSD(Feature Fusion Single Shot Multibox Detector)网络模型进行摔倒检测。该网络模型通过基础网络和辅助网络对图像特征进行提取,增加上下文信息提高摔倒检测的准确率。综上所述,针对以上方法对于摔倒检测的准确率和实时性不高的问题,本文提出用 K-means 算法优化锚框并采用EIoU 损失函数的 YOLOv5 检测算法,提高了摔倒检测的准确率和实
9、时性,能够更好地检测出摔倒行为。1 算法描述2020 年 Ultralytics 公司发布了 YOLOv5 网络模型,该模型易于部署且检测速度快,分为 YOLOv5n、YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x 这 5 种网络架构。本文选用 YOLOv5 中典型的网络模型 YOLOv5s 进行摔倒检测,YOLOv5s(以下简称 YOLOv5)网络的深度和特征图宽度都很小使得训练速度快、实时性强。YOLOv5 分为输入端、Backbone、Neck、输出端四部分。如图 1 所示(YOLOv5-6.0版本)。本文对 YOLOv5-6.0 版本进行改进,以提高摔倒检测的准确率和实
10、时性。YOLOv5 的输入端包含 Mosaic 数据增强技术、图片尺寸缩放和自适应锚框计算三种方法。通过 Mosaic 数据增强1221222023.022023.02第 4 期现代信息科技技术随机选取四张图片进行随机缩放、剪裁等操作后拼接成一张图片,丰富了训练数据集。通过图片尺寸缩放技术将图片缩放成固定大小,提高训练速度。通过自适应锚框计算方法生成最佳锚框值。YOLOv5 中使用了两种 CSP 结构。主干网络 Backbone使用 CSP1_X 结构,Neck 网络使用 CSP2_X 结构。其中的X 表示有几个残差组件。两种 CSP 结构对应两个网络,从而使得残差结构的输出更易融合。在目标检
11、测的后处理过程中,通常使用 NMS 方法对多目标框进行筛选,加强了遮挡目标的检测能力。640*640*3输入端backboneNeck输出端80*80*25540*40*25520*20*255ConvCBSCSP2_1ConcatConcatCSP2_1ConvCBS上采样ConvCSP2_1ConcatCSP2_1CBSConcat上采样CBSCSP1_2CSP1_3SPPFCSP1_1CBSCBSCBSCBSCSP1_1CBSSPPFCBSMaxPoolMaxPoolMaxPoolCBS2*XCSP2_XCBSCBSCBSCBSX个残差组件CSP1_XResunitCBSCBSCBSCB
12、SaddCBSResunitConvBNSiLUCBSConcatConcatConcat图 1 YOLOv5 网络结构2 模型改进2.1 损失函数改进损失函数能够评估模型训练结果的好坏,训练结果通常用于调整网络权重,从而加快模型收敛,因此损失函数会直接影响到目标检测的效果。YOLOv5 采用的损失函数是CIoU loss10,该损失函数考虑了重叠面积、中心点距离以及长宽比这三个几何参数。CIoU loss 的公式为:(1)(2)式中,IoU 为预测框与真实框的交并比,2(b,bgt)表示真实框和预测框的中心点距离,c 表示真实框和预测框最小外接矩形的最短对角线长度。v 表示衡量长宽比一致性参
13、数,表示平衡参数,v 的梯度 w 和 h 的计算如下:(3)由式(3)可推出 表示 w 和 h 的梯度值是相反的,即一个增大时另一个必然在减少。将导致预测框不能很好的与真实框贴合以及损失函数收敛过慢。对于此问题,本文采用 EIoU 损失函数11,EIoU 提出了分别计算 w 和 h的损失,得到更快的收敛速度。EIoU 损失函数公式为:(4)其中 cw、ch表示真实框和预测框的最小外接矩形的宽和高,EIoU 将损失函数划分成:IoU 损失 LIOU、距离损失 Ldis和长宽比损失 Lasp,通过这种方式,可以保留 CIoU 损失的有利特征。同时,EIoU 损失直接最小化了真实框和预测框的宽度和高
14、度之差,得到了更快的收敛速度和更好的定位结果。为了提高 YOLOv5 算法在摔倒检测中的检测精度,将EIoU 损失函数引入到 YOLOv5 网络中替换掉原始的 CIoU损失函数,进行网络训练。2.2 改进 anchor 机制anchor 框尺度的设定与模型的检测性能好坏有直接关系。YOLOv5 有默认的 anchor boxs 尺度和长宽比,但不同数据集与所给定的 anchor boxs 默认参数不能很好的匹配。理论上来说,anchor boxs的尺寸与数据集中的真实框(ground truth)尺寸越接近,模型的检测性能越好。因此本文采用K-means 聚类算法对标注的数据集真实框尺寸进行聚
15、类,从而得到适用于本实验数据集的anchor框尺寸。其中K等于9,具体步骤为:(1)读取训练集中包含 M 张图片的标注文件,解析真实框的宽高;(2)在训练集中挑选 k 个真实框对 k 个 anchor boxs 进行初始化;(3)依次计算每个真实框与每个 anchor box 的误差d,其中 d=1-IoU,IoU(Intersection over Union)为真实框与 anchor 框的交并比,将真实框分类给与其误差 d 最小的anchor box;(4)根据分类结果找到每个 anchor box 包含的所有真实框的均值,用其对 anchor box 进行更新;(5)重复 3、4 步骤,
16、直到真实框的分类不再更新。通过 K-means 聚类分析手工标注的训练集,得到更符合人体目标边界框的先验框,设置优化算法中的 anchor 参数,使之与人体摔倒的目标形态相匹配,提高摔倒检测算法精度。1231232023.022023.02第 4 期3 实验分析3.1 数据集与实验环境本文所采用的是 UR fall detection dataset(URFD)摔倒数据集,从中选取 30 个摔倒图像和 28 个正常活动图像进行手工标注后训练,包含多个身高体型不同的人类进行正常以及摔倒活动,存在光照变化以及部分目标遮挡现象。本实验的操作系统为 Windows 10,GPU 为 NVIDIA Quadro RTX 5000,GPU 显存为 16 GB,CUDA10.1 版本,使用 Python 程序设计语言,Python 3.6 版本,算法框架为Pytorch,torch1.7.1版本,YOLOv5s训练时迭代次数为210次,batch size 为 16,学习率为 0.01。3.2 算法的评价指标在检测出目标后,需要对检测效果进行评价。评价所用到的指标有,平均精度(Average Pre