010-66499190
基于目标检测的跌倒行为识别基于目标检测的跌倒行为识别 岳丽云,欧剑港,方思学,马振源,施辰光 中国联合网络通信有限公司广东省分公司 摘要:本文提出一种基于目标检测的跌倒行为识别方法,通过相机获取视频图像,使用基于深度卷积神经网络的目标检测算法识别图像和定位目标,准确识别监控视频中每一帧画面的人体与跌倒特征,再结合时序状态判别跌倒行为和进行预警。实验证明,该方法准确率高、实时性强,为跌倒行为识别提供了一种简单有效的方法。 一、引言 老年人的身体机能随着年龄增长而下降,很容易因为跌倒而导致轻者骨折、残疾或活动受限等身心健康影响,重者甚至危及生命,存在较大的安全风险。特别是当前全国老龄化加剧,独居老人迅速增加的背景下,缺乏跌倒后的及时救助更加加剧老年人的健康风险,因而老年人的跌倒预防和跌倒后的及时救助都显得非常重要。因此,开发一种准确而高效的跌倒行为识别方法,从而实现跌倒识别与及时救助报警,对于更好保障老年人的生命健康,降低跌倒带来的危害具有重要意义。 跌倒检测的常见方法主要包括基于物理传感器检测和基于视频分析识别两种,考虑近些年深度学习技术的高速发展,基于深度卷积神经网络的视觉识别技术性能实现了质的提升,同时考虑物理传感器易受干扰和便利性方面的不足,本文使用基于视频特征分析的识别技术实现跌倒行为识别。而在基于视觉识别的跌倒识别技术中,又包括通过图像分类、目标检测、人体骨架、多特征融合、及视频分析和多算法融合等多种方法。 本文综合不同视觉算法的优缺点,提出一种使用基于目标检测模型YOLOv8的跌倒行为识别算法,通过对摄像头视频图像帧进行目标检测识别,提取视频帧中的跌倒相关特征,进而分析判断是否出现跌倒事件,实现跌倒识别与及时救助报警,从而为老年人的生命健康提供更好的保障。 二、跌倒行为识别算法 1、 算法流程 本文提出一种基于RGB摄像头视频图像识别分析的跌倒行为识别算法,算法主要包括图像目标检测和视频统计特征分析判别两个部分。具体的跌倒行为识别算法流程为: (1)定义目标检测的任务为识别图像中的人体及确认画面是否存在人体躺下状态,使用目标检测算法提取人体目标特征与人体躺下状态特征; (2)对目标任务特征与跌倒状态特征进行特征处理,然后按时间分段存储视频段特征,并根据经验参数对视频片段进行状态分类识别; (3)根据视频片段分类结果中的邻近片段状态变化特性设定识别规则, 判定是否存在跌倒行为。 整体算法流程图1如下: 图1 算法流程图 2 目标检测算法 YOLO系列算法以高效的一阶段目标检测机制著称,由于省去了区域推荐生成步骤,直接在图像特征图上进行密集的区域边界框和类别预测,因此速度极快,而YOLOv8是在2023年由Ultralytics平台发布的YOLO系列算法。YOLOv8在融合多种数据增强、训练方式提升、网络结构优化、损失函数改进等多方面策略加持下,算法的速度和精度性能也有了大幅度的提升。并且,由于引入了一些列新的改进,使得YOLOv8在目标检测之外的图像分类、实例分割和姿态估计等任务上同样展现出卓越的性能。 YOLOv8主要基于YOLOv5,同时参考了YOLOX、YOLOv6和YOLOv7等算法进行改进,算法的创新主要包括以下方面: (1)Backbone和Neck网络结构部分,参考YOLOv7的E-ELAN(Extended Efficient Layer Aggregation Network)设计,将YOLOv5的CSP/C3结构替换成梯度流丰富的具有Split 操作和更多跳层连接的 C2f结构,进一步实现模型的轻量化,同时精细微调了N/S/M/L/X等不同尺度大小模型的结构参数、缩放系数和通道数等模型超参,有效提升模型性能。 (2)Head部分更换成解耦头结构,实现分类和检测头分离,同时引进基于中心点Center-based methods识别,用预测目标框各边框与目标中心点距离的方法替换预测目标框相对锚框偏移量的方法,使得模型从Anchor-Based转换成Anchor-Free。 (3)正负样本分配策略采用了基于动态分配策略的任务对齐分配器Task-Aligned Assigner,根据分类与回归的加权分数衡量任务对齐程度,从而选择正样本,使得样本分配能力随训练不断增强,补充模型对正样本的不同需求。 (4)在Loss改进中,设计VFL Loss(Varifocal Loss)或BCE作为分类损失,并引进根据分类与回归加权分数衡量对齐程度的DFL(Distribution Focal Loss)与 CIOU Loss之和作为框回归损失。 (5)训练的数据增强部分和YOLOv5类似,但引进YOLOX最后10个epoch训练中关闭Mosiac数据增强来提升检测精度的操作。这些改进使得YOLOv8在模型的性能和灵活性都非常出色。 本文使用YOLOv8实现人体目标与人体躺下状态目标检测,实现跌倒行为相关特征提取。目标检测任务定义为人体区域,以及存在人体躺下行为全图区域的目标检测。 令目标包围框使用VOC格式[x_min, y_min, x_max, y_max]进行标注,视频图像尺寸大小为宽度W高度H,则人体目标包围框Pi定义为[x1_i, y1_i, x2_i, y2_i],其中,x1_i < x2_i且x1_i, x2_i ∈[0, W-1];y1_i < y2_i 且y1_i, y2_i ∈[0, H-1]。而图片中可能存在唯一的人体躺下目标对应的包围框Ld定义为定值 [0, 0, W-1, H-1]。 分别选取只包含背景的图片,只存在人体目标的图片,以及包含人体目标和人体躺下目标的图片,三类图片共同组成数据集,进行数据标注和处理,然后进行YOLOv8模型训练与调优,得到用于人体目标与人体躺下状态特征提取的YOLOv8目标检测模型。 3 视频片段状态识别 视频片段状态识别依据YOLOv8目标检测得到的特征序列进行特征处理和判断识别。具体的操作流程是: (1)按FIFO方式存储每一帧图像识别结果,得到人体目标特征序列与人体躺下状态特征序列,存储容量总为L。 (2)每当序列更新长度达到N(N<L,且N的常数a倍约等于L,即a*N≈L),且如果序列总长度为L,则进行一次视频片段识别。 (3)长度为L的视频片段识别的流程包括,使用窗宽为Wd的滑窗对人体目标特征序列人体有无的状态进行滑动窗口滤波,再根据视频帧中人体目标有无进行人体躺下特征序列的状态确认,进而对序列中人体目标有无情况与人体躺下状态的变化情况进行分段统计。 (4)当长度为N的序列分段中,人体目标出现帧计数Pm与人体目标出现的帧频率Pr满足Pr = Pm/N >α,α∈[0.5, 1),且人体目标出现帧计数Lm与人体躺下出现的帧频率Lr满足Lr = Lm/N >β,β∈[0.5, 1),则该分段标志为1,否则为0。 (5)统计视频片段序列中各个分段的标志特征,具体为,统计分段标志0-1或1-0变化的次数Cm,及根据分段标志的头标志值Sx和尾标志值Sy,确认当前视频片段状态识别结果,具体的识别判断如公式(1)所示。 由此,得到视频片段识别结果,分为正常(Normal),躺地(Fallen),跌倒瞬间(Falling),站起(Up),波动(Waving)五种片段识别结果。 4 跌倒行为识别 跌倒行为识别依据视频片段状态识别与片段间状态关系进行经验判断实现。保存1.2得到视频片段识别结果,得到片段识别结果时间序列,根据该序列与跌倒强相关的状态转移关系进行跌倒行为识别。由1.2,与跌倒强相关的片段识别结果是躺地(Fallen)和跌倒瞬间(Falling),由此,本文使用简单的逻辑判断躺地片段前记录的X个状态中,是否存在跌倒瞬间来确定是否存在跌倒行为,如当前Fallen片段的前X个状态中存在Falling则判定为跌倒行为,否则判定为非跌倒行为。 三、实验分析 1 、数据集处理 数据主要包含两部分,分别是目标检测训练与验证数据集,及跌倒行为识别视频数据集。本文跌倒行为识别主要应用于居家环境,适应于目标任务,跌倒目标检测数据主要基于室内场景图片数据,跌倒行为识别评估也主要基于室内视频数据。 目标检测数据集中包含各种姿态的人体躺下、其他常规人体行为、以及背景图三类。首先进行数据收集与预处理,数据主要来源于Multiple Cameras Fall Dataset,FallDataset,COCO数据集及其他网络数据。其中,COCO数据集主要用于补充人物多样性与误识别对象及其他背景,如补充猫和狗这些可能会识别成人体的目标,而网络图片主要补充人体躺地数据集。 数据处理过程分为对视频数据集的处理和对图片数据集的处理。在Multiple Cameras Fall Dataset和FallDataset的视频数据集处理中,先把数据集中的视频数据对非跌倒片段以较大间隔随机采样,对跌倒片段进行较小间隔随机采样,并使用图像相似性过滤相似过高的图片,得到数量较少的图片数据集。 把视频统一转换成图片数据集后,再对所有图片进一步筛选、标注和处理。其中,人体躺地的标签定义为人体躯干贴近地面,而滤除存在歧义的跌倒过程躯干未贴近地面的过程图。最终得到一个总量为2269张图片的数据集,数据集划分后得到训练集1928张和测试集341张。考虑背景图只训练分类分支,主要用于降低误检率,控制比例在10%以内。而具体到各类别的数据中,训练集的人体躺下图片1082张、其他常规人体行为656张、背景图190张;测试集的人体躺下图片182张、其他常规人体行为123张、背景图36张。最后经过转换后把标注好的VOC格式目标检测数据集转换成YOLO格式,用于YOLOv8训练。 而对于跌倒行为识别测试数据集,主要使用自行拍摄的视频小片段,另外包含少量网络视频进行跌倒行为评估。其中,跌倒行为视频共349个,非跌倒行为视频共396个,视频平均时长为8.7秒,平均帧率为28.8FPS,平均帧数为252帧。 2 、评估指标 本文主要考量两种识别效果评估,分别是人体目标和人体躺地状态的目标检测模型评估,以及跌倒行为识别的视频分类模型评估。主要使用的评估指标包括精确率、召回率、F2-Score、以及平均精度均值mAP(mean Average Precision),用于全面客观的了解图片目标检测模型和视频分类模型的性能。 其中,YOLOv8目标检测的评估指标包括检测的精确率、召回率和mAP,而视频跌倒行为分类的评估指标包括分类的精确率、召回率和F2-Score。 (1)精确率Precision 精确率指模型预测结果是正例的所有样本中,实际标签也是正例的样本比例。令TP是准确预测的正样本,FP是错误预测成正例的样本,则精确率公式表示为: (2)召回率Recall 召回率指实际标签是正例的所有样本中,模型预测结果也是正例的样本比例。令FN是实际标签为正例,但模型预测误识别成负例的样本,则召回率公式表示为: (3)F2-Score 指标F-Score是用于综合评估模型性能的精确率和召回率调和值。F-Score公式为: 对于本文跌倒识别任务,期望最大程度识别出跌倒行为,即使会导致更多的误识别,所以召回率相对精确率更为重要,本文使用F2-Score作为综合衡量分类模型性能的指标。令γ=2,则有F2-Score计算公式为: (4)平均精度均值mAP 指标mAP即各类别平均精确率的平均数,用于评估YOLOv8模型的性能指标。 对于目标检测任务的TP、FP、FN、TN样例的确认如下: 1)IOU(Intersection Over Union)交并比(IOU)是度量两个边框的交叠程度的评估指标,令B_gt表示目标标签的边框,B_pd表示预测的边框,则有IOU计算公式为: 2)TP(True Positive)预测类别与标签类别匹配,并且满足置信度阈值,以及满足预测Bounding box和Ground Truth之间的IOU阈值,当多个预选框满足以上条件则选择置信度最高的作为TP,其余为FP。 3)FP(False Positive)满足置信度阈值,但预测类别与标签类别不匹配,或预测Bounding box和Ground Truth之间的IOU小于阈值。 4)FN(False Negative)实际标签存在目标,但模型并未预测出正样本与之匹配。 5)TN(True Negative)在目标检测任务中被检出的负样本不作统计。 mAP的计算过程为,预测结果按置信度阈值倒序排序,根据与标签的类别和包围框IOU分类别匹配,计算不同类别在从小到大不同召回率下的精确率,得到精确率-召回率曲线(PR曲线),接着对PR图进行平滑锯齿操作(即在Recall轴上,对于每个阈值计算出的Recall点,对齐其右侧最大的Precision,使得PR曲线呈阶梯形),然后计算PR曲线与两轴之间的面积得到各类别的平均精度AP,最后对所有类别AP求平均得到mAP,用于目标检测性能评估。 3 、实验与结果分析 YOLOv8目标检测模型的训练与评估实验基于Windows系统,在一张RTX3080显卡上进行。实验按Ultralytics库规范处理好数据集,并对应写好模型训练配置文件,分别取取模型为YOLOv8n、YOLOv8s、YOLOv8m,设置好训练参数,训练轮数为150,批处理数量为16,图像尺寸为640,其他模型超参数、训练超参数和数据增强超参数使用默认配置,分别对模型进行训练和评估。取各个模型的最佳训练模型进行图像目标检测结果评估,指标包括Precision、Recall、mAP50,、mAP50-95、params、FPS,模型结果如下表1所示。 表1 不同模型评估结果
由表1可知,三个不同大小的YOLOv8模型目标检测识别效果较为接近,综合考虑精度、模型大小和推理速度的条件下,本文考虑使用YOLOv8n作为后续跌倒行为识别的目标检测特征提取模型。 基于YOLOv8n目标检测模型,串行构建跌倒行为识别算法模型,设置对应参数。其中,在视频段状态识别中,设置总长度L=2*FPS,片段更新长度N=round(L/4)≈L/4,人体目标序列滤波窗宽Wd=3,取人体目标帧频率和人体躺下帧频率α=β=0.75;在跌倒行为识别中,记录片段识别状态X=3,而后进行模型评估。评估指标包括Precision、Recall、F2-Score,其中视频分类识别结果如下表2所示。 表2 视频分类结果
由表2,分别计算得到视频跌倒行为识别的最终评估结果。即, Precision = TP/(TP+FP) = 334/352 = 0.9489 Recall = TP/(TP=FN) = 334/349 = 0.9570 F2-Score = 5 * (Precision * Recall) / (Precision*4 + Recall) = 0.9554 根据实验结果,本文所提出的基于目标检测的视频跌倒行为识别算法在精确率、召回率和F2-Score等方面均表现优异,尤其是具有较高的召回率,切合目标任务需求。 四、结束语 本文提出一种基于目标检测算法YOLOv8的视频跌倒行为识别方法,通过对目标检测识别结果进行时间序列特征处理,进一步实现跌倒行为视频阈值分类,从而构建了一个高效且准确的跌倒行为识别系统,实现对监控视频中的跌倒行为识别和进行预警。 实验证明,本文方法具有较高的识别速度和精度,并且由于本文主要基于目标检测算法,整体算法逻辑简单,能达到较高速度和精度性能的同时,需要的算力很小,具有更低的硬件要求和更广泛的场景适用性。 本文方法为居家环境下视频跌倒行为识别提供了一种可用新的思路,为跌倒行为的发生提供及时有效的救助报警,给老年人居家生活安全添置了一份重要保障。而与此同时,当前跌倒行为识别技术仍面临很多不同的挑战,如遮挡等复杂场景下的识别准确性、跌倒形式的多样性、及与其他生活行为存在相似性等等。 因此,在未来的研究中,有待进一步深化对跌倒行为的特性理解,提取和融合更多的行为特征,以及采用更多不同的形式探索与构建更加先进的识别模型,以提高跌倒行为识别系统的识别精度和泛化能力。 【作者】 岳丽云 硕士研究生,广东联通产品创新中心、客户服务部总经理;研究方向:千兆光网应用、5G应用、图像处理及大数据应用、自然语言处理。
文章分类:
期刊
|