Fiducial markers are widely used in various applications like robot navigation, logistics, augmented reality.
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.
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.
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: