Freezing tracking data to remove jitter

 

Hi Aximmetry team, 

Is there a way to mitigate the amount of jitter with tracking? I currently have a antilatency system setup and on close-ups there is a noticeable amount.

Is there a process with the smooth and hold nodes that could help and if possible, could you walk me through the process to integrate it? 


   ChrisM

 
Profile Image
Aximmetry
  -  

Hi,

Currently there is no built in solution for smoothing tracking data, but as you wrote one can manually insert it.

But be careful smoothing will introduce some lagging. Also if you open your camera compound then it will no longer be updated (in your specific scene) when new Aximmetry will come out. (so you have to repeat the process with the new version)

To modify your scene to use smoothing on the tracking transformation coming from the hardware, you should do the following:

1. Open your scene.

2. Right-click on your camera compound (TrackedCam_Unreal_Prev_3-Cam_3-Billboard in this example), select "Edit Compound In-Place" in the context menu and then double click on the compound to get inside it.

3. Right-click on the "INPUT %N=1" compound, select "Edit Compound In-Place" in the context menu and then double click on the compound to get inside it. By modifying "INPUT %N=1", you will apply smoothing on the first camera. If you need it on other cameras, you should do these same steps but with the "INPUT %N=2" or "INPUT %N=3" compounds.

4. Double click on the compound named "Line %N" to get inside it

5. Find the module named "Camera Tracking" here

6. Right-click on an empty space and select "Insert Module.." in the context menu
7. In the Insert Module menu type "smooth tr" in the search bar to find the "Smooth Transformation" module and then select it by clicking on the OK button
8. Connect the "Camera Tracking" module's "Cam Transform" pin with the new "Smooth Transformation" module's "In" pin and
the "Smooth Transformation" module's "Out" pin with the "Transformation Concat 4" module's "After" pin.
After this point you should see something similar to this:

9. Connect the new "Smooth Transformation" module's "Delay" pin with the "INPUT %N" box "+" pin.
After you did so, a dialog should appear asking for a name, enter "Tracking Smooth Delay" and click on the OK button.
You are finished! It should look like this:

You can modify the strength of the smooth by switching to the "INPUTS" tab, clicking on "INPUT 1" and changing "Tracking Smooth Delay":

Best Regards

 
Profile Image
steamshow
  -  

Love the smooth look that this gives me, fantastic tool!. I wonder why it isn't in the compound by default?


SB

 
Profile Image
Eifert@Aximmetry
  -  

Hi,

A reason to not include this in the Camera Compounds is that in a professional camera tracking system this would worsen the accuracy of the tracking.

Warmest regards,

 
Profile Image
mavltd
  -  

Hi Eifert,

We use this system and it works. But at times it ruins a scene so is it possible to automate the process?

My idea is to compare the location data with the previous one and based on the difference in readings establish a delay value for the smoothing node. The smaller the difference in the location data, the larger the delay in the smoothing node, since the camera is probably stationary. And the larger the difference in the location data, the smaller the delay value in the smoothing node. since the camera is being moved.

Can this be done in Aximmetry or in the UE4 camera blueprint?

 
Profile Image
Eifert@Aximmetry
  -  

Hi,

Yes, it can be done in Aximmetry.
Here is a dummy flow chart that could help you implement it:

Note, this is for the position, for rotation or the combination of both, it will be more complicated.

However, I am not sure if this can produce good results for your case. It will definitely need lots of tinkering.

Warmest regards,

 
Profile Image
Khaliu
  -  

Hi Eifert,

I'm trying to copy your last flow chart. But "Camera Tracking" module could not connect to "Transformation Merge". What's wrong on it. Could you help me?


 
Profile Image
Eifert@Aximmetry
  -  

Hi Khaliu,

Sorry, a Copy Transformation module is better fitting there than the Transformation Merge module.
Also, you might want to put the whole thing into a new compound for less visual cluttering and add the modules in the new compound. Just right-click on the new Copy Transformation and select Group Selection to add a new compound:

And then, just double-click on the new compound created in the place of Copy Transformation.

Warmest regards,

 
Profile Image
Sinemaya
  -  

This info saves the day :-) Love Aximmetry


Can you also mention how to revert the changes I made here.. I wish to get bask its original state..?


Thank you


 
Profile Image
Eifert@Aximmetry
  -  

Hi Sinemaya,

You can use the Revert In-Place Modifications option:

Warmest regards,

 
Profile Image
Sinemaya
  -  

Thank You Eifert@Aximmetry


Is it normal that after editing the compound as described The scene started to float in 3-5 pixels radius it is not fixed as it was before the edit..

I think this is a draw back of this smoothing tool right.?

 
Profile Image
Eifert@Aximmetry
  -  

Hi,

After the Revert In-Place Modifications you shouldn't experience any floating.
If you experienced that under the edit, it might be the result of a high Delay value in the Smooth Transformation module, especially if you are using my dummy flow chart. While testing that out, you probably want to connect the delay value to a preview screen with the Scalar Peeker and Video Out modules. And you might want to put a better logic at the Divide module part or put a Clamp module to stop very high values.

Warmest regards,

 
Profile Image
Ahmed@Aximmetry
  -  

Hello, 

can you please post your question to another thread? This thread is antilatency-related, so let's keep things organized. 

Sorry for the inconvenience, but we deem it necessary in order to create an orderly forum where topics are easily searchable.

Thank you!

 
Profile Image
Sinemaya
  -  

Hello Ahmed@Aximmetry,

Just noticed you replied me.. Sorry. Allright created a seperate thread for this case. Sorry to clutter.


Best Regards.

 
Profile Image
Eifert@Aximmetry
  -  

Hi,

The latest version of Aximmetry (2022.1.0) comes with a new feature to stop jitter when the camera is not moving.
Note that if the jitter is visible in normal usage we recommend first to ensure that your tracking system works correctly.

In short, enabling Tracking Dejitter will lock the camera to a fixed position while the camera doesn't move more than Dejitter Pos Thresh and doesn't rotate more than Dejitter Rot Thresh.

These settings can be found in every Tracked camera compound in the Inputs:

Related Aximmetry's Version History reference: "TrackedCam: added Dejitter options which allow suppressing the noise of the tracking system when the camera is still."  https://aximmetry.com/learn/software-version-history/#%E2%96%BA-latest-2022-1-0 

Warmest regards,



 
Profile Image
denamu
  -  

Hi Eifert,

thank you for this information and the effort implementing this feature into Aximmetry. 

My experience with enabling Tracking Dejitter has been that it is indeed able to lock a camera which is supposed to be standing still. Though when the camera then moves, any movement looks stuttery. It seems that it’s buttering position and rotation data by the default value of 0.5 of the Lock Delay parameter in the new Tracking Dejitter Compound, which lets the camera framing jump. The camera doesn’t look smooth when being moved.

Is there a way to have the camera be locked when standing still, when the camera doesn’t move or rotate more than the threshold values (which already works pretty well) and also be able to let the camera move without looking stuttery, when movement is above the dejitter threshhold values?


Also is there a reason why the new TrkCam_Dejitter Compound is not fully connected with its possible settings. The pins for Lock Delay and Lock Smooth are not fully connected by default.



King regards,

Dennis

 
Profile Image
Eifert@Aximmetry
  -  

Hi Dennis,

If you see jitter when the camera is moved while Tracking Dejitter is turned off, you could try the smoothing explained at the start of this thread.

If you see jitter while Tracking Dejitter is turned On, and you didn't see such jitter before. Then make sure you didn't increase Dejitter Pos Thresh and Dejitter Rot Thresh to such a high value that Dejitter turns on even when you move the camera. This can be seen from the Locked output pin from the compound you found. This Locked pin should only turn On when the camera is not moving:

You can use the following modules to show the On/Off status of this pin on a preview window:

On the other hand, if the camera moves/jitters even when the camera is stationary (Locked pin is in Off status), you can try increasing Dejitter Pos Thresh and Dejitter Rot Thresh.


In most cases, you don't want higher or lower values for Lock Delay and Lock Smooth, that is why they are not exposed. They control how fast and smooth are the transitions from the locked position to the actual current tracked position. This is when the Locked output pin also changes.

Warmest regards,