Kudan SLAM and KudanCV – Roadmap update
April 21, 2017
Camera Calibration: Part 2
May 10, 2017
Show all

Kudan AR tracking

This article explores the relative merits of the different tracking methods provided by our AR framework.

Marker Tracking

Marker tracking detects and tracks a predefined set of images within a camera frame. Detection is dependent on the image being within the camera frame and of a distinguishable size. Marker tracking is not restricted to tracking just one marker - multiple markers can be detected and tracked within a single camera frame. Tracking coordinates are arbitrary but, if you are aware of the physical size of your marker, these coordinates can be converted to physical units. This enables you to accurately scale and position your AR content.

Marker tracking can also be used to give the appearance of object recognition, as the AR content does not necessarily need to appear on top of the tracked marker. For example, one could use a marker on top of a stand in a car showroom as a point of initialisation, instead of trying to detect the car itself. The dimensions of the marker and distance between the stand and the car would be controlled, which would allow the application to accurately place augmentations on top of the car, such as a change of colour or new details.

Art App Using Video on a Marker

We developed an app that was part of an art installation using photographs as the first frame in a video, as demonstrated in the video below. The video would start when the image was detected. Using the photograph as a point of initialisation was far less intrusive than adding a QR code to the existing images. Marker recognition worked well in this situation, as the dimensions of the printed images could be controlled, enabling each video to be accurately scaled to fit the entire image, creating a seamless transition from image to video.

An example of using the Kudan Marker Tracker to create a video art installation.

We haves example of how to set up marker tracking natively, available for iOS and Android

For guidelines on what makes a marker image good for detection and tracking, see the article "What Makes a Good Marker?"

Markerless Tracking

Markerless tracking uses feature points within the camera frame to track the relative position of the device. A minimum number of feature points are required to initialize tracking, which can be set through the 'ArbiTrackerManger' class. In general, the greater the number of feature points available, the stabler the tracking. Markerless tracking is not a full SLAM system, and as such it does not support relocalisation, which means if tracking is lost or drifts, it cannot be recovered. However, initialisation of markerless tracking is instantaneous since it does not require any particular 3D information to begin. Markerless tracking is more flexible than marker tracking but is not as reliable, as sharp motion can often lead to a loss in tracking. Markerless tracking is also dependent on the device's gyroscope and as such will not work on devices without one.

Markerless tracking will perform well in situations where:

  • The area being tracked has plenty of feature points.
  • The device is moved smoothly and slowly.
  • The area being tracked remains static.
  • The area being tracked is well lit and contains minimal reflective surfaces.

Furniture Placement App

As an example, our SDK offers the possibility to use our markerless tracking to position furniture. Using marker tracking would be slow in this circumstance as it would be necessary to move the marker each time you wanted to move the furniture. Markerless works well as it allows the user to stand in the middle of the room and position their furniture, and any loss in tracking can easily be rectified by replacing the object.

We have examples of how to set up markerless tracking natively for iOS and Android, and using our Unity plugin.

Extended Tracking

Extended tracking is an enhancement on standard marker-based tracking, for use with static markers. The tracker creates new markers from the surrounding scene using the initial marker as the origin. This allows for tracking and detection from much further away, and enables users to move freely around the marker with a reduced risk of a loss in tracking. This is easily toggled through the 'setExtensible' method in the SDK. This offers a good compromise if you want the precision of marker tracking along with some of the flexibility of markerless tracking.

Comments are closed.