We can separate the Vuforia API into four major elements:
Engine, Observers, Targets, and Observations.
Vuforia Engine #
https://library.vuforia.com/getting-started/vuforia-engine-10-api
Is a high-level object that manages the Vuforia App lifecycle. With the Engine, you can create, destroy, start, and stop the AR experience. To Start an AR session, you need to configure a Vuforia Engine instance with its processes used for handling the lifecycle and behavior of the current session.
Some examples of the configuration elements are:
- License key (always required).
- Camera parameters:
depending on the target platform and the camera capabilities, you can set things like the Camera quality, the auto-focus mode, the flash mode, etc…. - Rendering parameters:
depending on the target platform, you need to set the rendering type and mode. - Platform-specific parameters:
For example, for Android, you need to pass the Android Activity jobject, the Java VM, manage all the required permissions, etc….
Once you finish the configuration you can start the Engine, and at runtime, you use the Engine instance to manage what features you want to activate.
Vuforia Observers #
https://library.vuforia.com/getting-started/observer-and-observations
Each feature in Vuforia API is managed by an object called “Observer” which can be created and set to observe a property of the real world, in most cases, these are physical objects that are referred to as “Targets”. In this sense, you create an Observer for each part of the real world you wish to detect, track, and get information about. The “Target” could for example be images, objects, a 3D space, spatial anchors, or even illumination settings in your real environment.
Vuforia Observer types #
- Device Pose Observer:
https://library.vuforia.com/environments/device-tracking
Tracking information on the position and orientation of the device in the real world is provided by the Device Pose Observer. - Image Target Observer:
https://library.vuforia.com/objects/image-targets
Use it to observe a planar 2D picture or other graphic representation. - Cylinder Target Observer:
https://library.vuforia.com/objects/cylinder-targets
Recognize a cylindrical-shaped object, with 1 image wrapping the object. - Multi Target Observer:
https://library.vuforia.com/objects/multi-targets
Recognize a Box-shaped object, 6 images, one for each side. - Model Target Observer:
https://library.vuforia.com/objects/model-targets
Use it to observe a 3D object based on a CAD model or a scan of a physical object. - Area Target Observer:
https://library.vuforia.com/environments/area-targets
Use it to detect and track predefined 3D areas in the user’s physical environment. - Cloud Image Target Observer:
https://library.vuforia.com/objects/cloud-recognition
Use it to recognize images in the real world using cloud-based image recognition technology. - VuMark Target Observer:
https://library.vuforia.com/objects/vumarks
Use it to detect and track predefined special next-generation Vuforia bar codes, called “VuMark”. - Barcode Observer:
https://library.vuforia.com/objects/barcode-scanner
The Vuforia Barcode Scanner lets you detect and read a range of barcode and QR-code types. - Mesh Observer:
https://library.vuforia.com/platform-support/rendering-in-native/mesh-observer
Use it to detect the mesh representation of a Model Target at runtime, which enables visual effects and other benefits while tracking. - Anchor Observer:
https://library.vuforia.com/environments/ground-plane
Use it to dynamically create fixed locations in the space of a scene for placing digital content. - Illumination Observer:
https://library.vuforia.com/platform-support/using-vuforia-fusion-illumination
Use it to get an estimation of the lighting conditions of the user’s physical environment. - VirtualButton Observer:
https://library.vuforia.com/objects/virtual-buttons
Virtual buttons provide a useful mechanism for making image-based targets interactive. - Barcode Observer:
https://library.vuforia.com/objects/barcode-scanner
The Vuforia Barcode Scanner lets you detect and read a range of barcode and QR-code types. - Mesh Observer:
https://library.vuforia.com/platform-support/rendering-in-native/mesh-observer
Use it to detect the mesh representation of a Model Target at runtime, which enables visual effects and other benefits while tracking. - Anchor Observer:
https://library.vuforia.com/environments/ground-plane
Use it to dynamically create fixed locations in the space of a scene for placing digital content. - Illumination Observer:
https://library.vuforia.com/platform-support/using-vuforia-fusion-illumination
Use it to get an estimation of the lighting conditions of the user’s physical environment. - VirtualButton Observer:
https://library.vuforia.com/objects/virtual-buttons
Virtual buttons provide a useful mechanism for making image-based targets interactive.
Vuforia Targets / Databases #
Before creating an Observer you need first to configure and set the “Target” you want to observe.
In Vuforia, some types of “Targets” need to be generated using specific Vuforia tools called “Target Generator”, these tools will analyze and train your raw target, like for example, a PNG image or an STL 3D model and transform it into what Vuforia refers to as a “Database”, which is a set of runtime assets and authoring files recognizable by the Vuforia Engine.
Vuforia Database types #
- Image, Cylinder, Multi-Target:
https://library.vuforia.com/objects/image-targets
In this database type, you can have planar images, cylindrical-shaped images, and box-shaped multi-images. These can be grouped together in the same database since they are created with the same Vuforia Target Manager tool and use JPG or PNG images in RGB or grayscale. - Cloud Image Target:
https://library.vuforia.com/cloud-recognition/cloud-databases
Planar 2D image Targets are also supported via a Cloud Database. A Cloud database provides your Vuforia-powered applications with a large number of targets. Cloud databases are stored on the Internet and are capable of searching millions of targets. A Cloud Image Target can also have up to 1 MB of metadata associated with it. - Model Target:
Model Targets are generated using the “Model Target Generator” (MTG) application.
https://library.vuforia.com/objects/model-target-generator-user-guide
The Model Target Generator takes as input a 3D model representing the object you want to track, checks it for suitability, and lets you configure it for optimal tracking with Guide Views. - Advanced Model Target:
https://library.vuforia.com/model-targets/advanced-model-target-databases
Advanced Model Targets support the recognition and tracking of one or more objects from all sides, all contained in a single Advanced Model Target Database. Recognition ranges can be defined up to a full 360 degrees around every object, without requiring the user to align an outline of the model with the physical object to start tracking. - Area Target:
https://library.vuforia.com/area-targets/create-area-targets
Area Targets are created from a digital model obtained with one of the supported 3D scanning technologies. The output of the scan process is imported into the “Area Target Generator” (ATG) which returns a set of dataset files and meshes. - VuMark Target:
https://library.vuforia.com/vumarks/vumark-databases
The VuMark Database contains a VuMark template in the form of an SVG file. Once a database is created, VuMark instances can be generated either in the Vuforia Target Manager or with the Vuforia Web Services.
All the above database types, except for the Cloud Image, are “Local Databases” which means you need to have a copy of the database on your device to be able to use it with your application. Each Vuforia tool allows you to export a local copy of the database. The exported database is a .zip file containing: a .dat file and a .xml file.
All the other “Targets” types from Vuforia can be tracked without the need for a “Database”. To activate the tracking you just need to set up, at runtime, the corresponding Observer configuration.
Vuforia Targets with no Database #
- Device Pose
- Barcodes
- Anchor
- Illumination
Vuforia Observations #
https://library.vuforia.com/getting-started/observer-and-observations
An “Observation” represents the information about that target that is communicated to the application by the “Observer”. As the application is running, the Vuforia Engine observes the environment using the camera and device tracking information. Observations deliver information on the status of the tracking quality and the poses of the detected targets.
Observations also have a type associated with them. Each Observer type generates the same corresponding Observation type. Depending on its type you can access the pose and status of a target using specific calls.