从点云手动创建ARReferenceObject

时间:2018-10-26 14:03:15

标签: ios swift object-detection arkit point-clouds

我的想法是获取点云(例如xyz文件),并从其中创建一个ARReferenceObject,然后使用该点进行对象检测。因此,与其先扫描对象并使用创建的对象引用,不如使用我自己的点云对ARKit 2.0进行对象检测。

Apple文档在rawFeaturePoints上有一个ARPointCloud。我看到ARPointCloud有一个名为points的属性,它是一个vector_float3数组,很不幸,它只能读取。我找不到手动创建ARReferenceObject的方法,因此尝试了示例Scanning and Detecting 3D Objects中的源代码。

我扫描了3D对象,并导出了生成的.arobject文件,该文件是zip存档。打开包装后,我纠结了trackingData.cv3dmap,但放弃了。看起来像是专有文件格式,我对这种格式的逆向工程没那么多。

现在我的问题是,是否还有其他解决方案可以从我自己的点云中创建.arobject文件或ARReferenceObject?或者,也许有一种基于现有点云的完全更好的对象检测方法。

1 个答案:

答案 0 :(得分:2)

不。

根据WWDC18上的Apple工程师的说法,对象扫描不仅仅是功能点。 Resent公开了一个特征点数组,以便提供可以可视化并进行推理的扫描结果的表示形式,但这只是ARKit保存在参考对象中并用来识别参考数据的一部分。而且,据苹果公司公开表示,该数据及其生成方法仍为专有。

(此外,创建MimeMessage和创建ARReferenceObject文件之间没有实际的区别-后者实质上是前者的序列化二进制版本。)