Multi-Targets

Muti-target example with dimensions

A Multi-Target consists of multiple Image Targets in a defined geometric arrangement. The position and orientation of each Image Target within a Multi-Target is defined relative to the origin of the Multi-Target, which is at its volumetric center.

All of the faces of a Multi-Target can be tracked at the same time because they possess a pre-defined pose relative to Multi-Target origin. This enables the entire Multi-Target to be tracked when any of its child targets has been detected. In this way, a Multi-Targets provides a common tracking reference for its child targets.  The corresponding TrackableResult (in this case a MultiTargetResult) provides a common pose, as opposed to the individual status and pose information provided for the individual Image Targets.

Multi-targets are created by defining a relationship among multiple existing Image Targets using the Vuforia Target Manager or by directly manipulating the Dataset Configuration XML file. The spatial relationship of the individual parts is stored in the XML file using simple transformations, See How To Modify a Multi-Target Using its Config XML File. You can also configure Multi-Targets at runtime, See How To Add Images to a Multi Target at Runtime

Cuboid Target

A Cuboid Target is a simplified Multi-Target which allows developers to quickly create cube or box shaped Multi-Targets in the Target Manager. To create a Cuboid Target, you must specify the dimentions of the cuboid and database where the Image Targets will be placed. Once the Cuboid Target is created, you must specify the images of each of the six sides of the cuboid. The Images for each side are uploaded to the database specified when the Cuboid Target was created.

Use Cases

Common uses of Multi-Targets  include recognizing and augmenting printed media and product packaging for marketing campaigns, gaming and visualizing products in the environment where the product was intended to be used.

Supported Images

Multi Targets can be created with the Vuforia Target Manager using JPG or PNG images in RGB or grayscale. The size of the input images must 2 MB or less. Features extracted from these images are stored in a database, which can then be downloaded and packaged together with the application. The database can then be used by Vuforia for run time comparisons.

Supported Environments

Multi Targets should be viewed under moderately bright and diffuse lighting.  The surfaces of the object should be evenly lit.

Working with Multi Targets

There are two phases to developing with Multi Targets. You first need to design your target images and then define their arrangement in the Vuforia Target Manager. Alternatively you can define this arrangement in the config.xml file of target's dataset or at runtime.

Samples

The Multi-Targets sample shows how to implement and configure Multi Targets in an application. You can customize this sample with your own targets and content.

Using Extended Tracking with Multi Targets

Extended Tracking improves tracking robustness by using features of the environment surrounding the target. It enables you to use larger models and to place them farther away from the target. Use Extended Tracking when your target will be staged in a stable environment and won't be moved by the user. Moving the target or changing its environment when Extended Tracking is activated can corrupt tracking. Learn more: Extended Tracking


Recommendations for Designing Multi-Targets

Multi-target design issues

The sides that make up a multi-target are image targets. All the quality properties, methods, and measurements for image targets are also valid for multi-targets. Given the 3D geometry of multi-targets, other issues are important, such as depth and geometric consistency.

Vuforia Image
Vuforia Image

Depth

We recommend the depth of the multi-target be at least half the width of the front side. Since multi-targets are detected and tracked as shapes, it is important to highlight that when the object is rotated, Vuforia SDK must find a certain number of features on the side of the multi-target.

A cereal box and similar product packages are good use cases for multi-targets. Since MultiTargets are tracked as a single trackable item, performance is substantially improved (compared to tracking multiple single-image targets at the same time).

A DVD case is a good example of a 3D object that has small depth. The spine label on a DVD case is usually too thin to find features on it from a distance. So the multi-target would be lost when turning the DVD cover around. In that type of situation, you can detect and track the DVD case by using one image target on each side. By providing for front and back image targets, the user can experience the AR, even if the case is turned over.

Geometric consistency

It is important to guarantee that the spatial relationship among the parts of the multi-target does not change during use. For example, if one side of a multi-target moves when opening the top of the cereal box, the Vuforia SDK assumes the top part is still in place. This inconsistency in use can decrease the tracking performance of the multi-target.

To overcome such a situation, leave out the moving target part during creation, or create the moving target as a separate image target. This method allows the application to track a moving part separately (even if ripped apart) without influencing the tracking performance of the multi-target.

An ideal multi-target includes the following attributes:

Attribute

Examples

Rich in detail Street scene, group of people, collages and mixtures of items, and sport scenes
Good contrast, Bright and dark regions, well-lit
No repetitive patterns A grassy field, the façade of a modern house with identical windows, or a checkerboard
Must be 8- or 24-bit PNG and JPG formats JPGs must be RGB or greyscale

Examples

  • Figure A – Multi-target with coordinate axes
  • Figure B – The individual parts are placed using translation and rotation pairs; Figure B shows the transformation of the "right" part of the box

User-added image     User-added image


How To Define the Parameters of Multi-Targets

The parameters of a Multi Target must be defined in the Target Manager when creating a new Multi Target. The following table provides guidelines for defining these values.

Parameter

Description

Part Name/ Identifier
  • String that uniquely identifies the part in the multitarget
  • Name must be identical to one image target definition in the same target database
  • Reference defines the feature set used to detect the part in the live camera view at run time
  • Maximum string length: 64 characters
  • Character set: a-z, A-Z, 0-9,[ - _ .]
Translation
  • Translates the origin of part of an image target by the defined scene units along the x,y,z axes
  • x, y, z translation in scene units measured along the three spatial axes
Rotation
  • Rotates the origin of an image target part by the defined angle
  • Defined as a series of axis and angle pairs that are applied in order
  • Several formats to define the rotations are allowed:
    • (x,y,z, angle deg) rotation in decimal degrees along an axis defined by the vector (x,y,z)
    • (x,y,z, angle rad)  rotation in radians along an axis defined by the vector (x,y,z)
    • (qx,qy,qz,qw) - quaternion to define rotation

How To Define the Parameters of a Coboid

The parameters of a CoboidTarget must be defined in the Target Manager when creating a new Coboid. The following table provides guidelines for defining these values.

Parameter

Description

Dimension  
  • Width, Height, Length
  • Actual size of the image target in 3D scene units.
  • Developer must specify the target size when creating the target online or in the Database Configuration XML file. The Database Configuration XML file is generated by the Target Manager, but once created, it can be modified by the developer. 
  • The target size parameter is important, since the pose information returned during tracking will be in the same scale. For example, if the target image is 16 units wide, then moving the camera from the left border of the target to the right border of the target changes the returned position by 16 units along the x-axis.

Note: The size of the Multi-Target can be changed at runtime. This gives you a flexible way to define or update the scale of the target in your 3D scene.
On Tango: Developers looking to target Tango devices should specify the target size in meters
Name
  • String that uniquely identifies the part in the multitarget
  • Name must be identical to one image target definition in the same target database
  • Reference defines the feature set used to detect the part in the live camera view at run time
  • Maximum string length: 64 characters
  • Character set: a-z, A-Z, 0-9,[ - _ .]