使用C#开发基于Leap Motion的手势控制应用(一)

Leap Motion的工作原理简介Leap motion controller 是Leap Motion出品的一款具备计算机视觉的手势识别设备。在其设备内部,有两个用于识别的球面摄像头,用于接收红外光的反射回馈;另有四个红外LED负责提供光源。当光源透过顶层的滤光片以后,被障碍物(例如人手)反射回摄像头,再经由内部集成的算法计算得出主要部位(如关节)的相关坐标数据
摘要由CSDN通过智能技术生成

  1. Leap Motion的工作原理简介

    Leap motion controller Leap Motion出品的一款具备计算机视觉的手势识别设备。在其设备内部,有两个用于识别的球面摄像头,用于接收红外光的反射回馈;另有四个红外LED负责提供光源。当光源透过顶层的滤光片以后,被障碍物(例如人手)反射回摄像头,再经由内部集成的算法计算得出主要部位(如关节)的相关坐标数据。这些数据可以经由Leap Service转发给用户的应用,做进一步处理。Leap Motion最顶层的滤光片起到了很重要的作用,它可以过滤除波长在940纳米以外的其他杂波,只容许自带红外LED产生的红外光波进出,所以Leap Motion控制器并不需要其他的滤波器,就能得到一个去除掉复杂背景的红外成像。


     Leap Motion的结构

    图二 Leap Motion的红外LED(绿色方框内)

     

  2. Leap MotionSDK

    Leap MotionSDK角度,其对深度图像的构建和计算是基于一个由红外LED定义的识别区域,并在一个3D坐标系统内完成对手势的识别和跟踪。如下图:


                                                          

    图三 Leap motion的识别区域

    由图三可见,其识别区域完全是依靠位于中间的两个和位于左右两边各一个的红外LED所构建。红外光线在透过滤光片时会发生一定角度的折射。所以,这个识别区域的范围外延并不是垂直于滤光片表面的,而是带有一定角度的。根据官方的文档,这个角度范围大致是左右两LED识别区域半径夹角150°;中间的两个红外LED识别半径夹角为120°。

     

                                                         

    图四 Leap Motion的坐标系

    Leap Motion采用的右手定则坐标系,原点位于Leap Motion控制器上表面的中心。X轴和Z轴位于控制器的上表面, X轴与控制器的长边水平,Z轴和控制器的短边水平;Y轴垂直于控制器上表面,并且其坐标值距离设备上表面渐远而递增。Z轴则靠用户的距离越近,其坐标值越大。这个坐标系里的测量单位是毫米(millimeter),因此使用这个坐标系测量的数据可以近似地估算物体的大小和远近等属性。

    当控制器在对处于识别范围内的物体(手或者手指)跟踪的时候,会输出一组实时刷新的数据帧。每一帧数据都包含被追踪对象(例如手)的细节信息,尤其是在物体运动时的属性。这样的数据帧构成了Leap Motion控制器应用的基础。

    Leap Motion SDK中,Hand模型定义了关于手的识别和跟踪信息,例如手的位置、手的跟踪特征、与手掌相连的手臂以及手指等众多信息。控制器的识别引擎在追踪的时候会自动识别这些信息,在使用SDK编程的时候,(Leap Service)自动填充这些对象的数据结构,从而用户可以读取这些数据结构,进行进一步处理。例如针对手掌,可以根据其相应的Hand对象的属性来判断左右手、手掌的方向,手掌的角度等等诸多属性。例如:                            

  3.                       

  4.                                                  图五手掌心和手掌方向的示意图

  5. 创建Hand对象,并通过读取对象的属性来获得关于“手心”的“属性”。

        Leap::HandList hands = frame.hands();
        Leap::Hand firstHand = hands[0];

        

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值