This article describes the various differences and recommendations between device and cloud databases. The table in this article will serve as a guide for selecting the solution best suited for your use case.
Vuforia Engine supports three distinct target database types:
- Device databases store Image Targets, Multi Targets, and Cylinder Targets on the device and does not require connectivity at run-time.
- Cloud databases store Image Targets remotely on the Vuforia Cloud Recognition service. These targets are then queried and retrieved over an HTTP connection.
- VuMark databases store VuMarks on the device.
NOTE: VuMarks differ in their use-cases from Image Targets and can be used especially for situations that require many copies of a target to differentiate between similar objects, e.g. encoding a serial-number of a product. For more information on VuMark databases, refer to the VuMark and How To Create a New VuMark Database article.
Cloud databases provide your Vuforia powered applications with a large number of targets. Cloud databases are stored on the Internet and are capable of searching millions of Image Targets.
If the application supports a retail or catalog use case with more than 1,000 images or the images are updated frequently, then a cloud database is the correct solution. Cloud Image Targets may take slightly longer to identify, depending on network connectivity, but they provide strong image recognition capability.
For more information, see the How to Work with Cloud Databases article.
Device databases provide Vuforia applications with a locally accessible database of Image Targets. Device database use cases include promotional campaigns for a specific set of products or print materials. An example is anything identified and scanned with a smaller set of images. Device databases receive more immediate responses because the images are stored locally.
For more information, refer to the How to Work with Device Databases article.
Large Device Databases
Vuforia can support device databases containing up to 1,000 images. These images may be contained in a single database, or across multiple databases that are active at runtime. While there is no restriction on the total number of targets that can be active in your app at runtime, there are specific considerations to be aware of when using large device databases.
Consult the below points for using large device databases.
- Handling database load times
The load time for a device database will increase with the number of targets in the database. If the load times are too long, consider splitting the database into multiple smaller databases and loading those only when they are needed by your app.
- Avoid image confusion
Target images can be confused for each other if they contain very similar patterns and imagery. The potential for this occurring will increase with the number of active targets if your database(s) contain targets with a similar appearance.
TIP: If you find that two or more of your targets are being confused, use the Show Features view in the Target Manager to revise the target images so that each contains a sufficient proportion of original features.
- Performance differences across devices
Large device databases consume more memory and processing resources than smaller databases. These factors will result in a greater variability in performance between high- and low-end devices. It is recommended that you test your app, using your databases, on a representative sample of the low-end devices that you are targeting.
The following table may help you decide which database type is the correct solution for your application.
|Recommended for databases of 1,000 targets or less.||Capable of searching millions of targets.|
|Allows targets to be downloaded in different combinations.||Contains all images and metadata in a single cloud database.|
|Downloaded targets are only for detection. Metadata is not supported.||Targets retrieved by cloud recognition can carry up to 1 MB of metadata.|
|A network connection on the end-user device is not required for detection.||A network connection on the end-user device is required for recognition.|
|The run time detection response rate is within two to three frames.||Response time is affected by network conditions.|
|Multiple databases can be active (with a total maximum of 1,000 targets).||Recognition on millions of targets is active at any time.|
|Allows simultaneous tracking of multiple targets of different types.||Cloud Recognition does not support simultaneous image tracking and Cloud Databases only support Image Targets.|
|Free||Free and paid, depending on usage.|
Target Dataset Creation at Runtime
As a third option, you can also create image-based targets during the runtime of your application. This method serves especially well in concepts if you wish to use locally stored images on the device as your targets and load and activate them at runtime.