Evaluates the quality and diversity of synthesized human motion by measuring the distributional distance between ground truth and synthetic motion sequences in a learned latent space. Use when the user has predictions and gold and needs to compute Fréchet Motion Distance (FMD).
Installs into .claude/skills of the current project.
Are you the author of Frechet Motion Distance?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/qhjqhj00-frechet-motion-distance)
---
name: frechet-motion-distance
description: Evaluates the quality and diversity of synthesized human motion by measuring the distributional distance between ground truth and synthetic motion sequences in a learned latent space. Use when the user has predictions and gold and needs to compute Fréchet Motion Distance (FMD).
metadata:
skill_kind: metric
source_arxiv: 2204.12318
bibtex_key: [REDACTED]
confidence: high
---
# frechet-motion-distance
> Evaluating the Quality of a Synthesized Motion with the Fr\'echet Motion Distance — Maiorca et al. (2022) (arXiv:2204.12318, 2022)
## What this evaluates
Evaluates the quality and diversity of synthesized human motion by measuring the distributional distance between ground truth and synthetic motion sequences in a learned latent space.
## Datasets
- **Human3.6M** — total ?; splits: train (-1), test (-1); repo https://github.com/antmaio/FrechetMotionDistance
## Metrics
- `Fréchet Motion Distance (FMD)` **(primary)** — range: [0, ∞)
- Computes the Fréchet distance between the latent distributions of clean ground-truth motion and synthetic/noisy motion, both encoded via a ResNet34-based autoencoder. Assumes each distribution is approximated by a multivariate Gaussian.
## Input / output format
**Input**: Motion sequences represented as 3D images (x, y, z coordinates as RGB channels) or their corresponding latent vectors from the autoencoder.
**Output**: A single scalar value representing the Fréchet distance between the two motion distributions.
## Scoring recipe
```python
z_clean = autoencoder.encode(clean_motion)
z_noisy = autoencoder.encode(noisy_motion)
mu_c, Sigma_c = estimate_gaussian(z_clean)
mu_n, Sigma_n = estimate_gaussian(z_noisy)
diff = mu_c - mu_n
covmean = sqrtm(Sigma_c @ Sigma_n)
fmd = diff @ diff + trace(Sigma_c + Sigma_n - 2 * covmean)
return fmd
```
## Common pitfalls
- FMD shows reduced sensitivity to temporal noise/discontinuities compared to spatial noise, which may underestimate degradation in time-varying artifacts.
- The metric assumes latent distributions can be well-approximated by Gaussians; non-Gaussian latent structures may yield misleading distances.
- Motion length variations (e.g., 18 vs 64 frames) can affect latent encoding and FMD scores if not normalized or handled consistently.
## Evidence (verbatim from paper)
> To validate our proposed metric, we need to find that it correctly measures the intensity of motion degradation. The test set is manually altered by adding noise samples with a fixed intensity factor $\zeta$ so that it can play the role of a synthetic motion dataset with artifacts. Then, FMD score is computed between the clean test set and the altered one.
## Citation
```bibtex
@misc{maiorca2022frechetmotiondistance,
title={Evaluating the Quality of a Synthesized Motion with the Fr\'echet Motion Distance},
author={Maiorca et al. (2022)},
year={2022},
note={arXiv:2204.12318}
}
```
- arXiv: 2204.12318