我正在创建简单的 AR 应用程序,并且我使用了 ARCore 和 ARKit。我对现实世界中虚拟物体定位的准确性印象深刻,因为我玩的手机没有深度传感器也没有多个摄像头,所以我想知道:
这些 SDK 为平面检测实现了什么算法?
最佳答案
Basically, ARCore uses a technique called Concurrent Odometry and Mapping (COM) and ARKit uses a technique called Visual-Inertial Odometry (VIO) to understand where the smartphone is relative to the real environment around it.
第一阶段 – 运动追踪 – 每部智能手机都结合了来自 的视觉数据
RGB camera sensor
(以 60 fps)和来自 的运动数据accelerometer and gyroscope sensors
(以 1000 fps)计算高对比度的位置 feature points
使用 parallax formula .该信息允许 ARCore 和 ARKit 在六个自由度 (6 DoF) 中获得虚拟相机的位置和方向。下一阶段——场景理解 – 帮助 ARCore 和 ARKit 了解几个特征点(即稀疏点云)共面的位置 – 因此,让智能手机找出检测到的平面的位置。
最后一个 ARCore 的舞台是 光估计而最后一个 ARKit 的舞台是 渲染 (
you don't even need to import SceneKit
因为 ARKit 包含所有必要的 SceneKit 类 - 看看这个)。As you can see, there's no need for manufacturer to supply a smartphone with multiple
RGB cameras
or withDepth rear camera
because just one RGB sensor with IMU sensor can do the job.
关于augmented-reality - ARKit 或 ARCore 使用什么算法来检测平面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60563365/