Introduction
This article describes how to setup and configure the Motion Capture functionality within Swing Catalyst. This feature may not be available for all license types, please see our Motion Capture FAQ for more information.
Requirements
- Components need to be installed into the components directory.
- Your computer needs to meet our PC specification recommendations, most importantly is that the graphics card meets our recommendations.
Configuration
The Motion Capture settings can be found from the main Settings menu under the "Video & Capture" section. From here you can select or change execution providers and batch size.
Depending on the amount of cameras you have and how much dedicated GPU memory your graphics card has a batch size of 32 can easily be too large. If Swing Catalyst crashes, try to reduce the batch size.
Recommended Execution Provider
NVIDIA
- NVIDIA RTX 3060 or newer GPU: TensorRT
- If TensorRT doesn't work, try CUDA.
Other graphics cards
- DirectML
The default is DirectML as it's the most compatible provider. It is also unfortunately the slowest.
During benchmark testing we've found TensorRT to be the most performant of the execution providers.
- TensorRT is on average (35-45% faster than DirectML, 20-25% faster than CUDA)
- CUDA offers moderate improvements over DirectML (10-12% on average).
TensorRT (purple), CUDA (pink), and DirectML (green), left to right. The Y axis (FPS) is the amount of frame per second the motion capture model is capable of processing and isn't directly related to your camera's frame rate.
The performance metric (FPS) is how many frames per second are processed, the higher number the quicker it will process. As you can see in the above illustration both CUDA and TensorRT are almost linear. E.g. You go from one to two cameras you see almost half the performance. This performance hit is less noticeable with newer NVIDIA graphics cards.
Recommended Batch size
According to our testing batch size 32 seems to give the best results, even with 1 camera, however these tests do not take GPU memory into account. In other words, it's best to use as large a batch size as possible but if you're running into problems where the GPU is running out of memory, try to reduce the batch size. This may be depend on your work flow and what kind of programs you have running in addition to Swing Catalyst.
Advanced Settings
Below the execution provider settings are the advanced settings where you can change the detection model or enable "FP16".
Changing the detection model from Medium to Nano can reduce how much memory your graphics card uses and improve performance, at the cost of accuracy.
If you're struggling to get a decent detection, try to change the model to Medium, restart Swing Catalyst and try again.
- The default detection model is Nano.
- "FP16 for TensorRT" is by default not checked.
FP16
Using FP16 can reduce memory usage and improve performance (at the cost of accuracy).
During testing we've found that FP16 can improve performance by 20-35%.
It may also produce more inconsistent results between recordings than the default FP32. It may be worth trying if you are having problems with performance or if you're running out of memory.