使用iOSapp扫描和检测3D对象的终极指南
2019-11-28 18:29:34分类:APP开发 阅读()让我们今天体验一些新的东西
有时候你可能会想为什么你不能把一些想法变成现实或者在某个时候想象出来,所以我准备了很多材料让你学习。所以不要浪费时间,让我们开始吧!
你确定无论何时旅行或去历史遗迹都需要向导吗?谁能正确地引导你了解那里的每一个榜样或雕像?要跳过所有这些操作,只需在手机或平板电脑上下载ios手机应用程序,然后将设备放在任何雕塑或艺术品上,然后等待结果。你会看到你面前的交互式3D图片。通过识别您附近存在的不同部分,然后将其转换为虚拟内容外观来工作。
现在最重要的一点来了。
你可以在IOS 12上运行这个应用,它完全基于ARKIT平台。移动应用程序提供了一个参考对象,它可以转换已知现实世界对象的三维特征,然后在ARKit响应应用程序发出信号后,它可以在执行增强现实会话的时间和地点检测到类似的现实对象。
以下示例代码项允许您收集使用对象检测功能的不同方法:
通过使用移动应用程序,您可以扫描原始对象,该对象将出现在参考对象中,以完全检测到问题。
您可以通过引用对象扫描配置和ARReferenceObject设备作为您自己的资产生产管道的一部分来保存这些数据以备将来使用。
您可以通过在由世界跟踪的增强现实会话中使用detectionobjects属性来创建用于检测的参考对象。
扫描和定义适合ARKit平台进行检测的参考对象的不同步骤非常简单。(首先,如下所述在AR会话中创建参考对象)接下来是您对创建的参考对象的热爱,以及在移动app中检测到该对象后的胜利。准备好您的ios设备以运行此app,这将导致最高质量的数据扫描和可用于检测的文件。扫描和定义适用于ARKit平台检测的参考对象的不同步骤非常简单。(首先,在增强现实会话中创建一个参考对象,如下所述)接下来是您对创建的参考对象的喜爱,以及您在移动应用程序中检测到该对象后的胜利。准备您的ios设备运行此应用程序,这将导致最高质量的数据扫描和文件可用于检测。
为了让您的工作轻松舒适,请始终选择能够快速扫描对象的顶级ios设备。您可以通过ARKit支持的任何设备完成检测扫描对象的过程,但最重要的是您可以在大型设备上和平扫描巨大的字符。
1.准备扫描–启动应用程序,将物理对象放置在干净的表面上,没有其他东西可以使其在相机视图中居中,然后在对象上精确显示一个框,该框粗略估计了大小,然后通过单击移动下一个按钮。
2.什么是边界框——一个用于在3D中捕捉对象,然后按住对象的侧面来调整其大小的框。还要记住,您只需要扫描与对象相关的功能,而不是从框外扫描。继续扫描按钮。
3.扫描对象–继续向不同方向移动,直到边界框高亮显示您扫描的零件。扫描对象时不要跳过一个方向,因为这将有助于用户轻松识别对象。扫描过程完成后,应用程序将自行进入下一步。
4.修改原点-您可以在对象的锚点附近看到X、Y和Z坐标轴。只需拖动与原点相关的圆轴。如果您想以USDZ格式可视化3D模型,只需添加(+)按钮即可。如果你以一种完美的方式进行,应用程序将在你面前显示一个模型,但是在增强现实世界对象的完美检测完成后,它将包括一个相似的模型大小来调整参考对象的比例。转到;测试”按钮!
5.测试并导出它——最后,ARReferenceObject现在可以从应用程序中看到,但是需要重新配置来检测它。利用你的视觉技能,你可以通过从不同的方向和位置观察物理世界对象来将它们添加到各种环境中,并将它们置于大量的光照条件下,以确保ARKit能够完美地识别其位置并确定其方向。向前移动到导出按钮,通过保存来完成工作表。通过这个过程,您可以使用AirDrop轻松地将工作表导出到您的Mac开发平台,或者您可以将它们发送到文件应用程序以保存在icloudrive中。
ARReferenceObject包含ARKit识别实际对象所需的特征信息,并且从不显示对象的3D重建。
使用Xcode资产目录扫描特定应用程序中的对象进行检测:
要将新的应收帐款资源组添加到资产目录,只需单击(+)按钮
移动。从现有平台到新创建的资源组的对象文件。
(可选)-对于每个参考对象,使用检查器为您自己的使用提供描述性名称。
将您选择并熟悉的同一会话中的所有对象放入一个资源组中,并使用单独的资源组保存要在单独会话中使用的对象集。
要在ARSession中启用对象检测,请将要检测的引用对象加载为ARReferenceObject实例,为ARWorldTrackingConfiguration的detectionObjects属性提供这些对象,然后使用此配置运行AR会话。当ARKit检测到您的一个引用对象时,会话将自动将相应的ARObjectAnchor添加到其锚点列表中。要响应已识别的对象,请实现适当的ARSessionDelegate、ARSCNViewDelegate或ARSKViewDelegate方法来报告要添加到会话中的新锚点。例如,在基于场景的应用程序中,可以实现渲染器(_:Didad:For:),向场景中添加3D资源,从而自动匹配锚点的位置和方向。为了在扫描和检测对象时获得最佳结果,请记住以下几点:
当扫描物体时,ARKit总是倾向于提供清晰的表面和稳定的可视性。此外,与普通物体或反光物体相比,纹理物体具有最高的效果。
扫描和检测过程仅适用于满足要求的可调对象。
要检测的对象应具有与参考对象相同的结构。为了获得完美的形状,在检查过程中总是会移除耀眼的物体。
为了让你的检测过程更加熟悉,你只需要使用一致的室内有吸引力的照明,这是最适合扫描原始物体。
此示例应用程序提供了一种创建参考对象的方法。例如,您还可以扫描自己应用程序中的参考对象,以构建资产管理工具来定义要创建的其他应用程序中的增强现实内容。
参考对象对部分内部空映射数据进行编码,ARKit使用这些内部空映射数据来跟踪器件的位置和方向。要启用对象扫描所需的高质量数据收集,请使用对象扫描配置运行会话。
在对象扫描增强现实会话期间,从不同角度扫描对象,以确保您已经收集了足够的空数据来识别它。(如果您想构建自己的对象扫描工具,请帮助用户完成本示例应用程序提供的相同步骤。)
扫描后,调用CreateReferenceObject(转换:中心:扩展:完成处理程序:),从会话映射的用户环境区域生成ARReferenceObject。
当检测到参考对象时,ARKit根据参考对象定义的原点报告其位置。如果要放置看起来与真实对象位于同一表面上的虚拟内容,请确保将参考对象的原点放置在真实对象所在的位置。若要在捕获ARReferenceObject后调整原点,请使用ApplyingTransform(_:)方法。
获取参考对象(ARReferenceObject)后,可以立即用于测试(参见上面的;在AR体验中测试参考对象”),也可以将其保存为。用于以后会话或其他基于ARKit的应用程序的对象文件。若要将对象保存到文件,请使用导出(到:预览图像:)方法。在这种方法中,您可以为Xcode提供真实对象的图片以用作预览图像。
下一篇:SEO和SEM之间有什么区别?