android - 细化 3D 模型相对于增强图像姿势的位置
问题描述
在我做一个大词转储之前,我的有效问题是:
我可以向 ARCore 提供一些额外的信息/启发式方法来完善它对检测到的增强图像的姿势的想法吗?或者我可以使用其他可跟踪对象的姿势来改进检测到的增强图像的姿势吗?
有关更多信息,以下是有关我的工作流程的一些背景信息:
我的 AR 应用程序围绕将各种 3D CAD 模型叠加在真实世界的机器上。用户交互是这样的:
- 用户将 QR 码(大小为 0.2 米 x 0.2 米)粘贴到相关机器上的预定位置(位置特定于机器类型)。
- 然后,用户将加载应用程序,将相机对准二维码,应用程序会将相机图像传递给二维码读取库,并使用有效负载(特定机器的 ID)来检索相关的 CAD 模型和元数据.
- 检测到 QR 码后,我可以使用 QR 码读取库构建 QR 码的原始图像并将该图像传递给 ARCore,以便它可以在 3D 空间中从相机中检测到它。
- 一旦在 3D 空间中检测到 QR 码,我会附加一个锚点,并使用关于 QR 码应放置在给定模型上的位置的知识(也使用有效负载信息从我的数据库中检索)来确定我的 CAD 模型的基础.
- 可以使用 CAD 模型叠加信息以显示各种操作/交互。
现在我已经让所有这些工作得很好,但是我遇到了一些问题,即模型从未完全定位到现实世界的等效模型,并且需要在事后进行一些手动位置调整才能使事情变得正确。我对如何解决这个问题有一些想法,但我不知道这些想法的可行性:
- ArTrackable_acquireNewAnchor允许您为每个具有不同姿势的可跟踪对象指定多个锚点。我认为这将改进对对象的跟踪,但我不清楚如何使用这个 API。我目前只是传递从 ArAugmentedImage_getCenterPose 生成的姿势,所以我不知道我会传递哪些其他姿势。
- 如果我在检测后将我的 QR 码锚点提升为云锚点,这将有助于检测/改进未来的 qr 姿势检测吗?
- 如果我尝试将 ARCore 检测到的其他特征(如平面)与真实环境中的已知拓扑(如地板/墙壁)相匹配,是否可以更好地近似 QR 码图像的位置或向 ARCore 提供一些启发式以便它可以?
- 如果我使用一组图像(一个 QR 码和另外两个静态图像),而不是使用单个 QR 码图像,它们之间会略有偏移。如果我们知道这些图像在现实世界中的距离有多远,我们可以使用这些信息来纠正 ARCore 估计它们所在位置的错误。
很抱歉这个巨大的词转储,但我认为信息越多越好。我的问题框架之外的任何其他想法也受到赞赏。
解决方案
推荐阅读
- python - OpenCV imshow 窗口太大 - 图像模糊
- python - 当我最初不知道数据类型时,如何快速更改 100 多个数据帧的格式?
- javascript - 有趣的 if/else if 条件链问题
- json - M Power Query - 动态扩展列
- azure - 从 Azure DevOps 项目的菜单中隐藏存储库
- c++ - 使用系统调用与基于库的方法来压缩目录的优缺点
- ios - 如果 titleLabel.string / 单元格内容为空,则删除单元格
- angular - 我可以根据 Typescript 中的泛型类型将类型分配给类变量吗
- sql - 给定年份创建的所有表格的打印大小
- postman - newman:newman.run 中的 exportGlobals 选项不采用指定的路径