APP下载

基于场景先验及注意力引导的跌倒检测算法

2023-02-24萍,陈楠,鲁磊,2

计算机应用 2023年2期
关键词:先验注意力卷积

王 萍,陈 楠,鲁 磊,2

(1.西安交通大学 信息与通信工程学院,西安 710049;2.综合业务网理论及关键技术国家重点实验室(西安电子科技大学),西安 710071)

0 引言

跌倒威胁到人的健康和安全,尤其随着社会经济的进步和发展,全球人口正步入老龄化阶段,有效保障独居老人在居家和出行时的人身安全更是社会需要关切的问题。及时准确地检测跌倒事件有助于提供快速救援,降低受伤的严重程度。已有跌倒检测算法或单纯依靠人工观察发现,或依赖于可穿戴设备、环境传感器等硬件装置,使用不便且易受噪声干扰。随着安防监控网络建设的不断完善和计算机视觉技术的飞速发展,基于视觉的跌倒检测算法越来越受到重视。通过摄像头获取图像或视频,利用计算机视觉分析算法自动检测跌倒事件,可以降低人工成本、及时发现危险。因此,基于视觉研究高效、准确的跌倒检测算法日渐重要。

跌倒检测算法主要分为基于可穿戴设备、基于环境感知和基于视觉三种类别。基于可穿戴设备的算法使用电子传感器(如加速度计、陀螺仪等)收集数据,并提供给计算机系统或嵌入式系统进行分析以检测跌倒。如Mathie 等[1]利用一个安装在腰部的加速度测量系统检测跌倒事件;Lai 等[2]使用多个三轴加速器感应意外跌倒时身体易受伤部分的关节点的加速度值;Chaitep 等[3]从加速度计数据推导出重力值进而判断是否发生跌倒。该类算法计算成本低、易于实施,但需要人们长期佩戴、用户体验较差。

基于环境感知的算法通过安装在人员活动区域的传感器采集压力、震动和声音等信息,进而识别跌倒事件。如Alwan 等[4]鉴于人跌倒所产生的震动信号和正常活动如行走所产生的震动信号的不同,使用压电传感器监控地板的震动模式判断跌倒事件;Li 等[5]利用圆形麦克风阵列收集周围环境的声音信号,进而检测跌倒事件;Wang 等[6]利用无线技术识别传感器周围的环境变化,建立了无线信号和人活动之间的关系。此类算法虽不需要随身佩戴传感器,但部署成本较高,且对噪声敏感而容易产生误报。

基于视觉的算法大多偏重于对人身体姿态的特征进行建模,通过对人员身体的检测及身体姿态属性的分析来对跌倒状态进行判别。在早期基于机器学习的算法中,通过设计和提取手工特征,再利用多层感知机、支持向量机(Support Vector Machines,SVM)、决策树、K 近邻等模式识别算法对提取的特征进行预测,达到区分跌倒事件和正常事件的目的。如Charfi 等[7]提取人体轮廓的轨迹特征,再利用支持向量机分类器判断是否有跌倒事件;Yun 等[8]将提取的人体重心周围的占地面积、角度等特征送入机器学习算法;张舒雅等[9]提出一种基于SVM 和K 近邻分类的跌倒检测算法。这类算法虽然可以通过精心设计特征和选择分类器获得良好的性能,但是前景对象分割和特征提取容易受到图像噪声、光照变化和遮挡的影响,从而导致算法在复杂环境中鲁棒性较差。

随着深度学习技术,尤其是卷积神经网络(Convolutional Neural Network,CNN)在图像分类、目标检测、图像分割、自然语言处理等计算机视觉领域[10-11]取得巨大成功,一些研究人员也将深度学习算法应用于跌倒检测任务。Fan 等[12]将包含跌倒4 个阶段(站立、正在跌倒、已经跌倒、静止)的视频序列整合为一个动态图,输入到深度卷积网络中训练一个识别跌倒事件的深度学习模型;Min 等[13]在跌倒检测中考虑了场景信息,但使用了Faster RCNN(Region-based Convolutional Neural Network)而导致算法效率较低,无法满足实时性要求;Feng 等[14]提出一种基于注意力引导的长短期记忆(Long-Short-Term Memory,LSTM)网络跌倒检测模型,首先利用YOLOv3(You Only Look Once version 3)检测视频中的行人,然后通过一个跟踪模块跟踪行人轨迹,之后通过一个卷积神经网络提取行人框特征进而判断是否发生跌倒事件;Lie等[15]先采用卷积神经网络为每个输入帧提取人体的2D 骨架信息,再使用具有LSTM 单元的循环神经网络(Recurrent Neural Network,RNN)处理骨骼序列以充分利用空间信息和时间信息;伏娜娜等[16]提出一种基于YOLOv5s(YOLOv5 Small)的人体目标检测结合轻量级OpenPose 人体姿态估计模型的跌倒检测算法。此类深度学习算法虽然识别精度较高,但需要预先提取人体形状或骨架信息,计算较为复杂。

本文工作源于一个实际应用场景:日常生活中电梯使用日趋频繁,当人独自乘梯发生跌倒时,仅靠人工发现可能延误救治时机,而基于电梯中安装的摄像头采用计算机视觉算法自动检测人员跌倒可作为智能电梯系统的功能补充。已有跌倒检测算法多数依赖于对前景目标的分割以及对人员身体姿态的特征建模和分析,由于电梯空间有限以及摄像头的俯视角度的问题,直接利用已有算法检测准确率不高,且计算效率难以达到实时应用的要求。本文在基于全局图像特征分类的基础上,以场景先验信息及注意力引导的方式,聚焦人员表观特征及其与场景的交互特征,学习并建模目标的判别特征及类别间的特征边界,从而形成对跌倒事件的有效检测。本文收集并制作了一个电梯场景人员跌倒检测的数据集,在验证所提算法性能后又进一步将该算法应用于公开的跌倒检测数据集。实验结果表明,所提算法利用场景先验信息引导网络着重关注人员与场景的交互特征,取得了较高的检测准确率和执行效率。

1 本文方法

当人跌倒时,身体会和地面发生大面积接触,已有的跌倒检测算法仅对人的身体姿态特征进行建模,却忽视了场景信息以及人与地面的交互信息。本文通过对环境的学习,对地面区域及非地面区域进行判别和建模,并基于场景先验引入注意力机制,使网络关注有利于判别跌倒的局部特征。本文检测模型如图1 所示,包括场景先验信息学习模块、基于场景先验引导注意力的特征提取与融合模块以及预测分类模块。

图1 本文跌倒检测算法流程Fig.1 Flowchart of the proposed fall detection algorithm

1.1 场景先验信息学习

目前,已有的跌倒检测算法大多采用前景目标检测和人员身体姿态建模的算法,该类算法依赖于目标检测算法的准确性以及人员身体特征的完整性,严重受限于摄像头的拍摄角度。在典型的居家看护场景中,摄像头通常安装在墙面或与人员近似等高的位置,以确保有较好的视野能够观察人员完整的肢体动作;而在电梯场景中,摄像头通常安装在轿厢顶部,加之轿厢内空间有限,往往难以对人员完整的躯干状态形成有效观察。此时传统的目标检测和分析的算法往往会失效。人员跌倒时,身体会和地面存在大面积接触,因此,有效利用地面先验信息有助于跌倒事件的判别。本节提出对场景先验信息进行学习与建模的算法,并将其融入跌倒特征中。

对于场景先验信息学习,目的是学习可能的跌倒区域,即判定场景中地面区域所在空间位置。如果用语义分割算法学习地面区域,需要重新标注及训练,引入的额外计算也较为复杂。考虑到工程的实际需求,为了尽可能地避免人工标定的介入,提高算法的适用性、通用性及可迁移性,同时也为了应对跨电梯场景带来的反复标定问题,本文提出根据监控视频的历史数据,通过人员的活动轨迹检测地面位置区域,自动化地完成对场景位置先验的学习。

假设检测出电梯中某一人员pi的位置区域为Ri=(li,ri,ui,di),其中:li、ri、ui、di分别表示该区域的左边界、右边界、上边界及下边界。选定下边界的中心点作为一个地面区域参考点,为了减小因人员目标检测不准确带来的对地面区域学习的干扰,这里假定此中心点有较大概率属于地面区域,其周围像素属于地面区域的概率将随距离增大而减小,即采用高斯分布模拟像素点属于地面区域的概率分布。因此,根据人员pi所确定的地面区域可表示为:

其中:σ表示高斯分布的方差,为了将人员pi所推算出的地面区域范围控制在检测框附近,且经实验验证,σ=(ri-li)3 时性能较好。依据此思路,基于乘梯历史数据,通过目标检测算法可以尽可能多地获取人员活动轨迹Ri(i=1,2,…,m),进而得到对应的地面区域分布Ai(x,y),叠加这些概率分布后做归一化处理,可得到有效的地面区域概率分布A(x,y),具体如式(2)所示:

1.2 基于场景先验引导注意力的特征提取与融合

考虑到运算效率及标注训练的难易程度,本文采用基于图像特征的分类网络对单人跌倒进行检测。如果只使用全局图像特征进行预测,过多的冗余信息和背景噪声会严重影响预测的准确性。人员在跌倒时身体会和地面大面积接触,因此聚焦人在地面这一显著区域的特征将更有助于检测。受此启发,本文利用建模后的位置先验作为空间注意力掩膜,引导深度学习网络对地面区域的特征形成聚焦,以使预测分类过程可以更专注于可能跌倒区域内的人员姿态特征。

首先,基于学习到的地面先验信息,引导空间注意力达到特征聚焦和去冗余的目的。高层卷积特征图具有较丰富的语义特征,并且和原始输入图像在空间维度上存在有一定的关联关系。以学习到的地面先验区域作为空间注意力掩膜与高层卷积特征图进行融合操作。具体地,第i组卷积层输出得到c个尺寸为w×h的特征图Cij(j=1,2,…,c),其中c表示通道数。将包含地面先验区域的概率分布A经尺度处理并沿通道方向扩张后得到与特征图同尺寸的空间注意力掩膜,并将其与Cij进行哈达玛积(Hadamard product)操作,如式(3)所示:

其中:A表示1.1 节所获得的地面区域概率分布;d 表示下采样操作;Expand 表示利用python 的广播机制扩张通道数;Cij表示i组卷积阶段输出的特征图;⊙代表哈达玛积,即逐元素相乘操作。

其次,经过空间注意力模块融合后的特征重点描述场景地面区域的局部特征,脱离了全局场景信息,无法有效区分某些相似的跌倒和非跌倒姿态(例如双腿屈膝坐姿跌倒和下蹲正常姿态),即单独关注地面区域无法解决某些歧义姿态的判别;同时,网络的逐层抽象特征提取会引起局部信息的损失。因此,需要将局部特征和全局特征进一步联合,在尽可能凸显局部判别区域的同时,保留全局性的场景信息和人员姿态信息,以获取更具判别力的特征。

本文以ResNet(Residual Network)[17]为骨干构建特征提取网络,ResNet 由多个残差模块堆叠构成,在多项任务表现优异,是目前使用最广泛的神经网络之一。本文提出对ResNet 第5 个卷积阶段的空间注意力特征融合结果Mf5与原始第5个卷积阶段特征图C5进行自适应加权融合,其中Mf5代表了地面显著区域的局部特征,C5代表了全局特征。具体过程如图2 所示,受SENet(Squeeze-and-Excitation Network)[18]启发,特征图Mf5和C5分别经过1×1 卷积(Convolution,Conv)、批标准化(Batch Normalization,BN)层、ReLU6(Rectified Linear Unit 6)激活层生成相应的初始权重,之后将两个初始权重在通道维度拼接后输入到1×1 卷积中进行信息交互,得到最终的权重矩阵α,β∈Rw×h,如式(4)所示:

图2 自适应特征融合模块Fig.2 Adaptive feature fusion module

权重矩阵沿通道方向扩张得到与特征图同维度的权重张量,并利用所得结果对特征加权,得到包含局部和全局信息的融合特征F,如式(5)所示:

式(4)和式(5)中:C5表示第5 组卷积阶段输出的特征图;Mf5表示C5经过式(3)融合后的特征图;CBR(Convolution,Batch normalization,ReLU6)代表特征图依次经过1×1Conv、BN 层和ReLU6 激活层;{*;*}代表两个特征图在通道方向进行拼接;α表示特征图Mf5对应的权重矩阵;β表示特征图C5对应的权重矩阵;Expand 表示利用Python 的广播机制扩张通道数;⊙表示哈达玛积。

1.3 预测分类

得到融合特征后,采用众多主流网络的做法,将其送入到由全局平均池化层(Global Average Pooling,GAP)、一层全连接层和Softmax 层组成的分类器。全局平均池化操作可以保留之前卷积神经网络提取特征的空间信息和语义信息,可获得最显著的特征。全连接层的输入节点数是GAP 之前的特征图个数,输出节点数是图片分类类别数目,即为2。

考虑到跌倒事件的小样本特性,本文采取带权重的交叉熵损失函数,用样本先验分布的倒数作为权重,对占比低的跌倒样本赋予更高的损失权重,对占比高的正常样本赋予较小的损失权重,具体如式(6)所示:

其中:为样本实际类别标签、yi为样本预测类别,正类为1,负类为0;wfall为样本实际标签为1 时的损失函数权重,wnfall为样本实际标签为0 时的损失函数权重。wfall和wnfall的计算方式如下:

其中:Nall代表样本整体数量,Nfall代表跌倒样本数量,Nnfall代表非跌倒样本数量。

当测试集学习到多个场景先验时,本文对这些先验对应的预测结果进行投票,即执行逐元素求最大值操作,以求得不同场景先验上的最大输出响应。此外,为了进一步确认跌倒检测结果,减少误报,可选择将数据增强后的图像和原始图像同时输入网络,并对预测结果进行投票,从而得到最终的预测类别。

2 实验

2.1 实验环境

本文实验使用PyTorch 深度学习框架完成,操作系统为Ubuntu20.04、硬件环境为Intel Xeon Gold 6134 CPU@3.20 GHz,单张NVIDIA Quadro P6000 显卡,软件平台采用OPENCV4.4.2、Python3.6.3、CUDA(Compute Unified Device Architecture)和针对深度神经网络的加速库cuDNN(CUDA Deep Neural Network library)。

2.2 数据集与评价指标

为了验证算法性能,本文收集整理了一个电梯场景下跌倒检测的Elevator Fall Detection 数据集,共包含2 696 张跌倒图片和10 787 张非跌倒图片。其中非跌倒图片来自真实的电梯场景,跌倒图片由13 个志愿者(包括5 名女性和8 名男性)在真实电梯中模拟得到。模拟跌倒时覆盖轿厢地面的5个区域(包括4 个角落和1 个中心点);跌倒的姿态包括坐、躺、卧、趴等;非跌倒包括正常站立以及下蹲、弯腰等与跌倒相类似的姿态。数据集的具体样本数量及划分情况如表1所示,图3(a)是训练集跌倒样本的部分示例,图3(b)和图3(c)依次是测试集跌倒样本、非跌倒样本部分样本示例。

表1 Elevator Fall Detection 数据集分布Tab.1 Distribution of Elevator Fall Detection dataset

图3 Elevator Fall Detection 数据集部分样本示例Fig.3 Some examples of Elevator Fall Detection dataset

为了测试本文所提算法的适用性,验证其不仅局限于电梯场景,实验中还使用了一个公开的用于跌倒检测的UR(University of Rzeszow)Fall Detection 数据集[19]。该数据集包含30 个跌倒和40 个日常生活活动序列,使用两个不同视角的Microsoft Kinect 摄像头拍摄而得。部分样本如图4 所示,其中图4(a)是视角1 下的跌倒样本示例,图4(b)是视角2 下的跌倒样本示例,图4(c)是非跌倒样本示例。

图4 UR Fall Detection数据集部分样本示例Fig.4 Some examples of UR Fall Detection dataset

关于评价指标,设跌倒为正类、非跌倒为负类,使用混淆矩阵定义3 种指标:准确率(Accuracy,Acc)、灵敏度(Sensitivity,Se)、特异度(Specificity,Sp),具体计算方式如下:

其中:准确率是正确检测到的跌倒和非跌倒数目之和与总数量之比,灵敏度是正确检测到的跌倒数目与跌倒总数之比,特异度是正确检测的非跌倒数目与非跌倒总数之比。这里TP(True Positives)表示正确检出的跌倒数,TN(True Negatives)表示正确检出的非跌倒数,FP(False Positives)表示被误检为跌倒的非跌倒数,FN(False Negatives)表示表示被误检为非跌倒的跌倒数。

2.3 实验结果与分析

2.3.1 模块分析实验

考虑到跌倒检测的即时性要求,实验首先以参数较少、层次较浅的ResNet18 为骨干网络,验证算法中高斯场景先验信息融合与自适应特征融合模块的性能。这两个模块具有良好的结构兼容性,可以很好地接入已有深度网络结构,以实现对特征的优化。实验中,网络输入分辨率为256×256,不使用额外的数据增强技巧;设置批处理数为64,使用带动量的随机梯度下降(Stochastic Gradient Descent,SGD)优化器,动量系数为0.9;使用带权重的交叉熵损失函数训练优化模型。

在自构建的Elevator Fall Detection 数据集上的实验结果如表2 所示,其中A 算法为在ResNet18 网络中使用带权重的交叉熵损失函数,B 算法在A 的基础上增加了高斯场景先验信息融合模块,C 算法在B 算法的基础上进一步增加了自适应特征融合模块。

表2 Elevator Fall Detection 数据集上的模块性能比较 单位:%Tab.2 Module performance comparison on Elevator Fall Detection dataset unit:%

从表2 中可以观察到,第5 个卷积阶段后引入高斯场景先验引导注意力,检测准确率明显提升,灵敏度指标说明算法大幅提高了正样本的检测率,即检测出了更多的跌倒类别。在融合局部和全局特征后,检测性能进一步提升,总体算法检测准确率达到95.36%,这说明高斯场景先验引导的注意力机制和自适应特征融合机制均能提高检测模型的准确率。

为了进一步分析先验信息融合模块对跌倒检测的有效性,实验中将场景先验模块施加于不同卷积阶段得到的特征图上,实验结果如表3 所示。

表3 不同卷积阶段的场景先验融合结果比较 单位:%Tab.3 Comparison of results of scene prior fusion at different convolution stages unit:%

从表3 中可以观察到,高斯先验掩膜和具有较强语义特征的第5 个卷积阶段的特征图融合时,算法的综合性能最好。

先验信息融合模块的作用在于引导空间注意力,使得特征提取更关注于跌倒区域的特征。表4 对比了该注意力与现有几种经典注意力模型在跌倒检测中的性能。实验均是在ResNet18 结构的第5 个卷积阶段后添加注意力,其中CBAM(Convolutional Block Attention Module)[20]是一种结合空间注意力和通道注意力的算法,SAM(Spatial Attention Module)仅是CBAM 中的空间注意力算法,SENet 是一种通道注意力算法。可以看到,本文提出的模型检测准确率最高,灵敏度指标增加明显,说明基于场景先验的空间注意力在特征提取和优化上更适合于跌倒检测场景。

表4 不同注意力算法的性能比较 单位:%Tab.4 Performance comparison of different attention algorithms unit:%

自适应特征融合模块的作用在于进一步联合局部和全局特征以获取更具有判别力的特征。为了验证该模块的有效性,实验中对比了常用的特征逐元素相加和特征拼接两种融合算法,结果如表5 所示。从表5 可以看出自适应融合算法能获取更优的判别特征。

表5 不同融合算法的性能比较 单位:%Tab.5 Performance comparison of different feature fusion algorithms unit:%

2.3.2 对比实验

Li 等[21]提出了一种基于AlexNet 分类网络的跌倒检测算法,在该算法的基础上,本文将其分类网络分别替换为ResNet34 和ResNet50,在Elevator Fall Detection 数据集上对比了一些基于分类网络的跌倒检测算法,实验结果如表6 所示。从实验结果可以看到,相较于其他分类网络,本文算法获得了最高的检测准确率,尤其与网络深度更深的ResNet34和ResNet50 相比,准确率分别提高6.04 和3.52 个百分点,本文算法虽然采用了结构相对简单的ResNet18,但是场景先验引导的注意力机制和自适应特征融合模块有效地提升了特征提取质量,让特征更有利于对跌倒的检测。

表6 不同分类网络在Elevator Fall Detection 数据集上的性能比较 单位:%Tab.6 Performance comparison of different classification networks on Elevator Fall Detection dataset unit:%

为了验证本文算法的场景适用性,检验其在非电梯场景的检测性能,本文在跌倒检测的公开UR Fall Detection 数据集上测试了本文所提算法。表7 给出了实验对比结果,其中:AR-FD(Area Ratios-Fall Detection)[8]算法计算了人体重心周围的占用区域;MEWMA-FD(Multivariate Exponentially Weighted Moving Average-Fall Detection)[22]算法将人体分为5个区域,分别计算每个区域的面积比;Mask RCNN-LSTM 算法[23]利用Mask RCNN 提取运动物体,再通过一种注意力引导的双向 LSTM 模型检测跌倒事件;DCFI-FD(Dual Channel Feature Integration-Fall Detection)[24]利用检测模型YOLO 和姿态估计模型OpenPose 提取目标的位置信息和骨架信息,之后利用位置信息和骨架信息推断出目标的静态特征与运动特征,进而进行跌倒检测。

表7 不同算法在UR Fall Detection数据集性能比较 单位:%Tab.7 Performance comparison of different algorithms on UR Fall Detection dataset unit:%

从表7 中可以观察到,在UR Fall Detection 数据集上,本文算法同样表现出了非常优秀的性能,尤其是拍摄该数据集的两个摄像头分别平行于地板和天花板安装,该数据集的视角与电梯场景视角差异较大,但本文所提算法仍取得了最优的性能(准确率为99.01%),这表明本文所提算法具有良好的跨场景适用性。

出于跌倒检测算法需要实时响应,在Elevator Fall Detection 数据集上本文分别在Intel Xeon Gold 6134 CPU 和GPU 显卡上测试算法的运行速度。实验中对比了ResNet18、ResNet34 和ResNet50 三种分类网络算法,实验结果如表8 所示。从表8 的实验结果可以看到,本文所提算法在CPU 上检测速度达到48 FPS(Frames Per Second),GPU 上达到354 FPS。本文算法在ResNet18 上引入高斯场景先验及自适应特征融合,与基线ResNet18 相比,所提算法的参数量基本不变,处理速度在CPU 和GPU 下分别下降了5.9%和1.4%,但检测准确率提升明显,提高了约11.7 个百分点;并且比网络结构更为复杂的ResNet50 算法的准确率也提高了3.52 个百分点。

表8 模型参数量、检测帧率和准确率对比结果Tab.8 Comparison results of different models on parameters,detection frame rate and accuracy

3 结语

本文提出了一种基于场景先验信息及注意力引导的跌倒检测算法,该算法可以有效优化卷积神经网络的深度特征,使其更加关注地面区域中的人员姿态特征。算法采用特征分类的思想,不需要对人员目标及其姿态进行事先标注,避免了前景目标提取和人员姿态建模所需的复杂计算以及潜在的噪声干扰,并且所提算法具有良好的场景适用性,可向具有多样化视角的现实应用中进行迁移。此外,本文构建了一个电梯场景下检测跌倒的Elevator Fall Detection 数据集,其在样本量和多样性方面均处于领先状态。本文所提算法在对比实验中取得了较为领先的结果。然而,本文所提算法侧重于对先验信息的融合,对于融合后特征的判别能力在应对跨场景应用方面还需要进一步增强,这也是下一步研究工作的主要方向之一。

猜你喜欢

先验注意力卷积
让注意力“飞”回来
基于3D-Winograd的快速卷积算法设计及FPGA实现
基于无噪图像块先验的MRI低秩分解去噪算法研究
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
“扬眼”APP:让注意力“变现”
基于自适应块组割先验的噪声图像超分辨率重建
A Beautiful Way Of Looking At Things
基于平滑先验法的被动声信号趋势项消除
先验的废话与功能的进路