The C++ Augmented Reality Toolkit

8. Conclusion

The aim of project was to develop a comprehensive, yet easy to implement developer’s toolkit for producing augmented reality applications. The ease of use has certainly been achieved, as an AR application can be created with just two lines of code. For the majority of scenarios, the basic ARLib application will suffice, as much of the functionality is controlled through external configuration files. For more advanced applications, the built-in functionality can be extended or completely replaced, depending on requirements.

From a developer’s point of view, the toolkit offers all the extensible features that would normally be expected of a software library such as ARLib. Another area with the ARLib that functions particularly well is the corner detection routines. The final solution was devised and developed by the author and out performed other well establish techniques in both the detection and performance.

Where the toolkit performs less well is in the actual augmentation implementation, particularly the camera calibration calculations. The technique used from [MALIK 2002] is a fairly simple implementation for what is well known in the computer vision world as a fairly complex problem. The simplicity of the algorithms used was also reflected in the quality of the augmented graphics; even the smallest of 3D objects can suffer from jittering. This is because the algorithms can produce quite different focal length values even when a corner of a detected marker moves by a single pixel. To overcome this problem, ARLib can be switched from automatically calculating the focal lengths to using fixed values. The fixed values can be adjusted while the AR application is running.

Every step of this project was complex and had its difficulties. A main requirement of ARLib was that it must be able to run in real-time of at least 25 frames per second. These requirements proved too much for some of the chosen algorithms, but could only be rejected once the code had been implemented and tested. In the early stages of the project, two week’s work had to be abandoned, as the marker detection routines did not function in a real-time environment because they were too computationally expensive.

8.1 Recommendations

ARLib is a complete application and can be used to create AR applications quickly and easily. However, like most first versions of software there are improvements to features and functionality that can be added to later releases.

These include:

<< 7. Using ARLib Appendix A - Sample Otsu Thresholding C++ Code >>