Compensating for drift

i’m having trouble tracking a shot and it seems to me that a process i in the tracking procedures which i’ve never noticed before called ‘compensating for drift’ is causing my troubles.

the footage i’m tracking i’ve already tracked before and very successfully so. i’m having to redo it but this time with higher-res footage. i’ve also bumped the contrast and denoised the footage so in theory it should be in every way easier to track. but for some reason, now i can’t get it to work at all.

when i track backwards at a certain point if i watch the program notifications next to the percentage complete bar after it says tracking layerName in frame xx, it then will sometimes say ‘compensating for drift’ at which point it will not only skew my track, adding a very strong rotation to my surface but it will somehow add this back several frames, and then my surface will no longer be aligned in any of the shot. this is super irritating because the actual drift if i track single frames at a time is very minimal, and i’d happily fix it within adjust track, however even when going frame by frame at a certain point mocha decides to perform the drift compensation anyway and it then ruins all the frames i’ve just tracked through one by one.

i would love to turn off this feature as it seems to be running wild and misbehaving because it’s only causing problems not fixing them. i’d much rather just handle the minimal drift myself than have mocha go crazy trying to fix it.

can someone explain what this feature is, why it might be behaving so poorly or simply how to turn it off?

frame 56:

frame 51 - 5 frames earlier tracking backwards.

here are two small screen grabs showing the issue. i’d have to go higher up the food chain to see if i can send you any of the footage to look at but for now i’ll describe it in detail as best i can and see if that’s useful.

above you can see the drift issue. the track does drift slightly over those frames before the compensation is applied but only slightly (3 or 4 pixels to the right) and not rotationally (it’s a pan/tilt shot). i’ve tried all variations of settings - small/large motion, changing min % pixels, adding shear/perspective, even removing rotation -all incur the same overzealous compensation. oddly enough, i had trouble with this issue at a few other points earlier in the track of this same shot (and as i said i’ve never had issue with any file before) and while confusing, i was able to change settings and get it to avoid the compensation, but here it just doesn’t want to let go.

my mocha version is mocha pro 3.1.1 and the footage i’m using was shot at 2k on an ARRI Alexa, fairly low light but with minimal noise. i increased the contrast and bumped up the greens and used neat video to remove the noise. i then rendered out the footage (which was originally Prores 444) as an uncompressed 2k tiff sequence. that is what i’m tracking.

as i said, i tracked this very same footage successfully before only at 1080 and without correction, my only hunch is that possibly the neat video noise reduction did something subtle that i can’t see that’s confusing the software. that’s a bit hard for me to believe considering that the track marks are so very large and contrasting and the movement as you can see at this point is very small and clear.

Thanks for the extra info. Something weird is going on for sure. Please try tracking the raw footage without any adjustments, except to correct for Log camera response if you used that option on the Alexa. mocha usually ignores true random noise, denoising doesn’t offer any benefit. Also, use Auto Channel in the tracker and you may need to bump up the % pixels used higher than normal - try it at 90%. The shot is basically a sea of green with only a small amount of real information for mocha to track, and when you draw a large layer in 4k mocha assumes there will be more information in the layer than an equivalent layer at 1080. That is not the case here.

I read your post again and felt I should post a followup. You may have tried all the settings I mentioned already, but the key thing is to try less pre-processing on the footage.

It’s really strange to hear about problems from drift compensation. Which version of mocha are you running?

mocha tracks frame to frame, which allows it to follow objects that change a lot in appearance over the shot. But this also means it is more susceptible to drift on long shots than a tracker which compares every frame back to the same reference.

The compensate for drift algorithm basically tracks back over a longer range then mixes that result with the frame-to-frame tracking, which usually improves the result. So if you track frames 1 to 5, it mocha will track:

1 -> 2
2 -> 3
3 -> 4
4 -> 5
1 -> 5 (drift compensation step)

Situations where I can imagine the drift compensation would fail are where the object varies substantially in appearance or illumination over five frames, or where it moves so fast that the automatic search area can’t follow it. There is no way to turn off drift compensation.

I would love to see the shot that causes this failure. Can you send us the footage and project file? We can sign an NDA if necessary.



It may also be worth cleaning out your cache, sometimes when mocha behaves in a non-standard way, the culprit is bad cache data. You can find your caching folder in your preferences.