[0050] 以下结合附图对本发明作进一步说明。
[0051] 如图1所示,一种基于视频关节点和混合分类器的跌倒检测方法,具体如下:
[0052] 步骤1、通过摄像头采集视频。当有人经过时,在视频中截取含有人的被检测视频片 段。
[0053] 步骤2、对被检测视频片段的每一帧图像进行高斯去噪处理。
[0054] 步骤3、利用人体节点采集软件采集被检测视频片段中每一帧图像的人体关节点数据, 并对缺失的人体关节点进行数据填充,得到人体关节数据矩阵;人体关节数据矩阵的每一 行均为一帧图像上的十八个关节点参数;人体关节数据矩阵的行号按照时间顺序
排列。
[0055] 人体节点采集软件采用OpenPose软件。OpenPose软件可选MPI、COCO、BODY25 三种模型,本实施例采用COCO模型,检测的人体关节点总数为18,分别是鼻子‑0、脖子 ‑1、右肩‑2、右肘‑3、右手腕‑4、左肩‑5、左肘‑6、左手腕‑7、右臀‑8、右膝盖‑9、右脚踝‑10、 左臀‑11、左膝盖‑12、左脚踝‑13、右眼‑14、左眼‑15、右耳‑16、左耳‑17。人体关节点包含 (x,y,score)三个数据。x为人体关节点在图像上的横坐标,y为人体关节点在图像上的纵坐 标;
score为人体关节点的置信度。
[0056] 对缺失的人体关节点进行数据填充的方法如下:
[0057] 由于存在光线及遮挡,OpenPose软件获取的人体关节点可能存在个别关节点缺失。填 充方式为若缺失节关点的后一个人体关节点(按照步骤3中所述的顺序,左耳‑17的后一 个关节点为鼻子‑0)不缺失,则将缺关失节点用后一个人体关节点填充;若缺关失节点的 后一个人体关节点缺失,且前一个人体关节点不缺失,则将缺关失节点用前一个人体关节 点填充;否则,将该帧图像删除。
[0058] 步骤4、如图1所示,根据步骤3得到的人体关节数据集,利用滑动窗口对构建的s 个行为矩阵; 为向下取整运算符;m为检测出人体关节点的图像数量。
[0059] 如图2所示。滑动窗口是一个用来存储时间序列数据的固定大小的窗口,随着时间的 推移,滑动窗口沿着时间轴移动,新进入的数据存入窗口底部,顶部数据被移出。本发明 采用滑动窗口构建行为矩阵,行为矩阵的总帧数W设置为10,总关节点数N为18,行为 矩阵大小为[10,18×3],即滑动窗口的长度为54,宽度为10。设置滑动步长step为2,最 后构建多个大小为10×54的行为矩阵。
[0060] 第i个行为矩阵Ki,matrix的表达式如式(1)所示,i=1,2,…,s;行为矩阵的每一行对应一 帧图像的骨骼向量;
[0061] Ki,matrix=(K2i‑1,K2i,…,K2i+W‑1)T (1)
[0062] 式(1)中,Kt为第t张图像的骨骼向量,其表达式如式(2)所示;t=1,2,...,m。
[0063] Kt=(Kt,0,Kt,1,…,Kt,N‑1) (2)
[0064] 式(2)中,Ktj表示人体关节数据矩阵中第t行第j+1列的参数,j=0,1,...,N‑1; 该参数包含(x,y,score)三个数据。因此各行为矩阵的大小为[W,N×3],
[0065] 步骤5、计算时间特征参数和空间特征参数。
[0066] 为了充分表达跌倒行为,本发明同时从各行为矩阵中提取时间特征和空间特征,具体 如下:
[0067] 5‑1.计算m张图像中的人体高度信息ht如式(3)所示;t=1,2,...,m。
[0068] ht=ht,head‑ht,foot (3)
[0069] 式(3)中,ht,head为第t张图像中的人体的头部纵坐标,其表达式如式(4)所示。ht,foot为第t张图像中的人体的脚部纵坐标,其表达式如式(4)所示。
[0070]
[0071]
[0072] 式(4)和(5)中,yt,14、yt,15、yt,16、yt,17分别为第t张图像中关节点右眼‑14、左眼‑15、 右耳‑16、左耳‑17的纵坐标;yt,10、yt,13分别为第t张图像中右脚踝‑10、左脚踝‑13的纵坐标。
[0073] 5‑2.分别提取各行为矩阵对应的图像中人体高度信息的最大值、最小值,作为空间最 大值hi,max、空间最小值hi,min;i=1,2,…,s。
[0074] 5‑3.如式(6)和(7)所示,从第二张图像起,分别计算各图像的相邻帧高度差Δht,one; 从第六张图像起,分别计算各图像的五帧高度差Δhfive如图式(4)和(5)所示。Δht,one可以 表示相邻帧之间高度的变化值,即跌倒时人体在跌倒过程中身体下降的速度;Δht,five表示跌 倒前后五帧之间的高度变化。
[0075] Δht,one=ht‑ht‑1 (6)
[0076] Δht,five=ht‑ht‑5 (7)
[0077] 5‑4.分别提取各行为矩阵对应的图像中相邻帧高度差Δht,one的最大值、最小值、五帧高 度差Δht,five的最大值、最小值,作为短时间最大值hi,one,max、短时间最小值hi,one,min、长时间最 大值hi,five,max、长时间最小值hi,five,min。
[0078] 5‑5.将hi,max、hi,min、hi,one,max、hi,one,min、hi,five,max、hi,five,min进行特征融合成跌倒特征向量Fi,SVM, Fi,SVM=(hi,max,hi,min,hi,one,max,hi,one,min,hi,five,max,hi,five,min);i=1,2,…,s。
[0079] 5‑6.根据式(9)对各跌倒特征向量Fi,SVM内的元素进行归一化处理;进而消除视频中由 于体态、距离等个体差异造成的识别误差。
[0080]
[0081] 式(9)中,data′p为跌倒特征向量归一化后的第p个元素;datap为跌倒特征向量归一 化前的第p个元素;datamin为跌倒特征向量归一化前的最小值;datamax为跌倒特征向量归一 化前的最大值。
[0082] 步骤6:将归一化后的s个跌倒特征向量Fi,SVM分别输入至经过训练的初级分类器,得 到s个跌倒置信度Pi。初级分类器采用支持向量机(Support Vector Machine,SVM)。设置 阈值区间为[Pmin,Pmax],Pmax=0.8,Pmin=0.2。
[0083] 若所有跌倒置信度Pi均小于Pmin,则判定视频中的行人未跌倒,跌倒检测结束;若存在 至少一个跌倒置信度Pi大于Pmax,则判定视频中的行人跌倒,跌倒检测结束;否则,判定 为出现类跌倒情况,进入步骤7。
[0084] 步骤7、将跌倒置信度Pi在阈值区间[Pmax,Pmin]内的跌倒特征向量Fi,SVM输入至经过训练 的二级分类器,二级分类器输出视频中的行人是否跌倒。
[0085] 二级分类器采用CNN卷积神经网络,包括交替相连的多个卷积层、池化层以及三个 全连接层。卷积神经网络的卷积方式中,padding参数设置为SAME。卷积层中卷积核的尺 度为3×3。池化层中池化算子的大小为2×2、步长为1;池化层与下一个卷积层通过激活函 数Relu(Rectified Linear Units)连接。三个全连接层依次通过激活函数Relu连接。全连接 层的dropout比重设置为0.5。最后一个卷积层与第一个全连接层通过激活函数Relu连接。 第一个全连接层内设置1024个神经元,第二个全连接层内设置512个神经元。第三个全连
接层内设置2个神经元,用于输出判断结果。
[0086] 实施例2
[0087] 如图3所示,一种基于视频关节点和混合分类器的跌倒检测方法,与实施例1的区别 在于:
[0088] 步骤2中,不对被检测视频片段的每一帧图像进行高斯去噪处理,而是进行灰度化处 理。
[0089] 步骤6中,二级分类器与实施例1中不相同,本实施中的二级分类器为多尺度的卷积 神经网络(记为MultiCNN),包括依次通过激活函数Relu连接的一个卷积层、一个池化
层以及三个全连接层。卷积神经网络的卷积方式中,padding参数设置为'valid'。卷积层中 设置尺度分别为3×3、5×5、7×7、9×9的四种卷积核;池化层中设置大小分别为8×1、6×
1、 4×1、2×1的四种池化算子;3×3、5×5、7×7、9×9的卷积核与8×1、6×1、4×1、2×1的
池 化算子分别对应相连。池化层的步长为1。全连接层的dropout比重设置为0.5。第一个全 连接层内设置1024个神经元,第二个全连接层内设置512个神经元。第三个全连接层内设
置2个神经元。
[0090] 该二级分类器是在传统的卷积神经网络的卷积层设置不同大小的卷积核,不同的卷积 核对应不同的池化算子进行池化。由于步骤4构建的行为矩阵大小为10×54,因此设
置四 种不同的卷积核,即3×3、5×5、7×7、9×9四种尺度不同的卷积核;再将不同大小的
卷积 核得到的特征图分别输入至大小为8×1、6×1、4×1、2×1的池化算子进行池化,池化
的步 长为1,从而得到不同的跌倒特征,铺平后输入至三层全连接层,输出跌倒检测结果。
[0091] 为验证本发明的精度和效率,对单独使用SVM分类器、单独使用CNN分类器、单独 使用MultiCNN分类器、实施例1中的方法、实施例2中的方法分别进行识别精度和识别 时长的试验;识别精度的结果对比柱状图如图4所示;从图4可以看出,单独使用CNN 分类器、单独使用MultiCNN分类器、实施例1、实施例2均能达到较高的精度。
[0092] 识别时长的结果对比柱状图如图5所示;从图5可以看出实施例1、实施例2的识别 时长明显短于单独使用CNN分类器、单独使用MultiCNN分类器。可见,本发明能够在保 证跌倒识别精度的前提下,大大降低跌倒识别的时长,减小计算量,提高计算效率。