Augmented reality fiducial markersFiducial markers are widely used in various applications like robot navigation, logistics, augmented reality.

Fiducial markers for various applications

Fig. 1. Applications of fiducial markers

Advantages are obvious

  • High contrast

  • Simple code generation

  • Resistance to extremal angles

However, when we deal with a large number of markers, real-time recognition becomes challenging, especially on embedded devices with low power CPUs on-board.

In this project, we have been working on optimization of fiducial markers tracking algorithm on Raspberry Pi. Firstly, the default recognition algorithm was integrated.

Raspberry Pi - fiduciary marker tracking algorithm

Fig. 2. Applications of fiducial markers

Above “brute force” solution provided around 10 FPS. In order to overcome this challenge and improve the performance, a set of new ideas was proposed and added into the recognition pipeline. Below table contains high-level illustration of each improvement and the effect of its integration into the pipeline.

Improved marker recognition algorithm

Table 1. Performance boost for developed steps

Developed marker recognition algorithm gives around 60 FPS on Raspberry PI, which significantly outperforms the default solution.

Here are brief examples of binary markers recognition with rendering using OpenGL:

Marker recognition when rendering with OpenGL, picrure 2

Marker recognition when rendering with OpenGL, picrure 2

Binary Marker Recognition on Raspberry