我开源了个手势匹配框架,让你在模拟器调试 visionOS 手部追踪功能!

说明

本文来自于我在 Let's VisionOS 2024 大会上的演讲,原演讲内容分为两个方面:向量与矩阵基础知识手势匹配框架 HandVector。为了便于阅读,我对原演讲内容进行了调整与简化,改写为了两篇文章《只需三板斧!带你入门 visionOS 空间计算的数学与几何基础》和《我开源了个手势匹配框架,让你在模拟器调试 visionOS 手部追踪功能!》。

可在 此处 获得 Keynotes 的 PDF 版本。

正文

HandVector 是我开源的一个 visionOS 手势匹配框架,目前已支持 SPM,可直接在项目中导入使用。它有两个功能:

  • 手势相似度计算
  • 在 visionOS 模拟器上运行手部追踪与匹配功能

手势匹配的需求

在 Vision Pro 发布之初,很多人就在想象:是不是可以用手势来触发一些效果?比如像火影一样结印,触发特效。但是,visionOS 目前并没有自带这个功能,苹果的机器学习框架 CreateML 暂时也不支持 3D 的手势匹配,所以目前无法在 Vision Pro 上使用。其它第三方的 ML 与 AI 框架理论上能实现 3D 手势匹配功能,但需要自己训练与部署,费时费力且往往运行效率不高。

手势匹配原理:余弦相似度

那有没有其它办法能实现类似 ML 和 AI 的效果呢?这就需要有一些数学和几何知识:实际上 ML 和 AI 判断相似度也是依靠一些数学算法来实现的,比如下面这些算法。 其中比较容易想到的就是 欧几里德距离(欧氏距离)余弦相似度 。由于每个人的手大小不同,再加上手指关节多,手势复杂,单纯的计算关节距离并不能很好的判断手势,所以在 单手 的情况下 余弦相似度 才是更适合的手势匹配算法。而余弦相似度的计算并不复杂,它的数学本质就是向量的点乘:点乘的大小反映了两个向量有多"平行",一般配合归一化(normalize)使用。 所以,我们只需要事先"录制"一个手势,接下来将 手部关节位置 转化为 3D 向量,与录制好的手势向量进行点乘,得到的结果就是当前手势与录制好手势之间的相似度。

模拟器调试功能

考虑到很多用户没有 Vision Pro 真机或者不方便随时随地进行调试,我便想开发一套"假手"调试功能。恰好看到 VisionOS-SimHands 已经实现了类似功能,我便将其接入进来。 VisionOS-SimHands 的基本原理是:

  • 在 Mac 上利用 Google MediaPipe 框架来进行 3D 手势识别;
  • 利用苹果 bonjour 网络服务,将识别到的 3D 手势广播到 visionOS 模拟器中;

注意:这里使用 Google MediaPipe 框架的 Web 版进行手势识别,如果在 Mac 上 START HAND TRACKING 按钮一直是灰色无法点击,请检查你的网络。

Google MediaPipe 结果整合

visionOS 支持手部关节追踪共 27 个关节点,整个手部的根节点位于手掌与腕部连接处,也就是 0 号与 25 号重叠处。 而 Google MediaPipe 手部 Landmark 关节追踪只支持 21 个关节点,且不支持 z 轴方向平移,离镜头近手会变大,远了就变小。 为了弥补这些差异,我首先利用已有关节位置对缺失数据进行补全,又使用经验公式并且将原来手离摄像头近会变大的效果,改为了 z 轴位移,让整体表现与 VisionOS 原生识别到的手势信息更加相似。

数学与几何

关于本项目用到的数学与几何知识,本质是都是最常见的向量与矩阵运算,详见《只需三板斧!带你入门 visionOS 空间计算的数学与几何基础》文章。

感谢主办方的精心组织,也预祝 Let's VisionOS 活动未来更加美好。

相关推荐
学步_技术4 天前
利用AI增强现实开发:基于CoreML的深度学习图像场景识别实战教程
人工智能·深度学习·ar·增强现实·coreml
斯裕科技5 天前
新升级|优化航拍/倾斜模型好消息,支持处理多套贴图模型!
unity·ue5·3dsmax·虚拟现实·maya·增强现实
Successssss~11 天前
【高校主办,EI稳定检索】2024年人机交互与虚拟现实国际会议(HCIVR 2024)
计算机视觉·人机交互·vr·虚拟现实·增强现实
学步_技术1 个月前
增强现实系列—深入探索ARKit:平面检测、三维模型放置与增强现实交互
机器学习·计算机视觉·交互·增强现实·虚拟现实技术·平面检测·vr/ar
Uncertainty!!1 个月前
初识增强现实(AR)
ar·增强现实
VRARvrnew3d2 个月前
轨道交通AR交互教学定制公司优选深圳华锐视点
ar·增强现实·轨道交通·ar公司·ar教学
VRARvrnew3d2 个月前
AR增强现实汽车装配仿真培训系统开发降低投入费用
ar·增强现实·汽车导航·ar仿真培训
苹果API搬运工2 个月前
试玩 RealityComposerPro 中的 Shader Graph:不同噪声图像 Noise 可视化
增强现实
苹果API搬运工3 个月前
试玩 visionOS 2 上的 LowLevelMesh 与 Compute Shader:模拟布料旗子
增强现实
苹果API搬运工3 个月前
36-AR 中的人物
增强现实