Google ARCore 域模型示例

2023-11-29

我正在尝试阅读并理解 Google ARCore 的域模型,特别是安卓软件开发工具包包。目前该SDK位于“preview“模式,因此没有任何教程、博客、文章等可以帮助您了解如何使用该 API。甚至 Google 本身也建议仅阅读源代码、源代码注释和 Javadocs 来了解如何使用该 API。问题是:如果您还不是计算机视觉专家,域模型对您来说会感觉有点陌生和陌生。

具体来说,我有兴趣了解以下类之间的根本区别和正确用法:

  • Frame
  • Anchor
  • Pose
  • PointCloud

根据Anchor的javadoc:

"描述现实世界中的固定位置和方向。为了保持在物理空间中的固定位置,该位置的数字描述将随着 ARCore 对空间的理解的提高而更新。使用 getPose() 获取该锚点的当前数字位置。该位置可能会在调用 update() 时随时更改,但永远不会自发更改。"

So Anchors have a Pose。听起来像你”放下一个锚”到相机中可见的物体上,然后 ARCore 跟踪该 Anchor 并不断更新其Pose也许是为了反映其屏幕坐标的性质?

并从Pose的javadoc:

"表示从一个坐标系到另一个坐标系的不可变刚性变换。正如所有 ARCore API 所提供的,姿势总是描述从对象的局部坐标系到世界坐标系的转换(见下文)...这些变化意味着每个帧都应被视为位于完全唯一的世界坐标系中。"

So it sounds like a Pose是只有“当前帧”并且每次更新帧时,所有锚点的所有姿势都可能会重新计算?如果不是,那么锚点、其姿势、当前帧和世界坐标系之间的关系是什么?什么是姿势really, 无论如何? “姿势”只是存储矩阵/点数据的一种方式,以便您可以将锚点从当前帧转换为世界帧吗?或者是其他东西?

最后,我发现框架、姿势和锚点之间存在很强的相关性,但是还有PointCloud。我唯一能看到里面的班级com.google.ar.core使用这些的是Frame. PointClouds看起来是(x,y,z)- 与代表 ARCore 对 x/y/z 分量实际上正确的“置信度”的第四个属性进行协调。因此,如果锚点有一个姿势,我会想象一个姿势也会有一个代表锚点坐标和对这些坐标的置信度的点云。但姿势does not有一个点云,所以我一定完全误解了这两个类建模的概念。


问题

我在上面提出了几个不同的问题,但它们都归结为一个简单、简洁、可回答的问题:

Frame、Anchor、Pose 和 PointCloud 背后的概念有什么区别?您何时使用它们(以及用于什么目的)?


A Pose是一个结构化的转变。它是从一个坐标系(通常是对象局部坐标系)到另一个坐标系(通常是世界坐标系)的固定数值变换。

An Anchor代表世界上物理上固定的位置。它是getPose()会随着对世界的理解的变化而更新。例如,假设您有一栋建筑物,外面有一条走廊。如果您沿着走廊一直走,传感器漂移会导致您无法到达开始时的相同坐标。但是,ARCore 可以(使用视觉特征)检测到它位于启动它的同一空间中。当这种情况发生时,它会扭曲世界,使您当前的位置和原始位置对齐。作为这种扭曲的一部分,锚点的位置也将被调整,以便它们保持在相同的物理位置。

由于这种扭曲,Pose相对于世界的值应仅在返回的帧的持续时间内被视为有效。只要你打电话update()下一次,世界可能会以这种姿势重塑,但可能毫无用处。如果您需要保留比框架更长的位​​置,请创建一个Anchor。只要确保removeAnchors()您不再使用的锚点,因为每个实时锚点都有持续的费用。

A Frame捕获瞬间的当前状态以及两次调用之间的变化update().

PointClouds 是在世界中检测到的 3D 视觉特征点集。它们位于自己的局部坐标系中,可以从Frame.getPointCloudPose()。希望比平面检测提供更好的空间理解的开发人员可以尝试使用点云来了解有关 3D 世界结构的更多信息。

这有帮助吗?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google ARCore 域模型示例 的相关文章

随机推荐

  • 为什么 Azure Bot Service Slack 连接器不转发事件和交互式消息?

    更新 2020 年 6 月 30 日 经过更多测试后 我获得了一些详细信息 可以帮助其他人识别我的问题 问题似乎是 Slack 正在将数据发送到 Azure Bot 服务 但该数据没有转发到我的代码 我已经能够毫无问题地使用机器人模拟器 并
  • IP 地址“::1”是什么?

    我正在没有网络连接的本地计算机上使用套接字 见下文 IPAddress address IPAddress Any doesn t work IPAddress address IPAddress Parse 1 works 那么到底是什么
  • 根据购物车总金额的百分比支付押金

    我从另一篇文章中获取了这段代码 基本上根据我的理解 这段代码试图强制购物车价格更改为 40 美元的固定金额 并将其作为预订费收取 我想要做的是强制购物车金额为购物车中所有产品总和的 20 我的网站是为了预订 所以我只想收取押金然后让他们在使
  • Woocommerce 3 中的自定义结账字段和运输方式 ajax 交互

    这个问题很快就会让我去邮寄 在 Woocommerce Checkout 中 我需要在地址中添加自定义字段 这个额外的字段用于function calculate shipping package array 现在显然 woocommerc
  • IOS - 无法以编程方式打开 Whatsapp 聊天,但可以通过 HTML 来打开

    我有一个网页 其锚点包含 href whatsapp xxxxxxxxx 如果我在 iPhone iOS 9 上单击它 它会在该联系人的聊天视图中打开 WhatsApp 我可以看到所有我与联系人进行的聊天 但是 如果我以编程方式执行此操作
  • RewriteRule - html 损坏 - 就像缺少 css

    我对这个规则有疑问 RewriteRule d more php books 1 tags 2 L 执行此规则后 一切正常 但页面显示不正确 就像缺少CSS一样 提前致谢 当您有 CSS 文件的相对 URL 时 可能会发生这种情况 如果您访
  • C++ ifstream从linux到arduino

    原始代码 include
  • 如何在 txt 文件中写入,iOS 7

    我正在尝试为 iOS 7 制作一个 iPhone 应用程序 我在我的项目中创建了一个txt文件 并且希望能够从txt文件中写入文本 当我按下写入按钮时 写入并能够读取数据 当我按下读取按钮时 读 当我尝试读取数据时 我发现这种方法有效 IB
  • 尽管传递了参数列表,为什么将变量传递给 subprocess.Popen 不起作用?

    我有一个脚本调用另一个Python脚本subprocess Popen 但是因为我有参数存储在变量中 servers server address servers server port servers server pass 我无法执行该
  • 异步.NET控制台程序中的线程控制流[重复]

    这个问题在这里已经有答案了 我在 C 中摆弄 async await 只是为了深入研究一些线程控制流 并偶然发现了一个不寻常的行为 我非常感谢对此的澄清 即使任务本身在后台执行 await 之后的执行也会在调用线程上继续 这是有意义的 事实
  • 自定义 Firebase 用户身份不使用 Firebase 用户 uid

    我正在玩FirebaseUI Android并有一个关于在唯一标识用户时使用什么 ID 的问题 FirebaseUI 管理身份验证权限并返回IdpResponse目的 这可以是例如Facebook Twitter 电话等等 非常感谢背后的每
  • 使用 ArrayAdapter 在 listView 中添加标题

    我正在尝试使用数组适配器显示列表视图 我从数据库中获取数组 ArrayAdapter
  • 如何偏移元素的第 n 个子元素

    我正在尝试提取元素的第 n 个子元素 以便元素显示堆叠在同一个容器中 我试过读一遍https developer mozilla org en US docs Web CSS nth child 但无济于事 我在 jsfiddle 中重现了
  • 散景叠加 GridPlot 中的多个绘图对象

    假设我有一个类 它保存一些数据并实现一个返回散景图的函数 import bokeh plotting as bk class Data def plot self kwargs do something to retrieve data r
  • 不使用 numpy 搜索二维列表

    我正在定义一个接受两个参数的函数 int and a list 如果该函数在列表中找到该整数 则返回其值坐标 例如 我该如何处理以下列表中的数字 4 不使用numpy l 0 0 0 0 0 0 0 0 0 0 2 1 1 0 1 1 1
  • 是否可以在 css 中创建 2 轴 4 颜色渐变(双线性渐变)?

    我的 JavaScript 示例和
  • 定时器(System.Threading)线程安全

    有谁知道这段代码是否是线程安全的 或者我在调用timer2 Change时是否必须使用锁 Timer timer1 new Timer timerCallback1 Timer timer2 new Timer timerCallback2
  • “错误:并非所有代码路径都会返回值。”

    我的代码在编译时抛出名义异常 我不明白为什么会发生这种情况 因为经过广泛搜索后 发生错误的原因似乎只有在没有退出返回语句的情况下才存在 但我认为我的代码是完全包容的 bool CheckExisting Account loginAcc n
  • 制作 Python 扇形图/扇形图

    我正在寻找用Python制作一个扇形图类型的线图 它类似于英格兰银行利率扇形图像这个 我非常擅长使用 matplotlib 来绘制标准线 条形图 散点图 但这似乎需要一些更自定义的实现 我在 Google 上搜索过 但似乎找不到任何执行此类
  • Google ARCore 域模型示例

    我正在尝试阅读并理解 Google ARCore 的域模型 特别是安卓软件开发工具包包 目前该SDK位于 preview 模式 因此没有任何教程 博客 文章等可以帮助您了解如何使用该 API 甚至 Google 本身也建议仅阅读源代码 源代