预览加载中,请您耐心等待几秒...
1/8
2/8
3/8
4/8
5/8
6/8
7/8
8/8

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

LeapMotion概述 LeapMotion系统可以检测并跟踪手、手指和类似手指的工具。这个器件可以在高精确度和高跟踪帧率下工作。 LeapMotion软件分析在器件可视范围内的物体。它识别手、手指和工具,可以实时获取它们的位置、手势和动作。LeapMotion的可视范围是一个倒金字塔,塔尖在设备中心。[这个很好理解,传感器一般都这样]LeapMotion的可工作范围大约在设备前方的从25到600毫米,也就是1英寸到2英尺。[2.5厘米到0.6米,果然弥补了Kinect近距离的不足啊,十分适坐在电脑前操作] 坐标系统 LeapMotion的系统采用了右手笛卡尔坐标系。返回的数值都是以真实世界的毫米为单位[和Kinect的深度数据一样一样的]。原点在LeapMotion控制器的中心。x轴和z轴在器件的水平面上,x轴和设备的长边平行[z轴和短边平行,挺好记]。y轴是垂直的,以正值增加形式朝上(与朝向下的计算机图形学的坐标系相反)。距离计算机屏幕越远,z轴正值不断增加。[看到那个小绿灯吧,得确保让它朝着我们这个坐标系才对,摆放时得注意!] 上图:LeapMotion的右手坐标系统 运动追踪数据 由于LeapMotion设备最终在它视野中的手、手指和工具,它提供一组数据集更新,或者是帧,或者是数据。每帧数据包含一个基本追踪数据列表,如手、手指和工具,也包括识别出的手势和描述场景中的运动因素。 但检测到手、手指和工具或手势时,LeapMotion'软件为它分配一个唯一的ID指示符。只要这个实体一直存在于设备可视范围内,这个ID指示符就保持不变[和Kinect的骨骼追踪的ID是一致的]。如果追踪目标丢失或者失而复得,LeapMotion软件会分配一个新的ID(软件无法知道手、手指是否和之前看到的一样)[也就是说,不包含手指识别啦,和Kinect的骨骼追踪在丢失后情况完全一致]。 帧 一个帧对象提供追踪数据、手势和在LeapMotion可视范围内的整体运动因素的列表。 追踪数据列表 Hands手---所有的手。 Pointables有端点的---手指和有段点的工具。 手指---所有的手指。 工具----所有的工具。 手势---所有手势的开始、结束或者哪个进行了更新。 这三个具有端点的列表(Pointables,Fingers,Tools)包含了任何在数据帧检测出的有端点的对象。你可以通过访问手的列表,来获取手中物体的信息。需要注意的是,如果用户的手只在LeapMotion的视野中出现一部分,那么手指或者工具都无法与手关联。[也就说,注意的手的摆放,确保手和工具同事都在可视范围内] 如果你正在通过一帧又一帧的来追踪一个单一的物体,例如手指,你可以使用与物体关联的ID,在新的帧中查询它。通过ID,你可以查询手、手指、工具、端点物体和手势。如果这个物体在当前帧存在,那么查询函数返回一个关于物体的引用。如果物体不存在了,那么返回一个特别的无效对象。无效对象被很好定义,但不包含任何有效的追踪数据。这个技术使得我们在使用LeapMotion追踪数据时,简化了大量的对于空指针的检测。 帧运动 LeapMotion软件分析总体运动,只要之前帧数据发生了位移、旋转、尺度变化等。例如,如果你把双手同时移动到LeapMotion的左侧视野,帧就包含了位移变化。如果你扭动你的双手,好像旋转一个球,帧就包含旋转。如果你将双手靠近或者远离,帧就包含缩放信息。LeapMotion软件会使用视野范围内的物体,只要分析到发生了运动。如果它只检测到一只手,那么LeapMotion程序就会基于那只手的运动,给出帧运动因素。如果它检测出一双手,它就将双手的运动趋势结合起来,给出运动因素。通过每只手对应的手对象,你也可以获取单独运动参数。 帧运动信息的产生是通过比较当前帧与之前一个特别的帧。描述合成运动的属性包含: 1.旋转坐标RotationAxis----一个方向向量来描述坐标的旋转。 2.旋转角度RotationAngle----相对于旋转坐标(笛卡尔坐标系)的顺时针方向的旋转角度。 3.旋转矩阵RotationMatrix-----一个旋转的矩阵变换。 4.缩放因子ScaleFactor------一个因子来描述膨胀和收缩。 5.位移Translation-----------一个向量来描述线性运动。 你可以通过运动因子来操控在你应用场景中的物体,而不必在多帧数据中跟踪单独的手和手指。[也就是factors可以手动修改] 帧结构包含一个估计某个方向上的特定运动。例如,如果缩放因子很大,难么你可以忽略在帧中的旋转、或位移(如果这可以让你的应用更实际)。通过概率方法滤去除掉不想要的运动信息可以使你的程序更容易被使用。[也就是说,只关注最主要的运动,