Marker based Augmented Reality on Android Devices
Augmented Reality (AR) is a growing branch within computer vision. Augmented Reality means that the view on the reality is augmented with additional information. This information can range from 3D objects to little annotations about the objects in the scene. In the past many AR systems have been developed spreading over a wide range of applications. Today’s smartphones are becoming more advanced, it is possible to implement AR applications these devices. Examples are applications such as Layar or wikitude. Only few of these applications are actually able to recognize objects, but they are based on the location of the smartphone. Actual objects recognition is a hard task which takes up a lot of system resources. Even though smartphones offer a lot of system resources, object recognition in real time keeps a big challenge.
My goal is to implement an efficient AR application for Android devices based on so called fiducial Markers. These are markers which can be placed onto objects, in order to recognize the object by recognizing the marker. A marker has a fixed size and it contains a certain pattern to distinguish it from other markers. The advantage of these markers compared to markerless AR, is the fact that one can actively look for known features in an Image. For markerless AR we need to take random points in an image and compare these to a whole database of stored objects. This takes a lot of processing power once the database grows. If we can search for fixed size markers within an image, this problem becomes a lot easier. However the disadvantage of using markers is the fact that one needs to place the markers on the correct spots, before the objects they are places on can be recognized. Since the goal is to use the application on today’s Android devices, the resources need to be handled carefully. Besides the actual object, i.e. the marker, recognition another part of the system is to add something into the image. This itself cost a certain amount of system resources. This only leaves a small amount for finding a marker, estimating 3D coordinate and identifying the marker. Because of this, these components need to be as fast as possible. Current implementations of marker systems for Android achieve a fairly low frame rate (< 5fps) on a G1 smartphone. My goal is to achieve a higher frame rate, so that the application will actually be useful in everyday life.
The main task within this project is to implement an efficient Android application able to recognize markers within a video stream of the device camera. The first step will be to find the main components in a marker recognition algorithm. These must then be optimized for Android devices where possible.
Android devices are still too limited to implement a marker based system with a high frame rate and superb recognition. Because of this, finding a good balance between speed and recognition is very important for good usability.
Created by Daniel Herding.. Last Modification: Monday, 22. November 2010 16:10:41 by