ARKit图像检测-许多图像

时间:2019-05-24 10:06:57

标签: machine-learning computer-vision arkit image-recognition coreml

我需要制作一个可检测图像及其位置并在其上显示AR内容的应用。这些图像会在应用程序的生命周期内发生变化,并且可能有很多。我想知道如何设计这种应用程序。 ARKit可以提供此功能-检测图像及其方向,并在其上显示AR的内容。但是问题是ARKit一次只能检测有限数量的图像。例如,如果我有300张图像,那么可能会有问题。也许我可以准备一些ML数据集来预先检测图像,然后将其分配为可即时跟踪的ARKit?这是正确的方法吗?要制作出具有动态图像和大量图像以进行检测的应用程序,我还能做些什么?

2 个答案:

答案 0 :(得分:1)

关于ML方法,您几乎可以使用任何最新的物体检测网络来提取所需目标的近似坐标并提取框架的该部分,然后将正数传递给ARKit或类似。缺点是培训可能会占用大量资源。它可以工作,但是我不能说它相对于其他方法的效率。

在寻求扩展这一解释时,我看到了ARKit 2.0处理(似乎是)您正在尝试执行的操作; this不足吗?

要在评论中回答您的问题,CoreML似乎提供了对象识别模型,但没有提供本地化模型,因此我怀疑在训练了converter之类的模型后,有必要使用其these 。该网络的输入将是来自摄像机的帧,输出将被检测到具有 个检测概率的类以及近似坐标;如果您的目标存在,并且大致在哪里。

同样,如果您正在寻找2D图像而不是3D +对象,并且尤其是如果它仍然是ARKit应用,那么

实际上,看起来ARKit的内置跟踪将更加有效大大降低了开发成本。

答案 1 :(得分:0)

在WWDC '19上,ARKit 3被宣传为支持多达100张用于图像检测的图像。图片 tracking 支持的图片数量较少,我认为该数量仍低于10。目前,如果您需要更多图片,则必须自己识别图片。

作为一个想法,您可以在相机源中标识矩形,然后应用CIPerspectiveCorrection过滤器以基于检测到的矩形提取完整的2D图像。请参阅Tracking and Altering Images示例代码,其功能类似。

然后将矩形的图像数据与300个源图像集进行比较。由于性能方面的考虑,ARKit可能停在100,但您可以用自己的标准可以接受的性能指标来超越这些数字。