基于Kinect的地铁乘客不安全行为识别方法与实验*
2022-01-21吕希凡郭良杰路越茗
卢 颖,吕希凡,郭良杰,仇 乐,路越茗
(1.武汉科技大学 资源与环境学院,湖北 武汉 430081;2.中国地质大学(武汉) 工程学院,湖北 武汉 430074)
0 引言
当前地铁视频监控系统多为“只记录不判断”模式,需要工作人员轮流值守监督站内乘客活动,发生事故后通过回看视频进行取证,无法实时判断[1]。为加强地铁乘客行为管理,可在地铁口、闸机、扶梯等人员密集部位加设视频监控装置,但传统检测识别主要依靠单目视觉[2],存在识别精度低、稳定性差等问题。因此,基于新一代深度传感器开展地铁乘客不安全行为的智能识别研究具有重要理论意义和实际应用价值。
深度传感器解决了传统监控设备存在的问题,以红外结构光检测为核心,可实时捕捉人体动作骨骼信息[3]。基于实时骨骼信息,结合机器学习[4]或深度学习[5]算法实现行为的智能识别。当前行为识别算法主要分为2类,一类是以隐马尔科夫模型[6]、贝叶斯网络[7]以及BP神经网络[8]等为代表的状态空间法。该类方法数据获取简单,只需获得传统的视频信息、图片信息等即可进行后续行为识别。但这类方法往往需要大量训练数据,对于小型数据集处理效果差,且寻找模型最优参数过程复杂,难度较大,复现率较低。另一类是运用帧与帧匹配[9]、帧融合匹配[10]和关键帧匹配[11]的模板匹配法,其中以动态时间规整(Dynamic Time Warping,DTW)算法最为典型。该方法通过提取样本中行为特征序列与对应标准行为进行匹配,再判断序列间的距离大小从而得到动作相似度,其优势在于无需大量样本作为识别基础,且算法过程简单、易操作实现。但提取动作特征方式的合理性对最终识别结果影响很大。目前,骨骼信息的动作特征大多以相邻关节点之间形成的向量作为提取的动作特征向量,如Yu等[9]、于瑞云等[12]、陆中秋等[13]等选取全身主要部位的关节坐标,再计算相邻骨骼关节点向量从而得到识别标准动作与测试动作的相似度。然而这种关节选取方法存在冗余关节的影响,同时也受识别对象的身高、身材以及识别过程中的身体偏移等因素干扰,进而导致识别结果的鲁棒性较低。
综上,本文拟基于Kinect获得骨骼信息,提出1种以 Pelvis为矢量起点、行为活动高频关节点为矢量终点的动作特征向量选取方法,利用余弦定理获得动作之间的关节角度差,以最大角度差为动作特征量建立相似度计算模型,运用DTW算法得到动作之间的最优路径并转化为动作相似度。通过地铁乘客不安全行为识别的对比实验,验证方法的可行性和准确性,为地铁乘客不安全行为管控提供1种新型技术手段。
1 不安全行为识别技术概述
目前不安全行为识别技术是一个包含了计算机视觉、图像处理以及机器学习等相关技术的有机整体。从识别的数据类型看,可分为:基于视频信息、图像信息以及骨骼信息的识别系统。不同的识别系统常用的特征参数有:大小、颜色、骨骼等静态特征参数;光流、速度、轨迹等动态特征参数;场景、属性等描述性特征参数。对比分析典型不安全行为识别系统及其特征参数,如表1所示。
表1 不安全行为识别技术对比Table 1 Comparison on recognition technologies of unsafe behavior
基于视频信息和图像信息的行为识别技术易受光线、物体遮挡等外界环境因素干扰,需对原始数据预处理,增加了整体识别难度,实现过程复杂,复现率低。而基于红外结构光检测的Kinect骨骼信息识别,可有效避免环境因素干扰。鉴于研究背景为地铁复杂环境,存在大量人员相互遮挡现象以及地铁噪声干扰等因素,因此采用Kinect提取地铁乘客不安全行为骨骼信息进行后续行为识别。
2 基于Kinect地铁乘客不安全行为识别方法
在导致地铁运行事故的原因中,乘客行为最为复杂多变[18],但对其惯常状态不安全行为研究相对较少,因此本文根据现有文献、地铁事故案例以及相关行为监控系统选取识别对象。刘艳等[19]将乘客不安全行为分为3类:站内抽烟、侵入限界以及携带违禁物品。通过对91例地铁乘客行为引发的事故案例分析,其中打架斗殴行为占23.7%。 此外,在《人工智能在公安视频大数据分析领域的前沿应用》专题报告[20]中指出,呼救行为是公安视频监控行为之一。虽然呼救不属于不安全行为,但其预示可能有不安全行为或突发事件发生,因此,将其作为表征可能发生不安全行为的异常行为,纳入智能识别的范畴,使地铁监控对象多元化、规范化。为便于表述,本文仍以不安全行为作为识别对象的总称,其特指地铁乘客不安全行为或异常行为。
结合Kinect设备特点,根据上述调查结果,选取抽烟、打架斗殴、单/双臂挥手呼救作为动作识别对象。
2.1 骨骼信息获取
本文使用2019年发布的最新一代Azure Kinect,通过Kinect Body tracking SDK (software development kit)开发包提供的应用程序编程接口以及Kinect SDK以30 f/s的频率采集32个关节点,提供每个关节的三维坐标、方位角、置信水平等信息,利用骨骼追踪技术可分别得到标准动作与测试动作的关节点位置。该设备相比Kinect V2,可多检测鼻子、左眼、右眼、左耳、右耳、左锁骨和右锁骨7个关节点,Azure Kinect捕获的32个关节见图1。
图1 Azure Kinect获得的关节信息Fig.1 Joint information obtained by Azure Kinect
2.2 不安全行为向量关节选取
Kinect传感器捕获的基础运动数据是一系列以帧为单位的人体骨骼关节位置3D坐标。为将3D坐标数据转化为骨骼向量,学者们[9-11]多采用“相连关节法”以2个相连关节作为在空间中的1个三维向量进行转化,选取方式见图2。该方法存在冗余关节影响,受识别对象身材以及识别过程中的身体偏移等因素干扰而导致识别结果的鲁棒性较低。为解决此问题,提出1种“Pelvis发散法”,所选向量皆以Pelvis为起点、动作活动高频关节为终点,以此构成动作特征向量,选取方式见图2。
图2 特征向量选取方式Fig.2 Selection method of characteristic vector
在不影响动作特征完整性表达的基础上,舍去一些动作姿势表达中作用不明显的骨骼关节点,即冗余关节,有利于后期数据的结果处理[21]。据此,分别分析抽烟、挥拳、单/双臂挥手呼救4种动作行为特征,选择不同行为所对应的活动频率较高关节点并将其编码如图2,选取的特征关节向量见表2。
表2 地铁乘客4种行为对应的关节向量选取Table 2 Joint vector selection corresponding to four kinds of behavior of subway passengers
2.3 不安全行为关节角度提取
(1)
图3 标准动作与测试动作角度差提取Fig.3 Extraction of angle difference between standard motion and test motion
2.4 基于DTW算法计算动作相似度
通过得到的标准数据S与测试数据T这2个动作序列,应用DTW算法寻找标准动作与测试动作的最佳匹配路径,同时最大程度减少时间上的偏移和变形影响[23]。根据表2选取的动作关节向量,每个动作关节向量的运动都构成1维时间序列数据。以抽烟动作为例,标准动作和测试动作的数据具有3个维度,每个数据集的矩阵的维数为n×3,其中n是运动数据的总帧数。
(2)
式中:i为元素横坐标,1
由式(2)可得到1条具有最小累积距离动态规整路径P,据此获得关节向量的角度差之和cp(S,T),如式(3)所示:
(3)
式中:cp(S,T)是代价矩阵中最优动态规整路径的元素之和;S为标准动作序列;T为测试动作序列;l为路径P的步长。
对于多维情况,si与tj不是单个骨骼矢量,而是代表整个身体运动的多个关节矢量。多维DTW(S,T)的计算方式与一维情况类似[25],不同之处在于需要重新定义C(si,tj)。本文将C(si,tj)定义为:所选定动作多维关节向量中的最大角度差。DTW的输出DTW(S,T)则为最短动态规整路径的最大角度差累积之和。因此,累计之和越小,2个运动序列的相似度越高。为了量化标准动作与测试动作的相似度,提出以最大角度差为特征量的相似度公式,以百分比结果进行表征,如式(4)所示:
(4)
式中:l为最优动态规整路径长度;V为选择用于运动评估的关节矢量个数。
最大角度差的取值范围为0~180°,在该范围内余弦函数单调递减,每个角度值唯一对应1个余弦值[12]。因此该最优路径的最大DTW(S,T)为180×V×l。
3 地铁乘客不安全行为识别实验
3.1 实验目的及环境
为检验“Pelvis发散法”的实际识别效果,通过对地铁乘客不安全行为的识别开展对比实验。以“相连关节法”为对照组A组,“Pelvis发散法”为实验组B组。
实验硬件系统如下:Azure Kinect传感器1台;主机电脑:Intel(R)Core(TM) i5-8300H,2.30GHz,8 GB 内存,显卡为NVIDIA GeForce GTX 1050 Ti。系统开发环境为:Windows 10操作系统,Visual Studio 2019及Matlab R2018a。应用WPF(Windows Presentation Foundation)平台搭建实验数据采集界面,界面包含视频图像显示区、实验人员信息记录区以及控制设备区等模块,详见图4。
图4 实验数据采集界面Fig.4 Interface of experimental data collection
3.2 实验过程方法
此次实验共有6名实验参与者,将其中1名参与者的全部动作数据作为标准数据,其余5人的动作数据作为测试数据。将上述的抽烟、挥拳、单/双臂挥手呼救进行具体定义,抽烟、挥拳及单臂呼救动作以右臂为例,挥手呼救以双臂挥手呼救为例,具体动作见图5。
图5 4种地铁乘客不安全动作示例Fig.5 Examples of four unsafe motions of subway passengers
每位测试者正面站立距Kinect 2.5 m处,当实验界面显示设备连接成功时,点击“数据采集”,开始采集测试者动作数据,采集时间为10 s,共采集到300帧数据,采集完成后点击“保存数据”,即可自动命名并保存至相应的.xls文件。5名测试者分别做每种动作10次,即每种动作共有50组测试数据。
将采集的数据分别采用“相连关节法”和“Pelvis发散法”进行动作特征向量选取,相对应地将选取结果定义为A、B 2组。
3.3 实验算法验证
通过Matlab对实验数据进行处理运算,以B组抽烟动作为例,具体算法描述如下:
2)步骤2:根据式(1)得到3组关节角度差值序列。
3)步骤3:选取序列中3组关节角度差的最大值作为代价矩阵的元素。
4)步骤4:通过步骤3得到300×300代价矩阵,从(1,1)出发,根据式(2)的限制条件,得到最优动态规整路径P。
5)步骤5:输出得到DTW(S,T)与步长l。
6)步骤6:将步骤5得到的结果带入式(4),最大关节角度差值由符合条件的1组对应关节得到,即关节矢量个数V=1,因此:
以上步骤应用Matlab语言编程实现,将全部测试动作分别与对应标准动作比较,得到每个测试动作的相似度。
3.4 实验结果分析
A、B组抽烟、挥拳、单/双臂挥手呼救4种地铁乘客不安全行为各50组数据的实验结果如图6所示。
图6 2组动作相似度结果分布对比Fig.6 Comparison on distribution of motion similarity results of two groups
由图6可知,B组相似度整体高于A组,尤其在挥拳、单臂呼救、双臂呼救3种动作上的差异更显著;A组在抽烟、挥拳、单臂呼救、双臂呼救4种动作相似度上的分散程度高于B组,说明采用B组“Pelvis发散法”获得的动作相似度结果比A组“相连关节法”集中程度更高,稳定性更强。
对A、B组4种地铁乘客不安全行为的各50组数据分别取平均值,获得最终相似度如表3所示。
表3 不安全行为相似度结果Table 3 Similarity results of unsafe behavior
由表3可知,B组的最终动作相似度均高于A组,说明采用“Pelvis发散法”选取动作特征向量进行动作识别优于“相连关节法”。其中抽烟的动作相似度整体最高,A组达88.6%,B组达91.7%;双臂挥手呼救的动作相似度整体最低,A组为67.9%,B组为85.5%。分析认为,数据的传输及录入本身存在一定的误差延迟,属于系统误差,因此,相似度超过80%[3]即可认为达到识别目的,可见,B组对4种动作的识别均达到良好效果。
同时,双臂挥手呼救动作的相似度整体偏低的原因主要有:运动速度加快,如双臂挥动速度过快会导致系统误差进一步增大;由于该动作存在双臂交叉情况,导致选取的关节点在某一时间点重合,影响动作信息捕获的稳定性,产生关节位置信息偏差,即关节点重合也是导致该动作相似度较低的原因之一。后续可进一步开发Kinect动作捕捉算法,提高关节点重合类动作的相似度。
4 结论
1)基于Kinect获取的骨骼信息,提出1种地铁乘客不安全行为识别方法,方法以Pelvis为起点和动作活动高频关节为终点构建识别特征向量,基于动态时间规整算法(DTW)以最大角度差为动作特征量建立相似度计算模型,可解决冗余关节导致的动作识别鲁棒性较低、DTW结果量化与实际应用问题。
2)完成“相连关节法”(A组)和“Pelvis发散法”(B组)在抽烟、挥拳、单/双臂挥手呼救4种地铁乘客不安全行为识别的对比实验。结果表明:B组识别4种不安全行为的准确度分别为91.7%、86.9%、89.2%、85.5%,平均比A组高4%以上,且识别结果集中程度更高、稳定性更强,显著提高了地铁乘客不安全行为的识别率。
3)研究重点在于,以小样本数据量为基础,避免复杂训练算法,对动作进行有效识别。但实验过程中发现双臂挥手呼救动作的识别准确度整体偏低(A组为67.9%,B组为85.5%),除系统误差外,运动速度加快、关节点重合是导致该问题的原因,在后续研究中可进一步深入探讨。