用于后处理的ARcore导出点云

时间:2018-04-11 09:57:48

标签: android unity3d augmented-reality point-clouds arcore

我在Unity中尝试了ARcore示例projekt HelloAR。现在我的目标是有效地导出映射的点云以进行后处理。

在HelloAR Unity projekt示例中,我更改了"PointcloudVisualizer.cs"脚本。现在,在每次更新时,我都会将当前的点云复制到Vector4列表中。

Frame.PointCloud.CopyPoints(pointcloud_temp);
pointcloud_all.AddRange(pointcloud_temp);

然后我创建了一个导出按钮,用于创建“pointcloud_all”列表中的文本文件。

  1. 这是从ARcore导出点云的方式还是我在api中错过了一个更简单的功能?
  2. 我是对的,在Frame.PointCloud中只保存当前帧中的点云吗?在某处,整个点云被保存了吗?
  3. Unity ARcore vector4具有第四个组件的置信度。这是怎么测量的?并且低值比高值好吗?
  4. 是否有人经历过ARcore映射,并为我提供了一些提示?
  5. 在下一步中,我将比较来自房间的ARcore点云与真正的3D激光扫描点云。有人已经这样做并且有一些结果吗?
  6. 我正在使用: ARCore SDK v1.1.0 for和Unity 2017.4.0f1

1 个答案:

答案 0 :(得分:0)

  1. 您对后处理的定义是什么?您是否尝试在应用程序运行时运行其他处理,或者您是否尝试下载数据以在计算机上本地播放?如果是前者,则不应该写入文本文件。请记住,位置是相对于相机变换的。
  2. 是的,点云是相对于每个帧的,没有全球点云(或全局网格)支持(但是?)
  3. 它基于ARCore计算的一些启发式算法。越高越好。 (把它想象成一个百分比,我90%确定这是一个有效的点云点。)
  4. 你想重建房间吗?你想要实时做吗?这与自动驾驶汽车中使用的激光雷达系统的问题相同。基本上,如果你在连续的帧上看到同一点上的多个云点,那么这个点很可能是真实的(可能与ARCore使用的启发式相同)。
  5. 啊,这回答了上面的一些问题。最棘手的部分是将您的云点生成版本的房间与您的激光雷达扫描表示对齐。但除此之外,除了单摄像机视觉惯性测量法会给你比基于激光雷达的扫描更嘈杂的事实,你应该能够匹配一个与其他错误