---
kind: concept
slug: outlier-rejection
title: Outlier rejection
summary: >-
  Removes wrong matches or measurements before a geometric fit, so the final estimate uses only inliers. Learned spatial-consistency pruning (PointDSC) reports 93.28% registration recall on 3DMatch at 0.09 s per pair, against 5.50 s for RANSAC-100k (author-reported). The main trade-off is the inlier threshold, which must be set per dataset.
tags: [robustness, geometry, registration, bundle-adjustment]
papers: ["2103.05465", "2610.01438"]
related: [local-feature-matching, spectral-methods, bundle-adjustment, attention-mechanism, multi-view-reconstruction]
status: draft
updated_at: 2026-11-01
---

## Overview

Given candidate matches or measurements, some of them wrong, estimate a model
(usually a rigid transform or a bundle-adjustment solution) from the ones that
agree with it. Every variant shares one rule: a match is an inlier when its
residual under the current model is below an inlier threshold tau
[arxiv:2103.05465 eq. 6]. Variants differ in how they propose a model, how they
score it, and whether the score is learned. Filters that judge each match on
its own, such as the ratio test on descriptor similarity, cannot use the
geometry of the whole set [arxiv:2103.05465 §1].

## Variants

### Learned spatial-consistency pruning (PointDSC)

Each correspondence is a pair of 3D keypoints. For two pairs that are both
correct, the distance between their two points is about the same in both
scans, so the length difference between pairs measures how consistent they are
[arxiv:2103.05465 §3.2 eq. 2]. That term weights a nonlocal attention layer,
and a neural spectral matching step scores the pairs inside each seed's
feature-space neighbourhood [arxiv:2103.05465 §3.4 eq. 3-5]. The hypothesis
with the most inliers wins [arxiv:2103.05465 §3.5]. Card:
[PointDSC: Robust Point Cloud Registration using Deep Spatial Consistency](/papers/2103.05465).

The paper's ablation with the same encoder shows the effect of the head: a
classifier head reaches 88.17% registration recall on 3DMatch, and neural
spectral matching reaches 93.28% [arxiv:2103.05465 tab. 4]. Removing the
spatial term from the attention lowers the classifier-head result from 88.17%
to 83.30% [arxiv:2103.05465 tab. 4].

### Sampling-based hypothesis search (RANSAC family)

RANSAC draws random minimal subsets, fits a model to each, and keeps the model
with the most inliers. The paper compares RANSAC with 1k, 10k and 100k
iterations and GC-RANSAC with 100k [arxiv:2103.05465 tab. 1]. A
prioritised variant samples by predicted inlier probability instead of
uniformly, which reaches 74.31% recall with 1k iterations against 40.05% for
classic RANSAC-1k [arxiv:2103.05465 app. Prioritized RANSAC]. Card:
[PointDSC: Robust Point Cloud Registration using Deep Spatial Consistency](/papers/2103.05465).

### Per-correspondence classifiers (DGR, 3DRegNet)

These learned filters label each correspondence on its own and do not use the
rigid-motion constraint [arxiv:2103.05465 §1]. On 3DMatch with FPFH, DGR reaches
69.13% recall and 3DRegNet 26.31% [arxiv:2103.05465 tab. 1].

### Residual pruning of tie points in bundle adjustment

Tie points whose reprojection error is too large are removed in a loop. The
steps are a prefilter on the number of images per point (at least 3), a
reconstruction uncertainty limit (8) and a projection accuracy limit (8), then
a pass that drops points above a reprojection error of 0.25 and re-adjusts
until the largest remaining error is below 0.5 [arxiv:2610.01438 fig. 2]. The
limits are unitless [arxiv:2610.01438 fig. 2]. Card:
[The Impact of Processing Parameters on High-Accuracy Measurements in UAV Photogrammetry](/papers/2610.01438).

### Fixed gates and robust polynomial fits on displacement fields

For a deformation survey, the same paper combines fixed gates with a robust
fit. Vectors above 0.6 m horizontal or 2.0 m vertical are removed, and a
first-degree polynomial is fitted with RANSAC in 150 m patches, with inlier
distances of 3 cm horizontal and 5 cm vertical [arxiv:2610.01438 §2.4.1]. Card:
[The Impact of Processing Parameters on High-Accuracy Measurements in UAV Photogrammetry](/papers/2610.01438).

## When to use which

| Situation | Use | Why |
|---|---|---|
| Two point clouds with learned descriptors such as FCGF, and seconds per pair matter | Learned spatial-consistency pruning | Highest registration recall and 0.09 s per pair on 3DMatch with FCGF [arxiv:2103.05465 tab. 1a] (author-reported) |
| Hand-crafted FPFH descriptors | Learned pruning from a model not fine-tuned on FPFH, or RANSAC | The FPFH row reuses the same model with no fine-tuning and reaches 78.50%, against 73.57% for RANSAC-100k [arxiv:2103.05465 tab. 1b] |
| No training data or GPU budget, and a few seconds per pair are acceptable | RANSAC with many iterations | RANSAC-100k reaches 91.50% recall at 5.50 s per pair on FCGF [arxiv:2103.05465 tab. 1a] |
| Keep as many true matches as possible | GC-RANSAC-100k, or any method with high inlier recall | GC-RANSAC-100k has 93.39% inlier recall but 64.46% inlier precision [arxiv:2103.05465 tab. 1a] |
| Filtering a per-match classifier as the only stage | Be cautious: results show lower recall than group methods on FPFH | DGR 69.13% and 3DRegNet 26.31% on FPFH [arxiv:2103.05465 tab. 1b], and the paper attributes this to ignoring rigid motion [arxiv:2103.05465 §1] |
| Photogrammetry bundle adjustment with ground control | Tie-point residual pruning, if the processing budget allows | Significant differences for this step on all three error components across all variants [arxiv:2610.01438 tab. 2]. Each variant needs at least two full adjustment runs [arxiv:2610.01438 §2.2] |
| Smooth displacement field over a deformation site | Fixed gates plus a robust polynomial fit | This is the paper's choice for a smooth field over 150 m patches [arxiv:2610.01438 §2.4.1] |

## Implementation sketch

The common core is hypothesise, score by inlier count, and refit on the
inliers. The hypothesis generator is the only part that differs between
variants.

```pseudocode
# Common core: hypothesise, score by inlier count, refit  [arxiv:2103.05465 §3.5]
# corr: candidate correspondences; tau: inlier threshold, set per dataset
# make_hypotheses: random minimal subsets (RANSAC) or learned seeds (PointDSC)

def reject_outliers(corr, tau, make_hypotheses, fit, residual):
    # Fit a model to each candidate subset [arxiv:2103.05465 §3.1]
    best_model, best_count = None, -1
    for subset in make_hypotheses(corr):
        model = fit(corr[subset])
        # Count matches whose residual is below tau [arxiv:2103.05465 eq. 6]
        count = sum(residual(model, corr) < tau)
        if count > best_count:
            best_model, best_count = model, count
    # Refit on all inliers of the winning model [arxiv:2103.05465 §3.5]
    inliers = corr[residual(best_model, corr) < tau]
    return fit(inliers), inliers
```

```pseudocode
# Iterative residual pruning, as in tie-point filtration  [arxiv:2610.01438 fig. 2]
# Limits 0.25 and 0.5 are the paper's values; the paper does not say which
# units they use

def prune_by_residual(points, adjust, residual, drop=0.25, stop=0.5):
    # Adjust, drop points above the per-pass limit, and repeat
    model = adjust(points)
    while True:
        points = [p for p in points if residual(model, p) <= drop]
        model = adjust(points)
        # Stop when the largest remaining residual is below the stop limit
        if max(residual(model, p) for p in points) < stop:
            return model, points
```

## Contradictions

- **Loss weight in PointDSC.** The paper sets lambda = 3 [arxiv:2103.05465 §4].
  The card's Paper vs code section records that the released configurations use
  1.0 for both weights, so the effective ratio differs. See
  [PointDSC](/papers/2103.05465) for the code details.
- **Outdoor length scale in PointDSC.** The paper gives sigma_d as 60 cm for
  outdoor scenes [arxiv:2103.05465 §4]. The card records that the released
  KITTI configuration uses 1.2 m. Reproduce with the value you cite.
- **Effect of tie-point filtration in one paper.** The card's pitfall says the
  paper finds no significant effect of filtration on the best variants. In the
  top 10% of variants, the table gives p = 0.231 for the northing component but
  p = 0.000 for the across-track component and p = 0.001 for elevation
  [arxiv:2610.01438 tab. 4]. The paper's prose and its table disagree on two of
  the three components.

## Papers

- [PointDSC: Robust Point Cloud Registration using Deep Spatial Consistency](/papers/2103.05465): a learned filter that uses rigid-motion consistency in attention and seeded spectral matching, with RANSAC and per-match classifiers as baselines.
- [The Impact of Processing Parameters on High-Accuracy Measurements in UAV Photogrammetry](/papers/2610.01438): tie-point residual pruning and fixed gates in a photogrammetry pipeline, evaluated across 768 processing variants.
