wikillm

Concept · 2 papers · updated 2026-11-01

Semantic scene completion

Predict a dense 3D grid in which every cell is empty, a semantic class, or unknown, including cells the sensor never saw. Covers a LiDAR variant that trains completion as an auxiliary task and drops it at inference, and an online camera variant that fuses posed RGB into a persistent occupancy memory. Gives the trade-offs each reports, and warns that the two papers' numbers are not comparable.

scene-completionoccupancy-predictionlidarpoint-cloudsemantic-segmentationautonomous-drivingindoor-scenesgaussian-splattingonline-mappingembodied-ai

Markdown4 min read

AI-compiled overview, updated 2026-11-01, not yet reviewed by a human. Every claim cites its source; check it when a detail matters.

Overview

Semantic scene completion asks for a dense 3D map of a scene. Each cell is empty, belongs to a semantic class, or is not known, and the answer covers space the sensor never observed. Both papers here use the same invariant: an unseen cell is not free space. JS3C-Net leaves unseen cells to its completion decoder 2012.03762 §3.3. GEM-Occ keeps a region's old answer when an object hides it, because not seeing a cell is not evidence that it is empty 2607.05543 §3.1, §3.2. A query that finds no occupied or free support returns unknown, and such cells are excluded from the evaluation 2607.05543 app. B.5.

The two papers differ in the sensor and in the time scale. JS3C-Net works on one LiDAR sweep at a time and uses completion as a training aid 2012.03762 §3.1. GEM-Occ takes posed RGB frames and keeps a memory that persists across rooms and revisits 2607.05543 §3.2, §3.3.

Variants

Joint segmentation with an auxiliary completion branch (LiDAR)

A sparse-voxel U-Net labels each point of a single sweep. A completion decoder is trained with it on a fixed scene grid of 256 × 256 × 32 cells at 0.2 m, and a point-voxel interaction module passes information between the two 2012.03762 §3.2–§3.4. The grid's targets are built from 70 merged consecutive sweeps 2012.03762 §4.1. At inference only the segmentation output is used 2012.03762 §3.6. Card: Sparse Single Sweep LiDAR Point Cloud Segmentation.

On the SemanticKITTI test submission, the authors report a semantic scene-completion mIoU of 23.8 over 19 classes, against 17.7 for TS3D³, and a completion IoU of 56.6 against 50.6 2012.03762 tab. 3. On the validation split, removing the joint training drops the full model's semantic completion mIoU from 24.0 to 19.4 2012.03762 tab. 4.

Online semantic occupancy memory from posed RGB

Each pixel with a valid depth becomes one occupied Gaussian with a semantic distribution and a confidence. The free space in front of each visible surface is recorded along the camera rays 2607.05543 §3.1, eq. 1–2. New evidence is matched to existing memory elements, fused with a confidence-weighted average, and the occupancy log-odds are updated by a surface term and a free-space term 2607.05543 §3.2, eq. 4–5. The memory is split into submaps joined in a building-level graph, and periodic maintenance merges or prunes elements 2607.05543 §3.3. Card: GEM-Occ.

On the HIOcc benchmark the authors report these numbers, all with 11 occupied classes plus free space:

  • single RGB view: 61.37 IoU and 57.76 mIoU, against 60.69 and 55.08 for GPOcc 2607.05543 tab. 3;
  • room-level causal sequences: 56.79 IoU and 46.20 mIoU 2607.05543 tab. 4;
  • building-level panoramic sequences: 53.8 IoU and 46.7 mIoU, with 0.81 MB/m² of memory against 1.36 for flat Gaussian memory 2607.05543 tab. 5.

When to use which

SituationUseWhy
Single LiDAR sweep at run time, with sequences available for trainingJoint segmentation with auxiliary completionOnly the segmentation branch runs at inference 2012.03762 §3.6; training needs merged-sweep targets 2012.03762 §4.1
Posed RGB stream, robot leaves and returns to roomsOnline occupancy memoryThe memory keeps what was seen earlier and corrects it on revisit 2607.05543 §3.3, app. B.4
Memory size matters at building scaleConfidence-weighted Gaussian memory with hierarchy0.81 MB/m² against 1.36 for flat Gaussian memory 2607.05543 tab. 5
Need a fast online pipelinePlan for a few FPSThe authors report 5.2 FPS for the full online pipeline, hardware not stated 2607.05543 app. A.2
Scene is not static, or poses are unknownCheck before choosing; neither paper tests thisGEM-Occ assumes static indoor scenes with supplied poses and does not test pose drift 2607.05543 app. A.3. The LiDAR paper kept moving objects in training, and removing them changed validation segmentation by 0.2 points 2012.03762 app. B.2
Single RGB view only, no memoryGEM-Occ local predictionThe single-view numbers are the best of the compared methods, by 0.68 IoU over GPOcc in a single run 2607.05543 tab. 3

Implementation sketch

Language-agnostic pseudocode of the common core. The LiDAR variant adds a second decoder that is used only in training. The memory variant replaces the encoder with posed per-pixel evidence and skips the decoder.

Pseudocode
# Shared core: per-cell semantic loss with unknown targets masked out
# Input:  features (N, C_in); target (N,) in 0..C-1, -1 = unknown
# Output: scalar training loss

def train_step(features, target, aux_target=None):
    # Encoder over sparse voxels or per-pixel evidence  [arxiv:2012.03762 §3.2]
    #                                                    [arxiv:2607.05543 §3.1]
    z = encoder(features)
    # One logit per semantic class for each cell or point  [arxiv:2012.03762 §3.2]
    logits = semantic_head(z)                                  # (N, C)
    # Unknown cells carry no occupancy supervision  [arxiv:2607.05543 §3.4]
    loss = masked_cross_entropy(logits, target, ignore=-1)
    # Auxiliary completion over a dense grid, used in training only
    # [arxiv:2012.03762 §3.3] [arxiv:2012.03762 §3.6]
    if aux_target is not None:
        grid_logits = dense_decoder(z)                         # (X, Y, Z, C + 1)
        loss = loss + completion_loss(grid_logits, aux_target)
    return loss

Contradictions

  • Different splits, one paper. The SemanticKITTI test value for the completion mIoU is 23.8 2012.03762 tab. 3, and the validation value for the full model is 24.0 2012.03762 tab. 4. They come from different splits, so they are not a contradiction, but neither should be read as the other.
  • Paper against released checkpoint. The paper's validation numbers are higher than the values recorded in the file name of the released checkpoint. The details are in the card's Paper vs code section 2012.03762.
  • Internal inconsistency in the memory paper. The ablation caption says local metrics come from single frames. Yet removing the confidence weighting, the hierarchy, or the pruning lowers local mIoU from 57.76 to 52.02, 52.41 and 52.48 2607.05543 tab. 6. The paper does not explain this.
  • Not comparable. The LiDAR results use outdoor SemanticKITTI with 19 classes 2012.03762 tab. 3. The memory results use indoor HIOcc with 11 occupied classes plus free space 2607.05543 §4. The numbers of the two papers cannot be ranked against each other.

Papers

  • JS3C-Net: a LiDAR segmentation network trained jointly with a completion decoder, which is dropped at inference.
  • GEM-Occ: an RGB-based semantic occupancy memory with free-space rays, confidence-weighted fusion and a hierarchical map, plus the HIOcc benchmark.

Source and license

Compiled from the papers listed on this page, all published under CC BY, CC BY-SA or CC0, with citations. See each paper's page for its authors and license.