一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于用户姿势高效能识别的机器人控制方法和系统与流程

2022-04-27 07:25:38 来源:中国专利 TAG:


1.本发明涉及机器人控制技术领域,具体是基于用户姿势高效能识别的机器人控制方法和系统。


背景技术:

2.机器人利用摄像头或者雷达点云数据,在一定距离以外,捕获用户的身体姿态数据用户通过特定的身体姿态,向机器人下达指令,从而控制机器人执行特定行进动作和功能。这种控制方式相比传统的通过机器人的触摸屏、按钮、手机、遥控器等方式控制机器人,或者通过语音来控制机器人来说,不必用户打断正在进行的事情专门前往机器人处操控,因此更为自然快捷;受周围环境干扰(例如噪声干扰)小;对指令识别误判概率低;能够支持的指令类型和数量更为多样;用户不必携带和依赖手机、遥控器等特定的设备。
3.但是,存在的问题在于:用户一般是从自然状态或者其他活动下的身体姿态过渡到下达指令的特定身体姿态,然后再过渡回到自然状态或者其他活动下的身体姿态;这期间的过渡是连续和平滑的,而且自然状态或者其他活动状态是常态性的,面向机器人下达指令是偶发性的。如何有效地将下达指令的特定身体姿态,从一系列连续、平滑的身体姿态数据的帧序列(机器人的摄像头或者雷达在每个采样时间点捕获的身体姿态数据作为一个数据帧,依照采样时间点时序排列,形成身体姿态数据的帧序列)中提取出来,然后发给模式识别过程,将特定身体姿态转化为对机器人的指令,这是本项技术的一个难点;如果把自然状态或者其他活动下的身体姿态数据也都发给模式识别过程,一方面容易造成机器人把这些也识别为指令,从而产生误判和误操作,另一方面这种无效的识别计算对于机器人的算力和电能也是一大浪费;反之,如果提取出来特定身体姿态不完整,也会造成机器人的误判或者无法响应。


技术实现要素:

4.鉴于上述问题,本发明的目的是为了解决不能准确提取磁流变抛光去除函数的有效数据、进而降低磁流变加工的精度的问题。
5.本发明实施例提供基于用户姿势高效能识别的机器人控制方法,包括:
6.获取身体姿态数据的帧序列,基于所述身体姿态数据的帧序列提取身体姿态关键节点与身体姿态数据分布空间,将所述身体姿态数据分布空间划分为三维空间网格,基于所述身体姿态关键节点与所述三维空间网格计算身体姿态分段;
7.基于所述身体姿态分段,按照第一预设比例抽取状态采样帧,将所述状态采样帧对应的所述身体姿态关键节点所分布的所述三维空间网格与预设常态模板进行对比,基于对比结果判断身体姿态分段是否处于常态;
8.若所述身体姿态分段处于非常态,则按照第二预设比例抽取非常态采样帧,将所述非常态采样帧对应的所述身体姿态关键节点所分布的所述三维空间网格与指令模板进行对比,基于比较结果对所述身体姿态分段进行用户姿态指令识别,基于所述用户姿态指
令控制机器人。
9.在一个实施例中,所述获取身体姿态数据的帧序列,基于所述身体姿态数据的帧序列提取身体姿态关键节点与身体姿态数据分布空间,将所述身体姿态数据分布空间划分为三维空间网格,基于所述身体姿态关键节点与所述三维空间网格计算身体姿态分段,包括:
10.采集身体姿态数据分布空间,将所述身体姿态数据分布空间划分为三维空间网格;
11.基于所述身体姿态数据提取所述身体姿态关键节点,确定所述身体姿态关键节点分布的所述三维空间网格,生成身体姿态关键节点分布网格;
12.定义所述三维空间网格之间的姿态转移矩阵,并基于所述身体姿态关键节点分布网格对所述姿态转移矩阵进行赋值;
13.基于赋值后的所述姿态转移矩阵与同一身体姿态关键节点在所述三维空间网格之间进行转移的概率,利用预设算法生成动态分界帧,基于所述动态分界帧生成所述身体姿态分段。
14.在一个实施例中,所述基于所述相同身体姿态关键节点与所述三维空间网格,利用预设算法生成动态分界帧,基于所述动态分界帧生成所述身体姿态分段,包括:
15.定义转移概率矢量,基于赋值后的所述姿态转移矩阵与所述同一身体姿态关键节点在所述三维空间网格之间进行转移的概率对转移概率矢量进行迭代,生成稳定概率,基于所述稳定概率构建转移概率矢量组;
16.基于所述转移概率矢量组确定所述身体姿态关键节点的节点转移概率,将所述节点转移概率累加,生成姿态转移概率;
17.将所述姿态转移概率与姿态转移判定阈值进行比较,生成所述动态分界帧,基于所述动态分界帧生成所述身体姿态分段。
18.在一个实施例中,所述基于所述身体姿态分段,按照第一预设比例抽取状态采样帧,将所述状态采样帧对应的所述身体姿态关键节点分布网络与预设常态模板进行对比,基于对比结果判断身体姿态分段是否处于常态,包括:
19.基于所述身体姿态分段,按照第一预设比例抽取状态采样帧;
20.将所述状态采样帧对应的所述身体姿态关键节点分布网格与预设常态模板进行对比,生成所述采样帧偏离度;
21.基于所述采样帧偏离度计算偏离度平均值,将所述偏离度平均值与偏离阈值进行比较,基于比较结果判断所述身体姿态分段是否处于常态。
22.在一个实施例中,所述若所述身体姿态分段处于非常态,则按照第二预设比例抽取非常态采样帧,将所述非常态采样帧对应的所述身体姿态关键节点分布网络与指令模板进行对比,基于比较结果对所述身体姿态分段进行用户姿态指令识别,基于所述用户姿态指令控制机器人,包括:
23.若所述身体姿态分段处于非常态,则按照第二预设比例抽取非常态采样帧;
24.将所述非常态采样帧对应的所述身体姿态关键节点分布网格与指令模板进行对比,生成指令模板符合度;
25.基于所述指令模板符合度计算符合度平均值,将所述符合平均值与指令阈值进行
比较,基于比较结果判断所述身体姿态分段是否属于所述用户姿态指令;
26.若所述身体姿态分段的属于所述用户姿态指令,则基于所述用户姿态指令控制所述机器人。
27.第二方面,本发明还提供基于用户姿势高效能识别的机器人控制系统,包括:
28.身体姿态分段计算模块,用于获取身体姿态数据的帧序列,基于所述身体姿态数据的帧序列提取身体姿态关键节点与身体姿态数据分布空间,将所述身体姿态数据分布空间划分为三维空间网格,基于所述身体姿态关键节点与所述三维空间网格计算身体姿态分段;
29.身体姿态分段状态判断模块,用于基于所述身体姿态分段,按照第一预设比例抽取状态采样帧,将所述状态采样帧对应的所述身体姿态关键节点所分布的所述三维空间网格与预设常态模板进行对比,基于对比结果判断身体姿态分段是否处于常态;
30.用户姿态指令识别模块,用于若所述身体姿态分段处于非常态,则按照第二预设比例抽取非常态采样帧,将所述非常态采样帧对应的所述身体姿态关键节点所分布的所述三维空间网格与指令模板进行对比,基于比较结果对所述身体姿态分段进行用户姿态指令识别,基于所述用户姿态指令控制机器人。
31.在一个实施例中,所述身体姿态分段计算模块,包括:
32.三维空间网格划分子模块,用于采集身体姿态数据分布空间,将所述身体姿态数据分布空间划分为三维空间网格;
33.身体姿态关键节点提取子模块,用于基于所述身体姿态数据提取所述身体姿态关键节点,确定所述身体姿态关键节点分布的所述三维空间网格,生成身体姿态关键节点分布网格;
34.姿态转移矩阵赋值子模块,用于定义所述三维空间网格之间的姿态转移矩阵,并基于所述身体姿态关键节点分布网格对所述姿态转移矩阵进行赋值;
35.身体姿态分段生成子模块,用于基于赋值后的所述姿态转移矩阵与同一身体姿态关键节点在所述三维空间网格之间进行转移的概率,利用预设算法生成动态分界帧,基于所述动态分界帧生成所述身体姿态分段。
36.在一个实施例中,所述身体姿态分段生成子模块,包括:
37.转移概率矢量组构建单元,用于定义转移概率矢量,基于赋值后的所述姿态转移矩阵与所述同一身体姿态关键节点在所述三维空间网格之间进行转移的概率对转移概率矢量进行迭代,生成稳定概率,基于所述稳定概率构建转移概率矢量组;
38.姿态转移概率生成单元,用于基于所述转移概率矢量组确定所述身体姿态关键节点的节点转移概率,将所述节点转移概率累加,生成姿态转移概率;
39.动态分界帧生成单元,用于将所述姿态转移概率与姿态转移判定阈值进行比较,生成所述动态分界帧,基于所述动态分界帧生成所述身体姿态分段。
40.在一个实施例中,所述身体姿态分段状态判断模块,具体包括:
41.状态采样帧抽取子模块,用于基于所述身体姿态分段,按照第一预设比例抽取状态采样帧;
42.采样帧偏离度生成子模块,用于将所述状态采样帧对应的所述身体姿态关键节点分布网格与预设常态模板进行对比,生成所述采样帧偏离度;
43.比较判断子模块,用于基于所述采样帧偏离度计算偏离度平均值,将所述偏离度平均值与偏离阈值进行比较,基于比较结果判断所述身体姿态分段是否处于常态。
44.在一个实施例中,所述用户姿态指令识别模块,包括:
45.非常态采样帧抽取子模块,用于若所述身体姿态分段处于非常态,则按照第二预设比例抽取非常态采样帧;
46.指令模板符合度生成子模块,用于将所述非常态采样帧对应的所述身体姿态关键节点分布网格与指令模板进行对比,生成指令模板符合度;
47.用户姿态指令判断子模块,用于基于所述指令模板符合度计算符合度平均值,将所述符合平均值与指令阈值进行比较,基于比较结果判断所述身体姿态分段是否属于所述用户姿态指令;
48.控制子模块,用于若所述身体姿态分段的属于所述用户姿态指令,则基于所述用户姿态指令控制所述机器人。
49.本发明实施例提供的上述技术方案的有益效果至少包括:
50.本发明实施例提供的基于用户姿势高效能识别的机器人控制方法,本方法针对机器人捕获的连续、平滑的身体姿态数据提取身体姿态关键节点,将身体姿态的帧序列划分为三维空间网格,确定身体姿态关键节点所分布的三维空间网格,保证了对身体姿态关键部位所处空间的准确性,其次,通过赋值后的姿态转移矩阵与同一身体姿态关键节点在三维空间网格之间进行转移的概率对转移概率矢量进行迭代,生成稳定概率,实现了对同一身体姿态关键部位所处三维空间网格进行转移的精准掌握,最后对帧序列进行动态分段,实现了对身体姿态数据的聚类,并基于身体姿态分段,利用第一预设比例与常态模板对身体姿态分段是否处于常态进行判断,将非常态的身体姿态分段进一步地基于第二预设比例与指令模板进行比较判断,保证了对非常态身体姿态的有效识别与非常态身体姿态的完整性,并准确提取非常态的身体姿态向机器人下达相应指令,提高了对用户姿态识别的准确度,降低了机器人对用户姿态的误判。
51.本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
52.下面通过附图和实施例,对本发明的技术方案做进一步地详细描述。
附图说明
53.附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
54.图1为本发明实施例提供的基于用户姿势高效能识别的机器人控制方法的流程图;
55.图2为本发明实施例提供的步骤s101流程图;
56.图3为本发明实施例提供的步骤s1014流程图;
57.图4为本发明实施例提供的步骤s102流程图;
58.图5为本发明实施例提供的步骤s104流程图;
59.图6为本发明实施例提供的基于用户姿势高效能识别的机器人控制系统的框图。
具体实施方式
60.下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
61.参照图1所示,本发明实施例提供的基于用户姿势高效能识别的机器人控制方法,该方法包括:步骤s101~s105;
62.s101、获取身体姿态数据的帧序列,基于所述身体姿态数据的帧序列提取身体姿态关键节点与身体姿态数据分布空间,将所述身体姿态数据分布空间划分为三维空间网格,基于所述身体姿态关键节点与所述三维空间网格计算身体姿态分段。
63.具体的,身体姿态数据的帧序列为连续、平滑的身体姿态数据的帧序列,身体姿态关键节点包括分布在手部、肘关节、肩关节、脚部、膝关节、腰部、头部等身体表现姿态的关键部位的节点。
64.s102、基于所述身体姿态分段,按照第一预设比例抽取状态采样帧,将所述状态采样帧对应的所述身体姿态关键节点所分布的所述三维空间网格与预设常态模板进行对比,基于对比结果判断身体姿态分段是否处于常态。
65.s103、若所述身体姿态分段处于非常态,则按照第二预设比例抽取非常态采样帧,将所述非常态采样帧对应的所述身体姿态关键节点所分布的所述三维空间网格与指令模板进行对比,基于比较结果对所述身体姿态分段进行用户姿态指令识别,基于所述用户姿态指令控制机器人。
66.本实施例中,针对机器人捕获的连续、平滑的身体姿态数据提取身体姿态关键节点,将身体姿态的帧序列划分为三维空间网格,确定身体姿态关键节点所分布的三维空间网格,保证了对身体姿态关键部位所处空间的准确性,并对帧序列进行动态分段,实现了对身体姿态数据的聚类,并基于身体姿态分段,利用第一预设比例与常态模板对身体姿态分段是否处于常态进行判断,将非常态的身体姿态分段进一步地基于第二预设比例与指令模板进行比较判断,保证了对非常态身体姿态的有效识别与非常态身体姿态的完整性,并准确提取非常态的身体姿态向机器人下达相应指令,提高了对用户姿态识别的准确度,降低了机器人对用户姿态的误判。
67.在一个实施例中,参照图2所示,上述步骤s101中所述获取身体姿态数据的帧序列,基于所述身体姿态数据的帧序列提取身体姿态关键节点与身体姿态数据分布空间,将所述身体姿态数据分布空间划分为三维空间网格,基于所述身体姿态关键节点与所述三维空间网格计算身体姿态分段,包括:
68.s1011、采集身体姿态数据分布空间(即用户的身体分布空间),将所述身体姿态数据分布空间划分为三维空间网格。
69.具体的,将所述三维空间网格集合为v={v1,v2,

,vi,

,vj,

,vn}。
70.s1012、基于所述身体姿态数据提取所述身体姿态关键节点,确定所述身体姿态关键节点分布的所述三维空间网格,生成身体姿态关键节点分布网格。
71.具体的,将所述身体姿态关键节点集合为b={b1,b2,

,bm}。
72.进一步地,确定每一帧中每个身体姿态关键节点分布的三维空间网格;例如,身体
姿态关键节点b2位于三维空间网格v5的空间范围以内,则记为b2∈v5。
73.s1013、定义所述三维空间网格之间的姿态转移矩阵,并基于所述身体姿态关键节点分布网格对所述姿态转移矩阵进行赋值。
74.具体的,定义所述三维空间网格之间的姿态转移矩阵w,该姿态转移矩阵w是一个n*n维矩阵,表示为
[0075][0076]
其中,矩阵的元素w
ij
(i,j∈[1,2

n])表示三维空间网格vi和vj之间姿态转移关联权重。
[0077]
进一步地,根据身体姿态数据的整个帧序列当中,身体姿态关键节点的节点的集合b={b1,b2,

,bm}在三维空间网格中的转移分布,对所述姿态转移矩阵w的元素w
ij
进行赋值,其赋值表达式如下:
[0078]wij
=c
ij
*k
ij
[0079]
其中,ci表示在身体姿态数据的全部帧中出现在三维空间网格vi内的身体姿态关键节点类型的集合,cj表示身体姿态数据的全部帧中出现在三维空间网格vj内的身体姿态关键节点类型的集合,ci∩cj表示二者的交集,ci∪cj表示二者的并集,n∪m(*)表示集合中元素的数量;
[0080]
其中,其中表示集合cj中的身体姿态关键节点在三维空间网格vi内出现的总次数计数值,表示集合cj中的身体姿态关键节点在三维空间网格vj内出现的总次数计数值,表示集合ci∩cj中的身体姿态关键节点在三维空间网格vi、vj内出现的总次数计数值。
[0081]
例如,针对身体姿态数据的全部帧进行统计,确定身体姿态关键节点的集合为b={b1,b2,b3,b4,b5,b6,b7,b8,b9},其中,身体姿态关键节点b2,b4,b5,b8,b2,b4,b5,b8∈v5,b2,b4,b5,b8在三维空间网格v5中分别出现了3、3、4、6次,则c5={b2,b4,b5,b8},n
c5
为16;身体姿态关键节点b1,b3,b4,b5,b7,b9,b1,b3,b4,b5,b7,b9∈v7,b1,b3,b4,b5,b7,b9在三维空间网格v7中分别出现了1、2、5、3、2、4次,则c7={b1,b3,b4,b5,b7,b9},n
c7
为17;c5∩c7={b4,b5},n∪m(c5∩c7)=2,c5∩c7={b1,b2,b3,b4,b5,b7,b8,b9},n∪m(c5∪c7)=8;n
c5∩c7
为15,则c
57
=1/4,k
57
=15/33,则w
57
=c
57
*k
57
=15/132。
[0082]
进一步地,根据对姿态转移矩阵w的元素w
ij
的赋值,当i=j时,w
ij
=1;如果三维空间网格vi和vj中没有出现过相同的身体姿态关键节点类型,则w
ij
=0。
[0083]
s1014、基于赋值后的所述姿态转移矩阵与同一身体姿态关键节点在所述三维空间网格之间进行转移的概率,利用预设算法生成动态分界帧,基于所述动态分界帧生成所述身体姿态分段。
[0084]
在一个实施例中,参照图3所示,上述步骤s1014中所述基于所述相同身体姿态关
键节点与所述三维空间网格,利用预设算法生成动态分界帧,基于所述动态分界帧生成所述身体姿态分段,包括:
[0085]
s10141、定义转移概率矢量,基于赋值后的所述姿态转移矩阵与所述同一身体姿态关键节点在所述三维空间网格之间进行转移的概率对转移概率矢量进行迭代,生成稳定概率,基于所述稳定概率构建转移概率矢量组。
[0086]
具体的,对于三维空间网格集合v={v1,v2,

,vi…vj
…vn
},构造转移概率矢量组p={p1,p2,

,pi…
pj…
pn}。
[0087]
其中,定义转移概率矢量组中矢量pi是一个n*1维的转移概率矢量,具体表示如下:
[0088][0089]
其中,矢量pi的每个元素表示同一个身体姿态关键节点从三维空间网格vi出发分别到达其它三维空间网格的概率(例如,p
ij
表示同一个身体姿态关键节点从三维空间网格vi出发到达三维空间网格vi的概率);
[0090]
进一步地,按照如下公式对矢量pi进行迭代:
[0091][0092]
其中,为矢量pi的初始赋值,该矢量的每个元素初始赋值为1/n,c为同一个身体姿态关键节点从三维空间网格出发进入与之相邻的任一三维空间网格的概率,而(1-c)则表示从三维空间网格出发下一个帧仍保留在该出发的三维空间网格的概率,w表示姿态转移矩阵;和分别表示矢量pi在第l轮迭代和第i 1轮迭代的取值;经过一定轮次的迭代,能够进入一个稳定状态,即和的取值差小于预设的门限值;对于稳定后的矢量pi,即可以表示同一个身体姿态关键节点从三维空间网格vi出发到达其它三维空间网格的稳定概率。
[0093]
进一步地,由迭代后的所述稳定概率构成转移概率矢量组p={p1,p2,

,pi…
pj…
pn}。
[0094]
s10142、基于所述转移概率矢量组确定所述身体姿态关键节点的节点转移概率,将所述节点转移概率累加,生成姿态转移概率。
[0095]
具体的,对于身体姿态数据的帧序列,相邻的2个帧中各自提取的身体姿态关键节点的集合为b={b1,b2,

,bm},参照转移概率矢量组p={p1,p2,

,pi…
pj…
pn},确定每个节点上一个帧所在的三维空间网格和当前帧所在的三维空间网格之间对于的上述稳定概率;例如,上一个帧中在当前帧则参照稳定概率构成的转移概率矢量组p当
中的矢量pi的元素p
ij
,作为当前帧中身体姿态关键节点bm的节点转移概率
[0096]
进一步地,针对当前帧,将全部身体姿态关键节点集b中的节点的节点转移概率累加,作为当前帧的姿态转移概率p
t

[0097][0098]
或者,针对不同的身体姿态关键节点赋予不同的累加权重系数,由累加权重系数于节点转移概率计算当前帧的姿态转移概率p
t
,具体公式如下:
[0099][0100]
其中,分别表示身体姿态关键节点{b1,b2,

,bm}的累加权重系数。
[0101]
s10143、将所述姿态转移概率与姿态转移判定阈值进行比较,生成所述动态分界帧,基于所述动态分界帧生成所述身体姿态分段。
[0102]
具体的,如果当前帧的姿态转移概率pr小于等于一个姿态转移判定阈值,则将当前帧作为一个动态分界帧。
[0103]
进一步地,从帧序列中,获得一系列的动态分界帧,将相邻2个动态分界帧二者之间的各个帧的身体姿态数据帧序列,归为同一个身体姿态分段。
[0104]
在一个实施例中,参照图4所示,上述步骤s102中所述基于所述身体姿态分段,按照第一预设比例抽取状态采样帧,将所述状态采样帧对应的所述身体姿态关键节点分布网络与预设常态模板进行对比,基于对比结果判断身体姿态分段是否处于常态,包括:
[0105]
s1021、基于所述身体姿态分段,按照第一预设比例(一个相对较小的比例)抽取状态采样帧。
[0106]
s1022、将所述状态采样帧对应的所述身体姿态关键节点分布网格与预设常态模板进行对比,生成所述采样帧偏离度。
[0107]
具体的,针对每个状态采样帧,提取其中身体姿态关键节点的集合b中的节点,并确定身体姿态关键节点所分布的三维空间网格;进而,定义用户身体姿态的常态模板,所述常态模板描述了用户处于自然状态或者进行其他常态活动下,其身体姿态关键节点集中节点所分布的三维空间网格。
[0108]
进一步地,根据机器人的工作场景,定义所述常态模板;例如,对于物流送货机器人来说,可以将人体的正常坐姿、站姿、行走姿态、跑步姿态均定义为常态,分别定义其常态模板,每个常态模板均包括身体姿态关键节点集中节点b={b1,b2,

,bm}所分布的三维空间网格(例如,b1∈v1,v3或v6,b2∈v2,v3或v5,
……
直至bm)。
[0109]
进一步地,根据采样帧身体姿态关键节点所分布的三维空间网格(即身体姿态关键节点分布网格),与所述常态模板进行比对,如果采样帧的某一身体姿态关键节点集中节点没有处于常态模板中该节点位于的三维空间网格,则对常态模板的偏离度 1,从而统计整个状态采样帧的偏离度。
[0110]
s1023、基于所述采样帧偏离度计算偏离度平均值,将所述偏离度平均值与偏离阈值进行比较,基于比较结果判断所述身体姿态分段是否处于常态。
[0111]
具体的,对身体姿态分段中全部状态采样帧计算偏离度平均值,进而判断该偏离
度平均值是否大于等于预设的偏离阈值,如果大于等于偏离阈值,则说明用户未处于常态。
[0112]
在一个实施例中,参照图5所示,上述步骤s103中所述若所述身体姿态分段处于非常态,则按照第二预设比例抽取非常态采样帧,将所述非常态采样帧对应的所述身体姿态关键节点分布网络与指令模板进行对比,基于比较结果对所述身体姿态分段进行用户姿态指令识别,基于所述用户姿态指令控制机器人,包括:
[0113]
s1031、若所述身体姿态分段处于非常态,则按照第二预设比例(一个相对更高的比例)抽取非常态采样帧。
[0114]
s1032、将所述非常态采样帧对应的所述身体姿态关键节点分布网格与指令模板进行对比,生成指令模板符合度。
[0115]
具体的,针对每个非常态采样帧,提取身体姿态关键节点的集合b中的节点,并确定身体姿态关键节点所分布的三维空间网格,进而定义机器人指令模板,该指令模板描述了用户对机器人下达指令的状态下,其身体姿态关键节点集中节点所分布的三维空间网格(即身体姿态关键节点分布网格)。
[0116]
进一步地,根据非常态采样帧身体姿态关键节点所分布的三维空间网格,与指令模板进行比对,如果采样帧的某一身体姿态关键节点集中节点处于指令模板中该节点位于的三维空间网格,则指令模板符合度 1,从而统计整个采样帧的指令模板符合度。
[0117]
s1033、基于所述指令模板符合度计算符合度平均值,将所述符合平均值与指令阈值进行比较,基于比较结果判断所述身体姿态分段是否属于所述用户姿态指令。
[0118]
具体的,对身体姿态分段中全部非常态采样帧的指令模板计算符合度平均值,判断符合度平均值是否大于等于预设的指令阈值,如果大于等于指令阈值,则认为该段身体姿态分段属于用户利用身体姿态向机器人下达指令(例如,在物料机器人的应用场合下,用户通过向机器人点头、摇头、挥手、伸腿等下达指令)。
[0119]
s1034、若所述身体姿态分段的属于所述用户姿态指令,则基于所述用户姿态指令控制所述机器人。
[0120]
具体的,将符合的身体姿态分段提供给机器人的模式识别程序,模式识别程序具体判断其指令类型并给与必要的响应。
[0121]
基于同一发明构思,本发明实施例还提供了基于用户姿势高效能识别的机器人控制系统,由于该系统所解决问题的原理与前述基于用户姿势高效能识别的机器人控制方法相似,因此该系统的实施可以参见前述方法的实施,重复之处不再赘述。
[0122]
本发明实施例提供的基于用户姿势高效能识别的机器人控制系统,参照图6所示,包括:
[0123]
身体姿态分段计算模块61,用于获取身体姿态数据的帧序列,基于所述身体姿态数据的帧序列提取身体姿态关键节点与身体姿态数据分布空间,将所述身体姿态数据分布空间划分为三维空间网格,基于所述身体姿态关键节点与所述三维空间网格计算身体姿态分段。
[0124]
具体的,身体姿态数据的帧序列为连续、平滑的身体姿态数据的帧序列,身体姿态关键节点包括分布在手部、肘关节、肩关节、脚部、膝关节、腰部、头部等身体表现姿态的关键部位的节点。
[0125]
身体姿态分段状态判断模块62,用于基于所述身体姿态分段,按照第一预设比例
抽取状态采样帧,将所述状态采样帧对应的所述身体姿态关键节点所分布的所述三维空间网格与预设常态模板进行对比,基于对比结果判断身体姿态分段是否处于常态;
[0126]
用户姿态指令识别模块63,用于若所述身体姿态分段处于非常态,则按照第二预设比例抽取非常态采样帧,将所述非常态采样帧对应的所述身体姿态关键节点所分布的所述三维空间网格与指令模板进行对比,基于比较结果对所述身体姿态分段进行用户姿态指令识别,基于所述用户姿态指令控制机器人。
[0127]
在一个实施例中,所述身体姿态分段计算模块61,包括:
[0128]
三维空间网格划分子模块611,用于采集身体姿态数据分布空间,将所述身体姿态数据分布空间划分为三维空间网格。
[0129]
具体的,将所述三维空间网格集合为v={v1,v2,

,vi…vj
…vn
}。
[0130]
身体姿态关键节点提取子模块612,用于基于所述身体姿态数据提取所述身体姿态关键节点,确定所述身体姿态关键节点分布的所述三维空间网格,生成身体姿态关键节点分布网格。
[0131]
具体的,将所述身体姿态关键节点集合为b={b1,b2,

,bm}。
[0132]
姿态转移矩阵赋值子模块613,用于定义所述三维空间网格之间的姿态转移矩阵,并基于所述身体姿态关键节点分布网格对所述姿态转移矩阵进行赋值。
[0133]
具体的,定义所述三维空间网格之间的姿态转移矩阵w,该姿态转移矩阵w是一个n*n维矩阵,表示为
[0134][0135]
其中,矩阵的元素w
ij
(i,j∈[1,2

n])表示三维空间网格vi和vj之间姿态转移关联权重。
[0136]
进一步地,根据身体姿态数据的整个帧序列当中,身体姿态关键节点的节点的集合b={b1,b2,

,bm}在三维空间网格中的转移分布,对所述姿态转移矩阵w的元素w
ij
进行赋值,其赋值表达式如下:
[0137]wij
=c
ij
*k
ij
[0138]
其中,ci表示在身体姿态数据的全部帧中出现在三维空间网格vi内的身体姿态关键节点类型的集合,cj表示身体姿态数据的全部帧中出现在三维空间网格vj内的身体姿态关键节点类型的集合,ci∩cj表示二者的交集,ci∩cj表示二者的并集,n∪m(*)表示集合中元素的数量;
[0139]
其中,其中表示集合cj中的身体姿态关键节点在三维空间网格vi内出现的总次数计数值,表示集合cj中的身体姿态关键节点在三维空间网格vj内出现的总次数计数值,表示集合ci∩cj中的身体姿态关键节点在三维空间网格vi、vj内出现的总次数计数值。
[0140]
进一步地,根据对姿态转移矩阵w的元素w
ij
的赋值,当i=j时,w
ij
=1;如果三维空间网格vi和vj中没有出现过相同的身体姿态关键节点类型,则w
ij
=0。
[0141]
身体姿态分段生成子模块614,用于基于所述相同身体姿态关键节点与所述三维空间网格,利用预设算法生成动态分界帧,基于所述动态分界帧生成所述身体姿态分段。
[0142]
在一个实施例中,所述身体姿态分段生成子模块614,包括:
[0143]
转移概率矢量组构建单元6141,用于定义转移概率矢量,基于赋值后的所述姿态转移矩阵与所述同一身体姿态关键节点在所述三维空间网格之间进行转移的概率对转移概率矢量进行迭代,生成稳定概率,基于所述稳定概率构建转移概率矢量组。
[0144]
具体的,对于三维空间网格集合v={v1,v2,

,vi…vj
…vn
},构造转移概率矢量组p={p1,p2,

,pi…
pj…
pn}。
[0145]
其中,定义转移概率矢量组中矢量pi是一个n*1维的转移概率矢量,具体表示如下:
[0146][0147]
其中,矢量pi的每个元素表示同一个身体姿态关键节点从三维空间网格vi出发分别到达其它三维空间网格的概率(例如,p
ij
表示同一个身体姿态关键节点从三维空间网格vi出发到达三维空间网格vi的概率);
[0148]
进一步地,按照如下公式对矢量pi进行迭代:
[0149][0150]
其中,为矢量pi的初始赋值,该矢量的每个元素初始赋值为1/n,c为同一个身体姿态关键节点从三维空间网格出发进入与之相邻的任一三维空间网格的概率,而(1-c)则表示从三维空间网格出发下一个帧仍保留在该出发的三维空间网格的概率,w表示姿态转移矩阵;和分别表示矢量pi在第l轮迭代和第i 1轮迭代的取值;经过一定轮次的迭代,能够进入一个稳定状态,即和的取值差小于预设的门限值;对于稳定后的矢量pi,即可以表示同一个身体姿态关键节点从三维空间网格vi出发到达其它三维空间网格的稳定概率。
[0151]
进一步地,由迭代后的所述稳定概率构成转移概率矢量组p={p1,p2,

,pi…
pj…
pn}。
[0152]
姿态转移概率生成单元6142,用于基于所述转移概率矢量组确定所述身体姿态关键节点的节点转移概率,将所述节点转移概率累加,生成姿态转移概率。
[0153]
具体的,对于身体姿态数据的帧序列,相邻的2个帧中各自提取的身体姿态关键节
点的集合为b={b1,b2,

,bm},参照转移概率矢量组p={p1,p2,

,pi…
pj…
pn},确定每个节点上一个帧所在的三维空间网格和当前帧所在的三维空间网格之间对于的上述稳定概率;例如,上一个帧中在当前帧则参照稳定概率构成的转移概率矢量组p当中的矢量pi的元素p
ij
,作为当前帧中身体姿态关键节点bm的节点转移概率
[0154]
进一步地,针对当前帧,将全部身体姿态关键节点集b中的节点的节点转移概率累加,作为当前帧的姿态转移概率p
t

[0155][0156]
或者,针对不同的身体姿态关键节点赋予不同的累加权重系数,由累加权重系数于节点转移概率计算当前帧的姿态转移概率p
t
,具体公式如下:
[0157][0158]
其中,分别表示身体姿态关键节点{b1,b2,

,bm}的累加权重系数。
[0159]
动态分界帧生成单元6143,用于将所述姿态转移概率与姿态转移判定阈值进行比较,生成所述动态分界帧,基于所述动态分界帧生成所述身体姿态分段。
[0160]
具体的,如果当前帧的姿态转移概率pr小于等于一个姿态转移判定阈值,则将当前帧作为一个动态分界帧。
[0161]
进一步地,从帧序列中,获得一系列的动态分界帧,将相邻2个动态分界帧二者之间的各个帧的身体姿态数据帧序列,归为同一个身体姿态分段。
[0162]
在一个实施例中,所述身体姿态分段状态判断模块62,包括:
[0163]
状态采样帧抽取子模块621,用于基于所述身体姿态分段,按照第一预设比例抽取状态采样帧。
[0164]
采样帧偏离度生成子模块622,用于将所述状态采样帧对应的所述身体姿态关键节点分布网格与预设常态模板进行对比,生成所述采样帧偏离度。
[0165]
具体的,针对每个状态采样帧,提取其中身体姿态关键节点的集合b中的节点,并确定身体姿态关键节点所分布的三维空间网格;进而,定义用户身体姿态的常态模板,所述常态模板描述了用户处于自然状态或者进行其他常态活动下,其身体姿态关键节点集中节点所分布的三维空间网格。
[0166]
进一步地,根据机器人的工作场景,定义所述常态模板;例如,对于物流送货机器人来说,可以将人体的正常坐姿、站姿、行走姿态、跑步姿态均定义为常态,分别定义其常态模板,每个常态模板均包括身体姿态关键节点集中节点b={b1,b2,

,bm}所分布的三维空间网格(例如,b1∈v1,v3或v6,b2∈v2,v3或v5,
……
直至bm)。
[0167]
进一步地,根据采样帧身体姿态关键节点所分布的三维空间网格(即身体姿态关键节点分布网格),与所述常态模板进行比对,如果采样帧的某一身体姿态关键节点集中节点没有处于常态模板中该节点位于的三维空间网格,则对常态模板的偏离度 1,从而统计整个状态采样帧的偏离度。
[0168]
比较判断子模块623,用于基于所述采样帧偏离度计算偏离度平均值,将所述偏离
度平均值与偏离阈值进行比较,基于比较结果判断所述身体姿态分段是否处于常态。
[0169]
具体的,对身体姿态分段中全部状态采样帧计算偏离度平均值,进而判断该偏离度平均值是否大于等于预设的偏离阈值,如果大于等于偏离阈值,则说明用户未处于常态。
[0170]
在一个实施例中,所述用户姿态指令识别模块63,包括:
[0171]
非常态采样帧抽取子模块631,用于若所述身体姿态分段处于非常态,则按照第二预设比例抽取非常态采样帧。
[0172]
指令模板符合度生成子模块632,用于将所述非常态采样帧对应的所述身体姿态关键节点分布网格与指令模板进行对比,生成指令模板符合度。
[0173]
具体的,针对每个非常态采样帧,提取身体姿态关键节点的集合b中的节点,并确定身体姿态关键节点所分布的三维空间网格,进而定义机器人指令模板,该指令模板描述了用户对机器人下达指令的状态下,其身体姿态关键节点集中节点所分布的三维空间网格(即身体姿态关键节点分布网格)。
[0174]
进一步地,根据非常态采样帧身体姿态关键节点所分布的三维空间网格,与指令模板进行比对,如果采样帧的某一身体姿态关键节点集中节点处于指令模板中该节点位于的三维空间网格,则指令模板符合度 1,从而统计整个采样帧的指令模板符合度。
[0175]
用户姿态指令判断子模块633,用于基于所述指令模板符合度计算符合度平均值,将所述符合平均值与指令阈值进行比较,基于比较结果判断所述身体姿态分段是否属于所述用户姿态指令。
[0176]
具体的,对身体姿态分段中全部非常态采样帧的指令模板计算符合度平均值,判断符合度平均值是否大于等于预设的指令阈值,如果大于等于指令阈值,则认为该段身体姿态分段属于用户利用身体姿态向机器人下达指令(例如,在物料机器人的应用场合下,用户通过向机器人点头、摇头、挥手、伸腿等下达指令)。
[0177]
控制子模块634,用于若所述身体姿态分段的属于所述用户姿态指令,则基于所述用户姿态指令控制所述机器人。
[0178]
具体的,将符合的身体姿态分段提供给机器人的模式识别程序,模式识别程序具体判断其指令类型并给与必要的响应。
[0179]
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献