Skip to content
Back to skills

Movicam Eval

ASecurity

Evaluates monocular 3D human pose and trajectory estimation in global coordinates, specifically probing a model's ability to maintain physical plausibility (e.g., avoiding scene penetration, minimizing foot sliding) while tracking dynamic camera motion on complex, non-flat terrain. Use when the user wants to benchmark on MoviCam, or asks about evaluating this task. Reports MPJPE.

  • 3 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added September 11, 2026
researchpythonrustgitperformance

Works with

  • cli

Security analysis

A100/100

Scanned September 11, 2026

npx -y skills add qhjqhj00/research-skills-pool --skill movicam-eval --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Movicam Eval?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Movicam Eval
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/qhjqhj00-movicam-eval/badge)](https://www.skillsdirectory.com/skills/qhjqhj00-movicam-eval)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: movicam-eval
description: Evaluates monocular 3D human pose and trajectory estimation in global coordinates, specifically probing a model's ability to maintain physical plausibility (e.g., avoiding scene penetration, minimizing foot sliding) while tracking dynamic camera motion on complex, non-flat terrain. Use when the user wants to benchmark on MoviCam, or asks about evaluating this task. Reports MPJPE.
metadata:
  skill_kind: dataset_eval
  source_arxiv: 2507.17406
  bibtex_key: [REDACTED]
  confidence: high
---

# movicam-eval

> Physics-based Human Pose Estimation from a Single Moving RGB Camera — Aytekin et al. (2025) (arXiv:2507.17406, 2025)

## What this evaluates

Evaluates monocular 3D human pose and trajectory estimation in global coordinates, specifically probing a model's ability to maintain physical plausibility (e.g., avoiding scene penetration, minimizing foot sliding) while tracking dynamic camera motion on complex, non-flat terrain.

## Datasets

- **MoviCam** — total ?; splits: test (-1); repo https://github.com/aidilayce/physdynpose

## Metrics

- `MPJPE` **(primary)** — range: mm
  - Mean Per Joint Position Error in mm. Computed as the average Euclidean distance between predicted and ground-truth 3D joint positions.
- `PA-MPJPE` — range: mm
  - Procrustes-aligned MPJPE in mm. MPJPE computed after rigid alignment (rotation + translation) of predictions to ground truth.
- `W-MPJPE` — range: mm
  - World-aligned MPJPE in mm. MPJPE after aligning the initial frames of predictions and ground-truth data in world coordinates.
- `WA-MPJPE` — range: mm
  - World-aligned All-trajectories MPJPE in mm. MPJPE after aligning all trajectories in world coordinates.
- `RTE` — range: percent
  - Root Translation Error in %. Normalized by the subject’s actual displacement, calculated over the entire trajectory after rigid alignment.
- `Jitter` — range: mm/s
  - Temporal smoothness error in mm/s. Measures frame-to-frame velocity changes of the pose.
- `FS` — range: mm
  - Foot Sliding in mm. Average toe joint displacement during contact phases.
- `% frames with scene penetration` — range: percent
  - Percentage of frames where the predicted human mesh intersects the ground-truth scene geometry.
- `Average penetration depth` — range: mm
  - Average penetration depth in mm. Mean intersection depth per frame where penetration occurs.
- `Average height above scene` — range: mm
  - Average height above the scene in mm. Mean vertical distance between the subject and the ground-truth height map.

## Input / output format

**Input**: Monocular RGB video frames from a moving camera.

**Output**: Per-frame 3D human joint positions, root trajectory, and mesh vertices in global/world coordinates.

## Scoring recipe

```python
def compute_metrics(pred_joints, gt_joints, pred_root, gt_root, pred_mesh, gt_scene):
    mpjpe = np.mean(np.linalg.norm(pred_joints - gt_joints, axis=-1))
    pa_mpjpe = procrustes_align(pred_joints, gt_joints)
    w_mpjpe = align_initial_frames(pred_joints, gt_joints)
    wa_mpjpe = align_all_trajectories(pred_joints, gt_joints)
    rte = np.linalg.norm(pred_root - gt_root) / np.linalg.norm(gt_root[-1] - gt_root[0]) * 100
    jitter = compute_temporal_smoothness(pred_joints)
    fs = compute_foot_sliding(pred_joints, contact_mask)
    penetration_frames = detect_mesh_scene_intersection(pred_mesh, gt_scene)
    penetration_depth = compute_intersection_depth(pred_mesh, gt_scene)
    height_above = compute_vertical_distance(pred_mesh, gt_scene)
    return {
        'MPJPE': mpjpe, 'PA-MPJPE': pa_mpjpe, 'W-MPJPE': w_mpjpe,
        'WA-MPJPE': wa_mpjpe, 'RTE': rte, 'Jitter': jitter, 'FS': fs,
        '% penetration': np.mean(penetration_frames) * 100,
        'Avg penetration': np.mean(penetration_depth),
        'Avg height': np.mean(height_above)
    }
```

## Common pitfalls

- Confusing PA-MPJPE (local alignment) with W-MPJPE/WA-MPJPE (global/world alignment), as the latter are critical for evaluating trajectory drift and physical plausibility in moving-camera settings.
- Ignoring physical plausibility metrics (penetration, foot sliding, height above scene) in favor of raw pose accuracy, since high PA-MPJPE does not guarantee realistic human-scene interaction.
- Failing to account for camera motion when evaluating global trajectory errors, as SLAM inaccuracies on flat terrain can artificially inflate RTE and W-MPJPE.

## Evidence (verbatim from paper)

> We evaluate the performance of the methods in two parts: (a) 3D reconstruction errors and (b) physical plausibility. 3D Reconstruction Errors. To evaluate 3D human pose and trajectory estimation accuracy, we compute Mean Per Joint Position Error (MPJPE) and Procrustes-aligned MPJPE (PA-MPJPE) in mm. We also report W-MPJPE, which is MPJPE after aligning the initial frames of predictions and ground-truth data, and WA-MPJPE, which is after aligning all trajectories. Additionally, we follow [[26]] in reporting Root Translation Error (RTE) as %, normalized by the subject’s actual displacement, calculated over the entire trajectory after rigid alignment.

## Citation

```bibtex
@misc{aytekin2025physdynpose,
  title={Physics-based Human Pose Estimation from a Single Moving RGB Camera},
  author={Aytekin et al. (2025)},
  year={2025},
  note={arXiv:2507.17406}
}
```

- arXiv: 2507.17406

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.