揭秘Leap Motion手势辨认黑科技

摘 要

2013年,初创公司Leap发布了面向PC及苹果电脑MAC的体感控制器LeapMotion。但是当时LeapMotion的体验效果并不好,又缺乏使用场景,与二维计算机及终端有着难以调...

2013年,初创公司Leap宣布了面向PC及苹果电脑MAC的体感节制器Leap Motion。可是其时Leap Motion的体验结果并欠好,又缺乏行使场景,与二维计较机及终端有着难以协调的抵牾。

而VR的呈现,似乎为Leap Motion新开了一扇天窗,Leap Motion建议的三维空间交互与VR可谓美满团结,因此Orion应运而生。Orion是原有的Leap Motion软件的一个进级版本,硬件稳固。在VR体系中,Orion提供了一种手势的输入方法,它可以将手部的勾当信息及时反馈处处理赏罚器,最后表现在VR头显中。


简朴来说,Leap Motion是基于双目视觉的手势辨认装备。那什么是基于双目视觉的手势辨认呢?

基于双目视觉的手势辨认

顾名思义,双目视觉就是有两个摄像头,操作双目立体视觉成像道理,通过两个摄像机来提取包罗三维位置在内的信息举办手势的综合说明判定,成立的是手部的立体模子。这种要领对付用户手势的输入限定较小,可以实现越发天然的人机交互,但因为必要举办立体匹配,且因为立体模子的伟大性,必要处理赏罚大量的数据,计较相对来说较伟大。

要实现双目手势辨认起首必要对双目摄像头做标定,等于计较空间中阁下两台摄像机位置的几许关系。起首是对单摄像机的标定,其首要使命是计较摄像机的内部参数(包括摄像机的投影调动矩阵和透镜畸变参数)和外部参数(包括相对付某个天下坐标系的旋转矩阵僻静移向量),形象点说,摄像机自己存在畸变,假如不颠末标定进程,摄像机所拍摄出的影响是存在畸变的,即也许将本来的矩形表现成犯科则的圆角四边形。然后是标定,即计较空两台摄像机在空间中的相对的几许位置相关(包括旋转矩阵僻静移向量),普通讲就是使得两台摄像机所成的影像表现在统一程度线上。

接下来就是详细的手势辨认进程了。

起首从双目摄像头收罗操纵者手势举措的阁下视觉图像,通过立体视觉算法天生深度图像。详细进程:颠末立体标定后获取颠末校准的立体图像对后,举办立体匹配,得到视差图像,再操作摄像机的内参数及外参数举办三角计较获取深度图像。

然后对左(或右)视觉图像行使手势支解算法处理赏罚,支解出的人手地址的初始位置信息,并将该位置作为手势跟踪算法的起始位置。

再行使手势跟踪算法对人手行为举办跟踪。

再按照跟踪获得的功效举办手势的辨认。必要声名的是,假如跟踪方针消散,则从头举办手势支解,再一再上述步调。

双目手势辨认流程图如下:

Orion回收的等于双目手势辨认要领,着实现流程与上文所描写的双目手势辨认实现流程根基同等,可是通过各类基于Orion的尝试,我在这里对Orion的细节算法做一个意料,仅供读者参考。

Orion对比于上文所述的双目手势辨认根基要领差异之处在于,Orion在获取深度图像的步调,并未对整个手型上的全部点做立体匹配,而是只选择了13个阁下的特性点(图中蓝色点)做匹配,得到这13个阁下特性点的信息后再操作IK算法推算出整个手部模子。

基于一些尝试,我意料Orion选择的特性点是13个阁下,如下图中蓝色点:

基于这13个阁下的蓝色点即可操作IK算法推算出图中赤色点的数据,并最终得到整个手部模子。这里我说一下为什么意料是匹配特性点而不是匹配全部点:

Orion的处理赏罚时刻为8ms,即从读得手的图片到做完全部计较的时刻只有8ms。这个时刻长短常短暂的,要基于这样的时长来做整个手型上全部点的立体匹配是不行能的,只能选择一些特性点来做匹配,再按照特性点数据去推算(可能说预计)其他点的点云数据。

我所画出的这13个点均是较易匹配的点,而基于这些点即可操作IK算法构建整只手的模子。譬喻某根手指,基于指尖和指根两个点,即可按照手指长度等信息操作IK算法推算脱手指其他枢纽点的数据。

另外,假如是匹配全部点,则Orion辨认手指个数应该越发精确一些,可是今朝基于我的尝试表现,Orion手指个数辨认存在较大题目,详细实例可以参考下文场景描写。

Leap Motion——Orion的是非势

起首我们看看Orion的上风。为了可以或许应用在VR行业中很好的施展效用,Orion对比于前面的产物有了很大改造:

今朝的革新率为120HZ,耽误为4ms。一样平常环境下我们以为,VR规模必要将影像装备的耽误做到20ms以下,不然会侵害陶醉体验,而且导致眩晕。VR头显屏幕自己就存在必然耽误,交互装备就必需不能有过大耽误。固然今朝现实的耽误比4ms照旧要大一些,不外能做到10ms以下,根基也不影响今朝的应用。另外,现实视场角到达150度,适配今朝的VR头显还长短常有上风的。

初始化:在初始化方面,Orion有很是大的改造。所谓初始化即手部初次进摄像头拍摄范畴内的手势,早年Orion对付首个手势辨认很是有限,仅能辨认五个手指张开的手势。而新的产物则在该方面做了很大改造,今朝,以一些通例的不伟大的手势进入都没有题目,譬喻五个手指张开、一个手指张开其他握紧等。(这里所说的伟大的手势是指Orion自己无法辨认可能辨认错误率较高的手势,譬喻两根手指叠加在一路的手势等。)

翻转: 同样,Orion在手部翻转方面有很大改造,精确率有很大进步。

以上是Orion今朝应用于VR行业的上风,也是其可以应用于VR行业的基本。至于劣势,我按照本身现实体验的功效,给各人说几个Orion今朝体验结果不足好的场景,读者也可以拿出本身的Leap Motion装备测试一下看看究竟是不是云云。

手指检测不足精确:Orion在手指检测方面做得依然不足好,如下图手势:

即当我们的中指处于微张开状态下,Orion大都环境下会辨认成完全张开可能完全收起,当我们逐步的张开中指的进程中,Orion识此外手势也会有一个突变,及很轻易从完全收起的状态溘然变为张开状态,而失去了张开进程中的手势跟踪。

这里只是声名个中一个例子,着实尚有许多其他这样的手指检测不足精确的状况。

手指个数检测不足精确:Orion手指个数检测存在很大题目,这里我简朴先容两种环境:

    A+
发布日期:2016-05-04 09:20:45