如何在 Android 增强现实中检测物理对象? [英] How to Detect Physical object in Android Augmented Reality?

查看:36
本文介绍了如何在 Android 增强现实中检测物理对象?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I found many ways to detect different shapes. But hard luck when I am going for a physical object. From what I read we should have a black border around images to make a pattern file. If I follow this concept and generate a pattern then my application detects images on printout. But in the real world a physical object not necessarily has a black border square shape around it.

更新

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

Although I accept an answer, my question remains unsolved. As there is still no solution for detecting physical object.

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

推荐答案

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

The bad news is, you can't use AndAR to detect physical objects. AndAR is based on a fiducial marker approach, where the marker is made of two components: a solid border and an interior pattern. The pattern encodes a value that can be used to address a particular model to render on the marker, and the border makes it easy to determine the relative orientation of the marker to the device. Clearly this is just planar image recognition.

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

To do object recognition on a 3D object is a more complicated problem, and I don't know of any Android libraries that provide a turn-key solution, but recognizing just one object is probably feasible on a mobile device.

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

One possibility might be to investigate the available Android AR toolkits (Layar, Junaio, Qualcomm AR SDK) which all now support some image recognition. It may be that by taking images of your teapot at various rotations and using those as the images you want your app to match against that you might get this solution working, but keep in mind they are only designed to do planar matching on images, not real 3D objects, so the performance might not be great. (Well, the Metaio Mobile SDK Pro does 3D recognition and tracking, but it's very expensive).

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

While object recognition is perhaps best done by comparing camera frames with images of the object you wish to recognize (or by comparing image features from the camera frames with pre-computed image features etc), tracking is a different matter. If you want to accurately track your 3D object in 3D space you'll really need to have or build a 3D model of it, and for each frame determine point correspondences between the camera image and the 3D object for tracking. True unassisted (i.e. no depth-camera) 3D tracking is hard.

我希望这能给你一些背景知识,你可以用它来评估你的后续步骤.

I hope this gives you some background you can use to evaluate your next steps.

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

Update: Qualcomm's Vuforia SDK allows you to track "multi targets", which are objects with a set of planar tracking surfaces with a fixed spatial relationship. If you made a "cube" different photos of the 6 sides of your object (teapot) that might work somewhat. https://ar.qualcomm.at/qdevnet/developer_guide/Trackables

2013 年底更新:

我没有这方面的经验,但是:

I have no experience with these, but:

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

Metaio now offer 3D tracking of CAD models: https://dev.metaio.com/sdk/tutorials/3d-tracking-based-on-cad-data/

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

ARLab.com's LinkAR promises object matching. http://www.arlab.com/objecttracking

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

I would note the use of the word "matching" - I think the use case here is you know the object you want to overlay (a toy-box, and engine etc). Differentiating between multiple 3D objects may be entirely out of scope.

这篇关于如何在 Android 增强现实中检测物理对象?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆