本发明属于计算机视觉技术领域,涉及一种基于局部场景感知图卷积网络的行为识别方法。
背景技术:
人体行为识别是视频分类中重要的一个类别,在智能视频监控、医疗监护系统、运动训练、人机交互和虚拟现实等方面具有重要的应用价值。而近年来,随着各种具有深度信息提取能力的传感器(如微软发布的kinect)及各种姿态估计算法的逐渐成熟,基于骨骼数据的行为识别方法成为了一种实现方法。相较于视频序列及二维图像信息进行行为识别容易受到光照、遮挡、穿着变化以及环境变化影响,骨骼数据的表现形式更加稳定,此类研究中由卷积神经网络泛化而来的图卷积神经网络模型发展较晚,但取得了目前最佳的识别效果。而骨骼数据在避免受外部不稳定条件干扰的同时,也面临着丢失场景信息的缺陷,导致此类算法识别率难以进一步提升。
现有行为识别任务中,识别对象往往会与场景中的一些物体对象进行交互。而对此类信息表现能力的不足导致基于骨骼数据的行为识别方法对某些骨骼运动表现近似的动作类识别精度较差。如戴帽子、摘帽子这种关节时序信息相似的动作对于基于骨骼信息的行为识别方法分辨难度较高。而关节点周围的图像中包含了一部分场景信息,也包括一部分当前动作序列中交互物体的信息。也因此,局部区域的场景信息对于骨骼行为识别效果的进一步提升有着很大的作用。
技术实现要素:
本发明的目的是提供一种基于局部场景感知图卷积网络的行为识别方法,该方法通过rgb信息与关节坐标特征的深度融合的方式解决了现有技术中存在的因为骨骼方法对场景信息感知能力弱,导致对于一部分较为依赖场景信息的动作识别效果较差的问题。
本发明所采用的技术方案是,基于局部场景感知图卷积网络的行为识别方法,具体包括如下步骤:
步骤1,获取人体行为数据集;
步骤2,对步骤1得到的数据集使用经典姿态估计方法进行预处理获得2d或3d骨骼信息,再利用骨骼信息获取骨骼关节点周围的局部场景信息;
步骤3,搭建局部场景感知图卷积网络;
步骤4,设计损失函数;
步骤5,初始化神经网络参数;
步骤6,训练搭建好的神经网络,将步骤2得到的结果作为输入,对应的实际行为类别标签作为输出,成批次地输入到网络中,计算前向传播的损失,使用反向传播算法,调整各层神经元参数;
步骤7,使用训练好的神经网络进行识别,得到未知类别样本的行为标签。
本发明的特点还在于:
步骤2的具体过程为:
步骤2.1,对步骤1得到数据集按帧进行拆分,得到n帧对应的n个图像;
步骤2.2,对单帧图像中的人体关节信息进行获取,得到n帧对应的n组关节信息;
步骤2.3,将关节点信息映射到原rgb图像中,获取每个关节点信息为中心的局部场景rgb信息;
步骤2.4,将人体整体关节坐标以重心为x=0,y=0为基准进行平移,并进行将坐标信息归一化到(0,1)区间内。
步骤3中搭建的局部场景感知图卷积网络,输入部分为双支路输入,支路一输入为关节信息,结构依次为:输入层、批归一化层、三个级联的图卷积层;支路二输入为各关节点对应的局部场景rgb信息结构依次为:输入层、批归一化层、三个级联的卷积层、以及全局平均池化层;支路一特征向量由关节位置得到,支路二特征向量由局部场景rgb信息得到。二者在特征通道上进行连接,并在后续网络层中进行后续分类。
步骤4中损失函数如下公式(1)所示:
其中,m表示类别数量,即数据库中包含行为类别数目;yc为指示变量,在类别与样本类别相同时为1,否则为0;pc表示softmax层输出的属于类别c的预测概率。
步骤5的具体过程为:
对参数epoch,batch_size,learning_rate进行设定,epoch为训练遍历所有数据的次数,设定为5-10之间的整数;batch_size为每批次训练的样本数,learning_rate为学习率。
步骤6的具体过程为:将步骤2得到的结果作为输入,单个样本为一个三维矩阵(c,t,v),c为特征通道,即坐标信息,通道数为2,t=300为时间序列,v为节点数量;通道2输入为多个经过剪裁得到的图像(c,t,v,h,w),此处c为通道数,rgb图像的通道数为3,t和v与通道1相同,w和h对应剪裁得到的局部区域rgb信息的宽和高,对应的行为标签作为输出。
步骤7的具体过程为:获取人体行为视频,将该行为视频进行剪辑预处理,并采用步骤2中方法获取人体关节结构图,以及各个关节对应的局部场景信息;将该信息输入训练搭建好的神经网络模型中计算输出预测分类结果对应的标签。
本发明的有益效果如下:
1.本发明基于局部场景感知图卷积网络的行为识别方法,使用关节坐标信息和关节周围局部图像信息作为共同输入,代替了原本单一模态特征作为输入,弥补了之前图卷积类行为识别方法对场景信息感知能力弱,对一些近似动作易错分的缺点;
2.本发明基于局部场景感知图卷积网络的行为识别方法针对使用的样本类型,使场景信息和关节信息在深度特征层面进行融合,相比传统的图卷积网络,经过修改的模型可以更好的同时学习两种信息,从而用于分类和识别任务。
附图说明
图1是本发明基于局部场景感知图卷积网络的行为识别方法中根据图像获取关节点及关节点周围的局部场景信息;
图2是本发明基于局部场景感知图卷积网络的行为识别方法中姿态估计算法获取的所有人体关节点;
图3是本发明基于局部场景感知图卷积网络的行为识别方法中提出的局部场景感知图卷积网络框架。
具体实施方式
下面结合附图和具体实施方式对本发明进行详细说明。
本发明基于局部场景感知图卷积网络的行为识别方法中,具体包括如下步骤:
步骤1、获取人体行为数据集;
步骤1具体为:使用图像采集设备采集行人的行为数据,使用常用的行为用数据集或自行建立数据集,常用的行为识别用数据集包括ntu-rgb+d数据集,或kinetics-600数据集。自行建立数据集则根据需求采集不同场景和动作类别的视频序列,经过剪辑与标注处理得到单个视频对应单个动作标签的数据类型。
步骤2、对步骤1得到的训练数据使用经典姿态估计方法进行预处理获得2d或3d骨骼信息,再利用骨骼信息获取骨骼关节点周围的局部场景信息;
步骤2如图1所示,具体包括以下步骤:
步骤2.1、对步骤1得到训练数据按帧进行拆分,得到n帧对应的n个图像;
步骤2.2、利用经典姿态估计算法openpose对单帧图像中的人体关节信息进行获取,得到n帧对应的n组关节信息,具体如图2所示;
步骤2.3、将关节点信息映射到原rgb图像中,获取每个关节点信息为中心的局部场景rgb信息,具体为48×48像素的大小;
步骤2.4、将关节信息进行预处理,将坐标进行尺度和空间位置的标准统一,主要步骤是要将人体整体关节坐标以重心为x=0,y=0为基准进行平移,并进行将坐标信息归一化到(0,1)区间内;
步骤2.2中关节点包括鼻子、脖子、右肩、右肘、右手腕、左肩、左肘、左手腕、右臀、右膝盖、右脚踝、左臀、左膝盖、左脚踝、右眼、左眼、有耳朵、左耳朵。
步骤3、搭建局部场景感知图卷积网络;
步骤3中局部场景感知图卷积网络,具体细节为:输入部分为双支路输入,支路1输入为关节信息,结构依次为:输入层、批归一化层、三个级联的图卷积层;支路2输入为各关节点对应的局部场景rgb信息结构依次为:输入层、批归一化层、三个级联的卷积层、以及全局平均池化层,具体如图3所示。支路1与支路2特征提取后分别得到各关节的特征向量,支路1特征向量由关节位置得到,支路2特征向量由局部场景rgb信息得到。二者在特征通道上进行连接,并在后续网络层中进行后续分类。设关节n的骨骼特征向量为sn,rgb特征向量为rn,其连接过程公式如下:fn=concat(sn,rn)。concat表示向量的连接操作。
后续具体网络结构为:批归一化层、六个级联的图卷积层、全局平均池化层、全连接层和softmax输出层。
每个卷积层具体设置为:1、卷积窗口大小:具体设置为3×3卷积;2、滑动步长:具体设置为1;3、填充参数:具体设置为1,保证卷积得到的特征图宽高不变。
每个图卷积层包括三部分:1、注意力机制层,用于衡量不同重心点的重要性;2、空间图卷积层,在空间维度上,即单帧内对每个重心点上,进行图卷积操作,卷积核大小为3,用于计算某时刻空间中包含的信息;3、时间图卷积层,在时间维度上进行图卷积操作,卷积核大小为9,用于计算重心点在时间上运动包含的信息。
图卷积公式如下:
其中节点vti邻域集的采样函数p定义为
步骤4、设计损失函数;
本发明实现步骤4具体可视为一个多分类任务,采用分类任务中主要采用的交叉熵损失函数,具体计算为:
其中,m表示类别数量,即数据库中包含行为类别数目;yc为指示变量,在类别与样本类别相同时为1,否则为0;pc表示softmax层输出的属于类别c的预测概率。
步骤5、初始化神经网络参数;
步骤5具体为:对参数epoch,batch_size,learning_rate进行设定,epoch为训练遍历所有数据的次数,设定为5-10之间的整数;batch_size为每批次训练的样本数,设定为四的倍数,通常设置为{32,64}中的一个,learning_rate为学习率,初始学习率为0.01,每遍历30次数据后学习率降低10%,共遍历全部样本120次。
步骤6,训练搭建好的神经网络,将步骤2所得结果作为输入,对应的实际行为类别标签作为输出,成批次地输入到网络中,计算前向传播的损失,使用反向传播算法,调整各层神经元参数;
步骤6具体为:将步骤2所得结果作为输入,单个样本为一个三维矩阵(c,t,v),c为特征通道,也就是坐标信息,通道数为2,t=300为时间序列成都,v为节点数量;通道2输入为多个经过剪裁得到的图像(c,t,v,h,w),此处c为通道数,rgb图像的通道数为3,t和v与通道1相同,w和h对应剪裁得到的局部区域rgb信息的宽和高,w=28,h=28,对应其行为标签作为输出,模型训练过程采用随机梯度下降法。
步骤7,使用训练好的神经网络进行识别,得到未知类别样本的行为标签。
步骤7具体为:获取人体行为视频,将该行为视频进行剪辑预处理,并采用步骤2中方法获取人体关节结构图,以及各个关节对应的局部场景信息;将该信息输入训练搭建好的神经网络模型中计算输出预测分类结果对应的标签。