1. 引言
据国家统计局发布的第七次全国人口普查公报显示,截至2020年,大陆地区60岁及以上的老年人口总量为2.64亿人,已达到总人口的18.7% [1] 。近期,国家卫建委声称在2035年左右中国将进入重度老龄化社会,伴随着老龄化社会的加速进程,意外跌倒成为危及老年人健康的重要原因,及时发现老人跌倒并及时救助,可以有效降低死亡率。现在,我国城市或农村独居老人或多或少患有骨质疏松等关节疾病,家里老人都或多或少地有过跌倒的经历,跌倒是60岁及以上老年人口的主要健康危害之一,意外跌倒已成为一种普遍的现象。世界卫生组织发表的一项研究估计,65岁以上的老人中有28%到35%的人每年至少跌倒一次,而70岁以上的人这个数字会增加到42% [2] 。
许多研究人员也对跌倒进行过研究,大致可以分为以下三种方法:第一、基于穿戴式传感器的跌倒检测研究,穿戴式传感器主要把倾斜开关、加速度计、陀螺仪等传感器嵌入到可穿戴设备上 [3] ,老人需要佩戴在手腕、腰上、肘上等活动部位,根据设备收集到的数据并对其进行分析和处理,进而判断是否发生跌倒。Sannino等 [4] 设计了一种有监督的跌倒检测方法,该方法根据加速度计提取的数据,根据IF-THEN规则来确定是否发生跌倒。Qiang等 [5] 根据陀螺仪和加速度计采集到的角速度与加速度信息,根据事先设置的阈值判断是否跌倒;石欣、张涛 [6] 通过将压力传感器内置进鞋垫,采集脚底的压力信息,基于阈值利用支持向量机进行跌倒检测。第二、基于场景装置的跌倒检测研究,程卫东等 [7] 利用主成分分析法研究基于PIR传感器的人体运动特征提取及识别。第三,基于视觉的跌倒检测研究,MIN等 [8] 通过运动人体最小外接矩形的宽高比变化来判断是否发生跌倒;Rougier C等 [9] 采用3D跟踪技术分析人体头部的运动轨迹和速度来判断是否发生跌倒。
分析了上述文章的关键技术,本文通过提取长宽比、角度、质心高度三个跌倒特征,组合成特征向量,导入支持向量机模型进行训练,实验结果表明能较准确地区分跌倒与非跌倒行为。
2. 提取运动人体
目标提取常见的有光流法、帧间差分法、背景减除法、ViBe算法。在跌倒检测的过程中,分割运动目标是至关重要的环节,直接影响着后续跌倒行为的判断,光流法运算量大,帧间差分法容易丢帧产生误检,背景减除法较难实时更新背景图像,ViBe算法能较好的适应背景的变化,有效解决“空洞”现象,因此,本文选取ViBe算法来获取运动目标。
ViBe算法原理简介
如图1所示,与常见的前景检测算法不同,ViBe算法的背景更新策略是随机选择需要替换的像素的样本,之后随机选择邻域像素进行更新 [10] 。该算法通过将以前的像素值和提取像素点周围的像素值建立样本集,通过将样本集中的像素值与下一帧处的像素值进行对比,若它们的距离大于设定阈值,则认为该像素点为背景像素点 [11] 。如图1所示,记v(x)为下一帧的像素值,R为设定的阈值,v1、v2、…、v6,为样本集中的像素值,以v(x)为圆心R为半径的圆被认为是一个集,当样本集与此集的交集大于设定的阈值时,可认为此为背景像素点,否则是前景像素点 [12] 。
ViBe算法相较于帧间差分法和背景减除法能更完整的获取到运动目标,具体检测效果如图2所示。
(a)
(b)
Figure 1. Introduction of Vibe algorithm. (a) Sample set; (b) Pixel value of the sample set versus the next frame
图1. Vibe算法简介。(a) 样本集;(b) 样本集与下一帧的像素值
(a)
(b)
Figure 2. Motion targets obtained by Vibe algorithm. (a) Original image of moving human body; (b) Images of human body detected by Vibe algorithm
图2. Vibe算法获取的运动目标。(a) 运动人体的原图像;(b) Vibe算法检测得到的人体图像
3. 多特征提取与SVM理论
3.1. 人体高宽比
对于前面获得的前景图像,利用opencv中的cv2.boundingRect()和cv2.rectangle()函数画出前景目标最小外接矩形框,记高宽比为hw = h/w,若发生跌倒行为,其值小于1,正常行走时高宽比明显大于1,因此,人体高宽比可以作为跌倒特征。
3.2. 角度特征
当人在正常行走时,人体质心与水平面角度明显大于45˚,而人在跌倒的时候,人体质心明显靠近地面,角度相对较小,因此,角度也可以作为跌倒的一个判断条件。
3.3. 质心相对高度
定义质心为人体最小外接矩形框对角线的交点,cv2.boundingRect()返回的四个值x,y,w,h中,x,y是矩形左上点的坐标,w,h是矩形的宽和高,记质心的纵坐标为cy,则质心相对高度为chy = y + h – cy,当人体由直立状态转向跌倒状态时,质心相对高度chy会慢慢变小,因此质心相对高度可以作为跌倒的一个特征。
将上述的跌倒特征进行组合,存入特征提取器中并生成特征向量,便于后续送入支持向量机模型进行监督学习,构建SVM分类器区分跌倒与非跌倒行为。
3.4. 支持向量机理论
支持向量机(SVM)是经典的二分类算法 [13] ,本文采用的是线性可分支持向量机进行跌倒与非跌倒的划分,如图3所示,特征提取器提取到的特征后会生成一个数据集D = {xi, yi},其中,xi为第i个特征,yi为xi的类别标记。yi = +1时,称xi为正样本,yi = −1时,称xi为负样本,对于线性可分的数据,能找到一个最优超平面w*x + b = 0,使得超平面和最近的数据点之间的间隔最大,从而正确分类所有的正负样本点 [14] 。即yi = +1时,对于样本xi有w*x + b > 0;yi = −1时,对于样本xi有w*x + b < 0。
本文选取的支持向量机核函数是线性核函数,即kernel = 'linear',惩罚参数C取值为1,选取好核函数和核函数参数后,接下来进行的是SVM模型的训练与测试,将上述提取到的人体高宽比、角度、质心相对高度三个特征存入特征提取器后,将列表转为SVM训练的数据格式(包括样本数据和标签),将数据集按照7:3划分成训练集和测试集,最终生成SVM跌倒分类模型。当输入新的视频数据时,让SVM跌倒模型进行预测,统计模型检测的正确率,具体检测流程如图4所示:

Figure 4. Fall detection process of Multi-feature fusion and SVM
图4. 多特征融合与SVM跌倒检测流程
4. 实验结果分析
跌倒检测曲线如图5所示,设定高宽比阈值为1,角度阈值为45°,质心相对高度阈值为70,由高宽比图5(a)可以看出,在65帧以后人体高宽比急剧下降,由原来的大于1变成小于1,角度由原先的大于70˚左右急剧下降到20˚,质心相对高度由原先在100附近急剧下降至50左右,即65帧之后有跌倒现象的发生,将上述特征保存至特征提取器中,并将数据转化成SVM的训练数据格式,导入SVM模型进行训练,保存生成的模型文件用于预测新的视频数据。
(a)
(b)
(c)
Figure 5. Fall characteristic curve. (a) Aspect ratio; (b) Angular characteristics; (c) Relative height of centroid
图5. 跌倒特征曲线。(a) 宽高比;(b) 角度特征;(c) 质心相对高度
针对常见的直立行走、下蹲、坐下、跌倒等动作,其检测结果,如图6所示:
(a)
(b)
(c)
(d)
Figure 6. Fall and non-fall test results. (a) Walk normally; (b) Squat; (c) Sit down; (d) Fall down
图6. 跌倒与非跌倒检测结果。(a) 正常行走;(b) 下蹲;(c) 坐下;(d) 跌倒
为验证本文所提出方法的可行性,主要是对已录制好的20段视频进行实验,对于不同的姿势,如正常行走、下蹲、弯腰、跌倒等,能较好的将非跌倒行为与跌倒行为进行区分,最终将上述几种姿势的检测结果统计如表1所示。
5. 结束语
本文对比了几种目标检测算法的优缺点,选择采用ViBe算法提取运动目标,使用高斯滤波进行减噪,经形态学处理后,接着提取人体高宽比、角度、质心高度三个跌倒特征,组合成特征向量并添加保存至特征提取器,最后导入支持向量机模型进行训练,生成一个可用于特征分类的模型文件,当输入新的视频数据时,该模型能够有效区分跌倒与日常行为。
基金项目
临沂大学2022年校级大学生创新创业项目(X202210452205)。
NOTES
*共一作者。
#通讯作者。