Ios 从点云手动创建ARReferenceObject

Ios 从点云手动创建ARReferenceObject,ios,swift,object-detection,arkit,point-clouds,Ios,Swift,Object Detection,Arkit,Point Clouds,我的想法是获取一个点云(例如xyz文件)并从中创建一个ARReferenceObject,然后使用它进行对象检测。因此,与其先扫描对象并使用创建的对象引用,我希望使用我自己的点云使用ARKit 2.0进行对象检测 苹果的文档在rawFeaturePoints上有一些内容,这是一个ARPointCloud。我看到ARPointCloud有一个名为points的属性,它是一个vector\u float3数组,不幸的是它是只读的。我找不到手动创建ARReferenceObject的方法,所以我尝试了

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

苹果的文档在
rawFeaturePoints
上有一些内容,这是一个
ARPointCloud
。我看到
ARPointCloud
有一个名为
points
的属性,它是一个
vector\u float3
数组,不幸的是它是只读的。我找不到手动创建
ARReferenceObject
的方法,所以我尝试了示例中的源代码

我扫描了一个3D对象,并导出了生成的
.arobject
文件,它是一个zip归档文件。解包后,我修改了
trackingData.cv3dmap
,但放弃了。看起来像是一种专有的文件格式,我不太喜欢这种格式的反向工程

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

没有

据WWDC18的苹果工程师说,物体扫描不仅仅是特征点
ARReferenceObject
公开一个特征点阵列,以提供扫描结果的表示形式,您可以对其进行可视化和推理,但这只是它保存在参考对象中并用于识别的数据片段。据苹果公司公开表示,数据和生成数据的方法仍然是专有的

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