如何使用Unity和ARCore在现实世界物体(如瓶子)周围生成表面/平面?

3
我使用ARcore打包中提供的HelloAR场景建立了一个apk。该应用只能检测水平面,例如桌子,并在其上创建一个半透明平面。当我把手机移动到瓶子周围时,应用又只是创建了一个切穿瓶子的水平面。我原本期望ARCore根据我移动手机的方向,在瓶子周围创建多边形网格中的多个平面。
另一个场景是,我把两本厚度不同的书放在地板上。但HelloAR应用只在较厚的一本书上创建了一个半透明水平面,而没有为每本书创建一个平面。
请问这里出了什么问题?如何解决并使HelloAR应用更精确地工作?请帮忙。
软件:Unity v2018.2,ARcore v1.11.0

目前的状态(可能在接下来的3-12个月内),ARCore还不能做到这一点。 - PhilLab
我认为ARCore无法做到这一点。你应该尝试一下Hololense。 - Saad Anees
你最好使用 Vuforia。它支持使用机器学习检测 3D 对象。如果你感兴趣,我可以详细说明。 - mihoci10
@mihoci10,由于ARcore不符合我的要求,我正在寻找其他替代方案(Vuforia是主要的一个)。如果您能详细说明,那将非常有帮助。 - Uchiha Madara
2个回答

0

ARCore使用设备的轻微移动生成一个近似的点云来识别特征点,这些点是通过不同形状的对比来检测的。如果您在Unity中以测试模式使用应用程序,则可以看到这些点如何放置在空场景中。

一旦程序在"相同高度"(我不知道确切的精度)处有足够的点,它就会生成您可以看到的平面,但它不会检测相距5厘米或更远距离的平面。

如果您想了解应用程序的近似准确性,请使用Unity进行测试,并编写一个脚本来捕获已用于生成平面的生成点,然后检查Y差异以查看容差距离。


0

好的,Vuforia目前是增强现实领域中最主要的SDK之一,提供了广泛的检测选项(图像、地面、点、3D对象等)。

所以关于您关于检测瓶子的问题,我肯定会使用3D模型检测功能。您可以在官方文档这里中阅读相关信息。 您需要首先在3D建模软件中生成物体的近似模型,然后使用他们的程序生成检测模型。然后将其放入Unity并设置检测即可。(无需编码)

我有一些这种类型检测的经验。我曾用它来检测一个大型2mx2m比例尺寸的电动车模型。它非常出色,您可以在周围走动,它会一直跟踪。您可以在此处查看简短的官方演示这里

希望这能简单地解释清楚!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接