ARKit 2.0 –扫描3D对象并从中生成3D网格

时间:2018-09-28 01:28:09

标签: swift augmented-reality arkit ios12

iOS 12应用程序现在允许我们创建ARReferenceObject,并使用它可以可靠地识别现实对象的位置和方向。我们还可以保存完成的.arobject文件。

enter image description here

But

  

ARReferenceObject仅包含ARKit识别实际对象所需的空间特征信息,而不是该对象的可显示3D重建。

sceneView.session.createReferenceObject(transform: simd_float4x4, 
                                           center: simd_float3, 
                                           extent: simd_float3) { 
   (ARReferenceObject?, Error?) in
        // code
}

func export(to url: URL, previewImage: UIImage?) throws { }

是否存在一种方法,允许我们使用 .arobject {{}从Poisson Surface Reconstruction文件重建数字3D几何(低多边形或高多边形) 1}}

2 个答案:

答案 0 :(得分:4)

您用引号from Apple's documentation回答了自己的问题:

  

ARReferenceObject仅包含ARKit识别实际对象所需的空间特征信息,而不是该对象的可显示3D重建。

如果运行该sample code,则可以亲眼看到它在扫描过程中以及测试识别后为参考对象创建的可视化效果-这只是一个稀疏的3D点云。 Apple的API为您提供的功能肯定没有摄影测量法,并且在恢复网格中的真实结构方面没有太多事情要做。

并不是说这样的努力是不可能的-有一些基于ARKit的第三方demoing摄影测量实验。但是a)不使用ARKit 2对象扫描,仅使用ARFrame中的原始像素缓冲区和特征点,以及2)这些演示中的外推级别将需要不平凡的原始R&D,因为它远远超出了种类ARKit本身提供的信息。

答案 1 :(得分:3)

在ARKit 3.5+中,您可以重建对象的网格

使用带有LiDAR和ARKit 3.5和ARKit 4.0的iPad Pro,您可以轻松地重建周围环境的拓扑图。启动当前的ARSession后,“场景重建”功能将立即开始工作。

First version of Apple's LiDAR在5米范围内起作用。扫描仪可以帮助您提高ZDepth通道的质量,并具有“人物和世界对象遮挡”,“运动跟踪”,“即时物理接触体”和“射线投射”等功能。

LiDAR扫描仪的其他出色特性是:

  • 您可以在光线昏暗的房间里使用设备
  • 您可以跟踪完全没有任何特征的纯白墙
  • 您几乎可以立即检测到飞机

请记住,通过LiDAR v.1获得的扫描对象的质量并不如您所期望的那样好。一些小细节无法扫描。那是因为Apple LiDAR v.1的分辨率不高


PS 目前(2020年10月),您可以将扫描的对象保存和导出为.usd.obj模型,但是必须努力捕获{{3 }}。

real world textures