徐弘毅 鲍蓉 侍亚东

摘要:随着人口老龄化的形势不断严峻,养老成为社会一个焦点话题。大多数年轻人选择背井离乡或者疲于工作,造成空巢老人数量不断增加。而在老人独处时发生安全隐患概率明显增大。本文以计算机视觉为基础,探讨老人独处时发生跌倒行为的现象的解决方案,介绍了特征提取和深度学习两种主流思路,详细说明了其发展和常用方法,同时对公开数据集进行利弊分析。最后总结了全文使用的方法同时阐述了对该技术未来发展方向的见解。

关键词: 养老机器人; 深度学习; 特征提取; 行为检测; 危险预警

中图分类号: TP18        文献标识码:A

文章编号:1009-3044(2021)03-0211-05

Abstract:As the population ageing situation continues to be severe, elderly care has become a hot topic in society. Most young people choose to leave their homes or get tired of work, resulting in an increasing number of empty-nest elderly people. The probability of potential safety hazards when the elderly is alone increases significantly. Based on computer vision, the solution to the phenomenon of falling behavior when the elderly is alone is explored, two mainstream ideas of feature extraction and deep learning are introduced, and its development and common methods are explained in detail. At the same time, the pros and cons of public data sets are analyzed. Finally. Summarizes the methods used in the full text and expounds insights into the future development direction of the technology.

Key words:pension robot; deep learning; feature extraction; behavior detection; hazard warning

引 言

当今老人的监护问题成为社会焦点,前段时间的新闻报道说“65岁+”5年后将破2亿,2050年中国60岁及以上老年人口将接近5亿,应对老龄化最重要窗口期开启。所以在这个大趋势背景下,迫切需要一个老人监护产品来帮助年轻子女上班时实时关注老人健康,而老人监护一大重要功能即行为识别检测,老人在家的行为例如站立,跌倒等能够真实反映老人在家的状态。本论文即对这项功能进行深入研究。

目前,行为识别已经成为计算机行业的热点问题,大公司都致力于研究这一非常具有前景的问题。行为识别具有广泛的应用前景,目前社会最大的应用即监控报警技术,目前行为识别还离不开视频或图像技术,所以目前大部分行为识别都基于神经网络与图像卷积处理。一开始行为识别主要基于的是特征提取,这是非常有效并且在实时更新的,众多特征提取算法在这些年喷涌而出,而随着AI技术的发展,在基于原本行为识别的基础上更是可以添加机器学习的算法,让识别更加精确,更具有鲁棒性,具备应对各种极端和意外情况的发生。

近年来,国内国外很多优秀的学者在研究行为识别方面取得了很多成果,并且也发表了很多优秀的论文,但是那些论文更多的是基于人体行为识别本身进行讨论,而未考虑到行为发生过程中例如老人跌倒的情况,从科研理论算法到真正进入社会应用是需要更多的测试和归纳总结优化的。鉴于此,本文首先对公开数据集进行了介绍,随后研究了当今行为识别检测的现状和目前仍存在的问题,随后讨论当今流行的基于特征提取的跌倒检测识别和基于深度学习的跌倒检测识别,对它们的实现原理和实现工具算法等进行详细的综述与实践总结,最后分析结果得出本次实验的结论,分析该领域的研究趋势,旨在对老人监护产品中的老人行为识别监测提供不可或缺的帮助。

1 公开数据集介绍

一个好的模型离不开一个好的数据集训练和测试。在跌倒检测方面有不少数据集。

UR Fall Detection Dataset由University of Rzeszow创立。该数据集包括70个活动序列。其中30个为跌倒情况,40个为日常情况。数据记录方面使用了2台Microsoft kinect相机和相应加速度计记录跌倒事件。ADL事件即日常生活事件由1台相机和加速度计记录[1]。同时每一个活动序列都采用PS Move和x-IMU设备收集传感器数据。

Fall detection Dataset创建目的在于研究室内跌倒检测。数据集包括21499张图像,记录着8个不同视角组成的5个房间中的景象[2]。参与数据集创建共有5人,两个男性三个女性分别记录站着,坐着,躺着和爬行动作。

Multiple cameras fall dataset创建于2010年,该数据集由8个摄像机记录的24个场景。其中前22个情景包含跌倒和正常情况,后2个仅仅包含正常情况[3]。

UCI Human Activity Recognition Using Smartphones DataSet有美国加州大学欧文分校创立。数据包含30位年龄在19-48岁的志愿者的数据,借助于手机加速度传感器和陀螺仪传感器记录了行走,上楼梯,坐,站立,躺下,下楼梯6个行为[4]。

对于上述四个数据集总结如表1。

2 基于特征提取的跌倒检测识别

2.1特征提取技术发展概述

特征提取即提取人体图像采集,然后将图像进行特征分析,进行分类等操作,最终达到行为识别的效果。特征提取分为全局特征提取和局部特征提取。全局特征提取需要对背景进行优化,随后能对人体轮廓进行提取,Davis等人最早使用了轮廓来识别描述人体的行为信息,这是基于二维的方法进行人体识别。随着特征提取的发展,局部特征提取也成了目前研究的热点,最早由1975年Johansson的实验,作者将人体划分为12个特征点,通过这些点模型对人体的行为识别以及特征点提取起到了非常大的引导作用,有了这个特征点方法,可以方便准确地对人的行为进行划分。

2.2常见特征提取方法

2.2.1基于特征点提取的轮廓识别方法

采用该方法主体流程图如图1所示:

首先进行的工作是图像降噪,图片往往有很多背景会扰乱人体轮廓的识别,这些干扰往往是由于颜色引起的,所以图像去燥以及灰度化是对人体识别最先做的工作,图像去噪有多种方法,这里采用双边滤波去燥和邻域去燥相结合的方法。

邻域去燥是指对局部相似度分析,从而共同决定在一个邻域内的像素值,邻域运算是图像去燥最基础的图像处理工具,常用的有8邻域去燥,8邻域就是判断周围8个像素点。如果这8个点中255的个数大于某个阈值则判断这个点为噪声,阈值可以根据实际情况修改。

而双边去燥是将一种非线性滤波器,它采用加权平均降噪方法,这和例如高斯去噪的滤波原理是一样的,高斯去噪仅仅考虑空间欧式距离,而双边滤波去噪正是在高斯去噪的基础上加入了高斯灰度距离信息的权重考虑,在邻域内,会导致越接近中心点灰度值的点的权重更大,灰度值相差大的点权重越小。其中空间距离相关高斯函数表达式如式1所示其中(xi,yi)为当前点位置,(xc,yc)为中心点的位置,灰度距离相关高斯函数如式2所示,其中 gray(xi,yi)为当前点灰度值,gray(xc,yc)为中心点灰度值:

相比之下双边滤波去噪的优点是相比于高斯滤波,多考虑了一项内容权重,会使最终效果更好,而缺点是由于多计算了一项权重,会让计算负担和运算时间变长。最终两者相乘即最后的双边滤波卷积模版。

其次是图像灰度化,图像灰度化,目的是去除颜色的影响,让像素类型从255变成0-1,变成1维像素表示,这样可以大大减小工作量和计算量,同时易于提取需要的轮廓信息。同样,灰度化方法也有很多,例如分量法,最大值法,平均值法和加权平均法,这里选择采用加权平均法,让生成的图像相对RGB三分量更加合理。加权平均法公式如式3所示其中[ωR]、[ωG]、[ωB]分别是R,G,B的权值,一般分别取0.299,0.587,0.114时得到的效果最好,这是通过人眼的生理特点得出的最优参数。

然后是轮廓描绘,对于该方面有很多算法算子实现,大多数选择canny算子,原因是在大部分情况下canny算子实现的效果较好,Canny算子通常基于Sobel算子产生的,Canny算子适用于不同的场合[5],Canny算子有很多可以调整的参数,所以允许根据不同的要求进行调整,所以非常灵活实用,其中还有个算法思想是非极大值抑制,是寻找局部像素点的最大值,然后沿着梯度方向逐个比较。设g1的幅值M(g1),g2的幅值M(g2):

2.2.2基于骨架特征点的行为识别方法

行为识别受到多方面因素的影响,例如光照,视角,背景等,这时候骨架关节点特征点提取的方法就极大可能回避这些问题,1973年Johansson发现人体运动可以通过关节点的移动来描述,有了这一理论后,对于行为识别的方法又提供了一个新思路。

人体骨架主要通过RGB图像进行关节点估计,随后追踪这些关节点的坐标位置,最终判断出人体的行为,每一时刻的骨架对应关节点都会被计算机或者摄像头设备记录下来,形成一系列的时间轴,随后匹配已经设定好的一系列时间轴在人体骨架提取特征点的基础上加入人工智能会更加精确[6],但是这里暂时只讨论运用图像识别的方法,暂不涉及人工智能领域方面的知识。

基于人体骨架提取特征点的行为识别可以识别出人体的各类行为,例如站立,坐,行走,摔倒等,满足监护老人安全的需求,而且人体骨架可以完美匹配任何人,无论是高矮胖瘦的人,都可以识别出骨架特征点,而且骨架的姿势和帧的时间轴也是固定的,不会随人和环境的改变而改变,所以这个方法的准确率是可以保证的。如图2为识别示例。

3 基于深度学习的跌倒检测识别

3.1深度学习发展概述

随着机器学习和人工智能的飞速发展,AI技术也被许多学者设想加入传统行为识别算法中,以提高算法的准确度和识别的成功率,自从发明出CNN后,许多关于使用CNN神经网络来辅助优化人体行为识别,也有许多相关的资料和源码供实验,后续还有RNN,KNN等衍生的神经网络算法,总体来说,引入了人工智能算法使得识别更加准确,目前人工智能仍处于上升期,后面还会有更多的算法以在行为识别上运用,而目前这些人工智能方法还具有一些或大或小的问题例如分类存在过拟合等意外性,还需要进一步优化,而本章即进行加入了人工智能算法后的人体行为识别。

3.2常用深度学习工具

由于近几年深度学习发展火热,使得深度学习工具有了跨越式进步,一方面提高了开发模型效率,同时降低了深度学习入门的门槛。

Tensorflow[7]是由Google公司独立开发的深度学习工具,是前一代深度学习工具DistBelief的升级款。Tensorflow核心正如其名字含义,即为张量的使用,引入张量的概念大大简化了开发流程。由于其完全开源,引来一大批AI爱好者使用,成为目前使用最广泛的深度学习库之一。

Torch[8]为Facebook公司开发的用于支持机器学习的科学计算框架。主要特点可以随时查看动态图,查看网络变化。同时torch开发团队重视用户体验,根据用户需求做出很多优化。所以torch成为适用于个人或者小规模团队开发更青睐的工具。

Keras是一个基于Theano的深度学习库。其主要特点有采用模块化各模块封装较好,上手简单,网络或网络组合使用更自由等。故依托于这些优点,keras同样成为目前主流深度学习工具之一。

Caffe是由毕业于UC Berkeley的贾扬清创建。同样作为一个开源库,使用语言为C++,同时和很多其他语言有很好的兼容性。目前应用于计算机视觉,自然语言处理,机器人等领域。

3.3跌倒检测方法

3.3.1卷积神经网络

卷积神经网络,即在网络层中部分层以卷积计算代替矩阵运算。关于卷积神经网络诞生可追溯到1962年Hubel和Wiesel对于猫大脑中视觉系统研究,提出了Receptive fields[9]的概念。在1980年福岛邦彦提出了包含1个卷积层和池化层的神经网络结构。在20世纪末法国科学家Yann Lecun首次将BP算法应用神经网络来降低损失,提出LeNet-5网络,此网络出现奠定了CNN发展的基础,但由于当时实现效果并不如主流的机器学习算法所以没得到大力推广。CNN大放异彩是在2012年Imagenet比赛中,采用Alexnet和dropout[10]方法使最终错误率降低了10%,直接导致CNN的大热。随后越来越多的人投入与CNN研究出现VGG[11],DenseNet,GoogleNet,SENet等网络。

在卷积神经网络中层的设定主要有5种分别为卷积层,激活层,池化层,全连接层。

对于卷积层,是一组平行的特征图,该层核心在于卷积运算,对于卷积运算及在特征图和卷积核在各自定义域上,卷积核每个部分像素点和矩阵对应部分点乘求和操作,数学符号可表达为式11所示,其中f,g分别代表特征图和卷积核的像素值。

通过卷积运算可以提取数据集中关于跌倒部分的特征,而不同的卷积单元因为权值的不同提取特征不同。

对于激活层,主要目的是为之前提取特征增加非线性特性,常见的激活函数有Sigmoid,Tanh,ReLu,Softmax。各个激活函数优缺利弊不同,需要根据实际问题进行考究。

对于池化层操作和卷积层相同,区别在于池化层分为平均池化层和最大池化层。主要用于对卷积层输出结果进行降维,增加模型泛化能力。

对于全连接层,在该层主要工作根据前面卷积层和池化层得出的图像特征进行组合,最终传送至分类器。

如果模型层数过多而训练数据过少则会出现过拟合现象,需要进行正则化。常见正则化方法dropout,其工作原理在每个训练批次中,通过忽略指定规模的特征检测器,减少过拟合现象。

网络搭建方面可以选择手动搭建,如图3所示网络为手动搭建网络。其中输入格式为247×247,输出为2×1。

同时更多地采用目前发展成熟的网络,如VGG,AlexNet,GoogLeNet等,在大多数场景可以有效降低拟合情况。

为了进一步提高准确度引入运动历史图(MHI),运动历史图即统计同一位置像素变化,并以一定亮度表现出来。基于上述卷积神经网络提取的人物区域,可以重点监察区域任务上半身的移动情况,出现过快现象及时预警。

总体来看,基于卷积神经网络的检测方法在人体检测,图像分割方面做得很好,但视频间各帧信息呈现独立性,会导致忽略关联性,尽管通过图像处理方法一定程度上增加关联性,但对最终准确率影响不是很大,仍有很大提升空间。

3.3.2 循环神经网络

卷积神经网络在图像特征提取,图像分割表现十分优异,但对于连续性或者前后关联性很强的网络卷积神经网络表现很差,由此产生循环神经网络。循环神将网络弥补了卷积神经网络在处理序列化数据的不足,同时为深度学习增添新的思想,广泛用于自然语言处理,图像识别。

循环神经网络,即以序列形式数据作为输入,每个节点类似于链表的结点,链式连接[4],重复进行同样操作的一种网络。广义上来讲循环神经网络隶属于递归神经网络范畴。真正意义上循环神经网络起源于20世纪80年代美国科学家基于Little神经网络创建具有存储能力的神经网络,即为Hopfield神经网络[12]。同时为了解决出现的长期依赖问题,Jurgen Schmidhuber及其合作者在20世纪90年代提出了神经历史压缩器[13]和长短期记忆网络[14],其中长短期记忆网络至今任被广泛使用。而后提出的双向循环神经网络[15],门控循环单元网络[16],XLNet[17]等模型,都为推动循环神经网络发展起重要作用。见解推进自然语言处理方面研究。

循环神经网络核心思想用循环的隐含层代替多重隐含层,如图4,图5所示为其与传统神经网络比较和循环神经网络展开图。由此可看出用循环隐含层代替了多个隐含层,而隐含层输出作为下一次隐含层一个输入,所以在合并隐含层个数的步数内循环神经网络具有记忆功能,可以记得合并的隐含层中间的关联,所以在具有序列特性数据表现良好。

循环神经网络特别对于文本数据相对敏感,由于在对老人跌倒行为检测时,输入的数据可以为传感器数据,前后帧具有很大的相关性,循环神经网络作为数据理解描述最合适之选之一[18]。同时还有思路,结合卷积神经网络和循环神经网络优点在视频上实现检测。此方法既借鉴卷积神经网络的对图像特征敏感性可以准确提取图像特征做图像分割,去除干扰项,同时利用循环神经网络对于序列数据处理能力强特点,去除干扰后更易于模型理解视频内容,从而做出正确判断。目前来讲考虑经济因素和模型效率,第一种思路即采用循环神经网络基于传感器数据的跌倒检测为常用方法。很多手环,App等借助于基础设备上传感器实现跌倒预警功能。

采用循环神经网络方法对文本数据处理的话速度快,检测准确率相对较高。但忽略图像细节容易造成一些上楼,跑步等行为误判为跌倒,虽然可以人为纠正,但仍需要不影响效率下结合一定图像细节来实现。

4 结语及展望

尽管行为识别在测试时取得了不同程度的效果,有的效果还是很好的,但是还需要考虑更多老人监护实际情况会遇到的情况,尽量提高方法的泛化解决问题的能力,以应对现实生活中会出现的各种各样复杂的情况。

首先,基于特征提取的跌倒检测。其中基于轮廓识别进行匹配分析行为识别,这会在一些简单场景以及一些设备简陋的情况下相当实用的算法,实现起来也没有难度,而且可以随时通过更改参数等途径根据实际情况优化算法,可以说很适合情况复杂的实际情况。在当今都是学术研究的行为识别领域,将学术转入现实生活还是非常有必要的。同时本文也分析研究了基于骨架特征点提取的方法以及人工智能行为识别的实现过程,这两者都有效一定程度上规避了一些客观因素的影响,同时出现bug的概率也会大大减小,未来还可以在两者结合的方向更加深入,在骨架特征点提取的方法基础上加入人工智能的算法会更加增加准确度,同时大大缩小两个算法本身的缺点。

目前跌倒检测发展受阻主要原因有算法发展和设备之间的矛盾,由于算法不断更新迭代,而部分算法要求设备越来越高使得真正准确率高的算法实用起来难。此外还有数据集的欠缺,目前对于行为检测数据集很多但对于跌倒检测数据集仍有欠缺,小程度的影响该技术发展。故对于未来跌倒检测发展观点主要有:

1)行为识别产品的算法得到优化,算法和设备矛盾得到一定缓解,系统的识别准确率和实用性更好。

2)扩充更多关于跌倒检测公开数据集,便于开发者研究。

4)硬件上越来越小巧,运行速度快,低功耗,价格越亲民,用户体验度好。

参考文献:

[1] Kwolek B,Kepski M.Human fall detection on embedded platform using depth maps and wireless accelerometer[J].Computer Methods and Programs in Biomedicine,2014,117(3):489-501.

[2] Adhikari, Kripesh, Hamid Bouchachia, Hammadi Nait-Charif. Activity recognition for indoor fall detection using convolutional neural network.2017 Fifteenth IAPR International Conference on Machine Vision Applications (MVA). IEEE, 2017.

[3] Auvinet, Edouard.Multiple cameras fall dataset. DIRO-Université de Montréal, Tech. Rep 1350 ,2010.

[4] Anguita D,Ghio A,Oneto L,et al.A public domain dataset for human activity recognition using smartphones[C]//2013:437-442.

[5] Canny J.A computational approach to edge detection[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,1986,8(6):679-698.

[6] 肖秦琨,赵艳,高嵩.基于RGB彩色和深度信息的人体关节点定位[J].国外电子测量技术,2015,34(2):27-30.

[7] Abadi, Martín. Tensorflow: A system for large-scale machine learning.12th {USENIX} symposium on operating systems design and implementation ({OSDI} 16). 2016.

[8] Collobert, Ronan, Samy Bengio, and Johnny Mariéthoz. Torch: a modular machine learning software library. No. REP_WORK. Idiap, 2002.

[9] Hubel, David H, and Torsten N. Wiesel. Receptive fields and functional architecture of monkey striate cortex.The Journal of physiology 195.1 (1968): 215-243.

[10] Krizhevsky, Alex, Ilya Sutskever, Geoffrey E. Hinton. Imagenet classification with deep convolutional neural networks.Advances in neural information processing systems. 2012.

[11] Simonyan K,Zisserman A.Very deep convolutional networks for large-scale image recognition[EB/OL].2014:arXiv:1409.1556[cs.CV].https://arxiv.org/abs/1409.1556

[12] Farhat N H,Psaltis D,Prata A,et al.Optical implementation of the Hopfield model[J].Applied Optics,1985,24(10):1469-1475.

[13] Schmidhuber, Jürgen. Learning complex, extended sequences using the principle of history compression.Neural Computation 4.2 (1992): 234-242.

[14] Huang Z H,Xu W,Yu K.Bidirectional LSTM-CRF models for sequence tagging[EB/OL].2015:arXiv:1508.01991[cs.CL].https://arxiv.org/abs/1508.01991

[15] Schuster M,Paliwal K K.Bidirectional recurrent neural networks[J].IEEE Transactions on Signal Processing,1997,45(11):2673-2681.

[16] Cho K,van Merrienboer B,Gulcehre C,et al.Learning phrase representations using RNN encoder-decoder for statistical machine translation[EB/OL].2014:arXiv:1406.1078[cs.CL].https://arxiv.org/abs/1406.1078

[17] Peters M E,Neumann M,Iyyer M,et al.Deep contextualized word representations[EB/OL].2018:arXiv:1802.05365[cs.CL].https://arxiv.org/abs/1802.05365

[18] 熊昕,陈晓辉,吴宇轩,等.基于改进的循环神经网络深度学习跌倒检测算法[J].电脑编程技巧与维护,2020(3):126-127,139.

【通联编辑:唐一东】