Skip to content
AI360Xpert
Beta

Point Cloud Completion of Shapes

Half a chair scan should still give a whole chair. Completion fills missing backs and occlusions from learned shape priors.

Half scans grow missing backs while input points stay pinned
Half scans grow missing backs while input points stay pinned

Why Does This Exist?

Real scans see one side: backs hide, lidar thins with range, and tables occlude chairs. Completion exists to return usable shapes for grasping and CAD from those partial shells. It matters because point cloud segmentation and detection degrade on half shapes.

Densification without new shape is point cloud upsampling; raw representation is point clouds.

Think of It Like This

Restoring a broken vase from shards

An archaeologist keeps every shard fixed and sculpts only the missing belly from knowledge of vase styles. Guessing over shards would destroy evidence.

Input points are shards and priors are vase styles. The analogy stops at novelty: vases repeat while novel objects have no prior to borrow.

How It Actually Works

Encoders map partial clouds to shape codes; decoders output dense complete clouds through folding or coarse-to-fine point splits. Loss is chamfer distance CD=∑xmin⁡y∥x−y∥2+∑ymin⁡x∥y−x∥2CD = \sum_{x} \min_y \|x - y\|^2 + \sum_y \min_x \|y - x\|^2 between prediction and full truth, sometimes plus Earth mover detail. Training hides backs synthetically on ShapeNet so ground truth exists; testing keeps input points pinned and scores only the filled region plus overall CDCD.

Worked numbers

A half chair holds 10241024 points; truth holds 20482048. Before completion CD=0.045CD = 0.045; after filling 10241024 back points CD=0.018CD = 0.018, about a 6060 percent drop. Input points move under 0.0050.005 m while new backs carry 0.020.02 m mean error.

Code

def chamfer_one_way(a: list[float], b: list[float]) -> float:    return sum(min(abs(x - y) for y in b) ** 2 for x in a)  # half of CD

print(chamfer_one_way([0.0, 1.0], [0.0, 1.0, 2.0]))  # -> 0.0

Watch Out For

Completing novel objects with chair priors

Nets fill unseen categories with the closest training shape, turning lamps into chairs. The symptom is plausible but wrong backs. Gate completion by category confidence and keep partial-only mode for unknowns.

The Quick Version

  • Completion fills occluded backs from partial scans plus shape priors.
  • Inputs stay pinned; only missing regions are hallucinated.
  • Chamfer distance scores both coverage directions.
  • Half chairs cut chamfer error about 6060 percent after filling.
  • Synthetic hiding on ShapeNet creates training pairs.
  • Novel categories get wrong but confident fills.