Skip to content
←Back to Papers

PAPER DEEP DIVE

Egocentric VisionMotion CaptureHuman Motion Reconstruction

OmniEgoCap: Device-Agnostic Sequence-Level Egocentric Motion Reconstruction

Commercial egocentric devices capture human behavior in everyday settings, yet full-body motion reconstruction must generalize across diverse cameras and mountings. This is challenging because head trajectories under-determine body motion, while hand observations are intermittent and camera-dependent: a hand may disappear simply because it has left the camera's field of view. Existing methods treat such absences as missing data, relying on fixed visibility regimes or post-hoc optimization, and fail to generalize across devices. We present OmniEgoCap, a sequence-level diffusion framework for device-agnostic egocentric full-body motion reconstruction. Our key insight is that egocentric videos contain sequence-level evidence about both the wearer and the camera-induced visibility structure, enabling OmniEgoCap to infer consistent body shape and coherent motion from sparse head and hand cues. To prevent overfitting to a single camera setup, we further introduce geometry-aware visibility augmentation, which synthesizes visibility patterns from realistic variations in camera geometry. We also present OmniEgoDB, the first mocap benchmark that pairs ground-truth motion with recordings from multiple consumer egocentric devices. Experiments on synthetic, real-device, and in-the-wild settings demonstrate superior motion reconstruction, robust cross-device generalization, and coherent in-the-wild results.

Authors: Kyungwon Cho, Jeonghyeon Na, Hanbyul Joo

Paper: arXiv:2512.19283  Project: kyungwoncho.github.io/OmniEgoCap  Code: Official GitHub repository

Code status: Public. The repository provides preprocessing, training, inference, device adapters, and OmniEgoDB evaluation scripts. The checkpoint is released under CC BY-NC 4.0.

Executive Summary

OmniEgoCap changes egocentric motion capture from frame-by-frame body guessing into a sequence problem that estimates one body shape, one camera-visibility context, and a coherent motion trajectory at the same time. From a head trajectory and intermittent wrist observations, it can reconstruct SMPL-H motion across Aria, GoPro, Quest, and simulated camera configurations without device-specific retraining.

Why the Problem Is Difficult

An ego camera follows the wearer's head, so most of the body is outside the field of view. Head pose is usually available, and a hand tracker may recover one or both wrists for part of the sequence. The missing torso, elbows, legs, and feet must come from a learned human prior. This is not only a single-frame completion task: wrist depth is ambiguous, hand visibility changes abruptly, and a pose that fits one frame can contradict the body shape inferred from the next.

Existing head-centric methods often encode an implicit camera model in their training distribution. A model trained with a 120-degree field of view may learn that an invisible hand belongs near a particular image boundary. It may then pull a genuinely occluded hand back into view or hallucinate it at the edge. Narrower lenses, tilted mounts, non-square sensors, and different wrist estimators violate that learned boundary. The resulting error is architectural, not merely a matter of insufficient expression capacity.

Temporal inconsistency creates a second failure mode. A per-frame system can fit the currently visible wrist very closely while changing body scale and root orientation between neighboring frames. If the wrist disappears for a few frames, a local extrapolator may continue its last velocity and generate impossible arm motion. A sequence model can instead treat the missing interval as evidence and use later observations to resolve earlier ambiguity.

The empirical problem is also a benchmarking problem. Most real ego-motion datasets use one dominant capture device, so a claimed cross-device result may only reflect one camera's optical geometry and tracking errors. The authors introduce OmniEgoDB to pair Xsens motion capture with Aria, GoPro, and Quest recordings. It contains 50 sequences from four subjects and 177.2 minutes of motion. No compared method is trained on this benchmark, which makes it a test of transfer rather than in-domain fitting.

The central design thesis follows directly from these failures. The representation should remove as much device-specific coordinate structure as possible, while training should still expose the network to many physically plausible visibility boundaries. Either ingredient alone is insufficient: invariant features without varied visibility can overfit one camera, and augmentation without sequence context cannot resolve which missing observations belong to the same body.

Representation and Generative Prior

The output is a sequence of SMPL-H poses and shape parameters. A frame contains 16 shape coefficients, a root orientation relative to a gravity-aligned frame, and local transforms for 22 joints. The network receives head transforms and left/right wrist transforms in head coordinates. Each wrist also has a visibility flag that separates a measured observation from a placeholder.

To keep device geometry from dominating the representation, the authors derive head deltas, a gravity-aligned canonical frame, relative yaw, head height, and wrist poses expressed relative to the head. This does not discard global motion. It separates the body's articulation from the particular camera mount, leaving root orientation and trajectory available for later recovery.

The generative prior is a diffusion model over the full motion sequence. During training, Gaussian noise is added to ground-truth canonical poses and the decoder learns to predict the clean sequence. At inference, the sample starts from noise and is refined with DDIM. Sequence tokens represent time, so self-attention can use recurring motion patterns, transitions between visible and hidden hands, and the rhythmic relation between head trajectory and body support.

Method in Detail

1. Build observations that follow the body rather than the camera

The reconstruction problem is written as a mapping from the head trajectory and wrist observations over time to a complete body sequence:

$$\mathbf{M}_{1:T}=\operatorname{OmniEgoCap}\left(\mathbf{T}^{\mathrm{head}}_{0:T},\mathbf{H}_{0:T}\right).$$

Here $\mathbf{M}_{1:T}$ is the full motion, $\mathbf{T}^{\mathrm{head}}$ is head pose over time, and $\mathbf{H}$ contains wrist transforms and visibility. The notation deliberately makes the entire interval the object of inference rather than a collection of unrelated frames.

For each time step, the system forms a condition vector from head motion, canonical orientation, head height, canonical yaw change, and head-relative hands:

$$\boldsymbol{\Omega}_{t}=\Gamma\left(\Delta\mathbf{T}^{\mathrm{head}}_{t},\mathbf{R}^{\mathrm{head}\to\mathrm{cano}}_{t},h_{t},\Delta\mathbf{R}^{\mathrm{cano}}_{t},\mathbf{T}^{\mathrm{hand}\to\mathrm{head}}_{t}\right).$$

$\Gamma$ denotes feature construction and embedding, while $h_t$ is head height. The implementation in omniegocap/core/features.py:42-52 computes the head delta, canonical frame, yaw delta, and wrist transforms in head coordinates exactly along this path. The choice matters because raw world-space wrist positions mix body movement with camera installation and SLAM orientation.

Missing hands are represented by learned null tokens, not zeros:

left_emb = torch.where(
    visible[:, :, 0:1],
    self.left_embedder(left_cond),
    self.left_null_embed,
)
right_emb = torch.where(
    visible[:, :, 1:2],
    self.right_embedder(right_cond),
    self.right_null_embed,
)

The two branches in omniegocap/core/model.py:88-101 use separate null embeddings for the left and right sides. A zero coordinate would imply a physical wrist at the head origin. A null token instead lets the network learn an absence state that can participate in the sequence prior without pretending to be an observation.

2. Separate the person from the observation process

The encoder has three functional branches. One compresses the sequence into a single body shape, one learns a global visibility and camera context, and one produces per-frame local evidence conditioned on that context:

$$\hat{\beta}=\mathcal{E}_{\mathrm{shape}}(\boldsymbol{\Omega}_{1:T}),\quad \mathcal{G}=\mathcal{E}_{\mathrm{global}}(\boldsymbol{\Omega}_{1:T}),\quad \mathcal{S}_{1:T}=\mathcal{E}_{\mathrm{local}}(\boldsymbol{\Omega}_{1:T},\mathcal{G}).$$

$\hat{\beta}$ is the SMPL-H shape shared by the sequence, $\mathcal{G}$ summarizes what the sequence can see, and $\mathcal{S}_{1:T}$ is the decoder's local condition. The official code at omniegocap/core/model.py:230-255 uses attention pooling for the 16 shape dimensions and injects the global embedding into the local encoder through adaptive normalization or concatenation.

This decomposition addresses two time scales. Shape should remain nearly constant across a short action, but visibility can change from frame to frame. A per-frame shape estimator allows noisy hands to make the person grow or shrink. A single global feature for everything loses the exact moments at which a wrist appears. OmniEgoCap gives the decoder both a stable identity variable and a dense temporal condition.

3. Condition every denoising layer on the inferred body

The decoder receives a noisy canonical pose, diffusion timestep, predicted shape, and local sequence condition:

$$\hat{\mathbf{X}}_{1:T}^{0}= \mathcal{D}(\mathbf{X}_{1:T}^{n},n,\hat{\beta},\mathcal{S}_{1:T}).$$

Timestep and shape embeddings jointly modulate the decoder, while local conditioning enters through cross-attention. This is stronger than appending shape as one side-channel vector: the inferred proportions influence each layer throughout denoising. The implementation at omniegocap/core/model.py:264-325 mirrors this arrangement, and the paper's ablation confirms that removing shape conditioning increases both body and hand error.

Inference uses 30 DDIM steps rather than the 1000 training steps. An optional timestep-adaptive guidance step corrects the current prediction toward visible wrist observations. The source at omniegocap/core/inference.py:113-161 first encodes the whole sequence, then performs denoising, optional wrist optimization, and reconstruction of the next DDIM sample. The method therefore uses guidance as a correction inside the learned sequence prior, not as a replacement for that prior.

4. Synthesize camera geometry instead of one fixed visibility mask

The visibility augmentation defines whether a wrist direction lies inside a generalized ellipse:

$$\left|\psi_{x}/\gamma_{x}\right|^{p} +\left|\psi_{y}/\gamma_{y}\right|^{p}\leq 1.$$

$\psi_x$ and $\psi_y$ are yaw and pitch after center and tilt offsets, $\gamma_x$ and $\gamma_y$ are horizontal and vertical half-angles, and $p$ changes the boundary from an ellipse toward a more rectangular contour. The sampling procedure varies these parameters across batches, producing realistic dog-bone regions for different sensors and mounts.

u, v = yaw / yaw_half, pitch / pitch_half
val = torch.abs(u) ** p + torch.abs(v) ** p
mask = val <= 1.0

The visibility test appears at omniegocap/training/augment.py:67-70. The full augmentation also samples temporal tracking drops with Poisson starts and log-normal lengths, and perturbs wrist transforms. These disturbances model geometry, occlusions, tracking failures, and upstream pose noise together instead of relying only on random 20-percent masking.

5. Train denoising, shape, and auxiliary signals together

The objective combines the diffusion prediction loss with shape supervision and additional intermediate constraints:

$$\mathcal{L}=\mathcal{L}_{\mathrm{simple}} +\lambda_{\mathrm{shape}}\mathcal{L}_{\mathrm{shape}} +\mathcal{L}_{\mathrm{aux}}.$$

$\mathcal{L}_{\mathrm{simple}}$ is the clean-pose denoising objective, $\mathcal{L}_{\mathrm{shape}}$ stabilizes body proportions, and $\mathcal{L}_{\mathrm{aux}}$ supports representation learning. The appendix reports that removing the auxiliary loss changes jerk from 0.117 to 0.163, showing that the auxiliary term affects temporal smoothness rather than only optimization speed.

flowchart TB
    A[Head trajectory T 0:T] --> B[Delta and canonical features]
    C[Wrist poses and visibility] --> D[Left and right null-aware embeddings]
    B --> D
    D --> E[Shape encoder]
    E --> F[One beta for sequence]
    D --> G[Global visibility encoder]
    G --> H[Local frame encoder]
    H --> I[Diffusion decoder]
    F --> I
    I --> J[DDIM sampling]
    J --> K[Timestep-adaptive wrist guidance]
    K --> L[Coherent SMPL-H motion]

This diagram follows the implementation rather than a generic diffusion template. The global representation modifies local encoding, the shape vector conditions the denoiser at every layer, and guidance operates inside the DDIM loop only when enabled.

Experiments and Evidence

The simulation study trains on AMASS and evaluates several fields of view: 90 by 90, 120 by 120, 180 by 180, 120 by 60, and 120 by 120 with a 30-degree downward tilt. The diverse benchmark also changes visibility boundaries, temporal dropout, and wrist perturbations. Metrics cover joint position, joint velocity, acceleration, all-hand error, and error on currently visible hands.

Table 1 shows why the sequence design matters. OmniEgoCap without guidance reaches 81.35 mm MPJPE, and lightweight guidance lowers it to 80.45 mm. The augmented EgoAllo variant with optimization reaches 94.00 mm. The gain is not just a better fit to visible hands: the sequence model preserves a plausible whole-body state when hand observations disappear.

MethodMPJPE / mmMPJVE / mmJerkHand PE / mmVisHandPE / mm
EgoAllo with optimization99.3231.660.152164.8041.49
EgoAllo† with optimization94.0026.130.120142.2425.74
OmniEgoCap81.3525.810.117146.7156.98
OmniEgoCap with optimization80.4525.480.120132.7429.34

The hand numbers contain an important tradeoff. EgoAllo† has the lowest error on visible hands, but its overall hand error is higher. It follows observations aggressively and becomes unstable when they disappear. OmniEgoCap is worse on visible hands before guidance because it favors sequence plausibility, but its total hand error is already lower. Guidance then brings visible-hand accuracy down without destroying the global trajectory.

Figure 4 provides the corresponding failure cases. In a dance sequence, EgoAllo produces abrupt, unstable motion when hands leave the camera; OmniEgoCap remains rhythmically and anatomically plausible. In a kick, EgoAllo hallucinates the hidden hand near the learned field-of-view boundary, while OmniEgoCap keeps it outside the observed region. The visual evidence directly tests the paper's claim that visibility should be modeled as camera geometry rather than memorized as a fixed mask.

Qualitative comparison under simulated visibility conditions

Figure 4: Qualitative comparison under varied visibility; the kick case probes hidden-hand hallucination.

Camera-setup generalization isolates the same issue without changing the body model. OmniEgoCap reports MPJPE values of 93.65, 85.70, 72.22, 75.70, and 98.00 mm across the five test fields of view. The wide 120 by 60 setup is hardest, but the model still beats baselines trained around a fixed boundary. EgoAllo† can even become worse at 180 degrees, which shows that seeing more of the scene is not enough when the learned visibility prior is wrong.

Calibrated real-device fields of view and augmented visibility boundaries

Figure 3: Calibrated fields of view and geometry-aware augmentation boundaries across realistic camera shapes and tilts.

Real Devices and In-the-Wild Sequences

OmniEgoDB adds Aria, GoPro, and Quest recordings with synchronized Xsens ground truth. It contains 21 Aria sequences totaling 67.1 minutes, 20 GoPro sequences totaling 68.1 minutes, and 9 Quest sequences totaling 42.0 minutes. Aria can use stereo or RGB-only hand inputs, while GoPro depends more heavily on RGB head and hand estimation. The benchmark therefore varies optics, mounting, trajectory length, and upstream tracking errors at the same time.

Real trackMPJPE / mmMPJVE / mmJerkHand PE / mm
Aria stereo106.6121.290.077142.28
Aria RGB118.1123.250.083173.83
GoPro111.6821.810.073166.20
Quest110.4918.160.062135.86

The real-device errors remain around ten centimeters, so the benchmark does not claim that egocentric capture is solved. Its result is relative robustness without device-specific training. Aria RGB is worse than stereo, consistent with the difficulty of monocular hand depth. GoPro has lower jerk than Aria RGB despite a similar joint-velocity error, showing that different devices fail in different ways and that one aggregate score hides important structure.

Figure 6 overlays GoPro and Aria RGB predictions with Xsens ground truth. The improvement is visible in long-range torso and lower-body coherence, not only in isolated wrist frames. Figure 7 turns to EgoExo4D cooking, where EgoAllo's body shape fluctuates under noisy real observations while OmniEgoCap remains stable during a mostly static activity. Stable stature is useful for robot learning because downstream retargeting can otherwise interpret a camera-tracking artifact as a change in body scale.

Qualitative results on OmniEgoDB

Figure 6: GoPro and Aria RGB reconstruction on OmniEgoDB, with Xsens ground truth in orange.

Stable reconstruction on an EgoExo4D cooking sequence

Figure 7: On EgoExo4D cooking, OmniEgoCap maintains body shape more reliably than EgoAllo.

Ablation: What Actually Carries the Gain

Table 4 removes the sequence-level components one at a time. Without shape and global context, MPJPE is 97.06 mm. Removing only shape conditioning raises it to 86.55 mm; removing only global context gives 83.53 mm; replacing adaptive modulation with concatenation gives 81.60 mm. The full model reaches 81.35 mm. The result establishes that both stable shape and visibility context matter, although jerk is slightly lower in some reduced variants, so the best joint-error model is not automatically the smoothest model.

VariantMPJPE / mmMPJVE / mmJerkHand PE / mmVisHandPE / mm
No shape or global context97.0625.170.104161.2579.70
No shape conditioning86.5526.590.111156.0965.05
No global context83.5326.820.116152.7365.99
Concatenation instead of modulation81.6026.130.112149.9261.42
Default model81.3525.810.117146.7156.98

A linear probe asks whether the global code merely memorizes device identity. Shuffled labels achieve 0.447 visible-region IoU, a mean training camera reaches 0.582, coarse visibility statistics reach 0.662, and the learned context reaches 0.740. In a second probe, the context reduces stature error to 9.19 cm, while explicit shape parameters reach 3.05 cm. The two variables are complementary: context predicts what the camera can observe, and shape carries the body's metric identity.

Training with a fixed 120-degree boundary is not equivalent to sampling geometry. Fixed masks can fit the nominal setup but transfer poorly to narrow, wide, tilted, or non-square cameras. Geometry-aware augmentation spans the process that generates those masks. The model therefore learns a relation between direction, field of view, and missing observations rather than one boundary coordinate.

Implementation Notes

The public repository separates adapters, model code, diffusion utilities, and evaluation scripts. Aria can be prepared from MPS output, while other devices use a trajectory adapter that accepts camera-to-head calibration, head trajectories, wrist poses, and visibility. Device independence therefore means no retraining by device; it does not mean the model accepts raw uncalibrated video.

Hydra configuration files expose the model, diffusion, and augmentation settings. Geometry augmentation lives under conf/augment/geometry.yaml; scripts/sample.py and scripts/visualize.py provide the inference and inspection path. Users must separately obtain SMPL-H and AMASS. The MIT code license and CC BY-NC 4.0 checkpoint license should be checked before commercial deployment.

The most fragile practical assumption is coordinate consistency. Head and wrist inputs must share one world frame, and the camera-to-head transform must be calibrated. A calibration error can look like body motion to the network. The paper also reports degradation when SLAM or hand tracking becomes unreliable, confirming that OmniEgoCap is a consumer of upstream tracking rather than a direct RGB replacement.

Limitations

The authors explicitly identify seated poses as ambiguous. Similar head and hand trajectories can correspond to squatting, sitting on the floor, or sitting on a chair, and an ego view contains little contact information to distinguish them. Near-lying poses also destabilize the head-centered canonical frame and can produce minor foot floating.

Reconstruction quality drops when SLAM or hand tracking is unreliable, and the model assumes a flat ground plane. It does not reconstruct finger articulation or model hand-object contact, so its output is not yet a complete manipulation demonstration. The method is also offline and sequence-level; accelerated DDIM does not make it a streaming real-time system.

From an independent deployment perspective, OmniEgoDB covers only four subjects and a limited range of locations and activities. Real-device validation is concentrated on Aria, GoPro, and Quest, so generalization to phones, ordinary glasses, or arbitrary headsets remains unproven. A new device still needs trustworthy calibration, synchronized modalities, and validation of its tracker errors.

Conclusion

OmniEgoCap's durable idea is to separate three sources of uncertainty. A sequence-level shape variable represents the person, a sequence-level visibility variable represents the camera, and a diffusion decoder resolves sparse local observations into motion. Geometry-aware augmentation gives those variables many observation regimes to explain. The result is not just lower average error, but less contradictory behavior when the camera changes or the hands disappear.

For robotics, the method offers a practical route from human ego video to full-body motion data. The next useful step is to add ground contact, object contact, and finger state to the same temporal model. That extension would move the system from plausible human reconstruction toward demonstrations that can be retargeted and executed. The current release is best understood as a stable offline body estimator, not a finished embodied-data platform.

“The model should not memorize where one camera hides a hand; it should infer how one body remains coherent while the observations disappear.”

Related Papers

EgoScale: Scaling Dexterous Manipulation with Diverse Egocentric Human Data

EgoScale: Scaling Dexterous Manipulation with Diverse Egocentric Human Data

EgoScale is a human-to-dexterous-manipulation transfer framework. A VLA policy is pretrained on 20,854 hours of action-labeled egocentric human video, revealing a log-linear relationship between data scale and validation loss. Lightweight aligned human-robot mid-training then grounds the learned motor prior in robot control, improving average success by 54% over a no-pretraining baseline on a 22-DoF dexterous hand and transferring to lower-DoF hands.

Ruijie Zheng, Dantong Niu, Yuqi Xie · 127 views · Feb 18, 2026
Dexterous ManipulationVLA
Feb 18, 2026
Social-WM: Safety-Aware Latent World Models for Robot Social Navigation

Social-WM: Safety-Aware Latent World Models for Robot Social Navigation

Safe social navigation requires a robot to anticipate not only the future consequences of its actions, but also whether a nominal action can actually be executed under surrounding physical and social constraints. We present Social-WM, an efficient latent world-model planning framework trained from egocentric RGB video sequences. Our key observation is that social-navigation experience contains a systematic discrepancy between the nominal action and the realizable action: a nominal forward action may be fully executed in free space, but needs to be constrained when heading towards a pedestrian or obstacle. Social-WM learns these safety-relevant consequences directly through action-conditioned future prediction, where the target is the actual observed future following each command. We further introduce a realizable inverse-dynamics objective that associates observed latent transitions with the action actually realized rather than the nominal one. At deployment, candidate actions are imagined through the latent world model, and the inverse dynamics model estimates their realizability; nominal–realizable discrepancy then provides a safety signal before execution. The learned dynamics and realizability model remain goal-independent and support both position- and image-goal navigation. On Social-HM3D, Social-WM achieves 63.77% success while reducing human collisions to 21.67%, and maintains strong performance under zero-shot transfer to Social-MP3D, without explicit pedestrian tracking, privileged human state, or online reinforcement learning.

Zhihao Zheng, Mooi Choo Chuah · 237 views · Sep 30, 2026
Social NavigationWorld Models
Sep 30, 2026
Exposing the Long-tail in Embodied Urban Navigation via Scalable Learning from In-the-Wild Videos

Exposing the Long-tail in Embodied Urban Navigation via Scalable Learning from In-the-Wild Videos

Learning embodied urban navigation policies from real-world data is constrained by the cost of task-specific data collection and the limited coverage of rare yet safety-critical scenarios. To address these challenges, we present a scalable framework for learning point-goal urban navigation from web-scale in-the-wild egocentric videos while systematically exposing its long tail. The framework automatically annotates uncurated web videos with metric trajectories and structured navigation semantics, which are then used to train a vision-language-action policy for interpretable navigation planning. We characterize the long tail based on model performance and the distribution of perception-motion patterns, and employ reflection-based analysis to diagnose recurring failure modes. Experiments on web-video data and real-world urban navigation tasks demonstrate effective knowledge transfer from unconstrained videos and reveal coherent long-tail structures beyond aggregate navigation performance.

Bingyi Xia, Han Bao, Zhewei Chen · 297 views · Aug 17, 2026
Urban NavigationVLA
Aug 17, 2026
EgoLAP: Learning from Egocentric Human Data through Language-Action Reasoning

EgoLAP: Learning from Egocentric Human Data through Language-Action Reasoning

Egocentric human data offer a path to scaling robot learning beyond costly robot demonstrations, yet the embodiment gap makes raw human trajectories a poor supervisory target for control. Our key insight is that, although low-level actions are embodiment-specific, their underlying motion intent can capture task-relevant structure that transfers across humans and robots. We introduce EgoLAP, a VLA pre-training framework that jointly learns from human and robot trajectories through a shared language-based action chain-of-thought. EgoLAP expresses motion intent as structured, temporally abstracted language actions and pairs them with motion-level reasoning grounded in scene geometry, physics, and object affordances. Across extensive real-world and simulated experiments, EgoLAP transfers human experience to robot control more effectively than alternative action representations and reaches 80.1% mean real-world task progress, a 2.3x performance gain over alternative action representations. Motion-level reasoning also outperforms a composite reasoning format that combines subtask, object-box, and visual-trace reasoning.

Lihan Zha, Shresth Grover, Tenny Yin · 565 views · Oct 6, 2026
VLAManipulation
Oct 6, 2026

As an Amazon Associate, we earn from qualifying purchases.