现实增强SDK分析

Vuforia Architecture(高通组件)

camera

    单实例,在需要摄像头的时候会返回唯一的摄像头实例。

Image Converter

    单实例,像素级的图像转换器。在相机的 OpenGL ES rendering 格式和 tracking 的格式之间转换。

Tracker

    单实例,用一种可自定义变更的算法跟踪在摄像头得到的图片中的目标,并把对象用 state object 方式存储。跟踪器可同时追踪多个数据集(被追踪对象),但是同一时间只能有一个被激活。

Video Background Renderer

    单实例,在 state object 中渲染从摄像头获得的图像。该组件的性能在 background video rendering (视频背景渲染)中是最佳的。

Application Code

    开发者必须初始化以上的所有组件,并且需要在程序中完成3个关键动作。在所有的框架中,state object 不断被跟新,并且应用程序提供方法被呼叫。

    3个关键动作:

    1. 查询 state object 的最新状态, 并且标记或更新这些 state 的状态。

    2. 为新加入的数据更新程序逻辑。

    3. 把图形叠加并且显示到屏幕。

Target Resources

    目标资源创建于在线的 Target Management System  。下载的数据中包含 XML 配置文件,让开发者能配置一个跟踪特点,在二进制文件中还包含一个跟踪目标数据。


下图是以上组件的协作图:



Trackables (可被追踪的目标)

定义: Trackables 是高通AR开发包可以在六自由度中追踪到的所有现实世界中的目标。每个可追踪的,当发现和跟踪,有一个名称、一个ID、状态和姿态信息。图像目标、多目标和标记都trackables,从这个基类继承的属性。Trackables是更新每一帧被处理,结果被传递到应用程序的状态对象。为更全面地理解应用程序间的数据流和SDK请看看Vuforia架构。

参数:
  • Trackable type

                 Enum that defines the type of the trackable:

  •            UNKNOWN_TYPE - A trackable of unknown type.
  •           IMAGE_TARGET - A trackable of ImageTarget type.
  •           MULTI_TARGET - A trackable of MultiTarget type.
  •           MARKER - A trackable of Marker type.
  • Trackable name / identifier
                   A string that uniquely identifies the trackable within the database of targets.
                   Max string length: 25 characters
                   Character set: a-z, A-Z, 0-9,[ - _ .]
  • Trackable status
                   Each trackable has a status information associated with it in the State object, which is updated as each camera frame is processed. The status is    characterized by an enum:
  •                     UNKNOWN - The state of the trackable is unknown. This is usually returned before tracker initialization.
  •                    UNDEFINED - The state of the trackable is not defined.
  •                    NOT_FOUND - The trackable was not found, E.x. The referenced trackable is not part of the database.
  •                    DETECTED - The trackable was detected in this frame.
  •                   TRACKED - The trackable was tracked in this frame.
  • Trackable pose
                     Current valid pose of a DETECTEDor TRACKED trackable is returned as a 3x4 matrix in row-major order. The Vuforia SDK provides simple tool functions to convert the Vuforia pose matrix into a GL model-view matrix, and to project 3D points from the 3D scene to the device screen.

坐标系统:

    高通SKD使用右手坐标系,坐标系如下图:


x:右为正方向

y:正上方为正方向

z:远离图像的方向为正方向

Relevant API's

           QCAR::Trackable::

           TYPE getType ()
           bool isOfType (TYPE type)
           STATUS getStatus ()
           int getId ()
           char* getName ()
           Matrix34F& getPose ()
           TYPE { UNKNOWN_TYPE, IMAGE_TARGET, MULTI_TARGET, MARKER }
           STATUS { UNKNOWN, UNDEFINED, NOT_FOUND, DETECTED, TRACKED }

           QCAR::State::

           Frame getFrame ()
           int getNumTrackables ()
           Trackable* getTrackable (int idx)
           int getNumActiveTrackables ()
           Trackable* getActiveTrackable (int idx)

Inherited Classes

Image Targets

定义: 

    图像形式的跟踪目标。只要是拥有比对数据的真实世界的目标都能识别并捕捉。SDK拥有自己的算法计算目标的特征点,不需要图像完全符合数据中心中的数据,只要目标还在摄像头的范围内即可。

    目标是提前在 Target Management System 中输入的 JPG 或者 PNG 图形 (只有 RGB 或者 灰度图像是被支持的)。把这些数据保存在数据库并在运行的时候提取。

     高通SDK允许同时有多个图像目标,同时允许5个目标在摄像头范围内(性能随CPU和GPU限制)。高通SDK同时可以允许50个图像目标在资源数据库中。在运行的时候允许交换数据集,这使得应用程序可以容纳更多的目标。


其他详细说明:https://ar.qualcomm.at/qdevnet/developer_guide Image Targets 章节


Multi Targets

定义:

    一个 Multi Targets 是由多个 Image Targets 以及他们之间的相对空间关系定义的一个组合。当这个组合的其中一部分被追踪到,其他部分相对于此部分的位置和方向就可以得到了。只要有一个以上的组件在摄像头的范围内,这个 Multi Targets 就可以被追踪到。多个图像目标和 Multi Targets 的差别是: Multi Targets 是由一个整体的方式被追踪的,他们之间是拥有位置方位的关系的。

    图像目标组成一个多目标创建目标管理系统从JPG或PNG输入图像(只有RGB或灰度图像的支持)。特征提取这些图像存储在一个数据库,用于运行时比较。空间关系的各个部分存储在数据集配置XML文件使用简单的转换。

    多目标可以以两种方式创建——直接与在线目标管理系统和在运行时通过一个定义良好的api集。可以添加或删除部分,和他们的空间可以更改配置。这种灵活性可以用来创建一个姿势信息从多个图像目标或跟踪对象已经改变,但是已知的空间配置。

    多目标数据集的一部分。注意,数据集可以被加载,激活,残疾,卸在运行时。详细信息请参见图像目标的DevGuide节。


其他详细说明:https://ar.qualcomm.at/qdevnet/developer_guide Multi Targets 章节


Frame Markers

定义:

    除了基于特征检测和跟踪,Vuforia SDK可以跟踪一个特殊类型的基准标记称为“框架标记”。独特的id的一个框架标记是编码到一个二进制模式沿着边境的标记图像。一个框架标记允许任何图像被放置在标记边界。他们是更可取的,因为他们看起来更自然比其它更传统的基准的标记。这个Vuforia SDK要求框架和二进制模式是完全可见的相机形象识别。

    不像图像目标,框架生成的标记并不是在线目标管理系统。所有512架标记作为存档分布在资产\文件夹的Vuforia SDK安装。扩展他们适当的可打印的大小、使用规模经营的“没有过滤”或“最近邻”选项在任何图像编辑器(如Adobe Photoshop)。

    由于相对较低的处理能力需要解码该标记ID,所有512架标记可用于应用程序和大约5可以检测并同时跟踪。
    注意:与Vuforia SDK v1.5帧宽度的框架标记已经改变了。确保使用更新的框架标记模板位于资产\文件夹。


其他详细说明:https://ar.qualcomm.at/qdevnet/developer_guide  Frame Markers 章节


Virtual Buttons

定义:

    虚拟按钮是通过矩形区域图像目标,当感动或阻挡在相机视图,触发一个事件。虚拟按钮可以用来实现事件(比如一个按钮按下或检测特定区域的图像目标是覆盖的一个对象。虚拟按钮仅评估如果按钮面积在相机视图和相机是稳定的。评价虚拟按钮在快速摄影机的运动是禁用的。

    创建虚拟按钮通过定义他们的数据集的配置XML文件作为财产的图像目标。或者他们补充道,摧毁了在应用程序运行时通过一组定义良好的api。


其他详细说明:https://ar.qualcomm.at/qdevnet/developer_guide  Virtual Buttons 章节



  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值