一种人体姿态识别方法及相关装置与流程

文档序号:16933898发布日期:2019-02-22 20:31阅读:151来源:国知局
一种人体姿态识别方法及相关装置与流程

本申请涉及计算机技术领域,特别涉及一种人体姿态识别方法、人体姿态识别系统、服务器以及计算机可读存储介质。



背景技术:

随着计算机视觉技术的不断发展,人体姿态估计已应用在智能视频监控、智能家居、运动分析、人机交互和医学康复等领域。其中,人体姿态估计主要是将人体姿态相关的图像数据作为输入数据,再通过相关算法对输入数据进行估计得到人体姿态的可能值,也就是人体姿态的估计值。

目前,对图像数据进行特征提取的方法为了保留有效的人体动作信息,对人体动作提取数据的维数越来越多。虽然增加了动作描述的信息量,保证姿态判断的准确性,但是越来越多的特征数据维数,会使得冗余计算量越来越多,降低数据计算时的速度,减小数据计算的实时性。并且,现有技术中一般是通过模式对比的方法对人体动作信息进行判断,判断的准确率较低,结果不够精确,造成人体姿态估计过程获取正确结果的效率低下。

因此,如何提高人体姿态估计的效率是本领域技术人员关注的重点问题。



技术实现要素:

本申请的目的是提供一种人体姿态识别方法、人体姿态识别系统、服务器以及计算机可读存储介质,通过将骨架特征作为特征数据,降低了特征数据量,并且采用神经网络进行识别,提高了人体姿态估计的效率。

为解决上述技术问题,本申请提供一种人体姿态识别方法,包括:

对预设数量的人体图像进行人体骨架特征提取处理,得到训练集数据;

采用所述训练集数据进行神经网络训练,得到姿态识别模型;

根据获取的测试集数据对所述姿态识别模型进行测试调整处理,得到最优姿态识别模型;

根据所述最优姿态识别模型对待识别人体图像进行识别,得到识别结果。

可选的,对预设数量的人体图像进行人体骨架特征提取处理,得到训练集数据,包括:

对所述预设数量的人体图像进行中值滤波,得到多个滤波人体图像;

对所有滤波人体图像进行人体骨架数据提取,得到多个人体骨架姿态图像;

对所有人体骨架姿态图像进行归一化处理,将处理得到图像数据作为所述训练集数据。

可选的,采用所述训练集数据进行神经网络训练,得到姿态识别模型,包括:

将所述训练集数据输入到卷积神经网络和长短时记忆神经网络中,进行构建得到深度神经网络模型;

根据前向传播算法对所述深度神经网络模型计算损失函数,得到损失函数值;

根据所述损失函数值判断所述深度神经网络模型是否为收敛状态;

若是,则将所述深度神经网络模型作为所述姿态识别模型;

若否,则根据反向传播算法调节所述深度神经网络模型的参数,直至所述深度神经网络模型为收敛状态,将所述深度神经网络模型作为所述姿态识别模型。

可选的,根据获取的测试集数据对所述姿态识别模型进行测试调整处理,得到最优姿态识别模型,包括:

根据所述测试集数据对所述姿态识别模型进行测试,得到测试结果;

根据所述测试结果对所述姿态识别模型进行调整,得到最优姿态识别模型。

可选的,根据所述最优姿态识别模型对待识别人体图像进行识别,得到识别结果,包括:

将所述待识别人体图像进行人体骨架特征提取处理,得到待识别人体骨架图像;

将所述待识别人体骨架图像输入到卷积神经网络进行处理,得到特征图谱;

将所述特征图谱输入到所述长短时记忆神经网络进行处理,得到长短时记忆神经网络结果;

将所述长短时记忆神经网络结果输入到softmax分类器进行处理,得到多个类属概率;

将所有所述类属概率作为所述识别结果。

本申请还提供一种人体姿态识别系统,括:

训练数据获取模块,用于对预设数量的人体图像进行人体骨架特征提取处理,得到训练集数据;

神经网络训练模块,用于采用所述训练集数据进行神经网络训练,得到姿态识别模型;

神经网络测试模块,用于根据获取的测试集数据对所述姿态识别模型进行测试调整处理,得到最优姿态识别模型;

识别模块,用于根据所述最优姿态识别模型对待识别人体图像进行识别,得到识别结果。

可选的,所述训练数据获取模块,包括:

滤波单元,用于对所述预设数量的人体图像进行中值滤波,得到多个滤波人体图像;

骨架数据获取单元,用于对所有滤波人体图像进行人体骨架数据提取,得到多个人体骨架姿态图像;

归一化处理单元,用于对所有人体骨架姿态图像进行归一化处理,将处理得到图像数据作为所述训练集数据。

可选的,所述神经网络训练模块,包括:

网络构建单元,用于将所述训练集数据输入到卷积神经网络和长短时记忆神经网络中,进行构建得到深度神经网络模型;

损失函数计算单元,用于根据前向传播算法对所述深度神经网络模型计算损失函数,得到损失函数值;

收敛判断单元,用于根据所述损失函数值判断所述深度神经网络模型是否为收敛状态;

识别模型获取单元,用于当所述深度神经网络模型为收敛状态时,将所述深度神经网络模型作为所述姿态识别模型;

模型参数调节单元,用于当所述深度神经网络模型不为收敛状态时,根据反向传播算法调节所述深度神经网络模型的参数,直至所述深度神经网络模型为收敛状态,将所述深度神经网络模型作为所述姿态识别模型。

本申请还提供一种服务器,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上所述的人体姿态识别方法的步骤。

本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的人体姿态识别方法的步骤。

本申请所提供的一种人体姿态识别方法,包括:对预设数量的人体图像进行人体骨架特征提取处理,得到训练集数据;采用所述训练集数据进行神经网络训练,得到姿态识别模型;根据获取的测试集数据对所述姿态识别模型进行测试调整处理,得到最优姿态识别模型;根据所述最优姿态识别模型对待识别人体图像进行识别,得到识别结果。

通过采用人体骨架特征作为神经网络训练的特征数据,有效降低了特征数据的数据量,减少了计算量,加快了计算效率,并且骨架特征可以完整的反映出人体姿态的特性,保证了识别过程的精确性,同时采用神经网络模型训练得到的姿态识别模型进行识别,提高了姿态识别的准确率和精度,也提高了识别模型的泛化性能,增加了人体姿态识别过程中的鲁棒性,减少了遮挡、背景、光照、多视角以及多角度对识别结果的影响,提高了人体姿态识别的可靠性。

本申请还提供一种人体姿态识别系统、服务器以及计算机可读存储介质,具有以上有益效果,在此不再赘述。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例所提供的一种人体姿态识别方法的流程图;

图2为本申请实施例所提供的人体姿态识别方法中人体骨架特征提取方法的流程图;

图3为本申请实施例所提供的人体姿态识别方法中神经网络训练方法的流程图;

图4为本申请实施例所提供的一种人体姿态识别系统的结构示意图。

具体实施方式

本申请的核心是提供一种人体姿态识别方法、人体姿态识别系统、服务器以及计算机可读存储介质,通过将骨架特征作为特征数据,降低了特征数据量,并且采用神经网络进行识别,提高了人体姿态估计的效率。

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

当前技术中,对图像数据进行特征提取的方法为了保留有效的人体动作信息,对人体动作提取数据的维数越来越多。虽然增加了动作描述的信息量,保证姿态判断的准确性,但是越来越多的特征数据维数,会使得冗余计算量越来越多,降低数据计算时的速度,减小数据计算的实时性。并且,现有技术中一般是通过模式对比的方法对人体动作信息进行判断,判断的准确率较低,结果不够精确,造成人体姿态估计过程获取正确结果的效率低下。

因此,本申请实施例提供一种人体姿态识别方法,通过采用人体骨架特征作为神经网络训练的特征数据,有效降低了特征数据的数据量,减少了计算量,加快了计算效率,并且骨架特征可以完整的反映出人体姿态的特性,保证了识别过程的精确性,同时采用神经网络模型训练得到的姿态识别模型进行识别,提高了姿态识别的准确率和精度,也提高了识别模型的泛化性能,增加了人体姿态识别过程中的鲁棒性,减少了遮挡、背景、光照、多视角以及多角度对识别结果的影响,提高了人体姿态识别的可靠性。

请参考图1,图1为本申请实施例所提供的一种人体姿态识别方法的流程图。

该方法可以包括:

s101,对预设数量的人体图像进行人体骨架特征提取处理,得到训练集数据;

本步骤旨在对人体图像进行人体骨架特征提取处理,得到训练集数据。

在一般的神经网络训练的过程中,同样需要对原始的数据进行特征提取,得到合适的特征数据。当前,对于人体姿态识别的过程中,主要是获取到人体的轮廓信息,虽然获取了完整的信息可以进行相对准确的姿态判断,但是轮廓信息的数据量较大,数据维数较多,冗余计算量越来越大,会使训练过程的速度较低,同样也会影响识别过程的速度,不利于识别过程的实时性。

因此,本步骤中主要是在原始的人体图像中提取到人体骨架特征,将多组人体骨架特征数据作为训练集数据。由于人体骨架是由多个具有一定长度的骨头组成,也就是只描述该骨头的起点和终点就可以得到该骨头的方向,或该骨头在空间中的位置,可以减少进行特征描述的数据量,并且通过骨架信息可以完整的呈现出人体姿态的情况,保证特征数据的准确性。所以,本实施例中选用人体骨架特征数据作为训练数据,减少进行训练和识别的数据量,在保持准确性的情况下提高训练和识别的速度。

其中,对于人体骨架特征提取处理主要是获取到与骨架相关的特征数据,具体的,由于描述骨架的方式不同,可以获取全部骨架的特征数据,也可以获取部分主要骨架的特征数据,还可以采用现有技术提供的任意一种骨架特征获取方法,无论采用哪一种骨架特征数据获取的方法,最后获取的特征数据的数据量和数据维数均会有所减少。

其中,预设数量的多少会影响训练集数据的数据量,如果数量较多训练的效果就会越好,数量较少训练的时间就会越短,因此,预设数量可以是1000张这样较少的数量,也可以是5万张,还可以根据实际的应用情况选择合适的数量,在此不做具体限定。

s102,采用训练集数据进行神经网络训练,得到姿态识别模型;

在本步骤s101的基础上,本步骤旨在采用以上的训练集数据进行神经网络训练,得到姿态识别模型。

本步骤中所进行的神经网络训练方法可以是一般的神经网络训练方法,还可以是现有技术中提供的任意一种神经网络训练方法,也可以是以下实施例所提供的神经网络训练方法,可见,神经网络训练方法并不唯一,在此不做具体限定。

其中,得到的姿态识别模型是对人体图像提取出的特征数据进行判断的模型,可以输出姿态的概率。例如,现在有一张具体的人体图像,根据上一步骤中的人体骨架特征提取处理进行特征提取,得到骨架特征,再通过该姿态识别模型进行识别就可以输出相应的类属概率,如果,设置的姿态类别有站、坐、躺、走、跳这五种,那么就输出每种姿态的概率,站的概率80%,坐的概率10%,躺的概率5%,走的概率5%,跳的概率20%。

s103,根据获取的测试集数据对姿态识别模型进行测试调整处理,得到最优姿态识别模型;

在步骤s102的基础上,本步骤旨在采用测试集数据对上一步骤得到的姿态识别模型进行优化,也就是测试调整处理,具体的先进行测试,再根据测试结果进行调整,得到最优姿态识别模型。

其中,测试集数据是已知姿态的特征数据集,因此可以将已知姿态和识别姿态进行对比,以便根据对比结果进行调整。测试集数据的数据量会影响测试调整处理的结果,越多测试结果越准确,越少测试速度越快,可以根据实际情况进行选择。

s104,根据最优姿态识别模型对待识别人体图像进行识别,得到识别结果。

在步骤s103的基础上,本步骤旨在进行人体姿态识别,也就是采用最优姿态识别模型对待识别人体图像进行识别,得到识别结果。其中,包括对待识别人体图像进行人体骨架特征提取处理,得到待识别骨架特征,再采用最优姿态识别模型对待识别骨架特征进行识别,得到识别结果。

其中,进行识别的方法可以采用现有技术提供的任意一种识别方法,还可以采用以下可选方案提供的识别方法。

可选的,本步骤中的s103可以包括:

步骤1,根据测试集数据对姿态识别模型进行测试,得到测试结果;

步骤2,根据测试结果对姿态识别模型进行调整,得到最优姿态识别模型。

本可选方案主要是介绍一种具体的测试调整处理方法,先根据测试集数据对姿态识别模型进行测试,得到测试结果,再根据测试结果对姿态识别模型进行调整,得到最优姿态识别模型。

具体的,先通过摄像头采集到300张人体图像,对这些人体图像进行分类,标明其具体的人体姿态,例如站、坐、躺、走、跳等。然后在对所有的人体图像进行预处理,提取出对应的特征数据,再将这些特征数据通过姿态识别模型进行识别,得到识别结果,再将该识别结果和已知的类别进行对比,确定模型对于哪些图像的识别是正确的,然后输出相应的对比结果,作为测试结果。最后根据该测试结果对姿态识别模型进行调整,得到最优姿态识别模型。其中,进行调整一般是调整神经网络的参数。

其中,对于多张人体图像可以同时进行测试,根据测试结果进行调整,也可以将多张人体图像分批获取测试结果再进行调整,可见,本可选方案中的具体步骤的执行顺序有多种顺序和多种次数,可以根据实际的情况进行选择,在此不做具体限定。

可选的,本步骤中的s104可以包括:

步骤1,将待识别人体图像进行人体骨架特征提取处理,得到待识别人体骨架图像;

步骤2,将待识别人体骨架图像输入到卷积神经网络进行处理,得到特征图谱;

步骤3,将特征图谱输入到长短时记忆神经网络进行处理,得到长短时记忆神经网络结果;

步骤4,将长短时记忆神经网络结果输入到softmax分类器进行处理,得到多个类属概率;

步骤5,将所有类属概率作为识别结果。

其中,卷积神经网络中的卷积核大小分别为3×3,下采样层采用最大池化来降低卷积输出维度,以处理图像中地冗余数据,同时可以降低运动频率变化对识别精度造成地影响,池化区域大小为2×2。卷积神经网络中每个卷积层后接一个池化层,池化技术能提高算法的平移不变性,所有卷积、池化运算的步长设置皆为1。

将cnn(卷积神经网络)处理后的特征图谱输入lstm(长短时记忆神经网络)中处理,以防止长时间数据输入过大导致梯度爆炸的问题。

本可选方案中全连接层设置为1层,神经元个数为1024,并采用前馈式神经网络的连接方式。分类层采用的是softmax分类器,通过softmax层归一化,确定人体骨架的类属概率。

其中,softmax函数如下:

其中,p(ck)表示类属概率;ok、oi分别表示全连接层输出的第k和第i个元素;c表示人体姿态类别总数。

本可选方案中卷积神经网络的激活函数全部为双曲正切函数tanh。

公式如下所示:

其中,x为输入变量。

综上,本实施例通过采用人体骨架特征作为神经网络训练的特征数据,有效降低了特征数据的数据量,减少了计算量,加快了计算效率,并且骨架特征可以完整的反映出人体姿态的特性,保证了识别过程的精确性,同时采用神经网络模型训练得到的姿态识别模型进行识别,提高了姿态识别的准确率和精度,也提高了识别模型的泛化性能,增加了人体姿态识别过程中的鲁棒性,减少了遮挡、背景、光照、多视角以及多角度对识别结果的影响,提高了人体姿态识别的可靠性。

在上一实施例的基础上,本实施例主要介绍一种人体骨架特征的提取方法。上一实施例中所进行的人体骨架特征提取方法可以采用现有技术中提供的任意一种特征提取方法,可以采用本实施例提供的人体骨架特征的提取方法,其他部分与上一实施例大体相同,相同部分可以参考上一实施例,在此不做赘述。

请参考图2,图2为本申请实施例所提供的人体姿态识别方法中人体骨架特征提取方法的流程图。

该方法可以包括:

s201,对预设数量的人体图像进行中值滤波,得到多个滤波人体图像;

首先本步骤主要是对预设数量的人体图像进行中值滤波,得到多个滤波人体图像。获取预设数量的人体图像是原始图像,原始图像由于获取途径和获取方式的差异,存在不同程度的杂散噪声点和噪声小块,其中的噪声会对特征提取的准确性造成影响。因此,本步骤中对获取的多个人体图像进行中值滤波,以便去除图像中的杂散噪声点和噪声小块,降低噪声数据量。

其中,进行的中值滤波的方法可以选用3×3滤波模版进行处理。

s202,对所有滤波人体图像进行人体骨架数据提取,得到多个人体骨架姿态图像;

在上一步骤的基础上,本步骤旨在对得到所有滤波人体图像进行人体骨架数据提取,得到人体骨架姿态图像。本步骤就是对滤波人体图像中的人体进行分析,得到对应的人体骨架数据,相当于是从人体图像中分割出相应的骨架姿态图像。可以想到的是相比起人体外形的图像,由于是骨架姿态图像,其中描述骨架姿态的数据量也会比较少,因此通过这样的特征数据进行神经网络训练可以极大的减少数据运算的计算量,降低计算冗余,提高速度。

其中,人体骨架数据提取的方法可以采用现有技术提供的任意一种人体骨架数据提取的方法,在此不做具体限定。

s203,对所有人体骨架姿态图像进行归一化处理,将处理得到图像数据作为训练集数据。

在步骤s202的基础上,本步骤旨在对所有的人体骨架姿态图像进行归一化处理,得到多个图像数据,再将所有的图像数据作为训练集数据。

其中,具体的进行归一化处理主要是将图像数据全部调整为统一大小规格的图形数据,其中,大小规格可以根据实际的情况选择合适的大小规格,也可以将大小规格设置为256×256。

通过本实施例可以提取到数据量更少,计算冗余量更少的特征数据,提高后续步骤中的计算速度。

在以上所有实施例的基础上,本实施例主要是对神经网络训练的方法做一个具体说明,其他部分与以上所有实施例的相应部分大体相同,相同部分可以参考以上所有实施例,在此不做赘述。

请参考图3,图3为本申请实施例所提供的人体姿态识别方法中神经网络训练方法的流程图。

该方法可以包括:

s301,将训练集数据输入到卷积神经网络和长短时记忆神经网络中,进行构建得到深度神经网络模型;

s302,根据前向传播算法对深度神经网络模型计算损失函数,得到损失函数值;

s303,根据损失函数值判断深度神经网络模型是否为收敛状态;

s304,若是,则将深度神经网络模型作为姿态识别模型;

s305,若否,则根据反向传播算法调节深度神经网络模型的参数,直至深度神经网络模型为收敛状态,将深度神经网络模型作为姿态识别模型。

其中,损失函数采用交叉熵函数,公式如下:

其中,p(x)为样本标签,表示真实的样本分布状态,q(x)为模型的预估,是通过数据计算得到的估计概率,表示模型的分布状态。

本实施例中采用反向传播(bpbackpropagation)算法调节网络参数,采用随机梯度下降法(sgdstochasticgradientdescent)进行参数优化,训练时的学习速率为0.001,权重衰减系数为0.0001。

通过本实施中的s303至s305,可以发现本实施例中的步骤是循环进行的,跳出循环的判断即为判断深度神经网络模型是否为收敛状态。若不满足s303就继续执行s301,直到满足s303,执行s304,得到姿态识别模型。

本申请实施例提供了神经网络训练方法,通过神经网络模型训练得到的姿态识别模型进行识别,提高了姿态识别的准确率和精度,也提高了识别模型的泛化性能,增加了人体姿态识别过程中的鲁棒性,减少了遮挡、背景、光照、多视角以及多角度对识别结果的影响,提高了人体姿态识别的可靠性。

下面对本申请实施例提供的一种人体姿态识别系统进行介绍,下文描述的一种人体姿态识别系统与上文描述的一种人体姿态识别方法可相互对应参照。

请参考图4,图4为本申请实施例所提供的一种人体姿态识别系统的结构示意图。

该系统可以包括:

训练数据获取模块100,用于对预设数量的人体图像进行人体骨架特征提取处理,得到训练集数据;

神经网络训练模块200,用于采用训练集数据进行神经网络训练,得到姿态识别模型;

神经网络测试模块300,用于根据获取的测试集数据对姿态识别模型进行测试调整处理,得到最优姿态识别模型;

识别模块400,用于根据最优姿态识别模型对待识别人体图像进行识别,得到识别结果。

可选的,该训练数据获取模块100,可以包括:

滤波单元,用于对预设数量的人体图像进行中值滤波,得到多个滤波人体图像;

骨架数据获取单元,用于对所有滤波人体图像进行人体骨架数据提取,得到多个人体骨架姿态图像;

归一化处理单元,用于对所有人体骨架姿态图像进行归一化处理,将处理得到图像数据作为训练集数据。

可选的,该神经网络训练模块200,可以包括:

网络构建单元,用于将训练集数据输入到卷积神经网络和长短时记忆神经网络中,进行构建得到深度神经网络模型;

损失函数计算单元,用于根据前向传播算法对深度神经网络模型计算损失函数,得到损失函数值;

收敛判断单元,用于根据损失函数值判断深度神经网络模型是否为收敛状态;

识别模型获取单元,用于当深度神经网络模型为收敛状态时,将深度神经网络模型作为姿态识别模型;

模型参数调节单元,用于当深度神经网络模型不为收敛状态时,根据反向传播算法调节深度神经网络模型的参数,直至深度神经网络模型为收敛状态,将深度神经网络模型作为姿态识别模型。

本申请实施例还可以提供一种服务器,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如以上实施例所述的人体姿态识别方法的步骤。

本申请实施例还可以提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如以上实施例所述的人体姿态识别方法的步骤。

该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本申请所提供的一种人体姿态识别方法、人体姿态识别系统、服务器以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1