German Conference on Pattern Recognition · GCPR 2026

ODin

Ordered Diffusion for 3D Human Registration

Mattia Masiero1, Ilya A. Petrov1,2, Daniel Cremers3,4, Gerard Pons-Moll1,2,5, Riccardo Marin3,4

1University of Tübingen  ·  2Tübingen AI Center  ·  3Technical University of Munich  ·  4Munich Center for Machine Learning  ·  5Max Planck Institute for Informatics, Saarland Informatics Campus

An input scan: a person standing with arms outstretched, reconstructed as a raw surface with ragged, incomplete hands.

Given an input scan

we use a 3D diffusion model to recover a point cloud that fits the target while respecting a semantic order of the points

The registered template mesh in the pose of the input scan, with clean, complete hands.

which lets us solve for template registration, while retaining the uncertain nature of the task

ODin denoises Gaussian noise into an ordered template alignment, conditioned on the input scan alone.

Abstract. 3D human registration has historically been treated as a regression task, assuming a unique ground-truth alignment exists between the template and an input point cloud. In reality, acquisition noise, occlusions, and unknown soft tissue dynamics introduce inherent ambiguity into human scans. Regression-based methods consequently converge to an average prediction, often failing to represent a plausible geometry. In our work, we embrace such uncertainty by modeling the registration as a distribution of alignments. We propose ODin, which formulates registration as a 3D diffusion process that generates a point cloud aligned with the target geometry while preserving template semantics through consistent point ordering. To achieve this, ODin relies on global, local, and positional conditioning, guiding each point to its correct location. Our experiments demonstrate that such a generative formulation not only outperforms its regression-based baseline, but also establishes a new state of the art, surpassing highly engineered methods while reducing the registration time by two-thirds.


1The premise

A scan admits many alignments. Regression returns their average — a body nobody has.

Sensors are noisy, limbs go missing, soft tissue moves. Enstablishing a ground-truth dense correspondence between human models is an ill-posed problem. Collapsing all of that into a single prediction is what makes deterministic methods glue a missing leg to the torso, or push an arm through a hip.

ODin proposes to model the task as a generative one. Registration becomes sampling: start from Gaussian noise, denoise toward the observed geometry, and read off one plausible alignment. Draw again and you get another.


2Denoising into an order

Point-cloud diffusion models reconstruct shape: any point may end up anywhere on the surface. In registration a point i must land where template vertex i belongs.

ODin fixes the order with geometric conditioning at three scales.

scale — whole scan

Global feature

f_global ∈ R^256 · one extra token

Taken from the bottleneck of an encoder-decoder PointNet++. It gives every point a coarse sense of where the body is.

scale — neighbourhood

Local features

f_local ∈ R^128 · nearest neighbour, every step

Per-scan-point features from the final PointNet++ layer. At each step every noisy point takes the feature of its closest scan point — a lookup that is close to random early on, but decisive late.

scale — one vertex

Positional encoding

PE(i) ∈ R^1024 · d = 1024

The sinusoidal encoding of the vertex index: the point's identity on the template, and the reason the output comes back ordered rather than merely body-shaped.

ODin pipeline: an input point cloud is encoded by a PointNet++ backbone into a global feature and per-point local features; a denoising transformer recovers an ordered point cloud from Gaussian noise, with local features assigned to the diffusing vertices by nearest neighbour at each step; the output is a point cloud ordered according to the SMPL template.
Fig. 1. Global and per-point features are extracted once from the scan; the denoising transformer recovers an ordered point cloud from Gaussian noise. Local features are re-assigned to the diffusing vertices by nearest neighbour at every step.

3Results

Two partial-scan examples, each shown as four figures: the input point cloud with a missing limb, the ground-truth mesh, the NICP registration, and the ODin registration. Red arrows mark where NICP collapses the occluded limb into the body; ODin instead recovers a plausible pose.
Input GT NICP ODin Input GT NICP ODin
Fig. 2. Missing limbs and partial views, DFAUST test set, before chamfer optimisation. Under partiality NICP predicts unrealistic penetrations; ODin produces a plausible pose and a better local minimum for the fit that follows.
Two partial-scan examples, each shown as an input point cloud followed by three registrations sampled from the same model. The completions of the unobserved region differ between samples while the observed parts stay consistent.
Input Hyp. #1 Hyp. #2 Hyp. #3 Input Hyp. #1 Hyp. #2 Hyp. #3
Fig. 3. Sampling repeatedly gives several plausible completions of the unobserved part, and the spread tracks real anatomy — the forearm varies more than the lower leg.

4What this opens, and where it stops

The design is not specific to people. Nothing in the conditioning assumes a parametric body model — only that the template has a fixed, meaningful vertex order — so the same recipe should carry to other classes, including those without a SMPL-style prior.

The diffusion toolbox is largely untouched here: score distillation, guidance, and non-isotropic noise schedules all have obvious roles to play in registration. On the other hand, ODin expects a segmented human. Heavy clutter — furniture, large floor regions — would break it, and more structured features are the likely fix.


Cite

@inproceedings{masiero2026odin,
  author    = {Masiero, Mattia and Petrov, Ilya A. and Cremers, Daniel
               and Pons-Moll, Gerard and Marin, Riccardo},
  title     = {Ordered Diffusion for {3D} Human Registration},
  booktitle = {DAGM German Conference on Pattern Recognition},
  publisher = {Springer},
  year      = {2026},
}