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

Posted 朱铭德

tags:

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

前言        

        很久没有动笔写博客了,趁着元宇宙的概念还火热着,聊一聊面向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眼镜的手势交互手势交互定义和相关产品介绍

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

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

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

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

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