We are glad to announce new tracking improvements for Onirix SDK v2.18, that are also available within Onirix App.
The new tracking module features several enhancements that eliminate drift and reduce jitter in the augmentations.
Let’s explain some concepts
Drift is an effect that produces incorrect object poses after some time, caused by error accumulation from the image tracking system. These image tracking errors are common when moving the camera fast or when it changes its focus, inducing image blur to camera frames.
Jitter is another effect that produces small jumps in the augmentations caused by outliers in the tracking system. Drift could be considered as an outlier, so removing it can improve stability and lead to smoother poses.
What we have changed
Let’s take a look at our old simplified AR tracking system flowchart diagram:
As you can see, in this simplified sequential flow, the tracking system delivers object poses until it finds a wrong one.
In order to determine if a pose is correct or not, it must fit several constraints like:
- Adjust to an homography (planar transformation)
- Transform rotation and position must be between certain thresholds
- Difference with last pose position and rotation must not exceed certain values.
The problem was that drift, can still produce poses that adjust to this parameters while being wrong.
To fix this, we added a new Tracking Refinement step that is able to correct many of the errors produced during tracking without sacrificing performance (it is still able to run at 30 fps in 5 years old mid-end phones).
Here it is the updated flow diagram:
Conclusions and next steps
After testing these changes and comparing against other commercial AR systems, we can conclude that our solution achieves state-of-the-art results.
The next steps for our R&D team will be migrating this changes to the WebAR module, where some optimizations should be made in order to keep a good performance.