Target Design Guide

Our aim is to make Popcode work with many different targets, so that the designer need not feel constrained by the technology when producing a design. However there are some image properties that are important for good tracking. This section gives some guidance to designers about the desirable image properties that tend to give the best tracking experience.

Note that most designs tend to work quite well, so one approach is to simply try training the image you want to use and see how well it performs. If the tracking performance is not good enough you may need to look at altering the design, bearing in mind the points listed below.

Some of the recommendations mentioned here will become less important in future versions, whereas some are inherent to all image-based tracking methods. The text below gives more details about how we expect future development to affect the importance of the various properties. The examples show extreme cases, usually it is not necessary to be too careful during target design, but the extreme cases here help to illustrate the various factors that can influence tracking quality.

Image Texture

Figure 6.1. Image Texture

Image Texture

This is the most important feature of a design for tracking. A target image must have sufficient texture for the camera position to be calculated. Depending on the content, users might want to move around to view the content from different angles. The input camera images from these different views must all contain sufficient texture for a good AR experience. In the example shown, a viewing position that results in the camera view shown in green will be fine, whereas if the view of the target is that shown in red tracking will fail.

Whether this is an issue depends on the content design - for example a small 3D model positioned on the textureless area of the image is likely to encourage users to try to get a closer look, which is likely to fail in this region. On the other hand if the content takes the entire area of the image so users are not likely to want to move into those troublesome regions then this target may be acceptable.

Having sufficient texture is an inherent requirement for any image tracking software and is very unlikely to change. However the actual amount of texture that represents the minimum for good tracking is likely to be improved somewhat as development continues.

"Corneriness"

Figure 6.2. "Corneriness"

"Corneriness"

Popcode uses wedge-like corners in the image to calculate the camera position. Usually these occur naturally in most designs, and do not need to be made as blatant as in the example. Photographic images typically have plenty of these corners, even if it's not necessarily obvious from viewing the image. A lack of corners is only likely to pose problems for designs such as the one shown on the left of the example which is smooth everywhere (however note that even this design has two well-defined wedge-like corners where the two circles overlap, so even designs composed of smooth shapes can give sufficient corneriness).

Future versions of Popcode may also make use of other image features (including blobs, etc) but this is unlikely to happen in the near future given the performance constraints on current-generation smartphones.

Corner Uniqueness

Figure 6.3. Corner Uniqueness

Corner Uniqueness

For best tracking performance the part of the image around each corner should be unique. The images are treated at multiple scales, and the orientation of each corner is computed, so simply rescaling and rotating image elements will not make them appear unique. We also only deal with a greyscale view of the image, so recolouring (if it doesn't alter the lightness) will also not make the corners unique.

Corners are considered in context with the surrounding image, so the best way to make corners unique is through the placement of different elements near to each other. In the example two of the Ts have been placed close to each other and the relative lightness altered. The other letter has a background added which does not add many additional corners itself (due to being quite a smooth shape), but does make the image around the corners of the T more unique.

As in the previous section this tends not to be a huge problem in practice. Popcode can deal with some ambiguous corners as long as there are some unique ones too. Performance with greater numbers of ambiguous corners will be improved in the near future, but it will always remain easier to track images with more unique corners.

Corner Distribution

Figure 6.4. Corner Distribution

Corner Distribution

Similarly to the first recommendation about sufficient texture, the corners need to be well spread out in the image for tracking to be accurate. Corners in the left example image are in a straight line. There are many different viewing positions which could explain that corner layout, as shown by the different red boxes, so accurate tracking is essentially impossible. If the corners are well spread out there is only one camera position that could explain them, so tracking is more accurate. The general problem is again inherent to most image-based tracking methods.

Tracking when the target is small in the camera view is more challenging as the limited amount of perspective means it is harder to determine the ``correct'' camera position (there are in fact two possible camera positions that would give quite similar images). Good corner spread is especially important in these cases. If the target is going to be on a known single-colour background it can be helpful to include a little of the background colour as a border region in the training source image. This will allow the corners at the extremes of the target image to be used for tracking. These are the most spread-out corners possible for the target image so will be very helpful when calculating camera position.

A guideline relating to the current version of Popcode is that the strength of corners should also be about the same in different regions of the image. The strength is related the contrast of the corner - a black wedge on a white background gives stronger corners than a light grey wedge. For speed reasons currently only the strongest corners in the image are used. Therefore even if the image in general has well spread-out corners, the ones selected may be in a poor arrangement (e.g. a straight line). One example where this has a noticeable impact is targets with some black-on-white text in addition to a more varied design with weaker corners. This specific issue will be resolved in the near future.

Reference Image Size

ImageTrainer will offer to resize your input images for you if they are over 640 pixels in width or height. We recommend this as the maximum size for your target images. It is possible to train images larger than this, but this should only be necessary in rare cases (such as wanting to operate very close to large printed targets). Training will potentially take a very long time with large images.

For applications where you expect the target to be quite small in the camera view you may find resizing the input image to a smaller size before using the ImageTrainer program will give better results. This will also reduce the size of the resulting .target file.