温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
基于
改进
YOLOv5s
老人
跌倒
识别
算法
研究
雷亮
第 25 卷 第 1 期重庆科技学院学报(自然科学版)2023 年 2 月基于改进 YOLOv5s 的老人跌倒识别算法研究雷 亮尹衍伟梁明辉秦兰瑶和圆圆张文萍林津平(重庆科技学院 智能技术与工程学院,重庆 401331)收稿日期:2022 08 12基金项目:重庆市自然科学基金项目“基于石墨烯和量子点的直读式红外探测机理研究”(CSTC2018JCYJAX0519);2021 年重庆市属本科高校与中科院所属院所合作项目“工业互联网内生安全关键技术研究与协同创新”(HZ2021015)作者简介:雷亮(1973 ),男,博士,教授,研究方向为人工智能、图像检索、模式识别。摘要:为应对人口老龄化加剧带来的老年人居家安全问题,提出了一种实时准确的跌倒识别算法。目前基于计算机视觉的跌倒检测主要存在跌倒类间相似性大、监控角度相对固定而跌倒角度多变、特征提取困难、难以联系图像依赖关系等问题。为此,采用同一动作 8 个拍摄角度的数据集,使模型能够充分学习到多种特征;将所有跌倒行为归为一类,总类别数为二分类;改进原网络的候选框、添加 CC Net、改进非极大值抑制算法,进行分类训练,并对训练好的模型进行对比评估。实验结果表明,该方法的平均准确率比 YOLOv4 和 YOLOv5s 模型分别提高了 5 9%和 2 6%,比 SSD 算法提高了 11.1%,能够基本满足检测需求。关键词:跌倒检测;跌倒姿态;类间相似性;CC Net;实时检测中图分类号:TP391文献标识码:A文章编号:1673 1980(2023)01 0085 060前言国家统计局数据显示,步入 21 世纪后,我国人口老龄化危机逐渐加重。截至 2021 年底,我国老年人口占总人口的 18 9%,已经超过幼年及少儿人口在总人口中的比例,同时空巢老人人口数量也在急剧增加1。中国疾病监测系统的数据显示,我国老人因伤致病的主要原因是不慎跌倒。我国超过20%的老人跌倒会造成重大伤害,即使是身体健康的老人,也会有 17%的概率因跌倒而致重大病患2。据统计,我国每年有近 4 000 万老人跌倒,其中有 40%70%的跌倒伤害需要医治,进而导致缩短老人5 10 年的预期寿命3。因此,如何快速准确地检测出老人的跌倒行为并及时采取救治措施已经成为一个备受关注的社会热点问题。目前,国内外学者们对跌倒检测技术进行了广泛研究。周闯等人采用 3 层的 BP 神经网络作为跌倒检测模型,设计了一种基于加速度、角速度和足底压力的多传感器跌倒检测系统4。陈冉提出了基于MEMS 传感器的跌倒检测方法,通过对人体行为状态的识别进行跌倒检测5。陶文元利用通过可穿戴惯性传感单元采集的人体活动信息,进行人体跌倒行为检测6。但以上方法需要依靠传感器设备,不仅成本昂贵,部署困难,舒适性差,传感数据极易受挤压、温度、非跌倒行为等外力的干扰,而且会有数据延迟,准确性和实时性差。杨张振使用深度摄像机获取有效深度图像,参考人体左肩、右肩 2 个骨骼点,以两肩中心点为目标,通过实时计算两肩中心关节点的空间位置、相对位置等参数,以及不同帧之间两肩中心点位置的位移变化,进行跌倒行为检测,但该方法计算过程复杂,需要强大的算力支持7。综上所述,目前的跌倒检测技术存在以下问题:网络模型臃肿,部署困难,实时性和准确性差;摄像头位置相对固定,不能灵活捕捉变换复杂的摔倒角度,同一个动作在不同角度容易引起误判和漏判;检58DOI:10.19406/ki.cqkjxyxbzkb.2023.01.002雷亮,等:基于改进 YOLOv5s 的老人跌倒识别算法研究测效果容易受遮挡、阴影、亮度等因素的影响。YOLO 系列算法作为 One Stage 中最具代表性的目标检测算法,可以利用 Anchor box 将分类和定位回归问题结合起来,做到高效、灵活。考虑到跌倒检测技术的实际应用场景,本次研究自建了更具针对性的数据集,利用 Pytorch 框架对 YOLOv5s 网络参数结构进行优化训练,直至模型收敛。1YOLOv5s 网络模型11YOLOv5s 网络结构YOLOv5 由 LLC 公司提出,其图像推理速度最快可达 0 007 s。YOLOv5 系列包括 YOLOv5s、YOLOv5m、YOLOv5l 和 YOLOv5x 等 4 种模型,其中YOLOv5s 深度最浅,权重大小仅为 27 MiB。由于跌倒检测技术对实时性和准确性的要求高,因此本次研究采用 YOLOv5s 作为基础模型进行训练8。YOLOv5s 网 络 结 构 主 要 由 Input、Backbone、Neck、Head 等组成,如图 1 所示。Input 主要包括马赛克增强、自适应调整图像尺寸和自适应计算锚框等 3 个部分。Backbone 由 Focus 和 CSPNet 组成。Focus 包含4 个切片操作和 1 个卷积操作,切片操作将相距为 2的 4 个位置堆叠到 1 个通道,使长和宽都缩小 1/2,以降低 FLOPS、提高速度。CSPNet 用于提取输入图像特征信息,将梯度变化完全集成到特征图中,在减少模型参数量和 FLOPS 的同时兼顾了推理速度和准确率,能够更好地解决其他大型 CNN 中的梯度信息冗余问题9。图 1YOLOv5s 网络结构Neck 主要由 PANet(path aggregation)和 SPP(spatial pyramid pooling)组成。PANet 在特征金字塔的基础上引入了自上而下路径增强的结构,使得顶层特征图享受来自底层的特征信息,从而提升对较大目标的检测效果。SPP 将 4 种不同大小的核进行最大池化操作后再拼接,可以增大感受野,有助于解决锚框和特征图的对齐问题9。Head 的主体是 3 个 Detect 检测器,其利用基于网格的锚框在不同尺度的特征图上进行目标检测。12非极大值抑制目标检测预测阶段会产生许多围绕真实框的候选框(anchor box),这就需要在输出阶段使用非极大值抑制(non maximum suppression,NMS)算法来过滤冗余候选框。YOLOv5s 采用最原始的 NMS 算法,流程大致为:(1)计算所有候选框的得分;(2)比较排序,依次计算得分高的候选框的交并比(interection over union,IoU),若大于设定阈值,则删除该候选框。13损失函数YOLOv5s 采用交叉熵损失函数计算锚框中含有物体的概率,边界框使用 GIoU_Loss(generalizedintersection over union loss)代替 YOLOv3 的 IoU_68雷亮,等:基于改进 YOLOv5s 的老人跌倒识别算法研究Loss(intersection over union loss),优化了真实框和预测框。2YOLOv5s 模型改进在 YOLOv5s 模型的基础上,优化初始候选框,通过添加交叉网络(criss cross net,CCNet)来获取图像上下文信息,改进 NMS 的剔除机制。21优化初始候选框在 3 个特征层上预设 9 个初选先验框,将其与人工标注框(ground truth)进行宽高比计算。在训练过程中,初始候选框越接近真实边界框,模型的收敛速度和训练速度越快。本实验在公开的跌倒数据集和自建数据集上进行,初始候选框需要根据数据集作出相应调整。采用 K Means 聚类生成算法对数据集中标记好的宽高维度进行聚类,使图片的大小与预训练输入图片的大小相对应。生成新的聚类重心宽高维度,分别是 121,142,162,170,174,205,208,225,239,244,258,294,297,347,387,447,412,452,并将其作为 yaml 配置文件的初始参数值。22添加交叉网络CCNet 是由 Non Local 发展而来的注意力模块,其特殊之处在于交叉注意模块能以更有效和高效的方式获取全图像上下文信息。通过交叉注意模块收集交叉路径上所有像素的上下文信息,使每个像素都可捕获到完整的图像依赖关系10。本次选用的数据集中目标人物数量少且多为大目标,身体各部位之间存在明显的依赖关系,使用CCNet 能够有效捕获动作间的依赖关系。CCNet 具有以下优点:(1)GPU 内存友好,与非局部块相比,所提出的循环交叉注意模块需要的 GPU 内存使用量减少;(2)计算效率高,反复出现的交叉注意模块可显著减少非局部阻塞约 85%的 FLOPs11。因此,添加 CCNet 能够在不影响速度的前提下加强特征提取和图像的依赖关系。23改进非极大值抑制在目标检测中,NMS 算法的作用是抑制多余的目标框,但原始的加权 NMS 算法缺点显著。如果检测目标的重合度很高即 2 个物体的距离很近,就会导致相邻的框被抑制掉;同时加权 NMS 算法按照经验设置的阈值进行暴力剔除,剔除机制过于严格。因此,本次研究将 NMS 算法中的交并比改为距离交并比(distance intersection over union,DIoU)。与原始 NMS 算法不同的是,距离交并比在交并比的基础上兼顾了中心点,用式(1)判定检测框是否被删除:Si=Si,OIU(M,Bi)0,OIU(M,Bi)(1)式中:Si表示当前检测框的得分;M 表示当前最大得分框;Bi表示初始检测框列表中的当前初始框;表示 2 个框的中心点距离;表示阈值;OIU表示交并比,若 OIU超过阈值,则 Si=0。其中:ODIU=OIUd2c()2=2(b,b)c2(2)式中:ODIU表示距离交并比;d 表示中心点之间的距离;c 表示 2 个框的对角线长度;表示参数;(b,b)表示 b 框和 b 框 中心点之间的欧几里得距离函数。虽然距离交并比复杂的计算过程会降低运算效率,但从几何角度看,将中心点考虑在内可以使部分遮挡问题得到解决。3实验与分析31数据集本次实验挑选 U Fall Detection 和 Le2i FallDetection Dataset 中8 个摄像机位的 GB 跌倒图片,以及自建的跌倒图片,共 3 680 张图片。从实际场景出发,由于跌倒行为复杂多样,尤其是摄像头位置相对固定,同一个动作在不同角度容易引起误判,因此将所有跌倒行为归为 Fall Down 类,其余正常行为归为 Normal 类,总类别数为二分类。按照 VOC2007目录格式存放数据集,使用 Labelimg 图像标注工具,将数据集划分为测试集(2 944 张)和训练集(736 张)。32评估标准实验训练环境为 Windows 10 操作系统,Python3 7 框架,使用 NVIDIA 独立显卡运算,具体配置如表 1 所示。使用 SGD 优化算法进行训练,训练迭代轮数epochs=300,batchsize=8,输入图像大小为 608 608。采用官方 YOLOv5s pt 权重文件,使用数据集在预训练模型上学习,设置初始学习率为 0 01,训练时长为 15 h。78雷亮,等:基于改进 YOLOv5s 的老人跌倒识别算法研究表 1实验环境配置参数配置CPUIntel Core i7 12700KF 3 60 GHzGPUNVIDIA GeForce TX 3090系统环境Windows 10编译语言Python 3 7加速环境CUDA 11 2 109选取精确率、召回率、平均精度和平均精度均值等作为评估指标。精确率和召回率的计算如式(3)、式(4)所示:P=PTNT+PF(3)r=PTPT+NF(4)式中:P 表示精确率;r 表示召回率;PT表示真阳性;PF表示假阳性;NF表示假阴性;NT表示真阴性。平均精度和平均精度均值的计算如式(5)、式(6)所示:PA=1nMax(P(r(k)(r(k)r(k 1),r 0,r(0),r(1),r(k),1(5)PMA=1mPA(i),i 0,m(6)式中:PA表示平均精度;PMA表示平均精度均值;r(k)表示集合 r 中第 k 大的召回率;m 表示类别数。33实验效果为验证本算法的有效性和鲁棒性,在不使用自建数据集的情况下,从网上随机选取