1. 引言
自进入21世纪以来,老龄化问题日益严重,根据我国第七次人口普查数据[1],60岁及以上人口已经占到总人口比例的18.7%。老龄化社会的同时也带来了诸多挑战,其中之一便是老年人跌倒问题。滕卓艳[2]等研究发现,高龄老人跌倒率已经达到25.07%。目前,大部分针对老年人的智能穿戴设备可以时刻监测老人生理状况和摔倒情况[3],但是针对跌倒检测功能的实时性和准确性尚不理想。
目前,深度学习在各个领域中正在广泛应用,针对检测摔倒YOLO系列算法表现非常出色,张靖[4]提出了一种优化的YOLOv5检测算法,该算法采用K-Means算法和收敛更快的EIoU损失函数。然而,该算法在目标检测模型识别稳定性方面存在不足,尤其在遮挡和复杂场景下的表现不尽如人意。李茁闻[5]及其团队提出了改进的YOLOv7算法,引入了轻量级的Transformer架构。但替换卷积层可能导致局部特征提取能力的下降,进而影响对小目标的检测精度。白亮[6]等人则在YOLOv8的基础上,引入了可变卷积的DCN和WIOU以提升泛化能力,但这也使得模型的计算复杂度和资源消耗增加,不适宜在资源受限的环境中部署。针对以上问题,本文提出了一种改进的YOLOv8检测算法。本文创新性地加入了RFA Conv感受野注意力卷积操作,并对损失函数进行了优化,旨在实现算法在多种场景及小目标检测中的快速、高效、准确和稳定。通过一系列实验验证,本文提出的算法在实时性、稳定性和准确性方面均取得了显著提升。
2. 模型选择
YOLOv8是YOLO系列目标检测算法的进阶版本,于2022年发布。作为YOLO系列算法的延续,YOLOv8继承了YOLOv5的优势,如实时性、简洁性和高效性,并在性能和易用性方面进行了全面升级。YOLOv8与YOLOv5相同,基于缩放系数提供了5个模型,分别为x、l、m、s、n,在5个模型中x模型为最大模型而n模型则为最小,本文将以YOLOv8n[7]作为基础,其具体的网络结果如图1所示。
YOLOv8采用了新的网络架构和训练策略,使其在多个目标检测数据集上取得了优异的性能。同时,它在处理小目标、密集目标和遮挡目标方面也有更好的表现。相比于之前的YOLO系列算法,YOLOv8的Backbone部分第一层卷积由原本的6 × 6卷积改为3 × 3卷积;并将C3结构换成了梯度流更丰富的C2f[8]结构,同时配合调整了模块的深度,对不同尺度模型调整了不同的通道数。在Neck部分移除了1x1卷积的降通道层;同时也将原本的C3模块换成了C2f模块。Head部分较YOLOv5[9]而言有两大改进:① 换成了解耦头结构(Decoupled-Head),将分类和检测头分离;② 将Anchor-Based替换为Anchor-Free。同时,YOLOv8抛弃了以往的IOU匹配或者单边比例的分配方式,而是使用了Task-Aligned Assigner正负样本匹配方式,并引入了Distribution Focaler Loss (DFL),除此之外,在训练过程中,数据增强也是一个关键环节,通过引入YOLOX算法在训练的最后10个周期(Epoch)中,选择性地去除了Mosiac增强这一步骤,来提升模型的泛化能力。
Figure 1.YOLOv8n network architecture
图1.YOLOv8n网络结构
3. 模型改进
3.1. RFA Conv
空间注意力机制,作为一种提升卷积神经网络性能的有效手段已经被广泛应用。但是,它的局限性在于仅关注空间维度上的特征,而忽略了卷积核参数共享的问题。特别是在处理大尺寸卷积核时,空间注意力生成的注意力图所包含的信息是不充分的。因此,需要选用一种新的注意力机制来解决这个问题。本文选用感受野注意力(RFA),相比于传统的空间注意力机制,比如卷积块注意力模块(CBAM)[10]和协同注意力(CA)[11],虽然在一定程度上提升了网络性能,但并未真正解决卷积核参数共享的问题。而本文所选用的RFA相比之下,不仅关注感受野内的空间特征,还能为大尺寸卷积核提供有效的注意力权重。
RFA的核心思想在于,它不仅强调了感受野内不同特征的重要性,还优先考虑了感受野空间特征。通过这种方式,RFA解决了卷积核参数共享的问题。感受野空间特征是根据卷积核的大小动态生成的,因此,RFA成为了卷积的一种固定组合,它依赖于卷积操作,同时通过RFA来提升性能。基于RFA,采用了一种新的卷积操作,称为感受野注意力卷积(RFA Conv)[12]。RFA Conv是一种创新的卷积操作,它几乎不增加计算成本和参数量,却能显著提升网络性能。RFA Conv将注意力从传统的空间特征转移到了感受野空间特征,从而更好地解决了卷积核参数共享的问题。具有3 × 3大小卷积核的RFA Conv,其结构如图2所示。通过RFA Conv的详细结构可以看出,它能够动态地决定每个特征在感受野中的重要性,并有效解决参数共享的问题。
Figure 2.RFA Conv network architecture
图2.RFA Conv网络结构
3.2. 损失函数
在目标检测任务中,损失函数的选择对模型的性能有着直接的影响。YOLOv8所用的原始损失函数CIoU是一种在IoU损失的基础上进行改进的损失函数,它考虑了检测框的大小、重叠面积和中心点距离。然而,在实际应用中,CIoU损失函数仍存在一定的局限性。为了进一步提高检测框的定位精度,本文提出了一种新的损失函数,名为DIoU + Inner + Focaler损失函数。
其中DIoU[13]损失(Distance IoU Loss)不仅考虑了预测框与真实框之间的重叠面积,还考虑了它们之间的中心点距离以及框的尺度,从而更全面地评估目标检测算法的性能。DIoU损失的定义如下式(1):
(1)
IoU是交并比,
是预测框中心b和真实框中心
之间的欧氏距离,c是能够同时包含预测框和真实框的最小闭包区域的边长。DIoU的取值范围在[−1, 1]之间,值越大表示预测框与真实框越接近,目标检测算法的性能越好。相比于CIoU,其考虑了预测框与真实框之间的中心点距离,有助于更快地收敛于目标位置。通过引入对角线长度,能够更好地处理不同尺度下的目标检测问题。除此之外,能够提供更有效的梯度信息,从而提高目标检测算法的训练效率。并能够有效解决IoU在目标框相互包含时的梯度消失问题,使得目标检测算法在训练过程中更加稳定。
Inner-IoU[14]损失不仅继承了IoU损失的一些特性,同时具有自身的特性,下图3为其示意图。对于Inner-IoU算法,其计算步骤为:首先,确定两个矩形框A和B,其中A为预测框,B为真实框。然后计算矩形框A和B的交集面积,交集面积是指两个矩形框共同覆盖的部分。随后分别计算矩形框A和B的面积。并根据下述公式(4)计算Inner-IoU值。
(2)
(3)
(4)
和IoU损失一样Inner-IoU损失的取值范围为[0, 1]。因为辅助边框与实际边框仅存在尺度上的差异,所以损失函数计算方式相同。与IoU损失相比,当ratio小于1,辅助边框尺寸小于实际边框,其回归的有效范围小于IoU损失,但其梯度绝对值大于IoU损失所得的梯度,能够加速高IoU样本的收敛。与之相反,当ratio大于1,较大尺度的辅助边框扩大了回归的有效范围,对于低Iou的回归有所增益。因此,Inner-IoU损失更关注检测框与真实框之间的内部重叠程度,能够更准确地反映检测框的定位精度。对小目标检测具有更好的评估效果,因为小目标的检测框更容易受到背景噪声的影响,Inner-IoU能够有效降低这种影响。
Figure 3.Inner-IoU
图3.Inner-IoU
Focal[15]损失(Focal Loss)是由Lin等人提出的,用于解决分类不平衡问题,特别是在目标检测中。Focal损失的定义如下:
(5)
其中,
是模型对于每个类别的预测概率,
是用于平衡正负样本权重的系数,
是调整难易样本权重的参数。
新的损失函数考虑了内部区域。其内部区域惩罚项的引入,使得损失函数能够更加关注预测框内部的像素,从而提高了定位精度。同时引入了Focaler惩罚项,提高模型对遮挡、小目标等难分类样本的检测能力并降低训练难度。在训练过程中,模型更容易找到合适的预测框,从而提高了检测精度和定位精度。DIoU + Inner + Focaler损失函数在训练过程中,通过优化中心点距离、内部区域和Focaler惩罚项,使得预测框在定位上更准确。这样的设计有助于模型更好地学习目标的精确位置,尤其是在处理小目标和遮挡场景时。此外,DIoU + Inner + Focaler损失函数在训练过程中的收敛速度也优于CIoU损失函数。
4. 实验结果与分析
4.1. 数据集与实验环境
本文的数据集在网络上对于摔倒图片进行搜集初步为1428张图片,为了能够更好地识别和处理实际应用中可能遇到的各种变化和提高模型的性能,对原始数据进行图像增强,通过旋转,平移等操作扩增至8568张。
在本次实验中,所使用的操作系统为Linux Ubuntu 20.04.4 LTS,GPU选用RTX 3080 Ti,显存为12 G,选用PyTorch 2.1.2,选用Python 3.10 (Ubuntu22.04),以及Cuda 12.1,输入图像尺寸设置为640*640,训练时迭代次数为200次,Batch Size为16,学习率为0.01。
4.2. 算法评价指标
在经过目标检测实验后,本文所选用的评价指标为平均精度mAP和准确率P作为评价标准。
4.3. 消融实验
为了确认各个改进部分对YOLOv8n目标检测器的性能提升效果,进行了一系列的消融研究对比实验。结果如下表1所示,模型1是YOLOv8n的原始模型,模型2为在模型1的基础上添加RFA Conv,模型3是在模型2的基础上引入Inner-Focaler损失函数,模型4则是在模型3的基础上将CIoU改为DIoU,整体来看,平均精度提高4.8%。
Table 1.Results of ablation experiment
表1.消融实验结果
Model |
Rfaconv |
Inner-Focaler |
DIoU |
mAP |
模型1 |
× |
× |
× |
78.4% |
模型2 |
√ |
× |
× |
80.6% |
模型3 |
√ |
√ |
× |
80.8% |
模型4 |
√ |
√ |
√ |
83.2% |
4.4. 实验结果
图4显示出在本文所用的数据集上进行改进的YOLOv8n检测算法在摔倒检测的效果,平均精度值达到了83%左右,相比于原始的YOLOv8n算法有了明显提升。图5则显示,随着不断地迭代,模型的各方面性能趋于收敛,拟合程度较好,从图5可以发现,蓝色点代表实际数据,橙色线代表拟合曲线。随着阈值的增加,模型的性能也在逐渐提高。在较低的阈值下,模型的误报率较高,而随着阈值的增加,模型的漏报率开始下降。当阈值为150时,模型的AUC值达到了最高点,其性能达到最佳。图6是Precision-Confidence Curve,其是一种用于评估模型性能的曲线,它展示了在不同置信度阈值下模型的精确度变化。Precision-Confidence曲线的X轴代表的是置信度阈值,而Y轴代表的是该置信度阈值下的精确度。图6对于四次消融实验的Precision-Confidence Curve进行了总结,从图6中可以得知,YOLOv8-RFAConv-Diou-Inner-Focal的曲线在0.2~1.0之间的精度最高且稳定。因此,本文提出算法可以对老人摔倒后进行有效识别。
Figure 4.Fall detection results
图4.摔倒检测结果
Figure 5.mAP
图5.mAP
Figure 6.Precision-confidence curve
图6.Precision-confidence curve
5. 总结与展望
本文对于摔倒检测所提出的YOLOv8-RFAConv-Diou-Inner-focaler检测算法,通过选取RFA Conv感受野注意力卷积,在不需要增加计算成本的前提下,将注意力从传统的空间特征转移到了感受野空间特征,并有效解决参数共享的问题。并引进Diou-Inner-Focaler损失函数,使整个模型对于预测框的描述更加准确,实现了提高定位精度和检测精度的任务,同时加快收敛速度。经实验该算法的检测能力达到83%,高于原始算法4.8%,可以有效识别摔倒行为。