多目灰度cam手势追踪系统——MegaTrack

2024-03-12 14:20

本文主要是介绍多目灰度cam手势追踪系统——MegaTrack,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、前言

本文是对Facebook Oculus发布的一篇VR方向(手势追踪)论文的解读。Oculus是一家做VR的公司,2014年被FaceBook收购了,本次参考的论文就是FaceBook Oculus团队的最新论文。论文2020年7月发表于SIGGRAPH。

因为最终是要给大家讲明白这个手势追踪是怎么实现的,所以我尽量不出现数学公式,尽量使用中文。

【补充】SIGGRAPH是什么?:Special Interest Group for Computer GRAPHICS,计算机图形图像特别兴趣小组,成立于1967年,可以看作一个论坛或者是会议,内容主打电脑绘图和动画制作。绝大部分图像相关厂商和游戏制作者都会每年在这个会议上发布自己的作品和科研成果。因此,SIGGRAPH在图形图像技术,计算机软硬件以及CG等方面都有着相当的影响力。

二、论文分析

1、这篇论文讲的啥?

现在市面上的VR游戏机,都需要手柄一类的操作杆来获取玩家手部动作和实时坐标,如下图:

而本篇论文中所提到的手势追踪,则不要手柄操纵杆之类的外设。实现效果如下图:

说白了,他这篇论文讲的就是,他怎么实现的第二张图——手势追踪。而他这个手势追踪系统的名称,叫做MegaTrack。

而我接下来的任务就是以平易近人的科普方式,给大家讲解他们团队的手势追踪系统是如何实现的。
2、直接传感器->间接传感器

为了脱离操纵杆,最开始人们的解决方案是制作一双充满电容手套,玩家戴上手套之后,系统就可以完美的掌握手势的每一个细节,但这样和直接握操纵杆没有本质区别,二者都属于在手部直接安装传感器。这篇论文的第一个特点:就是不安装直接传感器,通过摄像头观察手部姿势+深度学习来达成间接传感器的作用。
【补充】两种间接传感器的对比:首先,谷歌也有一个类似的手势追踪系统——MediaPipe Hand。

  • MediaPipe Hand采用的是一个摄像头(非3D摄像头/深度摄像头),虽然一个摄像头无法展示场景的深度,但是谷歌采用了2.5D技术去近似模拟3D。
  • 2.5D是啥?在摄像头输入图像中,在大部分的情况下将手腕处或是手掌中心会被设为相对深度的基准点,也就是这个位置的深度视为零。这种表示相对深度的方法被统称为2.5D表示法。
  • 当然,只有一个固定的摄像头是肯定无法提取深度信息的,所以团队使用神经网络来进行训练,他们是用深度相机为每一帧图像打标签(深度信息),之后测试集使用的是普通相机。

有了深度的基准点,接下来的问题变成2.5D表示法要怎么近似真实3D位置。现在我们有:

  • 各个点在影像上的2D位置;
  • 各个关键点的相对深度。
  • 这时候只要再假设手骨长度,将2D的预测与相对深度以几何投影方式投到3D空间,并放置在手骨长度恰好等于假设值的3D位置上,这样就完成了3D手姿态的近似。

2.5D 映射为 3D 过程如下图:

再说本文的主角MegaTrack:

MegaTrack采用了四个灰度摄像头用来感知手部姿态,如下图:

这样,使用者的手至少会落在两颗相机的视野之中,如下图:

由于MegaTrack使用了4个摄像头,所以相比于谷歌的解决方案,具有以下优势:

  • 能够更好的解决“遮盖问题”(手被物品遮蔽或自我遮蔽 ,比如说背面拳头事实上,遮蔽是所有基于视觉方法的难题,这点如果不考虑非视觉的输入,就只有增加更多不同视角的相机输入了)
  • 在大多数时候他们会使用 multiple cameras with geometric calibration的演算法,只有在极少的位置使用单一相机的演算法。(比如手的位置特别的远离身体,以至于只有一个摄像头能捕捉到手的姿势…)
  • 在3D hand pose estimation演算法方面,Oculus除了会采用2D/2.5D hand pose estimation方法外,还可以更进一步地利用多相机的几何校正优势。
  • 同时,由于它具有四个摄像头,于是就可以在最初的数据采集中获取一些3D坐标用于辅助最终的手势坐标。

3、实现过程

介绍完了硬件,现在开始介绍实现步骤,可以分为三大步:

  • Detection (DetNet)——手部探测网络(自己翻译的…)
  • Keypoint Network (KeyNet)——手势关键点生成网络
  • Hand Kinematic Model(或者说手势估计)——建立手部动态模型

注:前两步都是通过神经网络来实现的。

3.1 DetNet(手部探测网络)

  • 团队使用了260万张照片来训练DetNet来提取手部图像。
  • VR眼镜上的四个摄像头采集影像(VGA格式),每一帧将手部信息裁剪成正方(因为正方形图像方便神经网络计算嘛),输入到下一层。
  • DetNet,结合了通过跟踪检测的策略,可以优雅地处理手部在多个摄像机之间的移动。

3.2 KeyNet(手势关键点生成网络)

KeyNet使用了200万张图片来训练网络,来预测手势关键点的2.5D坐标。

  • 注意:KeyNet的训练的图片来源,来自该团队实验室的深度相机。
  • 当模型已经训练好之后,在VR眼镜中则使用已经训练好的模型+普通摄像头来近似深度摄像头的作用,以节省成本。

在KeyNet层中,首先输入手的影像(已经处理成正方形)和21个用于参考的3D手势点(这21个点来源自上一轮的Hand Kinematic Model,有点循环神经网络那种感觉);随

后通过网络输出21个预测出来的2.5D 手势关键点坐标。

之所以输入来自上一轮的用于参考的3D点,是为了拟合真实数据和模拟数据的误差,也为了解决输入图像手部关键点的抖动问题(个人理解,这一步运用了残差的思想,把我上一轮生成的关键点用来辅助下一轮关键点的预测。毕竟有上一轮的参考点,就可以更重点观察新关键点的特点和分布)。

【补充】参考点是MegaTrack KeyNet一大特色

  • 值得一提的是,MegaTrack KeyNet的一大特色就是除了影像外还要输入一组参考用的keypoint 3D pose,而这组21个3D pose最大的效果在于稳定模型的预测,在某几帧采集效果不佳的情况下,依然能提供稳定的模型预测。
  • 对于MegaTrack系统来说,90%的关键点预测是由上一步输入的3D生成,剩下的10%的关键点的预测是由20帧前的手部姿势生成。(具体又是怎么根据前20帧生成的剩下的10%的点在此先不解释了)

3.3 Hand Kinematic Model(手部动态模型)

这一部分的作用:

  • 使用KeyNet输出的2.5D 的手势关键点来最终生成3D手势。
  • 另外,一个新的使用者使用VR设备,整个手势追踪会先进入kinematic model scale模块,进行手部姿态的校正。

具体流程:

  • 使用一个26 关键点的手部动态模型,通过观测KeyNet预测的2.5D pose,去近似真实的3D 手势。(为什么这突然变成26…我也不知道)
  • 其中,手腕6 个关键点,每根手指4个关键点 ,对KeyNet的2.5D pose计算残差,并使用Levenberg-Marquardt方法最佳化。

【补充】Levenberg-Marquardt最佳化:

Levenberg-Marquardt方法,是一个穷举3D空间中手的方法,并从中挑选最符合相机观察(KeyNet输出的2.5D pose) 的那只手,就是这个演算法最终输出的结果。

最佳化时,通过forward kinematic,得到3D空间中的21个3D点 (与KeyNet一样的21个点)。实际上最佳化的residual term有三项:

  • 将21个3D点投影回相机空间,与KeyNet预测的2D pose越接近越好;
  • 计算21个3D点的relative distance,与KeyNet预测的depth distance越接近越好;
  • 与前一个pose越接近越好,即smooth term。

4、MegaTrack实际运行流程

  • 首先,在轮流在不同camera上跑DetNet,直到找到使用者的手。
  • 再利用这个camera的影像通过KeyNet和Hand Kinematic Model得到第一个3D pose。
  • 随后,利用这个3D pose投影到其他camera中找到别的camera中的手。这个方法减少了多次跑DetNet所需的运算资源(相当于告诉DetNet一个手的大致位置,从而不需要让DetNet进行全图搜索)。
  • 接下来进入手部追踪模式,每次进行KeyNet的时候,插入上一祯的Hand kinematic model,以推测下一祯手会出现的位置,更进一步的减少运行DetNet的运算需求,稳定手部姿态的运算。
  • 运行100帧之后,这个手的scale会被储存下来,直到VR眼镜被放下才会清除。
  • 大多数的情况下,只有KeyNet会持续地运行,DetNet只有在丢失手部追踪(比如手突然抽走,再突然出现在另一个位置)的情况下才会被重新启动
  • 另外,为了压低运算量,即使同一支手存在于超过两个camera的视角内,MegaTrack还是只会跑其中两只camera。

5、本论文中,MegaTrack的缺点

在双手有复杂交叉的时候,识别会失效

当收的方向并不是以自己的方向为中心时,识别会失败

手和现实物体发生交互式,识别会失败

论文地址:

https://research.fb.com/wp-content/uploads/2020/08/MEgATrack-Monochrome-Egocentric-Articulated-Hand-Tracking-for-Virtual-Reality.pdf

这篇关于多目灰度cam手势追踪系统——MegaTrack的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/801543

相关文章

什么是cron? Linux系统下Cron定时任务使用指南

《什么是cron?Linux系统下Cron定时任务使用指南》在日常的Linux系统管理和维护中,定时执行任务是非常常见的需求,你可能需要每天执行备份任务、清理系统日志或运行特定的脚本,而不想每天... 在管理 linux 服务器的过程中,总有一些任务需要我们定期或重复执行。就比如备份任务,通常会选在服务器资

TP-LINK/水星和hasivo交换机怎么选? 三款网管交换机系统功能对比

《TP-LINK/水星和hasivo交换机怎么选?三款网管交换机系统功能对比》今天选了三款都是”8+1″的2.5G网管交换机,分别是TP-LINK水星和hasivo交换机,该怎么选呢?这些交换机功... TP-LINK、水星和hasivo这三台交换机都是”8+1″的2.5G网管交换机,我手里的China编程has

基于Qt实现系统主题感知功能

《基于Qt实现系统主题感知功能》在现代桌面应用程序开发中,系统主题感知是一项重要的功能,它使得应用程序能够根据用户的系统主题设置(如深色模式或浅色模式)自动调整其外观,Qt作为一个跨平台的C++图形用... 目录【正文开始】一、使用效果二、系统主题感知助手类(SystemThemeHelper)三、实现细节

CentOS系统使用yum命令报错问题及解决

《CentOS系统使用yum命令报错问题及解决》文章主要讲述了在CentOS系统中使用yum命令时遇到的错误,并提供了个人解决方法,希望对大家有所帮助,并鼓励大家支持脚本之家... 目录Centos系统使用yum命令报错找到文件替换源文件为总结CentOS系统使用yum命令报错http://www.cppc

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

【区块链 + 人才服务】可信教育区块链治理系统 | FISCO BCOS应用案例

伴随着区块链技术的不断完善,其在教育信息化中的应用也在持续发展。利用区块链数据共识、不可篡改的特性, 将与教育相关的数据要素在区块链上进行存证确权,在确保数据可信的前提下,促进教育的公平、透明、开放,为教育教学质量提升赋能,实现教育数据的安全共享、高等教育体系的智慧治理。 可信教育区块链治理系统的顶层治理架构由教育部、高校、企业、学生等多方角色共同参与建设、维护,支撑教育资源共享、教学质量评估、