老年人跌倒检测算法的研究现状

2022-04-09 07:02赵珍珍董彦如
计算机工程与应用 2022年5期
关键词:阈值准确率传感器

赵珍珍,董彦如,曹 慧,曹 斌

1.山东中医药大学 智能与信息工程学院,济南 250355

2.山东中医药大学附属医院 心病科,济南 250000

全球人口预期寿命的增加与生育率的下降导致全球面临人口老龄化的危机,联合国出版的《2020年世界人口老龄化-老年人的生活安排》[1]中预估2050年的老年人口将达到15亿以上,65岁及以上的老年人口总数将由2020年的9.3%增长至16.0%左右,特别是人口众多的国家,如中国,预测到2022年左右,超过65岁的人口将占总人口的14%;并且到2030年,中国将会进入老年人口占比25.26%的深度老龄化社会。在这快速老龄化的社会,老年人的健康问题日益凸显,失能、半失能老人数量急剧增加,空巢独居老人健康社会风险加大[2],老年人健康问题成为全球关注的焦点。而跌倒在全世界范围内成为影响老年人健康的主要原因,其会导致老年人在生理与心理上产生不同程度的损伤,甚至会导致死亡[3]。因此,各式各样的跌倒检测算法应运而生。

跌倒检测与识别的主要步骤包括目标检测、特征提取和定性分类,其中目标检测主要表现于检测跌倒的视觉传感器设备中,通过背景差分、帧间差分等方法定位图像或视频中的被测目标,而对于便携式的传感器则可以忽略,这一类传感器是通过惯性测量单元收集人体运动学数据,其本身代表被测者的具体状态,不属于目标检测的范畴,本文不过多赘叙。特征提取是根据算法结构和处理方式采取不同的方法获取特征,至于定性分类是指根据采集的不同属性判定数据的具体类别。其中,本文围绕着特征提取这一重要步骤将跌倒检测算法分为阈值分析法、基于机器学习的检测算法和基于深度学习的检测算法三类。阈值分析法是将实时的加速度或二次处理后的均方值等数据作为特征值,并与通过大量跌倒实验得出的阈值作比较,当数据值超过或低于阈值时判定为异常情况。基于机器学习的检测算法则是通过人工设计的特征算子来处理并描述底层视觉数据,比如HOG[4]特征、ORB[5]特征和LBP[6]特征等,该类算法含有多种功能的分类器,具有显著的分类优势。但是该类算法过度依赖于人工提取动作特征,一旦特征样本发现偏差,跌倒检测的性能便会极度下降,并且上述的特征算子难以获取复杂图像中的语义信息,而基于深度学习的检测算法能较好地弥补的该缺点,可以自动获取样本数据中的特征值,形成一种学习策略,拥有很好的特征表示能力。

现阶段,阈值算法、机器学习算法、深度学习算法及其变体已被广泛应用于跌倒检测领域中,本文着眼于跌倒检测的算法,首先介绍了单一算法中基于阈值分析的跌倒检测算法、基于机器学习的跌倒检测算法和基于深度学习的跌倒检测算法,概述了单一算法的优势与不足之处。其次根据混合算法的杂糅的特点,详细说明了多种算法结合后取得的检测成果。同时,梳理了跌倒检测算法中采用的公共数据集,最后总结了跌倒检测算法的发展趋势。通过以上分析,理清了跌倒检测算法自身的意义与重要性,为后续的改进提供创新思路,为跌倒检测系统的落实提供理论基础。

1 相关工作

研究者们从不同的方面综述了跌倒检测算法,涉及跌倒背后的生理原因、人体运动学、各种传感器设备、分类技术和特征提取方法,为跌倒检测的整体发展提供了有利的帮助。本章将从软硬件角度概述主要的跌倒检测文献。从硬件方面,Mubashir等[7]从可穿戴式传感器、环境式传感器及视觉传感器三方面综述了跌倒检测系统及算法,回顾了使用加速度值、姿势分析和时空分析等相关文献,得出前两种传感器硬件成本较低且便于安装,而视觉传感器则拥有良好检测效果的结论。Bet等[8]综述了可穿戴式传感器在检测跌倒中的最新技术及研究中使用的特征,他们发现腰部是最常用的佩戴位置,且从加速度值中提取特征占比较多,另外还观察到利用机器学习提取特征的研究正在增多。但此类研究存在一些问题,如研究人群的类型、跌倒风险评估缺少统一标准等。Zhang等[9]基于视觉传感器的角度分别概述了单个或多个RGB摄像机、深度相机、红外相机与3D摄像机阵列的跌倒检测方法,且是首次归纳了关于视觉类跌倒检测的公共数据集。Cai等[10]则是回顾了Kinect传感器及类似相机获取的46个标准数据集,目前有20多个正在被高频度地使用,文中强调了各数据集的特点,为跌倒检测提供客观依据。此外,自Kinect相机出现,其价格公道、易于安装的优点使得基于视觉的跌倒检测得到了更深一步的研究。Gutiérrez等[11]回顾了近五年的基于人工视觉的81个跌倒检测系统,从表征(如光流)到分类技术(如支持向量机SVM)进行概括,发现基于人工视觉的系统实现了传统意义上的环境领域的检测。然而现有公共数据集相互独立,缺少系统性能评估的共同参考框架,这使得系统之间的性能难以比较。

随着电子元器件的发展,更小型的设备被研究出来,在过去几年,智能手机轻便、易携带的特点使得基于智能手机的跌倒检测成为热门研究主题之一,Luque等[12]提到智能手机中使用固定阈值或机器学习算法较多,但在手机上设定加速度阈值难以掌握,手机自身的硬件不足以维持复杂的跌倒检测算法。Lima等[13]回顾了基于智能手机进行人类活动识别,整理了机器学习和深度学习算法的应用与研究,为基于智能手机的跌倒检测提供良好的理论依据。另有González-Caete等[14]研究智能手表在跌倒检测中的可行性,其成本低、便携带的优点得到广泛认可,为跌倒检测的实现提供了其他可能性。但该类研究中个人隐私问题受到较高关注度,并且缺乏真实跌倒的基准数据集作为参照。

从软件方面,Perry等[15]回顾了加速度在跌倒检测中的作用,对比了使用加速度和不使用加速度的实时检测跌倒,他们发现加速度发挥了重要的作用,并且提到加速度数据的好坏会影响检测结果。Delahoz等[16]整理了跌倒检测系统中的技术手段,对各种研究进行定性比较,指出定义阈值的重要性,详细介绍了机器学习在跌倒系统中的特征提取、选择和构建的过程,同时他们还总结了SVM、决策树(DT)和K-近邻(K-NN)等分类算法,比较了各算法的时间复杂度,探究了各模型的评估策略。Ramachandran等[17]则基于阈值、基于机器学习总结了跌倒检测,介绍了影响跌倒的生理因素,并重点介绍机器学习在跌倒检测中的应用,总结出该类算法能有效检测跌倒行为。但检测设备中有部分可穿戴式设备(如腕带)不满足检测系统要求,存在假阳性的问题,难以辨别类跌倒动作,另外收集的跌倒数据需要考虑真实跌倒时产生的生理变化,便于提高跌倒检测的真实性。Usmani等[18]重点从机器学习算法的角度介绍跌倒检测及预防系统的发展趋势,他们发现跌倒检测的相关文献中使用单一或多种机器学习融合的算法较为常见,其中SVM内存效率高使得其在近几年使用率最高,但在跌倒检测领域中机器学习难以在短时间内分析肌肉因刺激产生的变化并做出响应,因而它应用于预防跌倒的算法较少。Islam等[19]则是从深度学习的角度综述了跌倒检测算法,从工作原理、深度学习的方法、使用数据集及性能指标系统地进行比较,重点强调了LSTM(long short-term memory)、CNN(convolutional neural network)、AE(auto encoder)算法在跌倒检测中的应用,这些算法表现出强大的功能,但深度学习同样存在一些问题,比如LSTM的训练时间长,涉及大量的参数,对硬件设备要求较高,基于CNN系统易受到攻击等。周燕等[20]在深度学习的基础上概述了二维人体骨架姿态在跌倒中应用,详细讨论了单人与多人骨架的研究方法,总结了近几年相关的先进的算法,同时介绍了公开标准数据集与评价指标。该类算法能更充分地汲取图像信息,拥有良好的鲁棒性,运用该算法的研究正逐年增加。Wang等[21]从数据收集、传输、传感器融合及物联网平台等方面进行文献整理,介绍了单个传感器与多个传感器在信息处理过程中主要是基于阈值、基于机器学习和基于深度学习的方法,阐述了数据融合、特征融合及决策融合的方法,他们指出机器学习优于基于阈值的跌倒检测,深度学习在计算机视觉上的跌倒检测做出巨大贡献,而强化学习可能是未来跌倒检测的发展趋势。不同于Wang等对单个传感器和多个传感器的跌倒过程(包含传输、信息处理、算法、存储、数据集)进行清晰的介绍,本文在现有综述的基础上发现很少有文献对跌倒检测使用的算法进行总结,因而本文综述了跌倒检测使用的算法,分析了单一算法和多算法融合的异同,主要做出以下贡献:

(1)从算法的角度梳理跌倒检测算法的发展现状,详细地介绍了基于阈值、基于机器学习、基于深度学习的跌倒检测算法。

(2)对比跌倒检测中单一算法与混合算法的优劣。

(3)探究不同算法的性能及实际意义并总结常用的跌倒数据集。

(4)总结跌倒检测已有成果及其面临的挑战。

此外,本文在表1中对比了三类算法的优劣并展示了跌倒检测算法的整体流程(如图1)。

图1 跌倒检测流程Fig.1 Fall detection process

表1 三类跌倒检测算法Table 1 Three kinds of fall detection algorithms

2 单一算法

2.1 基于阈值的跌倒检测算法

基于阈值的跌倒检测算法是通过人体体态转变时的特征值来判断跌倒动作是否产生,常用于便携式设备中,如Sun等[22]利用足底倾斜角传感器系统来识别人体状态(图2(a)),通过X轴与Y轴分析双足移动时的倾斜角变化,但传感器测得的数据波动幅度呈现两极分化,为此在足底倾斜角特征中设定阈值提取可用数据,结果表明该算法达到了92%的准确率,但该算法因硬件限制,难以实现对振动做出快速动态响应。Nasiya等[23]则提出了可穿戴式跌倒检测系统(图2(b)),该系统通过3D加速度计实时采集使用者的动态加速度来检测人体状态,从X、Y、Z轴计算人体移动的方向,并设定角度阈值作为跌倒判定标准,结果表明检测成功率最高可达95%,然而,个体生活的差异使得穿戴式传感器呈现明显的不便。Weng等[24]选择利用智能手机传感器来探究跌倒检测(图2(c)),该研究在智能手机上增加了加速度计与陀螺仪,根据手机存放的位置设定加速度阈值,最终经过实验测试发现手机置于腰部位置时,灵敏度最高达到96.43%。现如今,市场上已推出轻量级、低功耗的便携式设备,大幅度降低了使用者发生跌倒的几率,增加了安全保障。但便携式设备尚未完全普及,产品质量、功能设计和实际操作是否真实满足老年人的需求有待进一步检验。于是,环境式的传感器为老年人提供了第二层保障,环境式传感器中最常见的是视觉传感器,其主要通过监测的视频流或单个帧图像中人体活动并识别动作来确认使用者的当前状态,Yuan等[25]采用Kinect传感器进行跌倒检测,首先利用传感器收集深度图像序列,而后提取图像序列中的人体轮廓(图2(d))、计算人体长宽比等相关参数,最后将参数与阈值相互比较,获得目标的行为状态,但该算法存在混淆弯腰与跌倒的问题,需要进一步的改善阈值的设置。马宗方等[26]同样使用Kinect传感器检测人体发生的异常情况,但该算法选择结合双阈值来改进算法结构,达到93.13%的准确率,具体内容将在混合算法中详细叙述。除此之外,还有其他基于环境式的算法如利用压力传感器[27]、无线网[28]等来监测老年人的日常生活,该类算法同样是基于阈值分析判定,在一定的范围内进行目标识别,实时计算出人体活动姿态。

图2 基于阈值的跌倒检测算法的各类传感器Fig.2 Various types of sensors for threshold-based fall detection algorithms

通过设定阈值分析人体动作是最为常见的一种算法,该算法虽然存在虚报率高、误差大的弊端,且阈值的设定需要根据使用的传感器和跌倒数据进行合理选定,不同情景下会产生不同效果,跌倒检测系统的性能不稳定。但其有计算简单、速度快的优点,同时随着硬件的精进,检测误差率已大幅度降低,在处理惯性数据与图像数据时能够快速检测出异常数据、定位图像中的目标区域,分割前景等等,存在一定的使用价值。

2.2 基于机器学习的跌倒检测算法

机器学习算法拥有强大的识别分类功能,能自动学习数据属性并建立分类模型,其中包含有多种分类器,可根据特征选择合适的分类器,在跌倒检测算法中主要采用有监督的机器学习算法。Ozdemir等[29]研究了六种不同的机器学习算法来检测跌倒,他们选取了原始数据峰值周围4S时间窗口的数据,通过分类器进行特征提取与缩减,实现了准确率、特异性及灵敏度都能达到95%以上。但参与的实验对象数量偏少,当增加新对象或扩大活动范围时将无法维持测试准确率。为此,Mrozek等[30]提出了一种新型可扩展架构的系统用于远程监测,他们提出随机森林(RF)、SVM、人工神经网络(ANN)和增强决策树(BDT)分类器,通过五倍交叉验证及最佳参数设置,BDT展现了最优分类,在SisFall数据集中达到了99%的平均准确率。但从实验对象获得的监测数据与老年人存在一定的差距,真实数据源仍是跌倒检测算法面临的难题。为避免该问题,Dhole等[31]采用智能头盔和惯性传感器分别提取被测者的脑电图及行为数据,选择小波能量从时域和频域提取通道特征,再利用RF分类器学习,以熵作为标准筛选出跌倒情况,最终分析结果表明该算法的精确度可达98%。而Ramirez等[32]选择采用摄像机video-camera拍摄真实照片,将照片中的人体骨架作为特征,他们选择了KNN、SVM、RF、MLP(multi-layer perceptron)、Adaboost(adaptive boosting)、XGBoost(extreme gradient boosting)作为分类器,且同时在两种数据集上进行测试。可以发现,同一特征、同一分类方法在不同的数据集上获得不同的检测结果,数据源对跌倒检测属于重要影响因素。此外,基于机器学习的跌倒检测分类器大部分是二分类,相较于人体活动时的姿态的变化,这些分类器在运用到现实生活中便存在不可忽视的不足,而多标签分类算法为解决该问题提供可能。Thakur等[33]提出了多标签的K-NN算法,并且在数据集上进行跌倒动作与类跌倒动作检测,该算法表现出优良的性能,降低了假阳性的概率。还有其他有监督机器学习的跌倒检测算法[34-39]。

Kim等[40]研究的跌倒检测模型同样使用了多种有监督分类器,但该模型中提出了无限特征选择算法以及活动自动标注,且在离散和连续时间序列的数据上都达到了99%的平均分类准确率。若利用无监督的分类器,根据数据本身的属性,自主选取特征,进而完成样本数据的种类划分,相较于需要手工标注样本集特征的有监督分类器能够极大地减少工作量。于是,Diraco等[41]提出一种k-means无监督算法,基于开普勒效应在不同细节水平上描述人体姿势,获得身体骨架与描述姿势的直方图信息,经过观察组与测试组的实验,测试显示出良好的检测性能,但该实验存在前期校准长达95 min的不足,实验收集的数据不具备代表性,无法验证真实情况下的校准时长,在现实中可能需要更长时间。

机器学习算法中含有多种有监督与无监督的分类器,在跌倒检测中更倾向于有监督的分类器,其根据选定的特征值完成跌倒与日常活动的区分,其中特征选定是机器学习算法的成败关键,一旦手工提取的特征不理想便会对跌倒检测造成极大的影响,反之,能够实现优异的检测率;无监督的机器学习算法则能自动提取数据特征进而完成分类,大幅度避免人工提取特征的劣势,未来该方向将会是跌倒识别领域的研究热点。此外,真实跌倒的数据集量较少,并且机器学习算法在轻量级的数据集中达到的性能要远胜于重量级数据集,因此现阶段基于机器学习的跌倒检测算法仍在进一步研究中。

2.3 基于深度学习的跌倒检测算法

深度学习是当前最为热门的一项技术,广泛应用于多个领域,尤其在图像识别方向获得显著成就,其中CNN在人体动作识别领域发挥重要的作用,2014年Girshick等[42]提出R-CNN(region-CNN)算法进行目标检测,该算法在PASCAL VOC检测数据集上完胜传统的DPM(deformable parts model)检测算法,而后便不断出现各种基于CNN架构的跌倒检测识别算法,CNN在跌倒检测领域已占据绝对的领导地位。基于深度学习的跌倒检测算法与基于机器学习的跌倒检测算法类似,唯一的区别是自主选取特征,并且拥有强大的学习能力。以下从CNN、RNN(recurrent convolutional neural network)及AE(auto encode)三个方面介绍跌倒检测算法。

2.3.1 基于CNN的跌倒检测算法

现阶段已有大量研究文献表明CNN算法在检测跌倒领域取得了显著的性能,具体可分为CNN、1D CNN(one-dimensional convolutional neural network)、OF CNN(optical flow convolutional neural network)及3D CNN(three-dimensional convolutional neural network)[19]。

(1)CNN

Yu等[43]提出了基于CNN的跌倒检测算法,该算法将码本背景减除法提取出人体轮廓作为特征输入到CNN中,通过标识分类不同的人体活动(如站立、躺下)来区分人类正常活动与跌倒等异常行为,可达到96.88%的跌倒检测率。然而跌倒与躺下动作的轮廓剪影相似度较高,测试结果中含有误判的实例。而Silva等[44]设计出基于CNN的跌倒检测算法的多流学习模型,该模型采用可分离的并行网络架构便于将多种高级手工特征分别输入对应的VGG-16网络中训练,当其中一条特征流出现异常时利用其他特征流进行纠正,最后将学习的最优秀的网络与输出相关联,该模型测试后能够达到98.77%的准确率,但其选择的光流、人体姿态和RGB特征都属于图像的范畴,算法的一般适用性有待考量。

但是,基于惯性传感器采集加速度或信号等数据的CNN跌倒检测算法在后期可进行降维处理或映射成图像格式来检测跌倒。Yhdego等[45]提出将加速度数据提供给CNN学习跌倒信息,他们利用小波变换将加速度值转换成图像,再采用迁移学习在图像上训练深度CNN模型。为了提高准确率,还在谱系图像中进行数据增强,补充了有限的标记的跌倒数据,最终该方法的跌倒准确率达到了96.43%。Abdulaziz等[46]提出降维处理特征数据的跌倒检测算法,其采用多线性原理成分分析对采集的数据进行特征降维,再基于杀手启发式优化的AlexNet卷积神经网络学习特征,其中应用了5层卷积层来优化分类器,激活过程与高计算量有助于提高检测的准确性,最后经过仿真实验发现该算法精确率达到了99.45%。然而,跌倒动作与类跌倒动作易产生混淆,在跌倒过程中,所选择的特征起到决定性的作用,优化的学习分类器和特征选择过程能提高算法的性能。

CNN以一张图像作为输入,在跌倒检测中可用于处理视觉传感器的图像和惯性传感器转换的图像,为了提高检测性能,研究员们根据数据自身属性采取不同的计算方法(如均值、求熵)选择优质的特征[47-48],在CNN的基本结构上进行改进[49],来提升检测算法的实用性。

(2)1D CNN

在处理由惯性、角度等传感器采集的一维信号数据时,除了将一维数据映射成二维图像外,还设计出能够处理一维数据的1D CNN。Zhang等[50]提出多视角深度学习框架的检测跌倒系统,他们将多个时间序列流作为多视图的一维图像输入CNN中,其能了解隐藏的非线性模式,并利用完全连接的神经网络融合所有学习模式,在包含跌倒及日常活动的数据集测试后发现该系统检测率达到了91.5%。然而该算法基于智能手机采集数据,算法的计算复杂度越高对硬件设备的要求越佳,个人隐私和系统安全性的问题并未解决,它们仍受到较高的关注。Bolic等[51]则基于雷达传感器辅助检测跌倒来避免上述问题。他们提出学习多层次特征,将二次处理后的慢时间序列输入到1D CNN中训练目标模型,并采用全局最大池技术提高模型的可分辨性,获得了92.72%的准确率。Xia等[52]提出新型自动雾检测系统,对比雾步态与正常步态区分异常,其中一维加速度数据在网络模型中以流线型的方式自动学习特征,消除了手工特征的需要和特征选择,达到了99.85%的灵敏度。但基于雾的数据集内容不够丰富,对实验对象的测时间较短且需要在特定的环境进行测试。此外,不同年龄段的被测者的步态等行为存在差异,实验应当按照年龄分组测试,确保实验严谨,获得精确的检测系统。

1D CNN的维度低,类似于滑动窗口,在行为识别中一般处理序列信号数据,建立序列模型。可直接处理惯性传感器(如加速度计)采集的时序信息,学习不同动作特征和自动选择特征,在跌倒检测实验中同样实现了良好的性能。

(3)OF CNN

OF CNN算法的特点是由光流作为二维图像数据特征,从而追踪目标的动作,解决因遮挡物而造成前景难以分割的问题。Wang等[53]提出PCANet网络来检测跌倒,采用光流法提取RGB图像中的特征,但花费时间过长,于是Núñez-Marcos等[54]采用VGGNet-16网络改进图像处理的光流和卷积网络结构,由于视频是由连续的单帧堆叠呈现,跌倒识别只需检测出几个相邻的帧即可,为描述两帧之间的位移矢量,他们使用了tvl-1光流算法[55]处理数据,光流公式如下:

其中,I0和I1是图像对,x表示为x轴上的像素点,u=(u1(x),u2(x))T是二维位移场,λ表示为相对权重,E代表能量函数。在数据处理过程中,RGB图像会转为光流图像并输入神经网络学习,最后的结果表明其精确度为83.02%,且在各个公开数据集中获得最优性能,但该算法极易产生位移场,使得检测精度降低,另外tvl-1算法虽能去除静态背景,但会造成各种背景噪声,无法获取完美的前景。针对以上问题,Chhetri等[56]提出了增强动态光流的跌倒检测算法,通过公式(2)进行修正能量,增强光流,并且在公式(1)中添加了排序函数,如公式(3):

其中,d是一个参数的向量,S(q| d)+S(t|d)是每个时间和以后时间q的排名函数的得分,主要目的是在动态光照下提高分类精度,降低数据处理时间。该算法同样是先计算RGB视频中的光流信息进而转变成光流图像,通过秩池方法将光流图像变为动态光流图像,并将单个动态光流图像融合为一幅图像,减少处理时间的消耗,最后输入CNN算法中。结果表明该算法的特异性及敏感度达到93.04%,精确度达到91.4%左右。但是,该算法未考虑到长期动作演变的局限,基于OF CNN的跌倒检测算法仍需进一步研究探索。

光流能够在连续的图像中检测到细微的变化,将光流作为特征运用到CNN中不仅能削弱视频中光线变化影响目标检测的问题,而且动态光流技术能将视频汇总为单个图像的机制,有助于提高图像预处理步骤的性能。一些空间序列跌倒检测算法如表2所示。

表2 空间序列的跌倒检测算法Table 2 Fall detection algorithms for spatial sequences

(4)3D CNN

3D CNN能够同时处理时间序列与空间序列数据,具备超强的学习人类行为的能力,Ahn等[60]基于3D CNN的跌倒检测算法处理连续运动视频,该算法提高了以视频图像作为输入的跌倒检测系统的准确率,与基于3D人体骨骼信息[61]的算法相比,避免了骨骼结构扭曲的形变,能检测出慢速跌落,通过TST数据集实验获得准确率96.9%的实验结果。Li等[62]同样提出基于3D CNN的跌倒检测算法,该算法首先通过Kinect收集的数据来训练3D CNN,然后再将新收集的数据输入到3D CNN中来微调网络,利用时空模式区分正常行为与跌倒状态,最后输入视频流测试三维CNN。该模型获得更精准的检测效果、缓解了泛化问题,并在自定义数据集中进行验证,结果发现该方法在跌落的0.5 s内检测跌倒能够达到100%准确率。但该实验样本集较少,在处理大型数据集时性能存在不确定性,因此可以采用数据增强手段增加数据量,避免产生模型过拟合的问题。Kasturi等[63]基于kinect深度相机采集的视频数据输入3D CNN中进行跌倒检测,该算法将视频帧堆叠成立方体结构输入3D CNN,观察不同帧数对三维内核的影响,进而获得良好的模型,通过数据集URFD进行跌倒检测实验后发现在训练与测试集上都达到了100%准确率。若有大量的真实跌倒数据将能探究层次更深、鲁棒更强的网络结构,进而实现泛化应用。

此外,自然光照会大幅度影响数据质量,造成检测与分类精度下降,Kim等[64]针对该问题采用热摄像机采集热数据集,再输入3D CNN中学习人体在时空维度的特征,进而实现日夜监控,全天检测,最终达到了90.2%的平均精确度。

类似地,双流卷积神经网络(Two-Stream CNN)[65]具有时间网络和空间网络,能够在时空领域融合抽象特征,进一步提高网络性能。在跌倒检测算法中,从给定的数据集中提取单个特征(如光流、轮廓)被称为单流体结构,双流或多流结构会提取多个特征表示。Simonyan等[66]将RGB图像与光流位移结合作为运动特征,由CNN算法识别活动。Zhi等[67]提出基于Two-Stream的跌倒检测算法,以3D CNN和VGGNet-16作为输入,同时去除背景干扰及增添光流信息,再将两个网络中softmax融合作为Two-Stream CNN的输出,实验结果显示Two-Stream CNN能够达到96%的检测率。Khraief等[68]则根据视频运动之间的特征提出了多流卷积神经网络,以RGB、深度、运动及形状四种特征提取四种模式,并且根据特征的关联度附加权重,使得多流网络互补信息,完善整体性能。其中,为了提取深度特征,作者放弃了手工特征,而选择提取光流的大小和方向,其中光流幅OFmag与方向OFphase的相位信息如公式(4)、(5):

该算法的四种特征经过融合后,利用迁移学习与数据增强技术扩大数据量,而后输入VGGNet-16网络训练模型,最后在标准公开数据集中最高可获得99.72%的准确率。由此发现多模态特征训练的深度网络模型能避免当前存在的环境问题(如无法覆盖区域),可同时用于在室内外场景的跌倒检测。

3D CNN比二维卷积多出的时间维度使得其能直接处理视频数据,而不用逐帧分析,能够更有效地捕捉各帧之间的运动信息,进而建立更为精确的模型,察觉出人体运动的微小变化。一些时空数据的跌倒检测算法如表3所示。

表3 时空数据的跌倒检测算法Table 3 Fall detection algorithms for spatio-temporal data

2.3.2 基于RNN的跌倒检测算法

RNN拥有“记忆”信息的功能,可将前一个神经元的输出直接作用于下一时间戳的自身,长时间留有历史信息,适于处理长时相关性任务。Mauldin等[70]利用含有GRU(门控递归单元)的RNN来检测跌倒,其中,GRU能够解决RNN在反向传播中的梯度问题,GRU与LSTM网络拥有相同的收敛性,但训练参数少,计算量小,属于轻量级深度学习体系,因而在智能手机等小型终端设备的行为检测中较受欢迎。LSTM[71]算法因其特殊的递归神经网络,能解决长序列过程中梯度爆炸与梯度消失的问题,主要的运算公式如下,→和←分别代表前向和后向传播,xt为当前的时间信息,ht-1为以前的隐藏输出,ht为当前的隐藏输出:

最后的向量hT是前向和后向过程的输出的连接向量,如下所示:

它可以利用门单元来控制网络中的长期依存关系达到保存长期记忆的功能,因而更进一步提高了跌倒检测的效率。Ge等[72]提出基于共显增强的RCN(recurrent convolutional network)的跌倒检测算法,RCN由分段的RNN、CNN和LSTM组成处理视频相关帧,共显增强方法能突出视频中的人类活动区域,用于增强RCN对视频各帧的特征学习,RCN在开放的数据集进行实验,准确率高达98.96%。另外,根据RNN继承历史信息及收集未来信息的特性,双向RNN、双向LSTM(Bi-LSTM)算法相继被提出。其中Bi-LSTM能够同时处理过去与未来的元素,相对于LSTM拥有更高的预测准确率。Taramasco等[73]针对跌倒检测算法,采用了LSTM、GRU和Bi-LSTM三类循环神经网络算法,Bi-LSTM用于处理临时数据序列,同时考虑过去与未来的信息,与LSTM传递信息方式相同(图3)。

图3 Bi-LSTM原理图Fig.3 Bi-LSTM principle diagram

运算过程如下列公式:

表4 基于时间序列的跌倒检测算法Table 4 Time series based fall detection algorithms

跌倒检测的评价指标为准确率、灵敏度及特异性,具体计算公式如下:

其中,T P为真阳性,FP为假阳性,TN为真负值,FN为假负值。

2.3.3 基于AE的跌倒检测算法

特征的选择和融合能产生更高级的特征集,PCA、LDA和其他非线性特性融合机制推动基于深度学习算法的研究,而近年来AE[82]算法代替了非线性特征融合的方法。

2016年Jokanovic等[83]提出基于DCNN的跌倒检测算法,由堆叠的AE和softmax构成深度网络模型,通过AE自动学习,捕捉时频特征的复杂性,并且能够将底层特征反馈给分类器。与78%的传统算法(如PCA)相比,该算法的准确率达到了87%。2017年Droghini等[84]提出了基于深度卷积的自动编码器的跌倒检测算法,该算法采用了端到端的策略利用声音传感器采集音频,(由于日常动作在生活中占据绝大部分)将日常动作事件的音频训练成识别模型,其中,实验分别在安静与嘈杂的环境中测试,结果表明在声音清晰的环境中跌倒检测算法的准确率达到94.61%,在噪声环境下跌倒检测算法的准确率为95.02%。虽然该算法在噪声环境中检测并达到较高的准确率,但音频数据中与目标声音不同时都能判定为噪声,而跌倒的数据与其他噪声的区分标准并未指明,并且噪声应当具体分类(如物品噪声、人声),便于提高检测性能。2019年Zhou等[85]基于三维卷积残差块提出AE跌倒检测算法,该算法以高精度的区域提取技术提取图像中的特征区域,并通过重构误差技术检测跌倒与日常活动,但在经过两种跌倒数据集的训练与测试实现了88.7%的检测精度。2020年Cai等[86]提出了多任务的沙漏卷积自编码器的跌倒检测算法,该算法通过沙漏卷积层扩展神经元的感受野来提取多尺度特征,采用多任务机制并行完成跌倒动作的检测和帧重建任务(增强特征代表性),以便于下一步的分类,且该浅层网络取得了92%的准确率。

本小节主要介绍了RNN、CNN和AE的跌倒检测算法以及其性能。根据神经网络的特点,发现RNN与时间维度关联度高,常用于一维时序的深度挖掘,CNN可分为一维、二维和三维网络,其中三维卷积神经网络的算法可以同时获取时间信息和空间信息,实现有效检测,但三维算法在研究上存在着技术困难,目前尚未完全解决。AE不仅可以数据降维,而且能对数据去噪,能够完成无监督的自动动作特征提取,提高动作分类的精度,降低误差。在跌倒检测中,各类算法分别含有不同的优势,在现实应用中可根据具体要求选择对应的算法。

3 混合算法

为了完善跌倒检测算法,优异算法的步骤被融合,阈值分析法、基于机器学习的跌倒检测算法及基于深度学习的跌倒检测算法相互结合,进而更好地应用于跌倒检测系统中。

3.1 结合阈值

马宗方等[26]使用Kinect传感器检测人体发生的异常情况,通过计算深度图像中的关节点相对位置与速度,设置关节点熵阈值与人体中心点速度阈值,当同时超过两个阈值则判定发生跌倒。李文阳等[87]使用Kinect传感器检测人体发生的异常情况,通过处理RGB-D图像得到人体骨骼及位置信息,并实时计算人体中心点的空间位置、运动速度和离地高度等参数,设定了速度阈值与高度阈值判定异常,实验达到了92.7%的准确率,但Kinect传感器无法覆盖区域进行全方位检测,同时被测者身体易产生遮挡的问题,检测精度还可进一步提高。

Chi等[88]研究了装有三轴加速度计的可穿戴式跌倒检测系统,由于在发生跌倒的几秒内人体加速度会经过多次变化,该系统通过检测加速度阈值和时间阈值判定是否有失重、撞击、静止三个连续的动作发生,一旦检测到连续动作则判定发生了跌倒,经实验研究表明该系统的检测准确率达到97%。同样地,Wang等[89]采用佩戴在胸部的可穿戴式传感器系统,他们将加速度三次积和角速度三次积作为新的惯性参数,该算法能够准确区分跌倒动作与日常活动,经过交叉验证后完成了99%的检测率,但该方法在不同的数据集中测试时都出现动作误判的现象,特别是一种姿势过渡到另一种时出现明显的加速度变化。

基于阈值的跌倒检测算法不受体重、性别等其他因素影响,主要取决于姿势的变化,相较于其他算法更容易设置,但易出现动作误判的错误,为了提高跌倒检测的准确率,人们又将该算法结合了基于机器学习的跌倒检测算法进行跌倒检测。

Shahzad等[90]基于阈值的跌倒检测算法结合多核学习SVM算法检测跌倒事件,该算法先根据提前设定的阈值选出异常的数据,再通过多核学习SVM算法分类事件。该算法经测试发现在腰部与大腿周围有较高准确率,分别为97.8%和91.7%。同时该系统采用的算法有效降低了误报率,唯一的不足之处是计算量较高。Tsinganos等[91]研究了基于阈值的跌倒检测算法结合KNN分类算法来检测跌倒,增加的KNN模块提高了总体精度,在MobiAct数据集测试获得了97.53%的敏感性与94.89%特异性,但无法明确在真实环境中该系统的准确率。Ning等[92]基于离线阈值与梯度增强树(GBDT)的算法研究人体行为与姿态,该算法可在活动期间有效检测跌倒等异常行为且能达到96%的灵敏度与准确度,相较于单一的DT,改进的算法获得了更高的精度。除了以上的混合算法,跌倒检测还结合人ANN[93-94]、隐马尔可夫模型(HMM)[95]、RF[96]等算法。

Alo等[97]则是将阈值与自动编码器结合来检测跌倒,该算法提出融合加速度值的幅值向量、pitch和roll的特征,避免与手机的位置移动或固有方向不一致带来的影响,同时采用深度累加的自编码器算法提取特征进行学习,其能够识别复杂的活动细节,并获得97.13%的准确率。但在不同的训练样本或网络参数中表现出不同的性能,且训练过程耗时较多,选择合适的深度自编码器的参数对系统的性能将有很大的帮助。结合阈值的跌倒检测算法如表5所示,综上,经由阈值计算的检测算法使用惯性传感器居多,实验数据为实时采集,根据精确度等评价指标,该类算法在实验室阶段已达到了较高水平。然而由年轻人携带便携式传感器模仿老年人跌倒而收集的数据效果并不理想,老人的姿态与身体状况相对于年轻人有很大差别,因此需要加深该算法在实际中的研究。

表5 结合阈值的跌倒检测算法Table 5 Fall detection algorithms combining thresholds

3.2 结合机器学习

Kong等[102]考虑到视频图像易受光照影响,选取人体骨骼特征训练网络。在最大似然法训练出模型的基础上,采用KNN或SVM分别对站立和跌倒两类动作进行判别分类,同时通过快速傅里叶变换对输出图像进行加密和检测。实验测试获得良好的检测效果并有效保护了测试者的隐私。但二分类的跌倒检测自身含有局限性,类跌倒动作(如躺着、趴着)并不能直接归类为跌倒。于是,Thakur等[33]提出一种多分类的K-NN跌倒检测算法,通过结合AdaBoost算法来增强分类性能,增强分类器可表示为公式(15)、(16):

其中,bn x中x为输入,h(xm)为输出假设,n为迭代变量,Dt为训练误差之和,Bn-1(xm)为应用AdaBoost的增强分类器,a(n)h(xm)为正在增强的机器学习分类器,同时该算法采用k-folds交叉验证来消除数据过拟合并减小误报率。经过实验分析,跌倒、躺下、四肢着地及其他日常活动等七类跌倒与类跌倒的分类检测准确率都达到了99%。

蔡文郁等[103]则是通过多次分类降低误报率。他们以视频帧数据中的人体特征点作为输入,利用SVM做首次分类,再将判定为跌倒的数据输入到SVM-MultiCNN模型进行二次分类,该算法不仅在检测准确率达到96.8%,并且测量单帧耗时缩短近一倍,提高了跌倒检测的效率。刘峰等[104]提出将YOLO目标检测与深度森林相结合的跌倒检测算法,通过YOLO定位运动目标,降低背景物体的影响,同时他们提取了RGB-D图像中头部的时序运动特征,并估算地平面方程,进而利用深度森林算法进行特征分类,该算法能有效检测覆盖范围的跌倒事件,达到97.2%的准确率。随着YOLO的系列发展,YOLO-v3改进了backbone网络,从原先的darknet-19升级为darknet-53,相较于之前的版本提高了检测精度。赵心驰等[105]基于XGBoost与YOLO-v3的跌倒检测算法,采用YOLO-v3网络选定检测区域,再利用姿态估计网络提取人体关节点特征,最后输入XGBoost中训练,该算法能达到98.3%的跌倒检测率。

综上,结合机器学习的跌倒检测算法根据各类标准数据集的属性设计了最适用的分类器,进而达到接近完美的检测率,其次针对自然光、遮挡和假阳性等问题提出合理的解决方案。特别是YOLO目标检测模型,现阶段已设计出YOLO-v4,平均精度比YOLO-v3高出10%,同时减小了计算量,大大提高了YOLO模型在目标检测中的实用性[106]。因而YOLO系列算法应用于跌倒检测中成为未来的重要研究方向。

3.3 结合深度学习

根据深度学习各算法的优点,将多种算法相结合逐渐成为主流趋势,比如利用CNN与LSTM分别处理空间特征和时序特征已是较为普遍的跌倒检测算法。Lie等[107]基于LSTM与CNN提出跌倒检测算法,分别利用CNN和LSTM状态单元的递归神经网络来提取输入帧的二维人体骨架和处理时间骨架序列,根据结合空间特征与时间信息进行站立、行走、躺下和升降动作分类,最后该算法在经过自定义数据集训练和测试后达到了90%的准确率。但二维骨架是人体相连的关节点在平面上的投影,相较于三维少了深度信息,对人体信息的描述不够精确。Tao等[108]利用LSTM与RNN的研究三维骨骼数据中的人体特征姿态,并利用混合网络算法学习不平衡人体姿势用以检测跌倒,可达到91.7%的跌倒检测率。同样利用三维骨骼数据进行跌倒检测,Tasi等[109]采用了1D CNN与DNN算法,通过剪枝技术对骨骼提取的结果进行细化,突出特征点,减少了模型参数与计算次数,获得95%的精确度。

曹建荣等[110]研究出运动特征融合CNN的跌倒检测算法,他们利用改进的目标检测网络YOLO-v3标记目标并分离前景,而结合运动特征与CNN模型提取的特征,实现人体跌倒分类与检测,结果达到了98.3%的准确率,并且该算法能较好地抗噪抗光照干扰。但Lu等[111]认为低维CNN难以充分获取运动信息,并且跌倒数据集视频类居多,因而提出基于3D CNN与LSTM的跌倒检测算法,通过3D CNN获取视频人体运动特征,并采用LSTM形成空间注意方案定位每一帧中的感兴趣区域,经过测试在实验环境下取得了100%精度。Hsieh等[112]考虑了算法在现实生活中的实用性,提出了3D CNN与反馈光流卷积神经网络的跌倒检测算法,该算法在光流进入卷积层前采用基于规则的滤波器来监控变化的光流,可检测到人体行为框架,当检测到跌倒的行为顺序时判定为跌倒。研究结果表明该算法能区分跌倒与正常的躺姿,且在模拟真实家庭环境的正确率达到98%。

综上,结合深度学习的跌倒检测算法从维度、特征、数据格式等方面探究人体运动,利用各算法优势不断改进,进而解决跌倒检测中呈现的各类问题,并且取得了显著的检测成果。然而老人的跌倒数据集较少,研究员们普遍采用相关的公开数据集进行跌倒研究,造成训练与测试脱离真实场景,偏离真正的研究对象,该类算法同样需要整理收集老年人的跌倒数据,由实验室测试阶段过渡到现实世界的实际应用。

4 讨论

跌倒检测算法在跌倒检测和跌倒预防中发挥重要的作用,包括基于阈值、基于机器学习和基于深度学习的跌倒检测算法根据自身的优势进行跌倒检测,各跌倒检测算法都能够达到极高的精确度,如深度卷积与LSTM已能成功地从惯性传感器数据中识别使用者的活动和步态,提取的特征也能以多模态的形式呈现,削弱或避免了光线、遮挡、噪音等问题,为此将跌倒算法运用到实际生活中是当前急需考虑的问题,本文基于上述的研究对跌倒检测的未来发展大胆地提出自身见解:

(1)随着研究的深入,单一的算法表现出一定的局限性,难以囊括多种场景下的跌倒行为。但混合算法表现出较强的优越性,通过结合算法的优点处理多环境、多姿态的跌倒分类。比如机器学习算法中的支持向量机(SVM)能够根据提取的特征实现优秀的分类效果,因而常与阈值分析法结合来处理跌倒检测问题;深度学习算法中的卷积神经网络(CNN)可以自动学习数据的空间特征,能够根据输入数据的属性准确地预测和分析,所以常与长短期记忆网络(LSTM)相结合,用于分析含有时空信息的视频流数据。表6对比了本文所提及文献中相同数据集的各类算法及精确度,在UMA FALL与multiple cameras fall detection dataset数据集上混合算法优于单一算法,而在URFD数据集上单一算法的性能并不弱于混合算法,因而单一算法的价值仍在探究中,但混合算法在各标准数据集上更具有稳定性。而在FDD、MobiAct dataset和Le2i数据集上对比不同的混合算法,可以发现算法结构学习的人体信息越充实,算法达到的精确度越趋于完美,因此设计跌倒检测混合网络时,应尽可能地获取多维度、多特征或多模态信息,进而提高跌倒检测算法的高效性与实用性。

表6 跌落检测方法的比较Table 6 Comparison of fall detection methods

(2)近期热门的“注意力机制”被广泛运用于自然语言处理,通过编码与解码的框架提取文本上下文信息,而根据人体运动学的研究表明跌倒动作属于一系列连续的肢体行为,检测传感器得到的加速度或生理信号呈连续性波形,因而可将注意力机制运用于处理时间序列的1D CNN、RNN或LSTM中,增强数据处理能力。

(3)CNN在图像处理领域获得瞩目的成就,但其只能处理欧式空间规则的二维结构图。而现实生活中含有大量不规则的拓扑结构,早前有研究发现图卷积神经网络(GCN)可用于处理该类数据,GCN也逐渐被用于各交叉领域中。其中,人体关节点相互连接形成类似的无规则图结构为跌倒检测提供良好的研究条件,现已有用于跌倒检测中[113]。为此可将GCN与CNN结合使用,采取多模态的数据或多任务机制提高跌倒检测性能与落实的几率。

(4)在现实中跌倒应用在受到“攻击”时需要跌倒检测算法具有良好的健壮性与稳定性,而算法的这一方面极少被考虑到。因而如何加强算法的鲁棒性是跌倒检测联系实际应用的重点。

(5)人流量较多车站或商场是老年人跌倒的高发地点,而单人跌倒检测算法在该场景中能否保持并不适用,多目标的跌倒检测算法、多模态传感器的应用(如视觉传感器和红外传感器)同样是今后的研究方向之一。

5 结语

跌倒已成为世界老年人高死亡率的原因之一,跌倒检测与预防的研究热度一直居高不下,各式各样的监测系统层出不穷,检测识别算法更是经历多期更新换代。本文综述了跌倒检测算法的研究进展,分别从单一算法与混合算法的角度阐述跌倒检测的发展与改进,详细介绍了阈值、机器学习和深度学习在该领域中发挥的重要作用,其中深度学习模型是该领域的前沿算法,并且总结了所使用的标准数据集。在未来,可穿戴式设备与视频监控仍是跌倒检测方向的发展主力,而轻量级CNN不仅能识别人体特征,而且能有效降低计算时间,在移动设备的目标检测上具有广阔的前景,另外图卷积神经网络作为提出的新框架,不仅能学习动态的图数据的结构、属性和动态信息,而且能处理不规则的空间结构的图数据,因而实现动态图数据中异常行为的检测。因此,可以预估今后跌倒检测的发展趋势将更倾向落实于生活实际的应用及多元化的结合CNN及其拓展算法。

猜你喜欢
阈值准确率传感器
康奈尔大学制造出可拉伸传感器
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
采用红细胞沉降率和C-反应蛋白作为假体周围感染的阈值
简述传感器在物联网中的应用
小波阈值去噪在深小孔钻削声发射信号处理中的应用
“传感器新闻”会带来什么
跟踪导练(三)2
高速公路车牌识别标识站准确率验证法