一种增强现实眼镜的手势识别方法及增强现实眼镜系统的制作方法_3

文档序号:8487466阅读:来源:国知局
好的标定结果。
[0094]转换模块108将全部转换匹配组包含的显示界面中光标的二维坐标(Χ,Υ)组成第一标定矩阵Μ1,并将全部转换匹配组包含的指尖的深度值Ζ、以及深度图像中指尖的二维坐标(X’,Y’ )组成第二标定矩阵M2 ;然后计算将第二标定矩阵M2转换成为第一标定矩阵Ml所需的矩阵,得到转换矩阵Α。第一标定矩阵Μ1、第二标定矩阵M2与转换矩阵A具有如下关系:Μ2 = Α*Μ10
[0095]可选地,转换模块108可以利用奇异值分解算法计算转换矩阵Α。
[0096]模式选择模块104根据用户的需要启动响应模式。
[0097]深度相机102实时拍摄增强现实眼镜前方的场景而获得深度图像。
[0098]图像处理模块103基于深度相机102实时获得的深度图像,计算指尖的深度值Ζ、以及所述深度图像中指尖的二维坐标(X’,Y’ )。
[0099]虚拟目标生成模块109采用所述转换矩阵对图像处理模块103计算得到的所述深度图像中指尖的二维坐标(Χ’,γ’)进行转换,并根据转换得到的二维坐标(X,y),在显示界面中生成一虚拟目标,即虚拟目标位于显示界面中的二维坐标U,y)之处。由于转换得到的二维坐标(x,y)是实时变换的,因此虚拟目标的位置也是实时变化的。
[0100]响应模块110实时分析指尖的深度值Z的大小变化情况,以及显示界面中虚拟目标的位置(X,y)变化情况,以触发相应事件。
[0101]可选地,响应模块110包括点击触发单元。其中,点击触发单元根据预设的时间间隔进行采样,并判断在相邻两次采样时刻,虚拟目标的位置(X,y)是否位于显示界面的同一区域(区域的大小可以预先设置,例如预先将近眼显示镜片101划分为若干个等大面积的区域,或者,将显示界面中显示同一功能项的面积作为同一区域),如果虚拟目标的位置均位于显示界面的同一区域,且该相邻两次采样时刻指尖的深度值Z之差大于预设深度差值(例如为30_),判断用户的手势为点击,用户期望执行点击相应功能的操作,此时,点击触发单元执行点击事件。
[0102]可选地,响应模块110包括点击滑动触发单元。其中,滑动触发单元根据预设的时间间隔进行采样,并判断在相邻两次采样时刻,虚拟目标的两维坐标(X和y)分别变化的情况。当虚拟目标的某一维坐标(例如X或y)的差值大于第一预设坐标差值(例如为60mm),且另一维坐标(例如7或3的差值小于第二预设坐标差值(例如为60_)时,判断用户的手势为滑动,用户期望执行滑动操作,此时,滑动触发单元执行滑动事件。例如,在相邻两次采样时刻,若虚拟目标的水平坐标X的差值大于60_,而垂直坐标y的差值小于60_,则滑动触发单元执行水平方向的滑动事件。
[0103]本发明示例性增强现实眼镜100中,图像处理模块103是用于根据深度相机102实时获得的深度图像,计算指尖的深度值Z、以及深度图像中指尖的二维坐标(X’,Y’)。下面通过实施例二和实施例三对对图像处理模块103的具体处理流程进行详细介绍。
[0104]为了方便说明,下文将三维空间中手部的各个点称为“手部真实点”,将深度图像/红外图像中对应手部的各个像素点称为“手部像素点”,则深度图像/红外图像中的全部“手部像素点”即组成了 “手形区域”。
[0105]实施例二
[0106]参见图4Α所示,为本发明示例性增强现实眼镜100中图像处理模块103的一种处理流程。
[0107]步骤S11,图像处理模块103获取深度相机102拍摄的深度图像,并在该深度图像中分割手形区域。
[0108]如图4Β所示,步骤Sll可以具体按照如下步骤实现:
[0109]步骤SI 11,将深度图像转换为灰度直方图。
[0110]该步骤中,灰度直方图表示深度图像中具有每种像素值的像素点总数(即像素数量),如图4C所示为由深度图像转换的灰度直方图,横纵坐标轴分别表示像素值和像素数量,灰度直方图中的各个点(例如图4C中连续波形上的点)即对应了深度图像中的各个像素点。
[0111]深度图像的全部像素值在[0,255]区间,以2个像素值为单位宽度将[0,255]区间分割成若干个子区间,然后统计每个子区间的像素数量,然后将结果记录于灰度直方图中。例如深度图像中有8个像素点的像素值在子区间[252,253]内,则记子区间[252,253]的像素数量为8,在灰度直方图的横坐标(像素值)为[252,253]之处,其纵坐标(像素数量)为8。
[0112]由于深度图像中像素值越大,对应的深度值越小,因此在灰度直方图中,越靠近右边界的点,其深度值越小,对应的物体越靠近深度相机102。一般情况下,当用户通过手势操作增强现实眼镜100时,相比于其他物体,手到深度相机102的距离最小,即手离深度相机102最近,基于这一情况,可认为灰度直方图中靠近右边界的若干点对应的是手形区域(深度图像中对应手部区域的全部像素点),而要想分割手形区域,就需要确定手形区域的两个边界的像素值,以下分别称为右边界像素值Boundary-R和左边界像素值Boundary-L。
[0113]步骤S112,将灰度直方图中最接近该灰度直方图的最大像素值、且所对应的像素数量大于一预设数量的像素值确定为右边界像素值Boundary-R。
[0114]如图4C中,该灰度直方图的右边界处的像素值为最大像素值,而此处的点几乎为零,这表示最靠近深度相机102的地方没有物体出现。以右边界为起点,依次遍历灰度直方图的各个横坐标,当某一点的像素数量大于预设数量(例如为0,表示该点处出现了物体)时,由于相比于其他物体,手距离深度相机102最近,因此,该点应是手部像素点,且该手部像素点对应的应是手部距离深度相机102最近的手部真实点,因此可将该点的像素值确定为右边界像素值Boundary-R。确定了手形区域的右边界像素值Boundary-R之后,下一步需确定手形区域的左边界像素值Boundary-L。
[0115]步骤S113,令所述右边界像素值Boundary-R减去预设边界差值得到左边界预测最小值 min (Boundary-L)。
[0116]根据深度相机102对手部跟踪的实际测试可知,一般情况下,各个手部真实点到深度相机102的最大距离与最小距离之间相差不超过150mm,映射到深度图像上为15个像素值,因此,手形区域的右边界像素值Boundary-R与左边界像素值Boundary-L的差值不会超过15,也就是说,左边界像素值Boundary-L必定出现于右边界像素值Boundary-R与左边界预测最小值min (Boundary-L)之间。
[0117]步骤SI 14,在所述右边界像素值Boundary-R和所述左边界预测最小值min (Boundary-L)之间确定左边界像素值Boundary-L。
[0118]为了更精确地确定左边界像素值Boundary-L,可选地,该步骤可以按照如下方式实现:确定直方图中所述右边界像素值Boundary-R和所述左边界预测最小值min (Boundary-L)之间、对应的像素数量最少的像素点,该像素点对应的是手部边缘的手部真实点,将该像素点的像素值确定为左边界预选值pre (Boundary-L);当左边界预选值pre (Boundary-L)太靠近右边界像素值Boundary-R时,以左边界预选值pre (Boundary-L)作为左边界像素值Boundary-L分割出的手形区域会表现为手形不全,为了避免该情况发生,若所述左边界预选值pre (Boundary-L)与所述右边界像素值Boundary-R之间的差值大于预设阈值(该预设阈值能够保证分割出的手形区域表现为完整的手形),则将所述左边界预选值pre (Boundary-L)确定为所述左边界像素值Boundary-L,否则,直接将所述左边界预测最小值min (Boundary-L)确定为左边界像素值Boundary-L。
[0119]步骤S115,将深度图像中大于等于所述左边界像素值Boundary-L、小于等于所述右边界像素值Boundary-R的区域分割出来作为所述手形区域。
[0120]可选地,该步骤可以先根据左边界像素值Boundary-L和右边界像素值Boundary-R,对深度图像进行二值化处理,即将介于所述左边界像素值Boundary-L和所述右边界像素值Boundary-R之间的区域与其他区域分别采用两种不同的灰度值进行区分,然后再分割出手形区域。
[0121]步骤S12,图像处理模块103在分割的手形区域中定位指尖对应的像素点,并将指尖对应的像素点的像素值确定为所述指尖的深度值。
[0122]具体地,由于在三维空间的手部,指尖所占的面积最小,因此指尖对应的像素点总数应最少,因此该步骤可以先确定灰度直方图中、介于所述右边界像素值Boundary-R与所述左边界像素值Boundary-L之间、且所对应的像素数量最小的像素值,然后在分割出的手形区域中定位该像素值所对应的像素点,即为指尖对应的像素点。
[0123]步骤S13,图像处理模块103将深度图像中指尖对应的像素点的二维坐标,确定为该深度图像中指尖的二维坐标。
[0124]实施例三
[0125]参见图5A所示,为本发明示例性增强现实眼镜100中图像处理模块103的另一种处理流程。
[0126]步骤S21,图像处理模块103获取深度相机102拍摄的深度图像,以及红外传感器拍摄的红外图像,并基于该深度图像和红外图像,分割手形区域。
[0127]具体的,红外传感器可以是内置于深度相机102中,也可以是单独设置于增强现实眼镜100中。
[0128]如图5B所示,步骤S21可以具体按照如下步骤实现:
[0129]步骤S211,将获取的深度图像转换为第一灰度直方图。
[0130]步骤S212,将第一灰度直方图中最接近最大像素值、且所对应的像素数量大于第一预设数量的像素值确定为第一右边界像素值。
[0131]步骤S213,令第一右边界像素值减去第一预设边
当前第3页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1