Cloud Recognition
The documentation for cloud recognition is split into two parts
- Documentation of the server-side component (Studio and Studio API)
- Documentation of the SDK side implementation, which follows below in more detail
Make sure to read the documentation about Studio and Studio API when using cloud recognition feature.
This example shows how to recognize images on a cloud server and then overlay it with augmentations utilizing the ImageTracker
and CloudRecognitionService
classes.
For a better understanding, here are some terms that will be used in the following and other sections of this documentation related to vision-based augmented reality.
Target: An image and its associated extracted data that is used to recognize an image.
Target Collection: A group of
targets
that are searched together. Think of it as a directory, which contains all your images you want to search. The Wikitude SDK can work with two different sorts ofTarget Collections
- On-device Target Collection: a static
wtc
file containing the extracted data of your images. Can consist of up to 1,000 images. - Cloud Target Collection: A target collection stored on the Wikitude server. See
Cloud Archive
below. Can consist of up to 50,000 images.
- On-device Target Collection: a static
Cloud Archive: An archive stored on the server that is optimized for cloud-based recognition. It is generated from a
Target Collection
and is used in combination withCloudRecognitionService
.CloudRecognitionService: Instead of analysing and computing the live camera feed directly on the device, the
CloudRecognitionService
will send the image(s) taken by the camera to the Wikitude Cloud Recognition server. The server will then do the hard work of trying to match the image with your targets in the specified cloud archive. Beside the benefit of searching in large image database, using theCloudRecognitionService
has also a positive impact on the general performance in most cases. Especially when using a large target collection and on older devices.
Cloud Recognition Sample
Cloud recognition in Unity HoloLens
CloudTracker Prefab
To add a tracker prefab to the scene, simply drag the CloudTracker
prefab into the scene hierarchy. The CloudTracker
prefab also has the ImageTracker
script, but is preconfigured to use the CloudRecognitionService
instead of a TargetCollectionResource
.
A CloudRecognitionService
needs to know which cloud archive should be loaded. This is done by entering a TargetCollectionId
into the appropriate text field of the ImageTracker
script component, in the CloudRecognitionService
section. To identify the SDK user, the field called ClientToken
needs to be entered as well. With those values in place, the CloudRecognitionService
knows which image targets have to be searched for on the cloud recognition server.
To react on events like successfully loading a cloud archive, you can use the Unity Events listed in in the inspector of the ImageTracker
. Please refer to the Image Recognition examples for more information on how to use UnityEvents
. When the ImageTracker
is using the CloudRecognitionService
additional events that are specific to it are shown in the inspector.
To start a server recognition, call the Recognize
or StartContinuousRecognition
methods of the Wikitude.CloudRecognitionService
script assigned to the ImageTracker
. To evaluate the server response and evaluate which target was recognized and which meta information is associated with this particular image target, you can use the OnRecognitionResponse
event on the ImageTracker
component, in the Cloud Recognition Service Events
section.
In case a continuous recognition was started, it needs to be stopped after either an image target was recognized or the application is about to quit. You can restart the continuous recognition after the target was lost to start tracking it again. Please see the Cloud Recognition - Continuous Recognition
sample for an example on how to do this.
Define custom augmentations
Augmentations are placed exactly as when using a normal ImageTracker
, so please refer to the Image Recognition examples for more information.