ios - 从点云手动创建 ARReferenceObject
问题描述
我的想法是获取点云(例如 xyz 文件)并从中创建一个ARReferenceObject
并使用它来进行对象检测。因此,与其先扫描对象并使用创建的对象引用,不如使用我自己的点云来使用 ARKit 2.0 进行对象检测。
Apple 文档中有一些rawFeaturePoints
内容是ARPointCloud
. 我看到ARPointCloud
有一个名为的属性points
,它是一个vector_float3
数组,不幸的是它是只读的。我找不到手动创建的方法,所以我尝试了示例Scanning and Detecting 3D ObjectsARReferenceObject
中的源代码。
我扫描了一个 3D 对象并导出了生成的.arobject
文件,它是一个 zip 存档。打开包装后,我修补了trackingData.cv3dmap
但放弃了。看起来像一种专有文件格式,我不太喜欢对格式进行逆向工程。
现在我的问题是是否有另一种解决方案来创建.arobject
文件或ARReferenceObject
从我自己的点云?或者也许有一种更好的方法来基于已经可用的点云进行对象检测。
解决方案
没有。
根据 WWDC18 的 Apple 工程师的说法,对象扫描不仅仅是特征点。ARReferenceObject
公开一个特征点数组,以提供您可以可视化和推理的扫描结果的表示,但这只是 ARKit 保存在参考对象中并用于识别的数据的一部分。据苹果公开表示,这些数据和生成它的方法仍然是专有的。
ARReferenceObject
(此外,创建文件和创建文件之间没有实际区别.arobject
——后者本质上是前者的序列化二进制版本。)
推荐阅读
- javascript - Vue js如何获取option-value的值并传入@click
- javascript - 可缩放 D3 树图 (d3-v5)
- visual-studio - 防止 Firebird 在 Visual Studio 调试输出窗口中打印查询
- html - 折叠按钮在使用引导程序的heroku上不起作用
- jquery - 如何在 Materialise 自动完成中使用动态数据?
- powershell - 获取用户密码过期日期 Powershell 并导出为 CSV
- python - 在 Azure Cosmos DB 中插入时分区键不起作用
- php - 使用 API 的 Shopify 产品元字段
- jquery - Laravel - JQuery keyup 仅在 Laravel json 中 parent_id 为 1 时有效
- node.js - 错误:此方法仅在ms team team范围内有效