Thanks for tuning in to Google I/O. Check out the sessions.

The arcoreimg tool

arcoreimg is a command line tool that takes a set of reference images and generates an image database file. This tool is available in the ARCore SDK for Android (see tools > arecoreimg), and is for only Android and Android NDK developers.

The tool also lets you check the quality of your reference images.

Check image quality

A good reference image is hard to spot with the human eye. Run arcoreimg eval-img to get a quality score between 0 and 100 for each image.

We recommend using images with a score of at least 75.


./arcoreimg eval-img --input_image_path=dog.jpg


arcoreimg.exe eval-img --input_image_path=dog.png

Create an image database file

You can supply reference images in a directory or via an image list file (preferred). Note that only PNG and JPEG images are supported, and only ASCII characters are supported in image filenames.

Create image database from a directory of images

Run arcoreimg build-db using --input_images_directory to specify a directory that contains your images as shown below:


./arcoreimg build-db --input_images_directory=/path/to/images \


arcoreimg.exe build-db --input_images_directory=/path/to/images --output_db_path=/path/to/myimages.imgdb

Each image is assigned a default name based on its path. For example, dog.jpg is assigned /path/to/images/dog.jpg as its name.

Each image is also assigned a 0-based integer index, based on the ASCII sort order of the image filenames.

All images will be assumed to have an unknown physical width in meters.

Create a database from an image list file (Preferred)

The format of the image list file is shown below:

little dog|/path/to/dog.jpg

Each line contains a name, the image file path, and the image's physical width in meters (optional).

Run arcoreimg build-db using --input_image_list_path to specify an image list file as shown below:


./arcoreimg build-db --input_image_list_path=/path/to/image_list_file.txt \


arcoreimg.exe build-db --input_image_list_path=/path/to/image_list_file.txt --output_db_path=/path/to/myimages.imgdb

Each image is assigned a name and a 0-based index based on its position in the image list file.

Identifying images at runtime

Use AugmentedImage.getIndex() and AugmentedImage.getName() to identify detected images.