首页 > 解决方案 > ARCore 使用哪些传感器?

问题描述

ARCore 使用哪些传感器:兼容手机中的单摄像头、双摄像头、IMU 等?

此外,如果通过切换到其自身不太准确的版本而无法使用传感器,ARCore 是否足够动态以继续工作?

标签: augmented-realityarkitarcoreimu

解决方案


更新:2021 年 7 月 24 日

关于 ARCore 和 ARKit 传感器

GoogleARCore和 AppleARKit都使用一组类似的传感器来跟踪真实环境。ARCore可以将单个RGB相机与IMU一起使用,什么是加速度计磁力计陀螺仪的组合。60您的手机以fps运行世界跟踪,而Inertial Measurement Unit1000Hz 运行。此外,ARCore 中还可以使用另外一种传感器——用于场景重建的 iToF 相机(Apple 的名称是 LiDAR)。ARCore 1.25 支持Raw Depth API 和 Full Depth API

阅读 Google 对基于 Camera + IMU 的 COM 方法的评价:

Concurrent Odometry and Mapping– 电子设备跟踪其在环境中的运动,同时构建用于fixing a drift跟踪运动的环境的 3D 视觉表示。

这是 Google US15595617专利:用于并发里程计和映射的系统和方法


  • 2014...2017 年 Google 倾向于Multicam + DepthCamconfig(Tango 项目)
  • 在 2018...2020 年谷歌倾向于SingleCam + IMU配置
  • 2021 年谷歌回归Multicam + DepthCam配置


我们都知道,Android 设备最大的问题是校准。iOS 设备没有这个问题(因为 Apple 控制自己的硬件和软件)。校准质量低会导致 3D 跟踪出现错误,因此您的所有虚拟 3D 对象都可能在跟踪不佳的场景中“浮动”。如果您使用没有 iToF 传感器的手机,则没有防止不良跟踪的神奇按钮 ( and you can't switch to a less accurate version of tracking)。在这种情况下,唯一的解决方案是从头开始重新跟踪您的场景。但是,当您的设备配备 ToF 摄像头时,跟踪质量会更高。

以下是获得良好跟踪结果的四个主要规则(如果您没有 ToF 相机):

  1. 跟踪你的场景不要太快,不要太慢

  2. 跟踪适当的表面和对象

  3. 跟踪时使用光线充足的环境

  4. 不跟踪折射物体的反射

  5. 水平面比垂直面更可靠


SingleCam 配置与 MultiCam 配置

ARCore 的最大问题之一(这也是 ARKit 问题)是Energy Impact. 我们知道帧速率越高,跟踪的结果就越好。但是 30 fps 的能量影响是HIGH60 fps 的VERY HIGH。这种能量影响会很快耗尽智能手机的电池(由于 CPU/GPU 的巨大负担)。所以,想象一下你为 ARCore 使用了 2 个摄像头——你的手机必须以 60 fps 的速度并行处理 2 个图像序列,以及处理和存储特征点和 AR 锚点,同时,手机必须同时渲染动画 3D 图形具有 60 fps 的高分辨率纹理。这对你的 CPU/GPU 来说太多了。在这种情况下,电池将在 30 分钟内耗尽,并且会像锅炉一样热))。似乎用户没有


推荐阅读