AR 元件

xy849288321發表於2012-12-26
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
Multi Targets
Frame Markers


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 章節


本文來自:http://blog.csdn.net/sh9701403/article/details/7967339

相關文章