How accurate and reliable is the SwiftMo Power?

Share

Today I did a sanity test as I worked on a pipeline to reprocess video captured off lowend devices. I thought I'd share the results.

Between sessions comparing rep a to rep the results are okay, the coefficient of variance is 0.084 (about 85%). Within a session (playing the same video through multiple times in session) this variance drops to 0.045 (4.5%) within a session.

When testing entire curve (entire sets) from the same video the difference within a session for bicep curl with 5 kg is ~1.45 W, effectively noise or jitter. Between session this difference is ~1.6 W. It's weird because visually, sessions look similar, but not that similar, have a look:

Test set test 1.)
Test set test 2.)
Test set test 3.)

The most obvious difference is the peaks, these are broadly similar, but subject to substantial variance ( ~15-20%). Peak data is very sensitive to sample rate, which is bound to device performance and the two main factors affecting that are thermal throttling and network congestion. But the difference is there!

Validity

Displacement

Displacements seem a bit smaller that in real life for this particular test (Bicep Curl), my displacement for the Bicep Curl about ~0.6, here the app was measuring about 0.5 - 0.6m, most reps clustering on 0.56 m: The points tracked are not the same as the center of mass being moved (middle of palm vs wrist) If we measure at the wrist, it's uncannily accurate.

Foreshortening error

Foreshortening error occurs when a 3D object or body part points directly at or away from a camera or viewer. This causes the object to look artificially squished, shrunk, or unnaturally short in an image.

The app actually can compute "squareness" on the fly and does this at the start of a set, but I chose to omit it for the time being for performance reasons Because it's quite small usually and since the app is tracking discrete points, it's less impactful. Standing offset and rotated by ~7% seems to induce about ~4%, this is most relevant in synchronous bilateral exercises.

Internal loses

The app can also compute rotational power losses in a literal sense. Again, because these are relatively small and instead a factor is used to save this compute.

In Summary

The app is reliable in quantifying the general difficulty of a set and can clearly detect the difference between a slow rep, normal rep and an explosive rep and detect velocity drop across a rep.

In terms of validity the values for most movement are close estimates, intended to provide a way to find optimal loads to produce higher power and help you become powerful.

I'm not sure if I will continue to pursue accuracy in this sense. Accuracy isn't AI's strong suit, these methods are inherently probabilistic.

Hardware might be a bit better in this sense, mainly due to running at far higher "frame rate"... What's here is already super useful.

Read more