首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我们如何通过增强现实的方式来实现实时的目标识别?

我们如何通过增强现实的方式来实现实时的目标识别?
EN

Stack Overflow用户
提问于 2015-04-24 17:54:01
回答 2查看 5.6K关注 0票数 0

我需要实现实时的图像识别。因此,我尝试了用于增强现实的metaio SDK。在Metaio SDK中,我使用了扩展的图像跟踪。但通过这种方式,只能以静态方式向该图像添加一个图像和文本。所以如果我扫描图像,我可以得到文本。我们如何通过增强现实的方式来动态地实现对象识别。有没有其他支持物体识别和3D跟踪的SDK(试用版)?

帮助是非常值得感谢的。

提前谢谢你,laxmi。

EN

回答 2

Stack Overflow用户

发布于 2015-04-25 11:29:33

好吧,我不知道Metaio,但是Vuforia有你想要的功能。

Vuforia有这个用户定义目标的概念。您可以下载Vuforia SDK或Vuforia的Unity扩展。

我个人使用的是Vuforia Unity,这里的ARCamera只需要修改一下,让它符合用户定义的设置。

在此之后,您只需添加此脚本即可访问摄像机图像,如下所示:

代码语言:javascript
复制
using UnityEngine;
using System.Collections;
public class CameraImageAccess : MonoBehaviour 
{
    private Image.PIXEL_FORMAT m_PixelFormat = Image.PIXEL_FORMAT.RGB888;
    private bool m_RegisteredFormat = false;
    private bool m_LogInfo = true;
    void Start()
    {
        QCARBehaviour qcarBehaviour = (QCARBehaviour) FindObjectOfType(typeof(QCARBehaviour));
        if (qcarBehaviour)
        {
            qcarBehaviour.RegisterTrackablesUpdatedCallback(OnTrackablesUpdated);
        }
    }
    public void OnTrackablesUpdated()
    {
        if (!m_RegisteredFormat)
        {
            CameraDevice.Instance.SetFrameFormat(m_PixelFormat, true);
            m_RegisteredFormat = true;
        }
        if (m_LogInfo)
        {
            CameraDevice cam = CameraDevice.Instance;
            Image image = cam.GetCameraImage(m_PixelFormat);
            if (image == null)
            {
                Debug.Log(m_PixelFormat + " image is not available yet");
            }
            else
            {
                string s = m_PixelFormat + " image: \n";
                s += "  size: " + image.Width + "x" + image.Height + "\n";
                s += "  bufferSize: " + image.BufferWidth + "x" + image.BufferHeight + "\n";
                s += "  stride: " + image.Stride;
                Debug.Log(s);
                m_LogInfo = false;
            }
        }
    }

如果你计划使用Vuforia SDK,那么你应该使用image类,这样工作起来就像本机版本一样。

  • 使用CameraDevice.SetFrameFormat方法注册所需的图像格式:在QCARBehaviour有机会运行其Start方法后启动此方法。
  • 使用Unity脚本排序功能,或在Update中使用CameraDevice.GetCameraImage方法对图像执行一次此操作。
  • ITrackerEventHandler.OnTrackablesUpdated回调中执行此操作。这样,您可以确保检索与当前frame.
  • Always匹配的最新相机图像确保相机图像不为空,因为在注册图像格式后,可能需要几个帧才能使图像变为可用。

如果这对你有帮助,

会竖起大拇指。

票数 0
EN

Stack Overflow用户

发布于 2016-02-03 18:25:55

看看ARtoolkit (开源),它可以使用Natural Feature Tracking.识别和跟踪你自己的图像(所以只有2d表面,而不是3d对象)

另一种选择是OpenCV,这是一个巨大的开源计算机视觉库。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29844363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档