Transformer-based fall detection in videos

源文链接:[2107.14633] Video Based Fall Detection Using Human Poses (arxiv.org)icon-default.png?t=N7T8https://arxiv.org/abs/2107.14633

源码链接:transformer-based-fall-detection/main.py at main · AdrianNunez/transformer-based-fall-detection · GitHubicon-default.png?t=N7T8https://github.com/AdrianNunez/transformer-based-fall-detection  发表于:Engineering Applications of Artificial Intelligence (中科院2区)

Abstract

跌倒对老年人构成重大威胁,因为它们对老年人的身心健康造成严重后果,在最坏的情况下甚至会导致死亡。尽管如此,通过适当的技术解决方案可以减轻跌倒的影响。跌倒检测是识别跌倒的任务,即在视频中检测一个人何时跌倒。这种算法可以在轻量级设备中实现,然后可以满足用户的需求,例如提醒紧急服务或护理人员。在这些系统的核心,一个能够迅速识别跌倒的模型对于缩短救援到来的时间至关重要。在本文中,我们提出了一种基于Transformer的跌倒检测解决方案,即用于计算机视觉任务中最先进的神经网络。我们的模型会截取一个视频片段,然后判断是否发生了跌倒。在视频流中,它将以滑动窗口的方式应用,一旦检测到摔倒就会触发警报。我们在大型UP-Fall数据集和UR fall数据集上评估了我们的跌倒检测骨干模型,并将我们的结果与使用前者数据集的现有文献进行了比较。

Keywords:Fall detection ,Computer vision,Transformer,Health

1.介绍

根据疾病控制和预防中心的数据,在美国,跌倒是造成伤害的一个重要原因,在某些情况下,甚至导致65岁以上的人死亡。在美国,每秒钟、每天都会发生一次跌倒,每年有四分之一的老年人受到影响。在一个人口日益老龄化的社会中,这一问题不仅引起健康关切,而且还造成与治疗有关的经济挑战。跌倒的后果往往导致丧失独立性,影响老年人的日常生活。因此,预防跌倒或减轻其影响对健康老龄化至关重要。这就是为什么与跌倒检测相关的研究对于开发能够帮助老年人在日常生活中感到更安全的技术至关重要。

在本文中,我们将重点放在基于视觉的跌倒检测方法(包括视觉传感器)上,因为它们与基于可穿戴传感器的方法(加速度计等可穿戴传感器,不包括可穿戴视觉传感器)相比具有优势。基于视觉的方法侵入性较小,并且消除了与穿着特殊服装相关的依从性问题,特别是对于患有认知问题(如痴呆症)的患者。此外,如今摄像头的广泛普及提供了一个利用其无处不在的机会,有可能使跌倒检测模型从智能家居等特定环境扩展到公共空间等更广泛的环境。与3D相机(能够捕捉深度信息)相比,2D相机尤其如此。此外,与3D测距传感器相比,2D相机提供了更具成本效益的解决方案,3D测距传感器通常更昂贵,可能需要额外的硬件设置和校准。

由于基于视觉模型的深度学习的出现,基于视觉的方法的性能得到了显着提高,缩小了基于传感器和基于视觉的模型在性能方面的差距。事实上,Vaswani等人(2017)引入的变压器技术已经在许多任务中取代了卷积神经网络(cnn)。因此,在本文中,我们提出使用基于变压器的神经网络来检测视频中的跌倒。

我们的目标是从原始RGB帧中提取特征,而不需要额外的计算,如光流(OF)图像,骨架/姿势等。据我们所知,我们是第一个直接应用变压器来解决仅使用RGB图像的跌倒检测任务,而不需要计算额外的特征。考虑到跌倒检测模型通常部署在轻量级设备中进行推理,所使用的模型必须具有低延迟和最小依赖关系。此外,由于跌倒的及时检测对其后果是否严重是至关重要的,因此我们坚持我们所提出的进行评估的数据集的指导方针,即UP-Fall数据集(Martínez-Villaseñor等人,2019),每隔1秒报告检测结果,或者相当于以16帧视频间隔报告检测结果。UP-Fall数据集包含11个活动,使其适合于跌倒检测,因为近一半的类与跌倒有关。

我们提出了两种平行的评估策略,以便与现有文献进行全面比较。第一种策略与UP-Fall数据集的原作者采用的方法一致,并且也被用于他们组织的随后的跌倒检测挑战。第二种策略遵循埃斯皮诺萨等人(2019)的方法,他们在二元分类(将11种活动分为两类:跌倒和不跌倒)和多类分类设置中比较了他们的模型。

此外,我们进行了实验来评估模型从其他数据集学习和有效泛化的能力。为了评估这一点,我们选择了UR Fall数据集(Kwolek和Kepski, 2014),并使用UP-Fall和UR Fall数据集进行了联合训练。随后,我们分别评估了模型在每个数据集上的性能。值得注意的是,虽然我们的模型展示了从不同数据中学习的能力,但我们承认其实际应用需要大量数据集的局限性,而这些数据集目前无法用于跌倒检测任务。尽管如此,我们相信该模型有潜力通过额外的数据来适应和进一步改进,正如它在UR Fall数据集上的表现所证明的那样。

这篇论文有两个重要贡献。首先,我们提出了第一个基于视觉的变压器,专门设计用于跌倒检测的RGB数据学习。其次,我们将我们的结果与现有文献进行了全面的比较,特别关注那些不依赖于额外特征的作品,从而确保模型使用UP-Fall数据集直接从RGB帧中学习。此外,我们已经公开了所有的实验代码(见第3节),使其他研究人员能够轻松地验证和构建我们的发现。

本文的其余部分组织如下:第2节深入研究了最近的跌倒检测文献,第3节介绍了我们提出的变压器模型,在第4节中,我们提出了UP-Fall数据集,解释了评估策略,并将我们的结果与现有文献进行了比较。最后,对第五节进行总结。

2. 相关工作

跌倒检测(Alam et al., 2022)是检测一个人何时跌倒的任务,以便可以发出警报并呼叫救护车或警告某人。这种检测所遵循的方法类型(取决于用于检测跌倒的方法)可以分为基于传感器的方法(Nooruddin等人,2021)和基于视觉的方法(gutisamurez等人,2021)。从理论上讲,基于视觉的方法信息非常丰富,但直到最近,计算能力和算法才能够正确地利用它。由于对深度学习网络的兴趣日益增加,本研究主题将其兴趣转移到基于视觉的方法,将在本文献综述中解释。

跌倒检测不能作为常规的视频分类任务来处理。为了使跌倒检测模型在现实生活中发挥作用,需要尽快(在视频流中)检测到潜在的跌倒。这就是需要生成中间产出的原因。因此,最常见的方法是使用滑动窗口,该窗口获取大量帧并决定是否发生了跌倒。例如,Yu等人(2017)的先驱工作是引入CNN来解决跌倒检测。这项工作的作者提取了出现在每一帧中的人的二元轮廓,并对每一帧的姿势进行分类,并在他们的潜在输出中识别出跌倒。Wang et al.(2016)没有使用CNN直接对图像进行分类,而是从剪影图像中提取了几个特征,其中也包括CNN特征。这两种方法都需要从图像中分割出人,这在某些情况下可能容易出错(例如,多人,杂乱的背景等)。相反,与那些最初的作品相比,我们直接使用RGB帧来推断跌倒。

Núñez-Marcos等人(2017)没有对图像进行二值化处理,而是从视频中提取OF(光流)图像,执行基于滑动窗口的跌倒分类,使用10对OF图像输出可能的跌倒检测。作者采用VGG16 (Simonyan and Zisserman, 2014)网络(特征提取器部分冻结)并训练其执行二元分类任务。同样,Espinosa等人(2019)也提取了OF图像,但不是直接叠加水平和垂直分量,而是计算了流量的大小。此外,作者还将不同相机拍摄的图像组合在一起,并将其调整为较小的分辨率。他们的模型是一个带有二元交叉熵损失的小型CNN。与本节介绍的第一项工作类似,这些也需要计算额外的特征(在本例中是图像),这可能会给跌倒检测管道增加更多的计算负担。事实上,根据光照条件的不同,生成的OF图像可能没有真正的帮助,因为OF算法不能正确识别未受光照条件控制下的运动流。Lu等人(2018)训练了一个3DCNN和一个LSTM模型,其中3DCNN在Sports1M数据集中进行了预训练(Karpathy等人,2014)(与跌倒检测无关),LSTM使用已经预训练的特征提取器进行跌倒检测训练。我们认为,我们在这项工作中使用的基于变压器的网络更有趣,可以模拟时间动态。由于其自注意力机制的结构,网络可以关注所有标记(token)。

Carneiro等人(2019)提出了一种多流方法,使用VGG16网络作为骨干特征提取器。每个流处理一个不同的特征,即:堆叠的OF,姿势和RGB数据。Chen等人(2020)使用OpenPose (Cao等人,2019)提取了感兴趣的人的骨架,并使用一组启发式方法来确定该活动是否可以归类为(潜在的)跌倒。此外,该模型还包含了一个警报的激活,如果受试者不能站起来,警报就会被触发。

Han等人(2020)设计了一个面向移动设备的跌倒检测应用程序:一种双流方法,结合了基于运动的特征提取和称为mobileVGG的轻量级VGG架构。Khraief等人(2020)提出了一种加权神经多流方法,其中输入模式为:(i) RGB(用于颜色和纹理)和深度(用于辅助判断光照条件),(ii)轮廓变化(用于检测运动),(iii)振幅和定向流以及(iv)光流。作者进行了早期和晚期聚变实验,并对每个流的加权进行了实验。Berlin和John(2021)采用了基于距离度量的学习训练的孪生神经网络。在对结果应用s型函数之前,该网络将不同的视频配对并测量它们的L1距离。如果视频相似,它们的基本真值应为1,否则为0。Gomes等人(2022)使用YOLOv3检测网络(Redmon和Farhadi, 2018)每帧提取人,并使用卡尔曼滤波器对帧序列进行时间感知对齐(跟踪场景中的每个人)。然后用3DCNN和2DCNN结合LSTM将每个序列分类为跌倒和未跌倒。

最近,Yadav等人(2022)的作者使用和我们使用的相同数据集(即UP-Fall数据集)评估了他们的ARFDNet模型。ARFDNet由(i)骨架提取模块、(ii)用于提取空间特征的CNN和(iii)用于提取时空特征的门控循环单元(Cho et al., 2014)模块组成。后者的产出用于活动和跌倒的分类。同样,Suarez et al.(2022)也向他们的网络输入姿势信息。前者由1D CNN层和上面的分类器组成。Inturi等人(2023)也使用CNN + LSTM组合作为输入。Mobsite等人(2023)将轮廓作为ConvLSTM (Shi等人,2015)模型的输入。更进一步,Galvão et al.等人(2022)在每一帧上完全分割了人,并训练了一个生成对抗网络(Goodfellow等人,2014)来对日常生活活动进行分类。在这个模型中,跌倒被认为是异常现象,也被检测为异常现象。所有这些方法都需要一个预处理步骤来提取姿势、轮廓或分割人的跌倒,这增加了计算开销,并可能将错误传播到下一步。

Le et al.(2022)使用可穿戴设备提取了其他特征,而不是使用姿势。这些特征作为各种传统分类算法的输入,使他们能够在UP-Fall数据集上获得非常高的F1指标结果(跌倒为96.16,非跌倒为99.90)。

与大多数这些工作相比,我们的模型不需要额外的特征,如OF或深度图像来检测跌倒。这减轻了计算更多特性的计算开销,这对于具有低计算资源(通常用于推理)的轻量级设备来说可能是关键的。

3.方法

跌倒检测模型解决了一个二元问题,在这个问题中,对于给定的输入(例如,来自可穿戴设备的一系列帧或数据),模型必须决定一个人是否正在跌倒。为此,我们的跌倒检测模型的第一个目标是专门使用RGB帧。这意味着不需要额外的特征,例如OF或深度图像,从而允许开发计算强度较低的网络。这也减少了延迟,这对实时跌倒检测应用程序至关重要。另一方面,我们模型的第二个目标是以滑动窗口的方式处理视频,以产生中间输出。有了这个,模型能够在处理几个帧后很快检测到跌倒,因此允许模型快速响应跌倒事件。

更正式地说,考虑一个由N帧组成的输入视频X={x_1,x_2,…,x_N}。 我们提取几个大小为W的块(W表示每个块中的帧数)并生成一个输出P={p_1,p_2,…,p_{\left \lceil N/W \right \rceil}},其中每个元素p_i={0,1}是输出结果,表示是否在第i个块中检测到跌倒(0 ≤ 𝑖 < ⌈𝑁∕𝑊⌉)。 这一模式的高层概述在图1. 得到了说明,在数据流中,帧不断累积,直到帧数可用于创建块,并生成单个输出(表示是否检测到下降)。 为了评估我们的模型,我们将使用最先进的跌倒检测数据集,因此,我们将考虑不同大小的视频集,而不是连续的帧流。

图1。我们提出的跌落检测模型。从视频中采样的输入片段序列(每个1秒)通过Uniformer网络来提取特征。此外,Uniformer为每个片段生成一个概率分布,综合给定数据集的可能跌倒类和不跌倒类。取最大概率作为每个片段的预测类进行标记。

我们的跌倒检测模型取每个clip_i(0 ≤ 𝑖 < ⌈𝑁∕𝑊⌉)块,并将它们通过特征提取网络。 这个网络决定输入的视频片段中是否出现了跌倒。 我们选择的主干网是一个Uniformer(Li et al.,2022),它是一个视觉变换器,正如作者强调的那样,它在准确性和计算效率之间有很好的平衡。 这对于寻求良好性能但具有最小延迟的应用程序是可取的。 李等人的作者(2022)在他们的论文中贡献了Uniformer块,它由三个部分组成:(i)动态位置嵌入(DPE)、(ii)多头关系聚合器(MHRA)和前馈网络。 图 2说明了一个Uniformer块及其三个主要组成部分。

图2。Uniformer块被堆叠以构建Uniformer网络。它由动态位置嵌入(DPE)、多头关系聚合器(MHRA)和前馈网络(FFN)三个主要部分组成。MHRA的目的是尽量减少冗余。我们建议读者参考Uniformer的原始出版物(Li et al., 2022),了解其架构的更多细节。

对于Uniformer块的每个组件,第一个组件DPE是基于深度卷积的轻量级位置编码,可适应不同的序列长度。MHRA是一个自注意力模块,旨在最大限度地减少冗余;它的工作原理类似于卷积层:它将自注意力应用于较小的相邻的标记(token),而不是试图将注意力应用于所有标记。这包括一个表示两个标记或位置关系之间的标记关联矩阵。在较浅的层中,标记关联只是标记之间的相对距离。在更深的层中,标记相关性被计算为与邻域中其他标记的内容相似度。考虑到这三个组成部分来构建一个Uniformer块,Uniformer网络构建堆叠局部和全局Uniformer块(即分别在浅层和深层块中应用MHRA的堆叠块)。

Uniformer网络在Kinetics (Smaira et al., 2020)和Something-Something (Goyal et al., 2017)两个人类动作分类数据集上进行预训练,分辨率为224 × 224。由于模型是预训练的,𝑊将被固定为16,即一次使用16帧来检测跌倒。模型的结构如图2所示。

每个视频片段的𝑊帧通过其中每帧的真实标签自动标记为该视频片段中占多数的结果。换句话说,在单个数据块clip_i={x_jx_{j+1},…,x_{j+W}}中,每个框架x_j都有自己的标签y_j={0,1,…,C},其中C表示数据集中包括的类别数量,其中一些类别与跌倒有关。根据实验的不同,类的数量可以减少到2个(二值分类),因此,每一帧将被分类为负或正。

我们在每个片段的基础上训练模型,将每个大小为𝑊的片段作为训练样本。我们使用交叉熵损失和Adam优化器进行训练。在每个epoch之后,对验证集(即从训练集中提取的不用于训练的评估数据集)进行评估。当在验证集上计算的选定度量(我们实验中的F1分数,关于我们的评估度量,请参见4.2节)在预定义的epoch数之后没有改进时,训练将停止。这个数字被称为耐性,在第4.3节的实验表中显示。在接下来的文章中,耐性被设定为10个epoch。

这些实验的代码可以在GitHub.3上访问。

2 https://huggingface.co/Sense-X/uniformer_video
3 https://github.com/AdrianNunez/transformer-based-fall-detection

4. 评价

5.结论 

在本文中,我们介绍了一个基于变压器的跌倒检测模型,利用了Uniformer架构。我们只使用rgb的方法与UP-Fall数据集的准则保持一致,与现有方法相比,在不依赖额外功能或可穿戴传感器数据的情况下,获得了具有竞争力或改进的结果。我们的跌倒检测模型展示了在检测到跌倒事件时及时发出警报的能力。

未来的研究途径包括探索预期能力,灵感来自最近的工作,如李和宋(2023)。与医疗保健专业人员合作对于改进模型的实际应用程序也至关重要,他们的见解能够指导调整程序,以有效地满足最终用户的需求。

此外,为了提高我们模型的鲁棒性和通用性,一个更大、更多样化的跌倒检测数据集是必不可少的。这种扩展将有助于训练出适应性更强、更可靠的神经网络。

总之,我们的工作为基于视觉的跌倒检测模型奠定了坚实的基础,并为未来的研究提供了一个有希望的方向。通过探索主动跌倒检测,与医疗保健专业人员合作,并收集更全面的数据集,我们渴望继续推进跌倒检测领域,并为提高有跌倒风险的个人的安全和福祉做出贡献。

Uniformer:

CNN和Transformer再组合!UniFormer:新的主干网络!在六大视觉任务上大放光彩!...-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/amusi1994/article/details/122694745

  • 19
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值