一种人体行为识别方法与系统

文档序号:28595013发布日期:2022-01-22 10:10阅读:114来源:国知局
一种人体行为识别方法与系统

1.本发明属于目标检测与识别领域,特别是涉及一种人体行为识别方法与系统。


背景技术:

2.随着计算机技术的发展,计算机在生活中的应用越来越广泛;随之而来的是计算机如何理解场景的问题,也即识别问题,当计算机能够理解环境时,便能完成一系列与之相关的指令,在不同的环境中完成不同的任务。而在众多环境中,包含人的场景占比更是巨大,研究这些场景中出现的人物以及人物的表现行为也就相当有意义。
3.而处理这些复杂的场景,往往采用很复杂、庞大的算法模型进行处理或者是昂贵的硬件设备代替软件检测,其拓展性差且成本较高。


技术实现要素:

4.本发明的目的在于克服现有技术的不足,提供一种计算量小、拓展性强、实时运行的人体行为识别方法与系统,通过使用openpose解决了场景复杂的问题,规避了昂贵的硬件成本,使用支持向量神经网络解决了模型庞大,拓展性差的问题。
5.为了实现上述发明目的,本发明提供的一种人体行为识别方法,包括如下步骤:
6.采集人体图像数据;
7.从包含人体图像的视频序列中提取出人体骨架序列数据;
8.将提取到的人体骨架序列进行数据预处理,找出人体参照关节点,计算人体各关节点相对于人体参照节点的偏移,再根据关节点之间的最大距离对关节点坐标进行标准化,将骨架序列通过滑动窗口的形式生成人体行为帧窗口数据;
9.对人体行为帧窗口数据进行分类,使用结构化风险最小化的思想,将分类问题转换为二次规划问题;
10.将二次规划问题使用支持向量神经网络进行求解,首先将二次规划问题转化为一个线性变分不等式lvi,再将线性变分不等式lvi转为线性投影问题plpe,使用原对偶神经网络求解。
11.将求解结果封装为函数库,软件使用函数库搭建人体行为识别系统。
12.其中,人体图像视频只需使用普通的高清摄像头进行图像采集,使用openpose系统对图像进行逐帧处理提取人体骨架数据。
13.其中,人体参照关节点选用骨架序列中的脖子位置特征点;关节点之间的距离指相互连接的关节点之间的距离,例如左肘与左手腕的距离。
14.所述对人体骨架序列数据进行预处理,得到人体行为帧窗口数据,包括:
15.在人体骨架数据中,将其中一个关节点设定为整个人体关节的参照基准点,把其他关节点的坐标转换为相对于人体关节的参照基准点的偏置;
16.使用各关节间的最长距离对整体骨架进行标准化;
17.从标准化后的人体骨架序列数据通过滑动窗口的形式生成人体行为帧窗口数据。
18.其中,其他关节点的坐标转换为相对于人体关节的参照基准点的偏移中,偏移的公式为:
[0019][0020][0021]
式中,(x1,y1)是参照基准点的坐标,(xi,yi)为身体关节点i的坐标,是身体关节点i相对于参照基准点偏置后的坐标。
[0022]
其中,所述使用各关节间的最长距离对整体骨架进行标准化中,包括:
[0023]
分别计算各相连关节之间的距离d
i,j
,得到整体的距离集合d;
[0024]
选择距离集合d中的最大值d
max
,对相对于关节参照基准点的偏置进行标准化:
[0025][0026][0027]
其中,对人体骨架序列数据进行的预处理还包括:
[0028]
若某一帧中的人体关节的参照基准点未检测到,则丢弃该帧;
[0029]
若某一帧中人体的部分关节点未能检测到,缺失了一个或多个关节点坐标,则利用前后两帧中的关节坐标插值求出当前帧坐标。
[0030]
所述利用前后两帧中的关节坐标插值求出当前帧坐标中的插值方式为:
[0031][0032][0033]
其中t表示第t帧数据,分别代表第t帧数据对应的关节点坐标。
[0034]
其中,将帧窗口数据转为一个一维特征向量,这个特征向量中包含了人体的某种行为,根据结构化风险最小化,分类问题会转化为求解数据特征空间的不同类别数据之间间隔最大的凸二次规划问题,具体的求解如下给出。
[0035]
首先,给出一个人体行为数据集t,
[0036][0037]
其中,x由x
l
组成,x
l
∈r1×n为特征列向量样本,r1×n代表维度为n,y由y
l
组成,y
l
∈{1,-1}为样本的类别标签,l=1,

,m,代表对应第1个数据样本。分类函数即两种特征向量之间的决策超平面可以表示为:
[0038]
f(x)=ωx
t
+b#
ꢀꢀꢀ
(2)
[0039]
其中,ω∈r1×n为该超平面的法向量,阈值b表示该超平面在特征空间中的位置,x
t
代表将特征向量进行转置操作。为使超平面在特征空间中能将两类特征向量的间隔达到最大,即位于超平面两边的特征向量到达最大超平面的距离最大,可以得出这样的数学表示:
[0040][0041]
s.t.y
l
(ωx
lt
+b)-1≥0,l=1,2,...,m#
ꢀꢀꢀ
(4)
[0042]
式(4)中将根据经验法将间隔设置为1(一般设置为1,也可根据视情况设置为其他数值),这样的条件称为硬间隔;有时为了避免因为个别极端的特征向量对超平面造成影响,式(4)的约束可以稍微降低,所以引入了软间隔,允许少数数据点的间隔小于1,引入一个松弛变量ξ
l
来减小间隔,同时也将松弛变量ξi的错误加入目标函数中,则式(3)(4)将转变为二次规划问题:
[0043][0044]
s.t.y
l
(ωx
l
+b)-1+ξ
l
≥0#
ꢀꢀꢀ
(6)
[0045]
ξ
l
≥0,l=1,2,...,m#
ꢀꢀꢀ
(7)
[0046]
其中c是一个惩罚系数,表示引入松弛变量ξ
l
之后带来的结构风险。
[0047]
对于式(5)的求解,可以通过拉格朗日对偶性变换到对偶变量的优化问题。
[0048]
引入拉格朗日乘子α
l
≥0,β
l
≥0,根据公式(6)、(7)列出公式(5)的拉格朗日方程:
[0049][0050]
l(ω,b,α,β)中α、β代表对应等式与不等式约束的拉格朗日乘子。
[0051]
令l(ω,b,α,β)对ω、b、ξ的偏导为零,可得:
[0052][0053][0054]
c=α
l

l
#
ꢀꢀꢀ
(11)
[0055]
将式(9)(10)(11)代入公式(5),可得其对偶问题:
[0056][0057]
[0058]
0≤α1,α2,...,αm≤c#
ꢀꢀꢀ
(14)
[0059]
其中l,j代表对应数据样本的下标,代表特征向量两两相乘。求解出α,代入式(12)即可得到ω,而阈值b可通过公式(15)求出。
[0060][0061]
为了解决非线性分类问题,可以引入核函数将特征样本由低维空间映射到高位空间中,从而使得特征样本在高维空间中线性可分。基于此,转换为k(x
l
,xj),核函数可以直接计算出高维特征之间的内积,避免显式地计算非线性特征映射。使用高斯核函数:
[0062][0063]
σ代表的含义是高斯核函数方差的大小。
[0064]
为求解二次规划问题的对偶问题(12)-(14),首先将其转换为矩阵格式的表示:
[0065][0066]
s.t.-qα=0#
ꢀꢀꢀ
(18)
[0067]-α≤0#
ꢀꢀꢀ
(19)
[0068]
α-c≤0#
ꢀꢀꢀ
(20)
[0069]
其中k
t
为向量k的转置,q=[-y1…
ym]。引入拉格朗日乘子λ∈r,η-≥0∈rn×1,η
+
≥0∈rn×1,列出公式(17)的拉格朗日方程:
[0070][0071]
所以对偶问题(17-20)可以转化为以下问题:
[0072][0073]
s.t.wα+k-λq
t-η-+η
+
=0#
ꢀꢀꢀ
(23)
[0074]
λ∈r,η-≥0∈rn×1,η
+
≥0∈rn×1#
ꢀꢀꢀ
(24)
[0075]
如果存在最优解(α
*
,λ
*
,η-*
,η+
*
),那么二次规划问题以及其对偶问题应满足以下条件:
[0076]
s.t.-qα
*
=0#
ꢀꢀꢀꢀ
(25)
[0077]
0≤α
*
≤c#
ꢀꢀꢀ
(26)
[0078]
s.t.wα
*
+k-λ
*qt-η-*

+*
=0#
ꢀꢀꢀ
(27)
[0079]
λ
*
∈r,η-*
≥0∈rn×1,η
+*
≥0∈rn×1#
ꢀꢀꢀ
(28)
[0080]
可以转化为如下线性变分不等式
[0081][0082]
又因为qα
*
=0,那么对于λ∈r,存在:
[0083]
(λ-λ
*
)
t

*
≥0#
ꢀꢀꢀ
(30)
[0084]
可以得到:
[0085][0086]
设代入公式(31)可得:
[0087]
(μ-μ
*
)
t
(aμ
*
+k)≥0#
ꢀꢀꢀ
(32)
[0088]
假设存在最优解μ
*
,则由式(31)将等价于
[0089]
μ-p
ω
(μ-(aμ+k))=0#
ꢀꢀꢀ
(33)
[0090]
其中,p
ω
代表一个分段线性函数:
[0091][0092]
因为μ∈ω=[0,c],所以μ
*
∈ω且u∈ω保证线性变分不等式lvi成立。
[0093]
如果线性变分不等式lvi有解,那么此解也是plpe式(33)的解,即可以通过求解线性投影方程plpe的解,从而得到线性变分不等式lvi的解,也是二次规划问题的最优解。
[0094]
为求解方程(34),采用基于线性变分不等式lvi的原对偶神经网络的求解方法,可以得到如下方程:
[0095][0096]
其中,a
t
代表矩阵a的转置,代表对μ进行微分,i为单位矩阵,γ≥0为表示网络收敛速率的正数。如果存在这样一个正数ρ,使得下式成立:
[0097][0098]
则网络可以达到指数级收敛,且其收敛速度与γρ成正比。
[0099]
保存求解的结果,根据公式(2)表示的分类函数,利用代码实现其计算原理,封装为一个完整的分类函数库,在这个函数库的基础上,搭建人体行为识别系统。
[0100]
与现有技术相比,本发明至少能实现以下有益效果:
[0101]
本发明能有效克服现有技术的不足,提供计算量小、拓展性强、实时运行的人体行为识别方法和系统,首次将支持向量神经网络与openpose结合,所搭建的系统完美具备了这两种算法的优点,对复杂背景适应性强,鲁棒性高,且实时性强。
附图说明
[0102]
图1为本发明实施例提供的一种人体行为识别方法的流程示意图。
[0103]
图2为本发明中行为识别系统的结构示意图。
[0104]
图3为本发明中行为识别系统的识别运行流程示意图。
具体实施方式
[0105]
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0106]
本发明提供的一种人体行为识别方法,包括以下步骤:
[0107]
步骤1:通过摄像头采集人体图像数据。
[0108]
在本发明其中一个实施例中,只需使用普通的高清摄像头即可进行人体图像采集。
[0109]
步骤2:使用openpose算法从人体图像数据中提取出人体骨架序列数据,并对人体骨架序列数据进行预处理,得到人体行为帧窗口数据。
[0110]
本步骤进行的预处理,具体包括:
[0111]
1)选择某一关节点作为整个人体关节的参照基准点,把其他身体关节点的坐标转换为相对于参照基准点的偏置;
[0112]
在本发明其中一个实施例中,选择脖子关节点作为参照基准点。
[0113]
2)在不同视频中人体大小占比并不相同,为了保证人体比例的一致性,需要进一步的处理,使用各关节点之间的最长距离对整体骨架进行标准化。其中,关节点之间的距离指相互连接的关节点之间的距离,例如左肘与左手腕的距离。
[0114]
3)视频中的人体在同一动作的不同帧之间可能存在遮挡或是侧身,使得openpose算法检测出的数据遗漏了某些关节,在本发明的一些实施例中,进行了以下优化:a)如果某一帧中人体关节参照基准点未检测到,则丢弃该帧。人体动作具有一定的连续性,相邻帧之间具有较大的相似性,去除某些帧并不会对视频中人物动作的理解造成影响;b)如果某一帧中人体的部分关节未能检测到,缺失了一个或多个关节点坐标,则可根据前后帧检测到的关节坐标进行补充,由于动作具有一定的连续性,可以利用前后两帧中的关节坐标插值求出当前帧坐标;
[0115]
4)上述的数据处理只是根据某一帧的骨架数据,表示的是某一时刻的人体静态动作,而完整的一套行为动作可以看成是由多个时刻的静态动作的有序集合。为了表示连续的人体行为动作,本发明通过滑动窗口的形式生成人体行为帧窗口数据。
[0116]
具体的,在本发明其中一个实施例中,使用的是openpose系统提供的api,选择openpose的coco-18模型,输出人体的18个关节点的坐标,其中每个关节点的含义如下表示:
[0117]
表1 coco-18关节序号对应关系
[0118][0119][0120]
提取出关节坐标组成[x0,y0,x1,y1,...],其中xi,yi是序号i身体关节在图像中的绝对坐标(以图像的左下角为坐标原点)。
[0121]
对身体关节数据做进一步处理,为了避免人体在图像中的不同位置带来的影响,本实施例选择序号1身体关节即脖子作为整个人体关节的参照基准点,序号1关节连接着的其他身体关节,为核心关节点),把其他身体关节坐标转换为相对于参照基准点的偏置,其计算如下:
[0122][0123][0124]
(x1,y1)是参照基准点的坐标,分别代表其他身体关节坐标(xi,yi)基于参照基准点映射完成后的位置;
[0125]
由于在视频中人体大小占比并不相同,为了保证人体比例的一致性,需要进一步的处理,本实施例选择的处理方式是使用各关节之间的最长距离对整体骨架进行标准化,具体表现为:
[0126]
根据关节连接关系,计算各相连接关节之间的距离,记为d
i,j
,得到整体的距离集合d;
[0127]
选择距离集合d中的最大值d
max
,对相对于关节参照基准点的偏置进行标准化:
[0128]
[0129][0130]
具体的,在本发明其中一个实施例中,在进行优化时,利用前后两帧中的关节坐标插值求出当前帧坐标中的插值方式为:
[0131][0132][0133]
其中t表示第t帧数据。分别代表第t帧数据对应的关节点坐标(xi,yi)。
[0134]
具体的,在本发明其中一个实施例中,所述通过滑动窗口的形式生成人体行为帧窗口数据,包括:采用滑动窗口的方式,从预处理得到的人体骨架序列中选择窗口大小为n的帧窗口,形成一个帧窗口矩阵:
[0135][0136]
其中,fk表示滑动窗口中第k帧的骨架关节特征,此处fk的内容为:
[0137][0138]
表示滑动窗口中预处理后的第k帧的骨架关节坐标。
[0139]
步骤3:将人体行为帧窗口数据的分类以结构风险最小化为目标表示为二次规划问题。
[0140]
步骤4:将二次规划问题使用支持向量神经网络进行求解,得到人体行为识别结果。具体是:先将二次规划问题转化为线性变分不等式lvi,然后将线性变分不等式lvi转换为线性投影方程plpe,最后使用原对偶神经网络求解器或二次规划数值方法求解线性投影方程plpe,得到识别结果。
[0141]
本发明首次将支持向量神经网络应用于行人识别问题。将人体识别方法封装成库,搭建基于openpose和支持向量神经网络的人体行为识别系统。
[0142]
本发明提供的一种人体识别系统,请参阅图2,包括:
[0143]
图像采集模块,用于采集人体图像数据;
[0144]
骨架识别模块,用于使用openpose算法从人体图像数据中提取出人体骨架序列数据,并对人体骨架序列数据进行预处理,得到人体行为帧窗口数据;
[0145]
转换模块,用于将人体行为帧窗口数据的分类以结构风险最小化为目标表示为二次规划问题;
[0146]
行为识别模块,用于将二次规划问题使用支持向量神经网络进行求解,得到求解结果;
[0147]
数据分析模块,用于根据求解结果得到人体识别结果。
[0148]
在本发明的一些实施例中,行为识别模块由支持向量神经网络识别完成,使用三组简单的动作:挥手、打电话、行走,为三组动作分别编号为0、1、2。将骨架识别模块处理后的数据作为输入,将二次规划问题转换为plpe方程。为了识别多类行为,搭建多个1对1分类器,这里需要个,也就是需要建立3个plpe方程,求解完成后,使用投票法选出最大值,得到对应的类别编号。
[0149]
行为识别模块进行计算,输出数值编号,为了将数值与动作对应起来,需要一个数据分析模块,根据预测得到的数值编号分析对应动作,并将人体在图像框出,标注人体动作,在显示器中展出。
[0150]
图3为行为识别系统的交互流程,当摄像机采集到图像数据时,由骨架识别模块进行骨架数据提取;当骨架数据提取到预设数量时,由行为识别模块进行识别,并输出预测值,数据分析模块根据预测值分析对应动作,并将人体在图像框出,标注人体动作,在显示器中展出。
[0151]
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1