2024.2.0 Tracking delay detection not working

 

I`ve followed the various tutorials and documents linked in the forum to get our EZTrack system with FreeD output to track the BMD URSA Broadcast G2, but I can't really get it to work properly.

The raw tracking data is correct, setting the tracker on the EZTrack origin produces close to 0 in all dimensions and moving it away returns plausible values along all three axes. The tracking hub on the camera is connected directly to the Aximmetry workstation with a network cable and static IP addresses. The workstation is built to the published specs (RTX4090) and runs below 100% GPU with a stable 30p frame rate.  Workstation and tracking hub are externally genlocked, everything is set to 30p. Setting the origin of the Studio with the Aruco marker works fine as well.

But the tracking is not on point at all. There is noticeable warble and delay between the background and the keyed objects; manually setting the delay to various values does not work, and the tracking delay detector will recognize a red test object and ask to pan the camera but never delivers a value. Running the tracking calibration in the camera calibrator tool will set some values in the delta transformation (which seems unlogical - the tracking system is already zeroed onto the location of the chip in the camera) and a tracking delay of 0.5 frames which does not work correctly either. So what are we missing here?



   Stefan Reck

 
Profile Image
TwentyStudios
  -  

If the tracking is already calibrated, why calibrate it again in the Camera Calibrator? 

The automatic tracking delay calculator will just adjust the same value that you can adjust manually. Setting the delay manually is quite easy to do, so if it isn’t working for you something else is going on.

Regarding genlock, it will make absolutely no difference to the tracking if you genlock the workstation (via the Ref in on the Decklink, right?). Contrary to what many believe, this won’t genlock what Aximmetry (or anything else) renders. It simply genlockes the output frame buffer of the Decklink, after it receives the frames from the GPU. Aximmetry genlocks to the camera signal, which means it’s your camera and tracking system that needs to be genlocked. 

I can say without a doubt that achieving perfect frame lock with Aximmetry and the FreeD tracking is very possible and not very hard, so it’s something with your particular setup that are causing issues. 

 
Profile Image
Stefan Reck
  -  

Yes, the cameras are also genlocked via their PGM return signals out of an ATEM HD8 ISO that in turn is connected to the same sync generator that drives the rest of the setup. What could be the problem here? At this point we could really use someone looking into our system via a video conference to pinpoint the issue here...


 
Profile Image
TwentyStudios
  -  

Can you post a videos that illustrates the issue? 

 
Profile Image
Stefan Reck
  -  


These videos show the failing tracking delay detection and the effect of setting various tracking delay values by hand (starts at 0, then 0,5, 1, 2, 3, 4 frames)

https://www.dropbox.com/scl/fi/cdsodx3kh9alcu536qbry/Untitled-2.mp4?rlkey=0iyf9v9isrvkdoacw7rlmuu23&st=fhua0v4x&dl=0

https://www.dropbox.com/scl/fi/cqhtgnbj9edoyp1gedu87/Untitled-03.mp4?rlkey=twavqrayfb5yipwuz4lk0ub3d&st=tc09f1w6&dl=0


 
Profile Image
TwentyStudios
  -  

Besides the tracking delay problem there also seems to be an issue with the calibration. It’s hard to determine what causes this, but to me it seems like you should either send fully calibrated tracking data from the EZTrack and not use the Aximmetry calibrator at all or just get the raw tracking data from EZTrack and rely on Aximmetry to handle calibration. Combining calibration methods is bound to lead to some strange results. 

Have you considered that the smoothing the EZTrack applies to the tracking data could cause it to actually be behind the video signal? There’s a setting in the Aximmetry preferences where you set the video I/O delays to account for situations where the tracking data is late relative to the video signal. You can also set a negative delay in the tracking delay settings. 

 
Profile Image
Stefan Reck
  -  

I do need the Aximmetry calibrator for the lens data (encoder values vs.  FoV/focal length and distortion) as EZtrack does not do this out of the box, but that's the only Thing it does. I did not run the tracking calibration in Aximmetry as it has a Tendency to really mess with the delta head values. ATM the Translation of the tracker relative to the camera chip is corrected within EZtrack; do you think bypassing this and using the Aximmetry tracking calibration will work better?

 
Profile Image
TwentyStudios
  -  

Very strange that EZTrack doesn’t come with lens calibration, since they market themselves as a professional tracking solution. Are you using it with Vive trackers, btw?

I would suggest doing the whole calibration through Aximmetry. Just make sure your calibration board is printed to the exact correct size by measuring it. 

Did you try applying a negative delay to the tracking data?

 
Profile Image
Stefan Reck
  -  

We use EZtrack with their own SWAN trackers, which are a lot more accurate compared to vive trackers (they include two of them for things like Talent and Objekt tracking). The only thing the system actually uses from Valve are the emitters. EZprofile is a separate and rather expensive Software package that allows you to calibrate and store a lot of different lens profiles within their Hardware. Useful for Film rental where lenses are changed a lot but they told us it's not really necessary for a fixed Studio setup where aximmetry can handle this as well. Will try your other Suggestions later.

 
Profile Image
Stefan Reck
  -  

So leaving the translation between tracker and camera off in EZTrack and calibrating tracking in Aximmetry seems to work a little bit better, but setting the tracking delay won't. How can I tell whether I need positive or negative tracking delay? The video signal is certainly coming in really fast, as it is a 2160p HDSDI signal directly from the genlocked camera through a Decklink 8K on a very powerful PC. I´ve also tried setting zoom delay, and this (sometimes) comes up with either 0 or -1 frames.


 
Profile Image
TwentyStudios
  -  

To determine the correct delay, have someone pan the camera quickly and stop abruptly while slowly increasing or decreasing the delay. Having a paper placed flat on the floor a well as a light stand or similar helps to visually see the difference between the real and virtual camera timing. It should be quite apparent when the delay is perfect locked in. 

The delay isn’t dependent on how fast the PC is or if the camera is genlocked. Different cameras have different processing delay and HDMI output will probably have a bigger delay than SDI. 

 
Profile Image
Stefan Reck
  -  

Ok, so we removed all translations in EZtrack and redid the tracking calibration in Aximmetry. The calibration file can be found here:

https://www.dropbox.com/scl/fi/sthpvqagtafmnde6bfged/CAM3_18-80_XY_Kante_Track_Cal_2.xml?rlkey=z9pneorpvseyuflhztcsxymy1&st=q0fa25yp&dl=0

The tracking calibration returned a tracking delay of 0,22 frames, which is what we set in Aximmetry.

It's interesting that Aximmetry does not seem to notice or care that the tracker is not directly above the camera but 22,5 cm in front of it. Even EZtrack cannot detect this offset by itself, you have to measure and manually set it...

Anyway, after a lot of fiddling with the lighting and positioning of the target we finally also got the tracking delay detection to trigger, it returned a value of 0,2 which seems to be in line with what the calibrator found.

There is still quite a bit of warbling going on, see this video. Any suggestions what can be done to improve on this? Maybe this is more of an Unreal / keyer issue now?

https://www.dropbox.com/scl/fi/fty710n2uva3pfk604m2b/Untitled-4.mp4?rlkey=uh0auyrf1qwlzu6k09ymwjeip&st=sww30mov&dl=0




 
Profile Image
TwentyStudios
  -  

How do you mean that Aximmetry doesn’t know/care about the tracker offset? Looking at the calibration file it seems like there’s a 23 cm offset to the delta head transform, which should be in line with the offset. Or am I missing something?

The warbling is quite strange and not typical. It looks like some kind of smoothing is applied somewhere. Just to confirm, you’re 100% sure there’s no stabilization applied on the lens? 


 
Profile Image
Stefan Reck
  -  

The tracker is 23 cm above and 22,5 cm in front of the sensor plane of the camera, so I would expect two offsets with similar values and not just the height. 

And yes, the stabilizer on the lens was accidentally left on :-o ... Looks better now. I'll report back once we have redone all calibrations...

 
Profile Image
TwentyStudios
  -  

You don’t have to redo the calibration just because the stabilizer was on. 

 
Profile Image
Stefan Reck
  -  

I suspect it might have messed up the lens calibration, especially the distortion values.

 
Profile Image
TwentyStudios
  -  

Your camera isn’t moving when you capture the checkerboard, so I doubt it would change anything. 

 
Profile Image
Stefan Reck
  -  
On the subject of tracker offset to the front of the chip (that would be an x-axis value, right? First transformation value...).  : Would it make sense to enter that manually or does Aximmetry actually have a way to detect and set this? I can't physically put the tracker directly above the chip; it's a lot larger than the HTC Vive and would thus interfere mechanically with the big studio viewfinder on top of the URSA Broadcast G2.
 
Profile Image
TwentyStudios
  -  

You can always adjust the tracking values manually to see if it improves accuracy. Give it a shot!

 
Profile Image
sitinpretty
  -  

I can't even find the Detect tracking delay in version 2024.2 - Do you have the most recent version?

 
Profile Image
TwentyStudios
  -  
@sitinpretry: Are you using the Unreal Tracked Cam compound? It’s in the Inputs tab. You could just set the delay manually. Take just a minute to get it perfect. 
 
Profile Image
sitinpretty
  -  

@twentystudios I am using the Re Trackedcam unreal prev 3 cam 3 billboard compound from retracker. Is there a way to add this function to the compound?

Update: I see it in the unreal tracked cam compound but I need my compound for my tracker. If I could just get it from the unreal compound to my retracker compound that would be amazing. Any insight as to how to do this? Also, so that I don't hijack this thread - I made a separate post if you would prefer to assist there.


 
Profile Image
Eifert@Aximmetry
  -  

Hi Sitinpretty,

You could use the normal Unreal tracked camera compound, detect the tracking delay with it, and then copy the values into the ReTrackedCam compound.
To set things up quickly, you can right-click on the ReTrackedCam's INPUT panel and copy its settings to the normal Unreal tracked camera's INPUT panel.

Warmest regards,

;