面向MR眼镜的手势交互手势交互定义和相关产品介绍

Posted 朱铭德

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向MR眼镜的手势交互手势交互定义和相关产品介绍相关的知识,希望对你有一定的参考价值。

前言        

        很久没有动笔写博客了,趁着元宇宙的概念还火热着,聊一聊面向ARVR眼镜的手势交互。还在读研的时候就做过一些手势相关的课题,也热衷于玩一些和手势交互相关的硬件。刚工作的前几年主要在做一款AR投影仪(影见),做了些3D物体姿态估计和图像识别的工作,从传统机器学习、深度学习到部署到终端的链路都有了一些经验和积累。

        最近几年主要负责手势交互相关的算法,面向的是国内各家AR眼镜,最终目标是集成到AR眼镜的系统层,替代手柄完成绝大部分交互需求。目前阶段性的一个成果是和Nreal(国内一款优秀的AR眼镜)合作,将我们的手势能力集成到了Nreal的官方SDK,并迭代了一个版本。虽然距离真正意义上的自然交互还有挺长的路,但在国内范围肯定是能打的,有兴趣可以去体验下Nreal SDK1.7.0版的手势功能(链接),非常期待反馈意见和建议。

联系我: zmdsjtu@163.com

正文

        说起手势交互,相信行业内的小伙伴第一反应是HoloLens 2。不得不说微软真的是YYDS,手势交互无论从交互精度、算法效率、算法功耗还是从交互直观体验等等各个方面来看,都很难找到能打的。本文会简单介绍HoloLens的交互设计,在本系列的后续文章中会根据近几年微软的论文详细阐述HoloLens手势的算法原理(先打个预告给自己点动力码字)。

        除了HoloLens外,另外一家必须要拧出来讲的就是Meta(原Facebook)的Quest 2,手势交互也做得非常好,可与微软比肩,本文中的很多精美Gif都是出自于Quest旧版的交互设计指南。除了这两家顶流外,也会介绍下Ultraleap的一些交互设计。

        文章的最后会以Nreal为例分析手势交互设计以及分享一些Demo效果。

手势交互需要解决的问题

        首先需要抛出的问题是——手势交互在ARVR里要解决哪些问题?

        这里参考了Quest的交互设计指南,可能随着MR技术的发展会有一些更精细的问题抛出来,但是手势交互至少需要解决以下几个问题:

  • 如何选中一个虚拟物体
  • 如何控制和移动一个物体
  • 如何旋转一个物体
  • 如何缩放一个3D物体
  • 系统功能(Home键,类比于windows键)

Microsoft HoloLens 2

        手势基于深度摄像头(Auzre Kinect)实现,采用优化的方法完成手势的姿态估计(详细原理后续文章会进行分析),运行效率极高(运行在DSP上,算力只有4GFLOPS[1],相当于iphone7的百分之一)。允许一定程度的双手交互,是目前已知眼镜中双手交互的天花板,也是最近很多年唯一一家以手势作为主要交互方式的MR眼镜。下面介绍几种主要的交过模式:

官方介绍文档:链接本能交互介绍(这个页面里有个介绍视频推荐看下)

选中/点击操作

  • 每伸出的指头都是一个3D碰撞体,配合视觉反馈完成点击操作

  • 【近距离】本能手势,针对不同尺寸的物体支持捏/抓等三种程度手势

  • 【远距离】从手掌发射射线,构成“光标”,pinch动作选中,松开释放

移动

  • pinch操作选中,随着手势移动(图中的UI本质上还是一个3D面片,其他3D物体类似)

 旋转和缩放

  •  【基于按钮的单手旋转和缩放】本质上将旋转和缩放做成了调节按钮,近距离捏合,远距离射线选中均可

  •  【单手旋转】利用手掌的旋转信息控制物体旋转

  • 【双手旋转和缩放】双手两个捏合的3D点,控制物体缩放和旋转

 系统手势

  • 一代“开花”手势映射到系统功能上(现在主流不这么做了)
  • 二代在手腕上加了一个按钮,可以用另外一个手点击或者看向win键捏合手指

Meta Quest 2

        Quest2,VR领域内的扛把子,我自己也没忍住买了一个(真香),裂墙推荐看下他们官方的介绍:链接。Quest基于四个灰度摄像头完成手势交互的识别[2],算法运行效率超过60FPS(目前的beta版本已经可以体验),是一套基于深度学习的方案。

        先感受一个精美的GIF:

        Quest官网有一张图很直观介绍了ARVR场景里手势交互的切换,可预见的主流的MR眼镜都会按这套来设计手势交互。更具体的一些交互介绍可以接着往后看

选中/点击操作

  • 近距离和远距离,和hololense很像
  • 远距离本质上也是射线的模型,显示层面有一些修改(挺有设计感的)

 移动

  • pinch选中物体后配合手的运动和松开即可完成物体的移动

 旋转

  • 【全自由度单手旋转】利用手掌旋转控制物体运动(抓着物体一起转)
  • 【限定自由度单手旋转】按钮+拖拽映射到物体的单个自由度

 缩放

  • 和HoloLens一样,很直观,双手的两个3D点控制3D物体的旋转和缩放
  • 单手+按钮的形式实现物体的缩放

 系统手势

  • 手掌面对用户,当指尖变蓝的时候捏合,唤起系统功能

Ultraleap 

        用一句话介绍一下——收购了LeapMotion。

        主要的交互设计看上面两家就够了,这家的官方文档也值得一看。下面两张图可以直观感受下AR眼镜的手势交互范围(左边是leapmotion,右边是ultraleap改建的双目红外版)。后面会有一些从网上搜集的Demo片段,可以直观感受下各种交互。

 选中+移动

 碰撞+Button

 全自由度旋转

 远距离选中+移动

这很leapmotion 

我们的手势算法效果(已接入到Nreal SDK)

        目前我们的手势已经接入国内多家AR眼镜,也有望接入更多的MR眼镜和其他的硬件平台,有兴趣的话可以聊一聊。        

        我们的手势基于双目灰度进行实现,可以检测手势21关键点3D位置、旋转信息和常用的手势类别信息,驱动模型手、mesh手直观上效果也不错。目前手势兼容绝大部分安卓平台,算法运行在高通DSP上,其他手机平台会自动切换到GPU。以高通888为例,双手DSP耗时整个链路只需要10ms。这个视频是目前在研的mesh手,可以看到,还是很稳定和自然的。

mesh手快出师了

        基于我们的手势算法+Nreal SDK在youtube上已经有了不少Demo,可以看到基本可以完成绝大部分交互操作了。

基于双目灰度3D手势SDK各种手势Demo

        另外我们在移动端也有不少积累,单目3D手很早就挺稳了,更多的一些效果视频可以关注:链接

        非常欢迎留言和讨论。

Reference

[1]The Phong Surface: Efficient 3D Model Fitting using Lifted Optimization. ECCV2020

[2]MEgATrack: Monochrome Egocentric Articulated Hand-Tracking for Virtual Reality.

[3]本能交互 - Mixed Reality | Microsoft Docs

[4]https://developer.oculus.com/resources/hands-design-intro/

[5]Welcome to Ultraleap Developer Resources - Ultraleap documentation

以上是关于面向MR眼镜的手势交互手势交互定义和相关产品介绍的主要内容,如果未能解决你的问题,请参考以下文章

元宇宙里的手势交互手势交互定义和相关产品介绍

面向MR眼镜的手势交互地表最强的手势交互原理剖析(HoloLens 2)上

元宇宙里的手势交互地表最强的手势交互原理剖析(HoloLens 2)上

元宇宙里的手势交互地表最强的手势交互原理剖析(HoloLens 2)上

iOS 14迎来健身交互新方式 支持手势与身体姿势检测

元宇宙中的手势交互第一款主流VR头显中的手势交互原理剖析(Meta Quest 2)