---
kind: concept
slug: bundle-adjustment
title: Bundle adjustment
summary: >-
  Bundle block adjustment (BBA) jointly refines camera poses, calibration and tie points against ground control points. Its settings (GCP count and accuracy, camera-position source, self-calibration, tie-point accuracy and filtering, post-transform) change check-point error by an order of magnitude in a 768-variant UAV study with Agisoft Metashape. Based on one paper so far.
tags: [photogrammetry, uav, georeferencing, calibration]
papers: ["2610.01438"]
related: [multi-view-reconstruction, calibration, perspective-n-point, thin-plate-spline]
status: draft
updated_at: 2026-11-01
---

## Overview

Bundle block adjustment (BBA) estimates the tie-point positions, the camera
exterior orientations and the camera calibration together, and fixes the
result to survey coordinates with ground control points (GCPs) [arxiv:2610.01438
§2.2] [tab. 1]. Its accuracy is judged on separate check points (CPs), which
are measured once and kept out of the adjustment [arxiv:2610.01438 §2.1] [§2.3].

The invariant that all variants share is the input: the same images, the same
GCP and CP measurements, and the same software. Only the adjustment settings
change [arxiv:2610.01438 §2.1]. The paper's motivation is that photogrammetry
software is often run as a black box with its defaults, and that the BBA
settings are rarely studied [arxiv:2610.01438 §1].

The paper's full-factorial study ran 768 setting combinations on ten UAV surveys
of one 220 ha site at 10 mm ground sampling distance. The best 10 % of variants
reached 15.9 to 19.8 mm mean 3D error at the CPs, and the worst 10 % reached
64.8 to 303.4 mm [arxiv:2610.01438 §3.1]. These are results for one software
package and one site, and the authors tie their conclusions to those conditions
[arxiv:2610.01438 §1].

## Variants

Each factor below is a setting, not a separate algorithm. The paper gives the
levels and the effect of each level on the errors [arxiv:2610.01438 §2.2]
[tab. 1] [tab. 2]. All of it comes from the paper's card,
[The Impact of Processing Parameters on High-Accuracy Measurements in UAV
Photogrammetry](/papers/2610.01438).

### Ground control points (NGCP, GCPA)

- **NGCP** is 1, 5, 9 or 23 GCPs. Added points do not move the earlier ones
  [arxiv:2610.01438 §2.2]. With one GCP, the mean elevation error is 54.9 mm;
  with 5 it is 9.7 mm, and with 23 it is 1.7 mm [arxiv:2610.01438 tab. 2].
- **GCPA** is the assumed accuracy of each GCP coordinate, 25 mm or 15 mm
  [arxiv:2610.01438 §2.2]. The 15 mm setting gave lower mean elevation error
  (14.2 mm against 21.9 mm) [arxiv:2610.01438 tab. 2]. The top-10 % subset
  contains no single-GCP variant [arxiv:2610.01438 §3.1] [tab. 4].

### Camera-position source (PCMD, PCA)

- **PCMD** fixes the projection centres either by RTN (virtual reference
  stations from a service) or by PPK (a static base station on site, baseline
  under 1 km) [arxiv:2610.01438 §2.2]. The PPK mean elevation error was 14.9 mm
  against 21.2 mm for RTN [arxiv:2610.01438 tab. 2]. PPK was used in more than
  90 % of the top-10 % variants [arxiv:2610.01438 §3.1].
- **PCA** is the a priori accuracy of the camera centres: 100 mm, 50 mm, or
  "estimated" from the PPK or RTN processing [arxiv:2610.01438 §2.2]. The paper
  does not give a numeric value for "estimated" [arxiv:2610.01438 §2.2]. The
  estimated setting gave the lowest mean elevation error of the three
  [arxiv:2610.01438 tab. 2].

### Self-calibration (AC)

AC switches on additional correction terms, a 96-parameter model from Tang et
al. fitted on top of Brown's calibration model [arxiv:2610.01438 §2.2]. Mean
elevation error was 29.6 mm with AC off and 6.6 mm with AC on [arxiv:2610.01438
tab. 2]. Every top-10 % variant had AC on, and the worst 10 % were dominated by
AC off [arxiv:2610.01438 §3.1] [fig. 4].

### Tie points (TPA, TPF)

- **TPA** is the tie-point accuracy, 1 px or 2 px [arxiv:2610.01438 §2.2]. The
  2 px setting gave lower mean elevation error (10.5 mm against 25.7 mm)
  [arxiv:2610.01438 tab. 2]. Over 70 % of top-10 % variants used 2 px
  [arxiv:2610.01438 §3.1].
- **TPF** is an optional tie-point filter. It removes points seen in fewer than
  3 images, or with reconstruction uncertainty or projection accuracy above 8.
  It then re-adjusts and removes points with reprojection error above 0.25 until
  the maximum is below 0.5. The thresholds are unitless and specific to
  Metashape [arxiv:2610.01438 fig. 2]. Its effect on mean elevation error is 23.7
  mm without and 12.5 mm with [arxiv:2610.01438 tab. 2]. Its effect among the best
  variants is disputed; see Contradictions.

### Post-adjustment transform (TR)

TR applies a seven-parameter similarity transform (three translations, three
rotations, one scale) after the final BBA [arxiv:2610.01438 §2.2]. Without it,
the mean along-track error was -1.3 mm; with it, 2.0 mm, and mean elevation error
fell from 24.6 mm to 11.5 mm [arxiv:2610.01438 tab. 2]. Over 70 % of top-10 %
variants used a transform [arxiv:2610.01438 §3.1].

## When to use which

The paper's results come from one site, one software package and a GSD of 10 mm.
Treat the rows below as the paper's evidence, not as general rules.

| Situation | Use | Why |
|---|---|---|
| Few GCPs can be placed in the field | Keep AC on and use PPK; use at least 5 GCPs | One GCP gives 54.9 mm mean elevation error, five give 9.7 mm [arxiv:2610.01438 tab. 2]. The top-10 % subset has 5, 9 and 23 GCPs, not 1 [arxiv:2610.01438 §3.1] [tab. 4]. The authors caution against generalising their GCP density rule [arxiv:2610.01438 §4] |
| No on-site base station, only a correction service | RTN is possible, but PPK gave lower error and is the better camera-position source here | PPK 14.9 mm against RTN 21.2 mm mean elevation error [arxiv:2610.01438 tab. 2]; PPK in over 90 % of the top 10 % [arxiv:2610.01438 §3.1] |
| Repeat surveys for ground-deformation monitoring | The enhanced setting: PPK, 23 GCPs, GCPA 15 mm, AC on, TPA 2 px, PCA estimated, TPF off, TR on | Vertical systematic error fell from 14 mm to 7 mm, random error stayed at 6 to 7 mm [arxiv:2610.01438 §3.2] [tab. 5]. This is a single-site result |
| Defaults only, with a high accuracy target | Do not rely on defaults; check the factors against your own check points | The authors say default settings can fall short when data quality is poor or accuracy requirements are high [arxiv:2610.01438 §1] |
| Software other than Metashape | Re-test the thresholds before reusing them | Other tools define tie-point accuracy and reprojection error differently, so the TPF thresholds do not transfer [arxiv:2610.01438 fig. 2] |

## Implementation sketch

The common core is one adjustment, run on the same inputs for every variant.
Where variants differ, the step is marked. The paper does not say how tie
points are rebuilt after images are removed; the sketch keeps the surviving
points, which is an assumption [arxiv:2610.01438 §2.2].

```pseudocode
# One BBA variant on one series [arxiv:2610.01438 §2.2]
# Input: images, GCP and CP coordinates, one setting per factor

def run_variant(images, gcps, cps, setting):
    # Align images: 40,000 keypoints, 10,000 tie points each [§2.2]
    tie_points = align_images(images, 40000, 10000)
    # Trial BBA: AC off, TPA 1 px, PCA estimated, TPF off [§2.2]
    trial = bba(tie_points, gcps, TRIAL_SETTINGS)
    # Drop images with clearly wrong orientation, under 1 % [§2.2]
    images = drop_gross_errors(images, trial)
    # Keep surviving points; paper does not say how [§2.2]
    tie_points = keep_points_of(tie_points, images)
    # Variant step: optional tie-point filter (TPF) [fig. 2]
    if setting.tpf:
        tie_points = filter_tie_points(tie_points, gcps, setting)
    # Final BBA with the variant's own settings [§2.2]
    adjustment = bba(tie_points, gcps, setting)
    # Variant step: optional seven-parameter transform (TR) [§2.2]
    if setting.tr:
        adjustment = similarity_transform(adjustment, gcps)
    # Rank by mean 3D error at the check points [§2.3]
    return rmse_3d(adjustment, cps)
```

## Contradictions

- **Within the paper: TPF among the best variants.** The text says TPF has no
  significant effect on the best variants, and the enhanced configuration turns
  it off [arxiv:2610.01438 §3.2]. The top-10 % table gives a Bartlett p-value of
  0.231 for the along-track spread, but 0.000 for the across-track spread and
  0.001 for the elevation spread [arxiv:2610.01438 tab. 4]. The text does not
  reconcile these. On all variants, TPF changes mean elevation error from 23.7 mm
  to 12.5 mm [arxiv:2610.01438 tab. 2].
- **Within the paper: study area.** The methods give 220 ha [arxiv:2610.01438
  §2.1]; the discussion gives 200 ha [arxiv:2610.01438 §4]. The card and this page
  use 220 ha.
- **Across papers.** None known. This page has one source.

## Papers

- [The Impact of Processing Parameters on High-Accuracy Measurements in UAV
  Photogrammetry](/papers/2610.01438): a full-factorial study of eight BBA
  settings in Agisoft Metashape on ten UAV surveys, with the effect of each
  setting on check-point and deformation error.
