发明内容
本发明所要解决的技术问题在于提供了一种基于深度视觉的协作机器人手势识别方法及装置,以解决现有技术中协作机器人操控不便的技术问题。
本发明是通过以下技术方案解决上述技术问题的:
本发明实施例提供了一种基于深度视觉的协作机器人手势识别方法,所述方法包括:
预先获取手势模板集合,所述手势模板集合中包含至少一个手势模板,且所述手势模板包括至少一帧深度图,且每一帧深度图对应至少一个手势特征数据,其中,所述手势特征数据包括:手掌中心坐标、手掌面积、手掌的周长、手掌的圆形度以及根据所述深度图所获取手掌中一个指尖与深度相机的真实距离中的一种或组合;
获取待识别手势的若干张深度图,利用与获取手势模板的方法相同的方法获取所述待识别手势对应的手势特征数据;
针对每一个手势模板,获取所述待识别手势与所述手势模板的距离,并将与所述待识别手势之间距离最小的手势模板作为所述待识别手势的识别结果,进而根据对应于识别结果的控制参数进行协作机器人的控制,其中,所述距离包括:欧氏距离。
可选的,所述预先获取手势模板集合,包括:
针对操作人员预先作出的各个手势,获取针对所述手势的若干张深度图;
对若干张深度图进行归一化处理,并针对每一张深度图,将所述深度图中的手势转换到二维图像中的二值图;
利用八邻轮廓查找方法查找出所述二值图中的所包含手势特征数据;
将所述手势特征数据作为对应手势的手势模板;然后将若干个手势模板的集合作为预先获取的手势模板集合。
可选的,所述获取所述待识别手势与所述手势模板的距离,并将与所述待识别手势之间距离最小的手势模板作为所述待识别手势的识别结果,包括:
对待识别手势的进行动态时间规整;
将动态时间规整后的待识别手势作为横坐标/纵坐标,将动态时间规整后的当前手势模板作为纵坐标/横坐标,建立代价矩阵;
在所述代价矩阵中,获取针对当前手势模板以及所述待识别手势的规整路径;将所述当前手势模板的下一手势模板作为当前手势模板,并返回执行所述对待识别手势的进行动态时间规整的步骤,直至获取各个手势模板对应的规整路径;
D(Road)为规整路径的代价;Road为规整路径;∑为求和函数;ws为权重系数;d(Rs)为规整路径Road上点Rs的对应的当前手势模板的当前帧深度图与待识别手势中各帧深度图之间子距离;Rs为规整路径上的点;k为规整路径上点的个数;
将规整路径的代价中的最小值对应的手势模板作为识别结果。
可选的,所述获取针对当前手势模板以及所述待识别手势的规整路径,包括:
在所述代价矩阵中,针对当前手势模板中当前帧深度图,根据所述当前帧深度图的手势特征数据,与待识别手势中每一帧深度图中的手势特征数据之间距离,获取所述当前帧深度图与待识别手势中各帧深度图的深度图之间的子距离;
根据所述子距离与所述当前帧深度图的前一帧对应的目标子距离之和的最小值,确定所述当前帧深度图对应的待识别手势中的目标深度图;并将所述子距离与所述当前帧深度图的前一帧对应的子距离之和作为当前帧深度图的对应的目标子距离,将所述代价矩阵中对应所述当前帧深度图以及所述目标深度图的点作为规整路径上的点;
将所述当前手势模板中的当前帧的下一帧作为当前帧,返回执行所述在所述代价矩阵中,针对当前手势模板中当前帧深度图,根据所述当前帧深度图的手势特征数据,与待识别手势中每一帧深度图中的手势特征数据之间距离,获取所述当前帧深度图与待识别手势中各帧深度图的深度图之间的子距离的步骤,直至获取所述代价矩阵中对应手势模板中的各个深度图的点,并根据所述点构建对应于所述手势模板的规整路径。
可选的,所述获取所述当前帧深度图与待识别手势中各帧深度图的深度图之间的子距离,包括:
利用公式,M(i,j)=||Testj-Templatei||2,计算当前帧深度图与待识别手势中各帧深度图的深度图之间的子距离,其中,
M(i,j)为当前手势模板的当前帧深度图与待识别手势中各帧深度图之间的子距离;|| ||为求模函数;Testj为待识别手势的第j个待识别手势帧,j∈(1,n)且Testj={Testj1,Testj2,Testj3,....,Testjk},j∈(1,n),n为待识别手势中包含的待识别手势帧的数量;Templatei为手势模板中第i个手势模板帧,且Templatei={Templatei1,Templatei2,Templatei3,…,Templateip},i∈(1,m);m为当前手势模板中包含的手势模板帧的数量。
本发明实施例提供了一种基于深度视觉的协作机器人手势识别装置,所述装置包括:
第一获取模块,用于预先获取手势模板集合,所述手势模板集合中包含至少一个手势模板,且所述手势模板包括至少一帧深度图,且每一帧深度图对应至少一个手势特征数据,其中,所述手势特征数据包括:手掌中心坐标、手掌面积、手掌的周长、手掌的圆形度以及根据所述深度图所获取手掌的一个指尖与深度相机的真实距离中的一种或组合;
第二获取模块,用于获取待识别手势的若干张深度图,利用与获取手势模板的方法相同的方法获取所述待识别手势对应的手势特征数据;
第三获取模块,用于针对每一个手势模板,获取所述待识别手势与所述手势模板的距离,并将与所述待识别手势之间距离最小的手势模板作为所述待识别手势的识别结果,进而根据对应于识别结果的控制参数进行协作机器人的控制,其中,所述距离包括:欧氏距离。
可选的,所述第一获取模块,用于:
针对操作人员预先作出的各个手势,获取针对所述手势的若干张深度图;
对若干张深度图进行归一化处理,并针对每一张深度图,将所述深度图中的手势转换到二维图像中的二值图;
利用八邻轮廓查找方法查找出所述二值图中的所包含手势特征数据;
将所述手势特征数据作为对应手势的手势模板;然后将若干个手势模板的集合作为预先获取的手势模板集合。
可选的,所述第三获取模块,用于:
对待识别手势的进行动态时间规整;
将动态时间规整后的待识别手势作为横坐标/纵坐标,将动态时间规整后的当前手势模板作为纵坐标/横坐标,建立代价矩阵;
在所述代价矩阵中,获取针对当前手势模板以及所述待识别手势的规整路径;将所述当前手势模板的下一手势模板作为当前手势模板,并返回执行所述对待识别手势的进行动态时间规整的步骤,直至获取各个手势模板对应的规整路径;
D(Road)为规整路径的代价;Road为规整路径;∑为求和函数;ws为权重系数;d(Rs)为规整路径Road上点Rs的对应的当前手势模板的当前帧深度图与待识别手势中各帧深度图之间子距离;Rs为规整路径上的点;k为规整路径上点的个数;
将规整路径的代价中的最小值对应的手势模板作为识别结果。
可选的,所述第三获取模块,用于:
在所述代价矩阵中,针对当前手势模板中当前帧深度图,根据所述当前帧深度图的手势特征数据,与待识别手势中每一帧深度图中的手势特征数据之间距离,获取所述当前帧深度图与待识别手势中各帧深度图的深度图之间的子距离;
根据所述子距离与所述当前帧深度图的前一帧对应的目标子距离之和的最小值,确定所述当前帧深度图对应的待识别手势中的目标深度图;并将所述子距离与所述当前帧深度图的前一帧对应的子距离之和作为当前帧深度图的对应的目标子距离,将所述代价矩阵中对应所述当前帧深度图以及所述目标深度图的点作为规整路径上的点;
将所述当前手势模板中的当前帧的下一帧作为当前帧,返回执行所述在所述代价矩阵中,针对当前手势模板中当前帧深度图,根据所述当前帧深度图的手势特征数据,与待识别手势中每一帧深度图中的手势特征数据之间距离,获取所述当前帧深度图与待识别手势中各帧深度图的深度图之间的子距离的步骤,直至获取所述代价矩阵中对应手势模板中的各个深度图的点,并根据所述点构建对应于所述手势模板的规整路径。
可选的,所述第三获取模块,用于:
利用公式,M(i,j)=||Testj-Templatei||2,计算当前帧深度图与待识别手势中各帧深度图的深度图之间的子距离,其中,
M(i,j)为当前手势模板的当前帧深度图与待识别手势中各帧深度图之间的子距离;|| ||为求模函数;Testj为待识别手势的第j个待识别手势帧,j∈(1,n)且Testj={Testj1,Testj2,Testj3,....,Testjk},j∈(1,n),n为待识别手势中包含的待识别手势帧的数量;Templatei为手势模板中第i个手势模板帧,且Templatei={Templatei1,Templatei2,Templatei3,…,Templateip},i∈(1,m);m为当前手势模板中包含的手势模板帧的数量。
本发明相比现有技术具有以下优点:
应用本发明实施例,通过深度视觉技术对操作人员的手势进行手势识别,判断出与操作人员的手势对应的手势模板,进而根据手势动作来进行协作机器人的控制,采用手势控制更加简单方便,相对于现有技术中使用示教器进行控制,方便了协作机器人的操控。
另外,本发明实施例可以作为对示教器控制的辅助,降低了对机器人控制的专业人员的知识水平,缓解了长时间操控示教器的劳累。
具体实施方式
下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
本发明实施例提供了一种基于深度视觉的协作机器人手势识别方法及装置,下面首先就本发明实施例提供的一种基于深度视觉的协作机器人手势识别方法进行介绍。
图1为本发明实施例提供的一种基于深度视觉的协作机器人手势识别方法的流程示意图,如图1所示,所述方法包括:
S101:预先获取手势模板集合,所述手势模板集合中包含至少一个手势模板,且所述手势模板包括至少一帧深度图,且每一帧深度图对应至少一个手势特征数据,其中,所述手势特征数据包括:手掌中心坐标、手掌面积、手掌的周长、手掌的圆形度以及根据所述深度图所获取手掌一个指尖与深度相机的真实距离中的一种或组合;
具体的,可以针对操作人员预先作出的各个手势,获取针对所述手势的若干张深度图。每一个手势都对应一个实现一个控制动作的一套控制参数,例如,手势1对应协作机器人进行平移动作;手势2对应协作机器人进行以当前的工作的位置为中心进行转动。
然后,对各个个手势所对应的对若干张深度图进行归一化处理,并针对每一张深度图,将所述深度图中的手势转换到二维图像中的二值图;利用八邻轮廓查找方法查找出所述二值图中的所包含手势特征数据;将所述手势特征数据作为对应手势的手势模板;然后将若干个手势模板的集合作为预先获取的手势模板集合。
例如,手势模板集合可以包括若干个,如1个、2个、或者1000个,或者更多个手势模板,每一个手势模板对应一个控制动作,每一个手势模板中包含若干个深度图,每一个深度图可以包含若干个手势特征,手势特征数据可以为手掌中心坐标、手掌面积、手掌的周长、手掌的圆形度以及根据所述深度图所获取手掌中的一个指尖与深度相机的真实距离中的一种或组合。
S102:获取待识别手势的若干张深度图,利用与获取手势模板的方法相同的方法获取所述待识别手势对应的手势特征数据;
利用深度相机对操作者发出的待识别手势进行拍摄,通常情况下会拍摄手势的视频,或者多张连续的深度图;然后利用S101中获取手势模板的方法获取操作者的手势对应的每一张深度图中的手势特征数据。
通常情况下,为了提高操作者发出的待识别手势识别的准确性,需要提取出尽量多的手势特征数据,例如,手势模板中每一个深度图包含了10个手势特征数据,则也可以针对待识别手势,获取待识别手势的每一帧深度图中的10个手势特征数据。
S103:针对每一个手势模板,获取所述待识别手势与所述手势模板的距离,并将与所述待识别手势之间距离最小的手势模板作为所述待识别手势的识别结果,进而根据对应于识别结果的控制参数进行协作机器人的控制,其中,所述距离包括:欧氏距离。
具体的,S103步骤可以包括以下步骤:
A:可以对待识别手势的进行动态时间规整;规整后的当前手势模板可以包含m张手势模板帧,其中每一个手势模板帧可以包含p个手势特征:
Templatei={Template1,Template2,Template3,…,Templatep},i∈(1,m);p为当前手势模板帧中包含的特征点的个数;
规整后的待识别手势可以包含n张待识别手势帧,其中每一个待识别手势帧可以包含k个手势特征:
Testj={Test1,Test2,Test3,....,Testk};j∈(1,n);k为待识别手势帧中特征点的个数;j为每一帧待识别手势帧中包含的特征点的数量。
B:将动态时间规整后的待识别手势作为横坐标/纵坐标,将动态时间规整后的当前手势模板作为纵坐标/横坐标,建立代价矩阵;图2为本发明实施例提供的一种基于深度视觉的协作机器人手势识别方法中构建的代价矩阵的示意图,如图2所示,图2中横坐标为动态时间规整后的手势模板,图2中横坐标第一列对应手势模板的第一张深度图,第二列对应手势模板中的第二张深度图,以此类推;图2中纵坐标的动态时间规整后的待识别手势,第一行对应待识别手势的第一张深度图,第二行对应手势模板中的第二张深度图,以此类推。
C:在所述代价矩阵中,针对当前手势模板中当前帧深度图,根据所述当前帧深度图的手势特征数据,与待识别手势中每一帧深度图中的手势特征数据之间距离,利用公式,M(i,j)=||Testj-Templatei||2,计算当前帧深度图与待识别手势中各帧深度图的深度图之间的子距离,其中,
M(i,j)为当前手势模板的当前帧深度图与待识别手势中各帧深度图之间的子距离;|| ||为求模函数;Testj为待识别手势的第j个待识别手势帧,j∈(1,n)且Testj={Testj1,Testj2,Testj3,....,Testjk},j∈(1,n),n为待识别手势中包含的待识别手势帧的数量;Templatei为手势模板中第i个手势模板帧,且Templatei={Templatei1,Templatei2,Templatei3,…,Templateip},i∈(1,m);m为当前手势模板中包含的手势模板帧的数量。
例如,可以从当前手势模板的第一帧深度图Template1开始,本发明实施例以第1帧深度图Template1中的Template13作为当前手势特征数据,也被称为当前帧的特征点。
分别计算当前帧的特征点Template13与待识别手势的各个帧特征点Testjk之间的欧式距离:例如当前帧深度图有10个手势特征,待识别手势中第一帧深度图也有10个手势特征,计算当前模板帧深度图中的第一个手势特征与待识别手势第一帧深度图的第一个手势特征的距离,依次类推,直至计算完当前帧深度图各个手势特征与待识别手势中第一帧深度图中各个手势特征的欧式距离,然后求和,得到当前帧深度图Template1与待识别手势第一帧深度图Test1之间的欧式距离,该距离即为子距离。
D:然后依次计算手势模板中当前帧深度图与待识别手势的各帧深度图之间的欧式距离,得到多个子距离。
该步骤中的计算方法与步骤C中的计算方法相同,这里不再赘述。
E:再根据所述子距离与所述当前帧深度图的前一帧对应的目标子距离之和的最小值,确定所述当前帧深度图对应的待识别手势中的目标深度图;并将所述子距离与所述当前帧深度图的前一帧对应的子距离之和作为当前帧深度图的对应的目标子距离,将所述代价矩阵中对应所述当前帧深度图以及所述目标深度图的点作为规整路径上的点;
例如,根据手势模板中的当前帧深度图Template3对应的目标子距离以及,手势模板当前帧深度图的前一帧深度图,即Template2对应的子距离进行求和操作,得到当前帧深度图对应的目标子距离。
按照上述方法,分别计算手势模板中的当前帧深度图Template3分别与待识别手势的各个深度图间的子距离与前一帧对应的目标子距离的和,然后获取子距离的和的最小值,将最小值对应的待识别手势中的深度图作为目标深度图,在代价矩阵中获取对应目标深度图以及当前帧深度图的点,将该点作为规整路径对应手势模板的当前帧深度图Template3的点。
类似的,在Template3的点的点确定后,根据Template3的点对应的目标子距离与Template4对应的子距离之间的和的最小值,确定出Template4对应的子距离中的最小值,然后将该最小值对应的待识别手势中的深度图作为Template4对应的目标深度图。
F:将所述当前手势模板中的当前帧的下一帧作为当前帧,返回执行所述在所述代价矩阵中,针对当前手势模板中当前帧深度图,根据所述当前帧深度图的手势特征数据,与待识别手势中每一帧深度图中的手势特征数据之间距离,获取所述当前帧深度图与待识别手势中各帧深度图的深度图之间的子距离的步骤,直至获取所述代价矩阵中对应手势模板中的各个深度图的点,并根据所述点构建对应于所述手势模板的规整路径。
例如,将手势模板中的当前帧深度图A3下一帧深度图A4作为当前帧深度图,谈后返回执行C步骤,依次执行,进而可以得到深度图A4分别与待识别手势的各个深度图,B1,B2,B3,....,Bn之间的子距离;进而获取该子距离与A3的目标子距离的和的最小值,确定出待识别手势中的目标深度图B2,进而确定规整路径与前帧深度图A4对应的点。
按照上述方式进行循环操作,直至得到完整的规整路径,完整的规整路径从图2所示的代价矩阵中的最左侧延伸至最右侧。
G:将所述当前手势模板的下一手势模板作为当前手势模板,并返回执行所述对待识别手势的进行动态时间规整的步骤,直至获取各个手势模板对应的规整路径;
在对当前手势模板进行处理完成后,对手势模板集合中的其他手势模板进行处理,直至将待识别手势与手势模板集合中的各个手势模板均进行了对比,进而获取了若干条规整路径。通常情况下,本步骤中获取的规整路径的数量与手势模板集合中的包含的手势模板的数量相等。
D(Road)为规整路径的代价;Road为规整路径;∑为求和函数;ws为权重系数;d(Rs)为规整路径Road上点Rs的对应的当前手势模板的当前帧深度图与待识别手势中各帧深度图之间子距离;Rs为规整路径上的点;k为规整路径上点的个数。
需要说明的是,在S103步骤中,各个手势模板与待识别手势的规整路径的代价的计算可以是同步进行的,也可以是依次进行的,本发明实施例在此不对其作出限定。
I:将规整路径的代价中的最小值对应的手势模板作为识别结果。
规整路径的代价最小值对应的手势模板即为,与待识别手势最接近的手势,将该手势模板作为识别结果。
然后根据所识别的识别结果对应的控制参数进行协作机器人的控制。
图3为本发明实施例提供的一种基于深度视觉的协作机器人手势识别方法进行平移控制的示意图;如图3所示,在图3中,操作人员的手势平移X距离,对应的图3中左侧的黑色尖头的协作机器人的加工头平移X距离。
图4为本发明实施例提供的一种基于深度视觉的协作机器人手势识别方法进行转动控制的示意图,类似的,与图4中黑色尖头对应的协作机器人的加工头以当前指向的点位圆心进行对应角度的旋转操作。
应用本发明图1所示实施例,通过深度视觉技术对操作人员的手势进行手势识别,判断出与操作人员的手势对应的手势模板,进而根据手势模板对应的动作进行协作机器人的控制,采用手势控制更加简单方便,相对于现有技术中使用示教器进行控制,方便了协作机器人的操控。
另外,本发明利用深度视觉技术,基于传感器捕捉、理解并跟踪操作员的手势,反馈给机器人,调整到任意期望位姿,更贴近人类自然交流方式,有效地降低了对操作人员的专业要求,提高了工作效率,降低了安全风险。
另外,使用人类手臂来充当“示教”工具,协作机器人会实现比较灵巧的运动。最后,将深度视觉技术和手势识别技术引入协作机器人的远程手势操控,降低了操作人员对示教器的依赖,避免了繁琐的操作流程,并对缓解操作疲劳具有积极作用。
与本发明图1所示实施例相对应,本发明实施例还提供了一种基于深度视觉的协作机器人手势识别装置。
图5为本发明实施例提供的一种基于深度视觉的协作机器人手势识别装置的结构示意图,如图5所示,所述装置包括:
第一获取模块501,用于预先获取手势模板集合,所述手势模板集合中包含至少一个手势模板,且所述手势模板包括至少一帧深度图,且每一帧深度图对应至少一个手势特征数据,其中,所述手势特征数据包括:手掌中心坐标、手掌面积、手掌的周长、手掌的圆形度以及根据所述深度图所获取手掌中一个指尖与深度相机的真实距离中的一种或组合;
第二获取模块502,用于获取待识别手势的若干张深度图,利用与获取手势模板的方法相同的方法获取所述待识别手势对应的手势特征数据;
第三获取模块503,用于针对每一个手势模板,获取所述待识别手势与所述手势模板的距离,并将与所述待识别手势之间距离最小的手势模板作为所述待识别手势的识别结果,进而根据对应于识别结果的进行协作机器人的控制,其中,所述距离包括:欧氏距离。
在本发明实施例的一种具体实施方式中,所述第一获取模块501,用于:
针对操作人员预先作出的各个手势,获取针对所述手势的若干张深度图;
对若干张深度图进行归一化处理,并针对每一张深度图,将所述深度图中的手势转换到二维图像中的二值图;
利用八邻轮廓查找方法查找出所述二值图中的所包含手势特征数据;
将所述手势特征数据作为对应手势的手势模板;然后将若干个手势模板的集合作为预先获取的手势模板集合。
在本发明实施例的一种具体实施方式中,所述第三获取模块503,用于:
对待识别手势的进行动态时间规整;
将动态时间规整后的待识别手势作为横坐标/纵坐标,将动态时间规整后的当前手势模板作为纵坐标/横坐标,建立代价矩阵;
在所述代价矩阵中,获取针对当前手势模板以及所述待识别手势的规整路径;将所述当前手势模板的下一手势模板作为当前手势模板,并返回执行所述对待识别手势的进行动态时间规整的步骤,直至获取各个手势模板对应的规整路径;
D(Road)为规整路径的代价;Road为规整路径;∑为求和函数;ws为权重系数;d(Rs)为规整路径Road上点Rs的对应的当前手势模板的当前帧深度图与待识别手势中各帧深度图之间子距离;Rs为规整路径上的点;k为规整路径上点的个数;
将规整路径的代价中的最小值对应的手势模板作为识别结果。
在本发明实施例的一种具体实施方式中,所述第三获取模块503,用于:
在所述代价矩阵中,针对当前手势模板中当前帧深度图,根据所述当前帧深度图的手势特征数据,与待识别手势中每一帧深度图中的手势特征数据之间距离,获取所述当前帧深度图与待识别手势中各帧深度图的深度图之间的子距离;
根据所述子距离与所述当前帧深度图的前一帧对应的目标子距离之和的最小值,确定所述当前帧深度图对应的待识别手势中的目标深度图;并将所述子距离与所述当前帧深度图的前一帧对应的子距离之和作为当前帧深度图的对应的目标子距离,将所述代价矩阵中对应所述当前帧深度图以及所述目标深度图的点作为规整路径上的点;
将所述当前手势模板中的当前帧的下一帧作为当前帧,返回执行所述在所述代价矩阵中,针对当前手势模板中当前帧深度图,根据所述当前帧深度图的手势特征数据,与待识别手势中每一帧深度图中的手势特征数据之间距离,获取所述当前帧深度图与待识别手势中各帧深度图的深度图之间的子距离的步骤,直至获取所述代价矩阵中对应手势模板中的各个深度图的点,并根据所述点构建对应于所述手势模板的规整路径。
在本发明实施例的一种具体实施方式中,所述第三获取模块503,用于:
利用公式,M(i,j)=||Testj-Templatei||2,计算当前帧深度图与待识别手势中各帧深度图的深度图之间的子距离,其中,
M(i,j)为当前手势模板的当前帧深度图与待识别手势中各帧深度图之间的子距离;|| ||为求模函数;Testj为待识别手势的第j个待识别手势帧,j∈(1,n)且Testj={Testj1,Testj2,Testj3,....,Testjk},j∈(1,n),n为待识别手势中包含的待识别手势帧的数量;Templatei为手势模板中第i个手势模板帧,且Templatei={Templatei1,Templatei2,Templatei3,…,Templateip},i∈(1,m);m为当前手势模板中包含的手势模板帧的数量。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。