艾巴生活网

您现在的位置是:主页>科技 >内容

科技

Leap(Motion运行原理介绍)

2024-08-10 19:04:53科技帅气的蚂蚁
定位和输入是VR技术的关键,leap Motion采用了一种基于计算机视觉原理的识别技术。目前Leap Motion的手势识别技术在业界具有代表性。当然

Leap(Motion运行原理介绍)

定位和输入是VR技术的关键,leap Motion采用了一种基于计算机视觉原理的识别技术。目前Leap Motion的手势识别技术在业界具有代表性。当然,这项技术并非Leap Motion独有,在hololens上也有配备。从API的角度来说吧。

跳跃运动传感器的结构:

一般来说,Leap传感器根据两个内置摄像头从不同角度拍摄的图像,重建手掌在现实世界三维空间中的运动信息。检测范围一般在传感器上方25mm-600mm之间,检测空间一般为倒金字塔形。

首先,Leap Motion传感器会建立一个直角坐标系,坐标的原点是传感器的中心,坐标的X轴平行于传感器并指向屏幕右侧。y轴指向上方。z轴指向远离屏幕的方向。单位是真实世界的毫米。如图所示:

在使用过程中,Leap Motion传感器会周期性地发送关于手部运动的信息,每一条这样的信息被称为一个“帧”。每个这样的帧包含检测到的:

所有棕榈的清单和信息;

所有手指的列表和信息;

手持工具清单及信息(细、直、比手指长,如钢笔);

所有可指向的对象,即所有手指和工具的列表和信息;

Leap传感器会给他们所有人分配一个唯一的ID,当手掌、手指和工具留在视野中时,这个ID不会改变。根据这些id,可以通过frame: hand()和frame: finger()等函数查询每个运动物体的信息。

Leap可以根据每一帧和前一帧检测到的数据生成运动信息。例如,如果检测到两只手,并且两只手在不止一个方向上移动,则认为是平移;如果你像拿着球一样旋转,它被记录为旋转。如果双手靠近或分开,则记录为变焦。生成的数据包括:

旋转的轴向矢量;

旋转角度(顺时针为正);

描述旋转的矩阵;

比例因子;

平移向量;

对于每只手,可以检测到以下信息:

手掌中心的位置(相对于传感器坐标原点的三维向量,单位为毫米);

手掌移动的速度(毫米每秒);

手掌的法向量(垂直于手掌平面,从手掌指向外);

手掌朝向的方向;

根据手掌的曲率确定的虚拟球体的中心;

根据手掌的曲率确定的虚拟球体的半径;

其中手掌的法向量和方向如下图所示:

“棕榈球”的中心和半径:

对于每一只手掌,还可以检测到平移、旋转(如转动手腕带动手掌旋转)和缩放(如手指分离和收敛)的信息。检测到的数据,如全局变换,包括:

旋转的轴向矢量;

旋转角度(顺时针为正);

描述旋转的矩阵;

比例因子;

平移向量;

Leap不仅可以检测手指,还可以检测手持工具。如上所述,它是一个比手指还长的又细又直的物体:

手指和工具统称为pointable object(不好意思,翻译的不太好),每个Pointable object都包含这些信息:

长度;

宽度;

方向;

指尖位置;

指尖速度;

方向和指尖位置如下:

根据全局信息、动作变换、手掌、手指和工具的信息和变换,开发者可以通过这些来制作游戏和程序。