Issue with tracking multiple bodies with Nvidia Body Track CHOP

Hi, I’m facing an issue using the new Body Track CHOP. I’m trying to detect when there are no bodies present in the footage, everything works fine when tracking only one body, and the body1:valid channel drops to 0 when nobody is present. However when I turn on People Tracking in order to track multiple bodies, then once body2 is detected it never drops down back down to 0; when it leaves the scene then body2:valid and all of its key points retain their values until it’s picked up again. I’ve tried using body2/trackingid instead, and have the same issue – changing the Shadow Tracking and Probation properties doesn’t fix it either.

Any idea if this can be resolved? The only workaround I’ve thought of is running two simultaneous Body Track CHOPS, one to detect if there is no body present, and another to do the actual body tracking. I’m going to assume that’s a total waste of resources though (if it’s even possible?)

Thanks!

Hi @octochamp,

thanks for the report, I would categoriye this as a bug. It’s logged and we will have a look.

cheers
Markus

1 Like

So this seems to be a bit of an issue with the Nvidia library. When people tracking is enabled but it doesn’t find any bodies in the scene, it appears to just return the last results rather than actually resetting them to zero which is why it is still showing as valid.

When I run the body tracking sample provided by Nvidia you can see the same behaviour with the body ID and bounding box remaining on screen after the body goes out of camera.

My guess is that this has to do with the fact that multi-person people tracking does not support the “temporal” (i.e. video) mode that single person tracking uses so it is assuming the tracking is restarting every frame.

I did a little digging around online, but so far I haven’t found anybody else talking about this. I did find a potential solution where I force the number of bodies back to zero each frame. This does make the valid channel go to zero as soon as the body leaves the camera, but I’m not clear if this what I should be doing since the nvidia example does not do this.

I will continue looking around and let you know what I find.

1 Like

Thanks for the help! Really appreciate you looking into this. I suspected it was a bug but I’m pretty new to Touchdesigner so it was hard to be sure it wasn’t just a skill issue :sweat_smile:

I’ll try forcing the number of bodies back to zero each frame and see if that’s ok as a workaround for now.

I made the change to reset the body count manually every frame when using people tracking. As I mentioned above, it’s not how Nvidia does it, but I think this behaviour makes more sense. You can test it out in this build if you are interested:

https://www.dropbox.com/scl/fi/rhgw715byl0sbkpleqwr0/TouchDesignerWebInstaller.2023.11817.exe?rlkey=dh3fibmz6zj6yi194ivm1zwo5&dl=0

Thanks! I’m away for a dew days now but I’ll give it a spin next week. Appreciate it!

1 Like

How many person can the body tracking CHOP track? From the chop information it seems like only 8 but in the parameters the limit is hight

Only 8. From the docs:

There is no maximum to this parameter; however, the current version of the SDK can only track a maximum of 8 people at a time.

The processing for the body tracking is performed through Nvidia’s AR SDK and it seems that 8 bodies is the limit. If I had to guess I’d say that the TouchDesigner devs let the parameters go higher in case Nvidia update the SDK for more powerful hardware later on.