In previous entries we were talking about speeding up the processes on mobiles devices through assembler optimization and its importance when we are integrating the code developed on PC into mobile devices. As we saw this optimization is crucial so that algorithm can run with a real-time rate on such devices. But the speed alone is nothing when we want an accurate result. We also need to stabilize the image and the 3D Object or any model that we wish to overlay on the target.
We need to take into consideration that, when we are pointing to the image and we are static, the 3D Model overlaid should not move at all, but when a sudden movement is done, the reaction of the overlaid model should be immediately carried out. If the overlaid model is moving although the image is static the user won´t feel the Augmented Reality experience as he should. In the other hand, if the user moves the camera but the overlaid model doesn´t follow the target in real-time he will appreciate a delay in the target tracking.
Each time an input frame is processed, the algorithm provides information about the location of the target on the screen and the camera Pose Estimation for this current frame. Although this information is accurate, a little difference of pixels on the screen or a decimal value on the computations can drive to noticeable effects on the performance, like the flickering of the overlaid model. In order to avoid these undesirable effects, several techniques can be used so that the target tracking behaves smoother when the camera is static, but fast enough when a motion appears. These techniques will take into consideration a spatial and temporal window, with a defined cycle-life, which will analyze the information of the target in previous frames and will predict the location for the next one. So, if we are able to know this prediction we can constraint and make smoother the final result that the algorithms provide.Tags: Image Tracking