Blender developer Sergey Sharybin just committed a patch greatly improving Motion Tracking speed, to the sounds of thousands of VFX artists rejoicing worldwide. Ton Roosendaal himself shared the news, indicating a 27X increase in tracking speed in the test scene!
For the vfx dept: Sergey made motion tracking 25 times faster. Ready for real-time! (hello virtual sets) His note:
Tracking 443 markers across 250 frames.
2.91: 401.52 sec
new: 14.96 sechttps://t.co/5GPLIFxWSV #b3d #sergeyontwitter— Ton Roosendaal? (@tonroosendaal) December 3, 2020
Sergey further explains that the bottleneck was caused by the caching of postprocessed search areas used for tracking, and that the current solution is to remove this caching mechanism completely. This latest change greatly increases the tracking performance, which was already improved over Blender 2.91, as seen in the table below:
2.91 | Before | After | |
Tracking 443 markers across 250 frames | 401.520874 | 358.650055 | 14.966302 |
(All units in seconds)
While this change brings massive increases in speed in most cases, it might also cause some slow-downs in the new improved tracking performance in certain situations. However, the overall performance in all cases remains better than Blender 2.91. Sergey provides the following table to demonstrate:
2.91 | Before | After | |
Big Keyframe | 1.307203 | 1.005324 | 1.2273 |
Big Previous Frame | 1.144055 | 0.881139 | 0.944044 |
Small Keyframe | 0.434015 | 0.19776 | 0.224982 |
(All units in seconds)
These are the test results of tracking a single marker across 250 frames, with the cases where a slow down is experienced after the removal of the search area cache (After). As is clear the "After" cases still are faster than 2.91 tracking speeds.