如何在Android增强现实中检测物理对象?

问题描述 投票:33回答:4

我找到了很多方法来检测不同的形状。但是当我去寻找物理对象时,运气不好。根据我的阅读,我们应该在图像周围有一个黑色边框来制作图案文件。如果我遵循这个概念并生成一个模式,那么我的应用程序会检测打印输出的图像。但在现实世界中,物体不一定在其周围具有黑色边框方形。

更新

虽然我接受了答案,但我的问题仍然没有解决。由于仍然没有检测物理对象的解决方案。

欢迎任何进一步的研究和链接!

android computer-vision augmented-reality object-detection
4个回答
17
投票

坏消息是,你无法使用AndAR来检测物理对象。 AndAR基于基准标记方法,其中标记由两个部分组成:实心边框和内部图案。该模式编码一个值,该值可用于寻址要在标记上呈现的特定模型,并且边框可以轻松确定标记与设备的相对方向。显然,这只是平面图像识别。

在3D对象上进行对象识别是一个更复杂的问题,我不知道任何提供交钥匙解决方案的Android库,但在移动设备上识别一个对象可能是可行的。

一种可能性是调查可用的Android AR工具包(Layar,Junaio,Qualcomm AR SDK),它们现在都支持一些图像识别。可能是通过以各种旋转拍摄茶壶的图像并将其用作您希望应用与之匹配的图像,您可能会使此解决方案正常工作,但请记住,它们仅用于对图像进行平面匹配,而不是真正的3D物体,因此性能可能不会很好。 (好吧,Metaio Mobile SDK Pro可以进行3D识别和跟踪,但它非常昂贵)。

虽然最好通过将相机帧与您想要识别的物体的图像进行比较(或通过比较相机帧的图像特征与预先计算的图像特征等)来完成物体识别,但跟踪是另一回事。如果要在3D空间中准确跟踪3D对象,您确实需要拥有或构建3D模型,并且每帧确定摄像机图像和3D对象之间的点对应关系以进行跟踪。真正的无辅助(即没有深度相机)3D跟踪很难。

我希望这能为您提供一些背景知识,供您评估后续步骤。

更新:Qualcomm的Vuforia SDK允许您跟踪“多目标”,这些目标是具有固定空间关系的一组平面跟踪表面的对象。如果你制作了一个“立方体”不同的物体(茶壶)6面的照片可能会有所作为。 https://ar.qualcomm.at/qdevnet/developer_guide/Trackables

2013年底更新:

我对这些没有经验,但是:

Metaio现在提供CAD模型的3D跟踪:https://dev.metaio.com/sdk/tutorials/3d-tracking-based-on-cad-data/

ARLab.com的LinkAR承诺对象匹配。 http://www.arlab.com/objecttracking

我会注意到“匹配”这个词的使用 - 我认为这里的用例是你知道要覆盖的对象(玩具盒和引擎等)。区分多个3D对象可能完全超出范围。


3
投票

我最近读到了有关用于对象表示的分层形状词汇表的研究。当然,没有可供下载的库,但如果您对通用方法here感兴趣,您可以找到一些论文。

您可能对this paper感兴趣。它描述了一种基于一组轮廓检测对象的算法。


0
投票

你考虑过OpenCV for detecting and tracking object吗?看看Find Objects with a Webcam教程(C ++ / Qt)。 OpenCV适用于Android - OpenCV 4 Android

Enjoy Detection!


0
投票

Now you have a tool to detect objects in Android AR apps.

2018年5月8日,谷歌发布了一款移动SDK - ML Kit,这是一款面向Android和iOS开发人员的机器学习API,可以与ARCore SDK一起使用(现在有扩展图像API和增强面部API)。目前它还处于测试阶段,但它具有以下工作特性:

enter image description here

ML Kit工程师说这个:

ML Kit以强大且易于使用的方式将Google的机器学习专业知识带入Android和iOS应用程序。无论您是新手还是机器学习经验,只需几行代码即可实现所需的功能。开始时,无需深入了解神经网络或模型优化。另一方面,如果您是经验丰富的ML开发人员,ML Kit提供方便的API,帮助您在移动应用程序中使用自定义TensorFlow Lite模型。

© www.soinside.com 2019 - 2024. All rights reserved.