首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

IOS13中的ARBodyTracking :如何获得身体关节的真实世界坐标?

在iOS 13中,ARBodyTracking是一种增强现实技术,用于跟踪用户的身体动作和姿势。通过ARKit框架,可以实现对用户身体关节的真实世界坐标的获取。

要获得身体关节的真实世界坐标,可以按照以下步骤进行操作:

  1. 导入ARKit框架并创建ARSession对象。
  2. 设置ARSession的配置为ARBodyTrackingConfiguration,以启用身体跟踪功能。
  3. 在ARSession中添加ARSessionDelegate,并实现其代理方法。
  4. 在代理方法中,使用ARFrame的capturedBody方法获取捕获的身体数据。
  5. 通过遍历捕获的身体数据,可以获取每个关节的真实世界坐标。

以下是一个示例代码片段,展示了如何使用ARBodyTracking来获取身体关节的真实世界坐标:

代码语言:txt
复制
import ARKit

class ViewController: UIViewController, ARSessionDelegate {
    var arSession: ARSession!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        arSession = ARSession()
        arSession.delegate = self
        
        let configuration = ARBodyTrackingConfiguration()
        arSession.run(configuration)
    }
    
    func session(_ session: ARSession, didUpdate frame: ARFrame) {
        guard let bodyAnchor = frame.capturedBody else { return }
        
        for jointName in ARSkeletonDefinition.defaultBody3D.jointNames {
            guard let jointIndex = bodyAnchor.skeleton.index(for: jointName) else { continue }
            let jointTransform = bodyAnchor.skeleton.jointModelTransforms[jointIndex]
            
            let jointPosition = jointTransform.columns.3
            let jointWorldPosition = simd_make_float4(jointPosition.x, jointPosition.y, jointPosition.z, 1)
            let jointWorldCoordinates = simd_mul(bodyAnchor.transform, jointWorldPosition)
            
            // 使用jointWorldCoordinates获取关节的真实世界坐标
        }
    }
}

这是一个简单的示例,展示了如何使用ARBodyTracking来获取身体关节的真实世界坐标。你可以根据具体需求进行进一步的处理和应用。

推荐的腾讯云相关产品:腾讯云AR服务。腾讯云AR服务提供了丰富的增强现实技术和解决方案,可用于开发各种AR应用。你可以通过以下链接了解更多关于腾讯云AR服务的信息:腾讯云AR服务

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Java Unit 测试如何获得 resources 文件

    azure_storage.json 为数据文件,我们希望将这个文件内容读取到测试类。...进行读取 在测试类,我们可以在初始化数据时候读取数据。...在数据初始化时候,我们使用下面的代码: InputStream inputStream = loader.getResourceAsStream(fileName); 先将资源文件数据读取为 InputStream...,这个时候你数据已经在内存中了,我们在上面的代码中使用代码 FileUtils.copyInputStreamToFile 来将内存数据写到一个临时目录,然后你就可以对文件进行操作了。...使用这样配置好处就是在测试时候,因为不同的人使用系统是不同,不同测试文件路径会导致没有办法进行路径同步。

    2.5K30

    ECCV 2022 | 普通VR设备实现全身运动捕捉,ETH&Meta为虚拟人物形象添加了下半身

    AvatarPoser 是第一个基于深度学习来通过用户头部和手部运动输入来预测世界坐标全身姿态方法。...此外,作者还将 Transformer 和逆运动学结合,来优化手臂关节位置,以匹配手真实位置。在作者实验评估,AvatarPoser 在大型动作捕捉数据集 AMASS 评估取得了最佳结果。...因此,稳定器通过将全局方向与姿势特征解耦并通过身体运动链从头部位置获得全局平移来负责全局运动导航。...Final IK 在 MPJPE 和 MPJRE 上给出了最差结果,因为它为了优化末端执行器位置和姿势,没有考虑到其他身体关节位置和平滑度。...除了全身关节位置误差外,作者还计算了手部位置平均误差,以体现 IK 模块如何帮助改善手位置。

    57410

    小程序开发如何通过请求获得对应数据

    在上期文章,FinClip工程师和我们主要聊了聊如何在小程序中使用 JS 处理内容或样式。...那么,以下我们来学习如何进行小程序服务器域名配置。...>’ 发送一个请求,请求都带上 foo:bar 我们通过开发者工具看该请求,可以看到请求相关配置都会出现在请求信息: 请求数据 通常来说,我们在使用 POST 请求时候,会携带一些数据,而在小程序...那么我们如何获取并处理返回数据呢,wx.request 接口提供了几个 callback 函数用于处理接口不同情况返回,分别是: success(请求成功回调); fail(失败回调); complete...回调函数打印了返回数据,控制台能看到如下: ---- 本期教程讲解了在小程序如何成功发起网络请求,并获得对应数据。在下一期文章,我们将会聊聊如何查看小程序组件文档,组件实际使用演示。

    1.7K20

    CVPR2024 | HUGS:人体高斯溅射

    给定休息状态下人体网格上第个顶点位置和各个姿态关节配置,,其中,姿态顶点位置计算为,其中是对应于第个关节和第个顶点元素。虽然SMPL模型提供了可动态的人体网格,但它没有建模头发和衣物。...我们还获得了从SMPL姿态空间到每帧使用相机姿态世界坐标的坐标变换,简化起见,我们在讨论中将忽略坐标变换。我们方法使用3D高斯表示人类,并通过学习LBS驱动高斯。...人体高斯存在于规范空间中,这是SMPL在执行预定义Da姿态时姿态空间。 渲染过程 给定关节配置,为了渲染图像,对于每个高斯,我们首先在其中心位置插值三平面,并获得特征向量。...我们还渲染一个仅包含人类图像(仅使用随机实心背景上的人类高斯)并使用上述损失比较真实图像包含人类区域。人类区域使用预训练分割模型获得。...在表2,我们进一步仅在包含人类区域评估重建误差。我们首先在真实图像围绕人类区域进行紧密裁剪。这个裁剪用于所有的预测,并在裁剪样本上评估重建误差。

    31311

    DRL在Unity自行车环境配置与实践

    甚至,像openaiDactyl机械手,直接虚拟环境训练好都不用微调,就能在现实中用,简直天秀。其思想就是:与其尽可能模拟真实,不如在与真实环境较为相似的随机环境训练,就能适应真实环境。...我们人类骑车的话,身体重心是在不停调整,与车速,车倾斜角度等配合,达到了车不倒效果,因此,在这个无人驾驶自行车,除了车,还需要一个可移动重心。...这个重心移动应该是靠力矩(就像人腰部关节扭矩力,让人身体各种倾斜),因此我在车上加了一个类似于机械臂物体,该物体模拟人倾斜,从而改变人与车整体重心。...机械臂利用了unityconfigurable joint(可配置关节)实现,可配置关节比较复杂,我就不讲了,反正作用就和mujoco里机械臂一样一样,靠扭矩力(底端关节点)移动。 ?...图中标号5,车身前向在世界坐标三维向量(也就是人坐车上脸超前方向)(+3),该向量与标号1向量做点积,可以得到两向量夹角,这个信息是很有用

    1.4K30

    如何从Bash脚本本身获得其所在目录

    问: 如何从Bash脚本本身获得其所在目录? 我想使用Bash脚本作为另一个应用程序启动器。我想把工作目录改为Bash脚本所在目录,以便我可以对该目录下文件进行操作,像这样: $ ..../application 答: 咱们容易想到方法是使用 dirname "$0"。 #!...但是在以相对路径方式去执行脚本时,获取目录信息是相对路径,不能满足其他需要获取绝对路径场景。 如果要获取绝对路径,可以使用如下方法: #!...)]" echo "dirname : [$(dirname $(realpath "$0") )]" 参考: stackoverflow question 59895 相关阅读: 在shell编程$.../(点-斜杠),以便在bash运行它 shell脚本对编码和行尾符敏感吗

    33720

    在 Kubernetes Pod 如何获取客户端真实 IP

    在这个过程,由于使用了 SNAT 对源地址进行了转换,导致 Pod 服务拿不到真实客户端 IP 地址信息。...本篇主要解答了在 Kubernetes 集群负载如何获取客户端真实 IP 地址这个问题。 ❞ 创建一个后端服务 服务选择 这里选择 containous/whoami 作为后端服务镜像。...在 Dockerhub 介绍页面,可以看到访问其 80 端口时,会返回客户端相关信息。在代码,我们可以在 Http 头部拿到这些信息。...IP ,并不是访问客户端真实 IP 地址。...直接通过 NortPort 访问获取真实 IP 在上面的访问,获取不到客户端真实 IP 原因是 SNAT 使得访问 SVC 源 IP 发生了变化。

    4.7K20

    ECCV 2022 | VisDB:基于学习密集人体鲁棒估计

    它被证明可以有效地定位可见关节/顶点,并且可以灵活拟合输入图像。尽管如此,x 轴和 y 轴热图是在图像坐标定义,它不能表示图像边界外身体部位。...有/没有可见性建模密集人体估计 考虑到大多数现有的 3D 人体数据集缺乏密集可见性注释,作者从密集 UV 估计获得真实值。...从基于图像密集 UV 估计获得可见性标签伪地面实况,这也被用作额外监督信号,以更好地将我们预测与输入图像对齐。 作者展示了密集可见性预测如何用于鲁棒的人体估计。...为了训练 VisDB 网络,作者从拟合 SMPL 网格和密集 UV 估计获得伪标签。对于 x 和 y 轴截断,可以通过将拟合网格投影到图像平面上来简单地识别截断关节/顶点。...我们从密集 UV 对应获得可见性伪地面实况,并训练网络来预测 3D 坐标以及每个人体关节和顶点截断和遮挡标签。

    1.5K20

    如何从复盘获得真正收获?持续改进是关键!

    通过复盘,当类似局面再次出现,你就能快速预测接下来动态走向,更好应对。 项目复盘会则是 项目团队有意识从过去行为经验,进行集体学习过程。...一般在项目或里程碑完结后,由项目经理组织召集项目成员,一起回顾项目整个历程,团队做对哪些事,做错哪些事,再来一次,如何做更好,沉淀该项目产生集体智慧。...如何做好项目复盘,如何通过复盘去培养团队持续改进能力? 1 复盘会基调设定 复盘会前,想清楚复盘目的,设定好复盘基调,更重要。 曾组织过复盘“坑爹功能”大搜罗。...这样每个人都会小心避开自己问题,转而说别人问题,复盘失去意义。 如何设定开放基调 自己要先进入反思区。 在那次复盘会之前,我跟这个部门负责人,就部门反复出现各种问题,进行过多次深度沟通。...,总结经验;做得不好环节,当场讨论出改进方案 我们来看看一次真实项目复盘会投票结果: 做得好: (10票) Bug Bash 活动成功开展,对产品质量控制有很大帮助,提升了团队合作意识及产品Ownership

    40842

    java如何获得数据库表字段等相关信息

    ("获得列" + i + "类型,返回SqlType编号:"+ columnType); System.out.println("获得列" + i + "数据类型名:" + columnTypeName...:"+ columnClassName); System.out.println("获得列" + i + "在数据库类型最大字符个数:"+ columnDisplaySize); System.out.println...("获得列" + i + "默认标题:" + columnLabel); System.out.println("获得列" + i + "模式:" + schemaName); System.out.println...("获得列" + i + "在数据库是否为货币型:" + isCurrency); System.out.println("获得列" + i + "是否为空:" + isNullable); System.out.println...("获得列" + i + "是否为只读:" + isReadOnly); System.out.println("获得列" + i + "能否出现在where:"+ isSearchable); }

    2.1K20

    如何在WebStorm获得对数据库工具和SQL支持

    虽然我们没有将数据库插件与 WebStorm 捆绑在一起,但早就有办法通过购买DataGrip或所有产品包订阅来获得里面的数据库和 SQL 支持,这将允许你安装数据库插件并在 WebStorm 中使用它...从 v2020.2 开始,你可以订阅我们数据库插件,并在 WebStorm 以合理价格使用它。 如何试用该插件 要安装插件,请转至“首选项/设置” |“设置”。...单击搜索结果“Database tools and SQL”插件旁边“Install”按钮,然后重新启动 IDE。 接下来,系统将提示你激活许可证。如果你已经有一个,你可以在那里直接激活它。...你从数据库插件得到什么 安装了数据库插件后,你就可以使用 DataGrip 所有功能,DataGrip 是我们独立数据库 IDE。 ?...为你在 WebStorm 项目提供类似的编码协助。 多种导入和导出数据选项。 如果你想了解更多有关可用功能信息,请访问此网页,你也可以查看DataGrip 博客,以了解最新改进和新闻。

    3.8K30

    PowerBI 被吊打,如何从数据获得切实可行商业见解

    对于一个前锋而言,如果他不知道球门在哪里,抑或他不知道如何绕过对方最强大防线,带球射门,那么,后端一系列传切配合都是零。...也即【报表好坏第一判别原则】当前状态好坏可判别性。—— BI 佐罗 也就是:它本身可以反映出生意好还是不好。这是第一原则。据此,来看上述图表,均不满足,因此全部是零分。 那如何做判定呢?...写 DAX 或者写 PQ 或者做图都不是目的,目的是知道生意好坏,然后知道原因,再改进它,以此循环。 如何做到这点,我们需要借助更加直接工具,而不仅仅是通用 Power BI。...,且功能本身是安全稳定; Zebra BI 已经获得强大生命力,不必担心它突然不运转。...原生支持智能批注匹配 Zebra BI 还支持将批注与具体呈现完美整合。如下(动画): 用户不但知道生意好坏,还可以立马聚焦在出问题地方并获得解释,以便了解更清晰故事。

    3.1K50

    GPUSkinning工作原理

    骨骼:理解骨骼动画以及背后数学意义 首先要明确一个观念:骨骼决定了模型整体在世界坐标位置和朝向。...静态模型没有骨骼,们在世界坐标系中放置静态模型时,只要指定模型自身坐标系在世界坐标位置和朝向。...在骨骼动画中,不是把 Mesh 直接放到世界坐标, Mesh 只是作为 Skin 使用,是依附于骨骼,真正决定模型在世界坐标位置和朝向是骨骼。...在渲染静态模型时,由于模型顶点都是定义在模型坐标系,所以各顶点只要经过模型坐标系到世界坐标变换后就可进行渲染。...子骨骼在父骨骼坐标系也可以做这些变换来改变自己在其父骨骼坐标系位置和朝向等。那么如何表示呢?

    1700

    中国学者开发看护机器人仿真环境,还做了真人实验,获IROS 2022最佳论文之一

    ,且需要看护人员帮助才能获得较高生活质量。...机器人看护技能 作者在仿真环境对常见看护任务进行了基准测试:喂食、穿衣、擦拭身体、四肢重摆、帮助移动、帮助上卫生间等。 此外,作者进行了两个真实世界实验: 1....将擦拭身体这个任务中学到策略直接迁移到真机实验。 2. 真实世界社交看护任务:作者用行为树编程 NAO 机器人作为教练,通过 VR 界面来指导被看护人员肢体复健。...软组织 另一方面,当人体关节运动时,会造成表面软组织形变,作者用基于 XPBD 仿真技术对这一部分进行了建模。这些软组织,不仅存在于表面,还存在于口腔。在口腔,作者对舌头也进行了建模。...关节活动范围 当人受到一些损伤,如脊椎损伤(C1-C3, C4-C5, C6-C7)、脑瘫、半身麻痹、脑中风等,身体关节活动性会受到极大影响,运动模式也会发生变化。

    42720

    【DB笔试面试598】在Oracle如何得到真实执行计划?

    ♣ 题目部分 在Oracle如何得到真实执行计划?...♣ 答案部分 在Oracle数据库判断得到执行计划是否准确,就是看目标SQL是否被真正执行过,真正执行过SQL所对应执行计划就是准确,反之则有可能不准,因此,通过10046事件及如下几种方式得到执行计划是最准确...,虽然SQL*PlusAUTOTRACE功能有部分是真实执行了SQL语句(例如所有DML语句),但是,由于该命令所显示执行计划来源于调用EXPLAIN PLAN命令,所以,其得到执行计划依然可能不准确...那么,为什么EXPLAIN PLAN命令里显示预估执行计划与该SQL真实执行计划不一样呢?...& 说明: 有关真实执行计划更多内容可以参考我BLOG:http://blog.itpub.net/26736162/viewspace-2152884/ 本文选自《Oracle程序员面试笔试宝典

    67920

    人在房间里走了一圈,慕尼黑工业大学研究推理出室内3D物体

    在计算机视觉任务,有一项基础任务是了解真实世界 3D 环境,我们可以将输入介质如 RGB、RGB-D 视频或单个图像等进行 3D 重建来了解周围物体。...在组合它们之后,姿态编码器从每个骨架身体关节(空间编码)及其在连续帧变化(时间编码)学习局部姿态特征。然后,作为种子关节用于投票选出每个姿态可能与之交互附近对象中心。...此外,他们还用 表示每个姿态关节,其中姿态关节是与身体臀部对应关节质心。...最后,该研究采用 MLP 来处理每个骨架所有关节获得姿态特征 。...表 2 中比较了 mAP@0.5 在拆分 S2 上得分,与在新房间中场景对象配置估计挑战性场景增加相对改进。 表 3 将 PROX 真实人体运动数据与基线进行定量比较。

    41220

    如何在算法比赛获得出色表现 :改善模型5个重要技巧

    如果你最近才开始使用Kaggle,或者你是这个平台老用户,你可能想知道如何轻松地提高你模型性能。以下是我在Kaggle之旅积累一些实用技巧。...例如,提示和技巧对预处理类似的问题,人们如何选择hyperparameters,什么额外工具实现他们模型让他们赢得比赛,或者如果他们只专注于装袋类似版本最好模型或者将所有可用公共内核进行堆叠...它们在不同级别上工作: 在优化过程,请不要忘记添加学习速率调度程序,以帮助获得更精确训练(从小开始,当模型学习良好时逐渐增加,例如减少平稳步伐)。...以同样想法,而不是仅仅依靠一个模型,而是进行许多不同模型投票:大多数模型预测目标(分类)或每个模型预测目标均值(回归)很可能是更接近真实答案。...希望您喜欢这篇文章,希望你在比赛获得更好成绩。

    91440

    银行业大数据:银行如何从客户数据获得更大价值?

    令人惊讶是,只有37%银行实施第一手经验大数据技术为提高运营和消费者利益。他们无法利用这些数据和实施牟利。在这个激烈竞争主要原因是分析人才缺乏,因为数据是无用技能分析。...同样,许多非银行做出了更轻松生活,引入个性化钱包,让客户购买直接从他们登录和获得难以置信折扣和优惠。...这种ATM钱包功能就像一个真正借记账户,带来每年超过一百万用户。 非金融性公司不断崛起,照顾消费者金融业务是一个严重威胁,而且这种差距需要尽早封闭。 银行如何能从客户数据获得更大价值?...只是给互联网金融期权是不够;必须有客户从你银行利润最大化一些例外创新。现有基础和后发优势银行能带来更好结果。 银行需要综合业务与新数字设备和给客户一个清晰了解,如何在哪里买。...提供一流服务是最终选择,银行可以提供,应对私人,非银行部门。更快地访问他们钱包,更提供在线网站,丰硕cashbacks,更好方法管理资金和投资可以吸引人们兴趣,对使用银行服务数字支付。

    3.1K50
    领券