基于深度相机的手腕点和手臂点的提取方法

xiaoxiao2020-10-23  21

基于深度相机的手腕点和手臂点的提取方法
【技术领域】
[0001] 本发明涉及一种基于深度相机的手腕点和手臂点的提取方法,利用Kinect深度 相机采集的彩色图、深度图及OpenNI/NITE(开放式自然交互API)提供的手心点三维位置, 先将手部区域分割出来,然后利用视觉方法将手腕点和手臂点提取出来。提取的手腕点,手 臂点及NITE库提供的手心点可以设计多种人机交互手势,然后将设计的手势应用到虚拟 现实和增强现实等领域。
【背景技术】
[0002] 在Kinect等深度相机出来之后,很多研宄者利用Kinect做了很多手势识别的研 宄,这些研宄主要是基于指尖和手心的手势识别研宄,而将手腕和手臂加进来,组合设计一 些手势识别的研宄少之又少。手腕在手势识别中的作用是至关重要的。由于手腕是从手 臂到手指之得承上启下的枢纽,因此很多以手腕为主导的动作必然也需要手臂的协调和参 与。能够精确提取手腕点和手臂点,对基于手腕和手臂的手势识别的精确度是至关重要的。
[0003] 现有基于深度相机的手势识别方法都是怎么提取手指尖点或者手心点,通过手心 点和手指尖点的位置或个数来设计一些手势,这些手势比较单一,而且应用范围比较有限。 如果能将手腕点和手臂点提取出来,将手指尖点、手心点、手腕点和手臂点组合设计手势, 不仅是手势种类多样化,而且有广泛的使用范围。例如,根据手腕点和手臂点的位置设计挥 臂的手势,此手势可以应用于虚拟打球;根据手心点、手腕点和手臂点设计手臂抬起或放下 的手势,可以用于虚拟举杠铃。

【发明内容】

[0004] 本发明的目的在于提供一种基于深度相机的手腕点和手臂点的提取方法,解决了 现有技术存在的上述问题。本发明通过Kinect深度相机提供的深度图和OpeNI/NITE提供 的手心点的三维位置,首先将手区域分割出来,然后将分割出的二值图像作为掩码图,从彩 色图像中分割出手区域,利用肤色模型和贝叶斯分类器在手区域的彩色图像中提取精确的 手区域。在提取出的精确手区域中,利用手腕点提取方法和手臂点提取方法提取手腕点和 手臂点,然后利用手腕点、手臂点和手心点来设计多种手势。
[0005] 本发明的上述目的通过以下技术方案实现: 基于深度相机的手腕点和手臂点的提取方法,通过Kinect深度相机采集的彩色图、深 度图及OpenNI/NITE提供的手心点三维位置,先将手部区域分割出来,然后通过贝叶斯肤 色模型将精确的手区域提取出来,通过视觉方法将手腕点和手臂点提取出来;提取的手腕 点、手臂点及OpenNI/NITE提供的手心点设计多种人机交互手势,然后将设计的手势应用 到虚拟现实和增强现实领域; 所述手部区域分割是:先在二维方向上分割出手区域,然后在深度方向上分割,再将分 割出的手区域图像作为掩码图,在Kinect提供的彩色图像中将手区域分割出来,然后通过 贝叶斯肤色模型提取精确的手区域; 所述手腕点提取的方法是:首先提取手腕的一个端点,然后以此端点为矩形对角线的 一个顶点,与手轮廓上的每个点做平行于坐标轴的内切矩形,选择对角线最短的内切矩形 的中心点为手腕点; 所述手臂点提取的方法是:首先求取计算轮廓的所有内切圆,在所有的内切圆中,选择 内切圆的半径大于设定的阈值(参见内切圆直径阈值的参数训练)以防止取到手指上,手心 点和手腕点都不在内切圆内,而且距离手心点和手腕点最远的内切圆的圆心为手臂点。
[0006] 根据手心点、手腕点及手臂点的位置和所成直线的夹角的设计了 3类手势,并与 虚拟现实和增强现实相结合,把设计好的手势应用到虚拟现实和增强现实中。
[0007] 本发明的有益效果在于:现有的提取手腕和手臂的方法,大部分是在手腕和手臂 处设置辅助标记,比如在手腕上系一个有别于肤色的带子,把手腕从提取出来。基于纯视觉 的方法将手腕点和手臂点提取出来的方法很少见。在现有的手势识别研宄和应用中,将手 腕点和手臂点作为跟踪点并设计交互的实例也很少见。本方法简单易行,计算量小,能够实 时稳定的提取到手腕点和手臂点,并用提取到的手腕点和手臂点设计手势并应用到虚拟现 实和增强现实领域。
【附图说明】
[0008] 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发 明的示意性实例及其说明用于解释本发明,并不构成对本发明的不当限定。
[0009] 图1为本发明的提取精确手区域的流程图; 图2为本发明的提取精确手区域时输入的彩色图; 图3为本发明的提取精确手区域时深度图; 图4为本发明的提取精确手区域时对深度图进行分割得到的粗糙手区域; 图5为本发明的提取精确手区域时粗糙手及手臂区域对应的彩色图; 图6为本发明的提取精确手区域时得到的精确手区域图像; 图7为本发明的手腕端点提取的效果图; 图8为本发明的手腕端点提取为内切矩形示意图; 图9为本发明的手腕端点提取为非内切矩形示意图; 图10为本发明的各种手势提取的手腕点不意图; 图11为本发明的手臂点提取为非内切圆示意图; 图12为本发明的手臂点提取为内切圆示意图; 图13为本发明的手心点在内切圆内示意图; 图14为本发明的手腕点在内切圆示意图; 图15内切圆直径阈值的参数训练图; 图16为本发明的通过计算内切圆求得各种手势的手臂点; 图17为本发明的手臂放平手势示意图; 图18为本发明的手臂握拳举起手势示意图; 图19为本发明的手臂放平和手臂握拳举起手势的应用示意图; 图20为本发明的向下和向上弯曲手势不意图; 图21为本发明的手腕弯曲手势的应用示意图; 图22为本发明的向下和向上挥臂手势示意图; 图23为本发明的挥臂手势的应用示意图。
【具体实施方式】
[0010] 下面结合附图进一步说明本发明的详细内容及其【具体实施方式】。
[0011] 参见图1至图23所示,本发明的基于深度相机的手腕点和手臂点的提取方法,通 过Kinect深度相机提供的深度图和OpenNI/NITE提供的手心点的三维位置,首先将手区域 分割出来,然后将分割出的二值图像作为掩码图,从彩色图像中分割出手区域,利用肤色模 型和贝叶斯分类器在手区域的彩色图像中提取精确的手区域。在提取出的精确手区域中, 利用手腕点提取方法和手臂点提取方法提取手腕点和手臂点,然后利用手腕点,手臂点和 手心点来设计多种手势。
[0012] 1、手区域的分割 根据OpenNI/NITE提供的手心点的三维坐标,先在二维方向上分割。手心点为矩形的 中心,分割一个包含手及手臂区域的矩形。

为手心点在二维方向上的坐标。0表示矩形的边长。
[0014]在深度方向的分割:根据Kinect提供的深度图,提取手心点的深度值 确定手及手臂区域。如果
并且该点深度值ZfcjO满足
是手及手臂区域内的点,即:
标记像素点是否为手及手臂区域,U表示跟踪到的手心点的深度值,表示像素点 (U)处的深度值,0表示手及手臂的最大深度范围,本发明取为160_。
[0015] 肤色区域的提取:由于Kinect数据的特点,导致手及手臂区域的边缘锯齿比较明 显,这会影响后面轮廓提取的准确性。因此,在得到手及手臂区域后,应用贝叶斯肤色模型, 去除那些不是肤色的地方,得到精确的手及手臂区域。
[0016] 本发明采用YCbCr颜色空间来构建肤色模型,其原因是它的离散性与人的视觉感 知的同一性,亮度和色度分离以及肤色聚集区域紧凑等特性。然后用贝叶斯分类器计算每 个Cb*Cr分量是肤色概率,大于0. 6为肤色,建立肤色查找表。当给定一个要提取肤色区域 的图像,将其转化为YCbCr颜色空间,在以建立的肤色查找表中查询每个像素的Cb*Cr分量 是否为肤色。
[0017] 2、手腕点的提取 2. 1、从手及手臂的二值图像中提取轮廓,然后提取轮廓的凸包。凸包是由若干直线段 组成的,线段的端点就是与凸包与轮廓的交点。
[0018] 2. 2、手腕端点的提取 在构成凸包的线段中选取最长的线段,求出这条线段对应的轮廓,计算该轮廓上的每 个点到最长线段的距离,取最大距离对应的轮廓点p,P点即是手腕的一个端点。
[0019] 2. 3、手腕点的提取 以提取的手腕端点为一个顶点,取轮廓上任意一点为另一顶点,连接两个顶点的线段 为矩形的对角线,做矩形,判断该矩形是 否为轮廓内切矩形,即矩形上的点都在轮廓上或者 在轮廓内部。以此方法遍历轮廓上的所有点,与提取的手腕端点为矩形的对角线的两个顶 点,做矩形,求内切矩形。
[0020] 求所有内切矩形中,选择对角线最短的内切矩形,内切矩形的中心点即为手腕点。
[0021] 3、手臂点的提取 手腕只是一个狭窄的区域,所以手腕点的范围区域很小。手臂则是一个相当大的区 域,所以手臂点的提取也相当灵活。计算轮廓的内切圆,内切圆的直径要大于设定的阈值 (防止内切圆取到手指上)且手;L、点和手腕点一定不在圆内(防止内切圆取在手掌和手月姐 上)。在所有的内切圆中选择距离手心点和手腕点最远的内切圆,此圆的圆心就是手臂点。
[0022] 3. 1、计算轮廓的内切圆 取轮廓上一点,以此点为基点,取轮廓上的一点做线段,以线段的中点为圆心,线段长 度为直径做圆,判断轮廓上的所有点到圆心的距离,如果轮廓上有一个点或多个点到圆心 的距离小于半径,就证明这个圆不是内切圆。
[0023] 继续取下一个轮廓点与基点连线的中心为圆心,两点之间的距离为直径做圆,判 断是否为内切圆。直到轮廓上的所有点都遍历完,基点就取下一个轮廓点作为基点,再与轮 廓上的每一个点做圆,求取内切圆,直到基点取遍整个轮廓。 3. 2计算手臂点 计算每个内切圆的圆心到手心点和手腕点的距离,如果手心点和手腕点到圆心的距离 小于半径,证明手点和手腕点在内切圆内,这个内切圆不符合要求。否则分别记录此圆心 点,半径及圆心到手心点和手腕点的距离。在所有符合条件的内切圆中选择半径大于一定 阈值且圆心距离手心点和手腕点最远的内切圆的圆心为手臂点。
[0024] 3. 3内切圆直径阈值的参数训练 本发明的内切圆直径阈值的参数训练过程:在选定的深度范围内,每次伸出一个手指, 手指要伸直不要弯曲,在此深度范围内前后缓慢移动,在移动的过程中采用基于轮廓的方 法提取指尖点,以提取的指尖点为圆心,设定长度r=20为半径做圆,此圆与手指有两个交 点,计算两个交点的距离,即手指的宽度,在此深度范围内,隔一段时间换五指中其他手指, 反复测试,提取不同手指的在此深度范围内的宽度。本发明选择了六个深度范围,将每个深 度范围的手指宽度值输出,求得手指宽度的范围,取手指宽度范围的中间值加3px作为手 臂点提取的过程中的阈值。
[0025] 深度值范围 手指的宽度范围 正方形边长选取(£ = )
4、手心、手腕及手臂组合手势的设计 设手心点为
,设直线片P2与直线 所成夹角中的钝角为(Z,直线iPI与坐标轴的横轴的夹角为於。根据a,於及手心点和手 臂点的位置来设计3类手势。
[0026] 4. 1、手臂伸平和抬起手势的设计
1时,设定为手臂伸平 手势。
[0027]
,为手臂的握拳举起手势, 4. 2、手腕弯曲手势的设计 当直线M与直线巧所成夹角中的钝角为
为手沿手 腕向下弯曲手势。
为手沿手腕向上弯曲手势。
[0028] 4. 3、挥臂手势的设计
[0030] 实施例1 :手区域的分割 参见图1和图2所示,本发明利用Kinect深度相机提供深度图和OpenNI/NITE提供的 手心点三维位置进行手区域的分割。然后利用贝叶斯肤色模型建立的查找表,提取精确的 手区域。
[0031] 实施例2:手腕点的提取 参见图3至图5所示,首先提取手区域的轮廓,然后再提取轮廓的凸包,求得凸包的最 长线段对应的轮廓,计算该轮廓上的每个点到最长线段的距离,到最长线段距离最大的轮 廓点是手腕的一个端点。
[0032] 手腕端点为一个顶点,任取轮廓上一点为另一顶点,以两顶点为矩形的对角线上 的两个顶点,做平行于坐标轴的矩形,然后判断该矩形上每个点是否在轮廓上或轮廓内部。 如果矩形上存在轮廓外的点,则这个矩形不是内切矩形。以此方法遍历每个轮廓上的点,与 手腕端点为对角线两个顶点,做矩形,求取内切矩形。在所有内切矩形中选择对角线最短的 内切矩形,此矩形的中心点就是手腕点。
[0033] 实施例3:手臂点的提取 参见图6至图8所示,取轮廓上一点,以此点为基点,取轮廓上的一点做线段,以线段的 中点为圆心,线段长度为直径做圆,判断轮廓上的所有点到圆心的距离,如果轮廓上有一个 点或多个点到圆心的距离小于半径,就证明这个圆不是内切圆。
[0034] 继续取下一个轮廓点与基点连线的中心为圆心,两点之间的距离为直径做圆,判 断是否为内切圆。直到轮廓上的所有点都遍历完,基点就取下一个轮廓点作为基点,再与轮 廓上的每一个点做圆,求取内切圆,直到基点取遍整个轮廓。
[0035] 计算每个内切圆的圆心到手心点和手腕点的距离,如果手心点和手腕点到圆心的 距离小于半径,证明手点和手腕点在内切圆内,这个内切圆不符合要求。否则分别记录此 圆心点,半径及圆心到手心点和手腕点的距离。在所有符合条件的内切圆中选择半径大于 一定阈值且圆心距离手心点和手腕点最远的内切圆的圆心为手臂点。
[0036] 实施例4 :手心点,手腕点和手臂点组合手势的设计与应用 参见图9至图14所示,设手心点为.
设直线M与直线巧巧所成夹角中的钝角为a,直线与坐标轴的横轴的夹角为於。根 据a,於及手心点和手臂点的位置来设计3类手势。
[0037] 将手势识别与增强现实结合起来,用设计好的手臂伸平和握拳举起手势来驱动的 虚拟人物模型手臂的伸展和手臂的举起。手沿手腕向下弯曲的手势表示增强现实中虚拟手 模型准备开启酒瓶的动作,手沿手腕向上弯曲手势表示酒瓶的开启。挥臂手势来驱动虚拟 场景中的手与虚拟人物打乒乓球。
[0038] 以上所述仅为本发明的优选实例而已,并不用于限制本发明,对于本领域的技术 人员来说,本发明可以有各种更改和变化。凡对本发明所作的任何修改、等同替换、改进等, 均应包含在本发明的保护范围之内。
【主权项】
1. 一种基于深度相机的手腕点和手臂点的提取方法,其特征在于:通过Kinect深度 相机采集的彩色图、深度图及OpenNI/NITE提供的手心点三维位置,先将手部区域分割出 来,然后通过贝叶斯肤色模型将精确的手区域提取出来,通过视觉方法将手腕点和手臂点 提取出来;提取的手腕点、手臂点及OpenNI/NITE提供的手心点设计多种人机交互手势,然 后将设计的手势应用到虚拟现实和增强现实领域; 所述手部区域分割是:先在二维方向上分割出手区域,然后在深度方向上分割,再将分 割出的手区域图像作为掩码图,在Kinect提供的彩色图像中将手区域分割出来,然后通过 贝叶斯肤色模型提取精确的手区域; 所述手腕点提取的方法是:首先提取手腕的一个端点,然后以此端点为矩形对角线的 一个顶点,与手轮廓上的每个点做平行于坐标轴的内切矩形,选择对角线最短的内切矩形 的中心点为手腕点; 所述手臂点提取的方法是:首先求取计算轮廓的所有内切圆,在所有的内切圆中,选择 内切圆的半径大于设定的阈值以防止取到手指上,手心点和手腕点都不在内切圆内,而且 距离手心点和手腕点最远的内切圆的圆心为手臂点。
【专利摘要】本发明涉及一种基于深度相机的手腕点和手臂点的提取方法,应用于虚拟现实和增强现实等领域。通过Kinect深度相机采集的彩色图、深度图及OpenNI/NITE(开放式自然交互API)提供的手心点三维位置,先将手部区域分割出来,然后通过贝叶斯肤色模型将精确的手区域提取出来,通过视觉方法将手腕点和手臂点提取出来;提取的手腕点、手臂点及NITE库提供的手心点设计多种人机交互手势。优点在于:1.Kinect深度相机问世以来,很多研究者利用Kinect做了手势识别的研究,但这些研究中基于手腕和手臂的少之又少,基于视觉的方法把手腕点和手臂点提取出来的方法很少见;2.本发明中的手腕点和手臂点提取方法,计算量小,简单易行,能够实时稳定准确的提取到手腕点和手臂点。
【IPC分类】G06K9/00, G06K9/46
【公开号】CN104899591
【申请号】CN201510336118
【发明人】潘志庚, 郭双双, 张明敏, 罗江林
【申请人】吉林纪元时空动漫游戏科技股份有限公司
【公开日】2015年9月9日
【申请日】2015年6月17日

最新回复(0)