Chapter 9 Geometric Calibration, Distortion Correction, and Registration


One-Sentence Goal
Establish a reversible geometric mapping from physical space to pixel space; output auditable K, d, {R_i,t_i}, LUT_undistort, and cross-view/cross-modality registration transforms; and ensure reprojection and epipolar errors meet contractual limits while remaining stable in streaming scenarios.


I. Scope & Targets

  1. Inputs
    • Calibration images and metadata: { I_i }, pattern ∈ { chessboard, charuco, aruco, dot-grid }, f_mode, focus/zoom, T_cam, ts | tau_mono.
    • Target geometry: calibration board pitch d_board, board-plane normal, and planarity tolerance.
    • Priors / extrinsics: multi-camera assembly initial guesses or online synchronized observations (Chapters 5 and 11).
  2. Outputs
    • Intrinsics and distortion: K, d = { k1,k2,k3,p1,p2,... } or fisheye { k1,k2,k3,k4 }.
    • Extrinsic set: { R_i,t_i } (camera frame C relative to world frame W), plus per-frame availability tags.
    • Registration/alignment: planar homography H, epipolar geometry E,F, rigid transform T_12 ∈ SE(3), rectify maps, and warp map.
    • Artifacts & manifest: LUT_undistort, LUT_rectify, manifest.imaging.geom, hash_sha256(blob), signature.
  3. Applicability & boundaries
    • Default camera model: pinhole + Brown–Conrady distortion; fisheye uses equidistant or equisolid-angle models.
    • Plane-board assumption for initialization; final parameters from bundle adjustment that globally minimizes reprojection error.
    • Rolling shutter: optional linear motion compensation; strongly dynamic scenes require coupling with time-sync cleansing (see Methods.Cleaning v1.0, Chapter 5).

II. Terms & Variables

  1. Camera & coordinates
    • K ∈ R^{3×3}: intrinsics (fx, fy, cx, cy, s).
    • R ∈ SO(3), t ∈ R^3: extrinsics, X_C = R * X_W + t.
    • Normalized & pixel coordinates: x_n = ( x_c / z_c , y_c / z_c ), x_p = (u,v,1)^T ~ K * ( x_d, y_d, 1 )^T.
  2. Distortion
    • Brown–Conrady: d = { k1,k2,k3,p1,p2 }, with r^2 = x_n^2 + y_n^2.
    • Fisheye (equidistant): r_d = f * theta * ( 1 + k1 theta^2 + k2 theta^4 + ... ), theta = atan2( sqrt( x_n^2 + y_n^2 ), 1 ).
  3. Registration
    • Homography: H ∈ PGL(3), s * x_2 = H * x_1 (planar/far scene).
    • Epipolar: x_2^T * F * x_1 = 0, E = K_2^T * F * K_1, E = [t]_x * R.
    • Error metrics: eps_reproj (px), eps_epi (px), coverage_r (radial coverage).
  4. Units & dimensions
    unit(u,v)="px", unit(X_W)="m", unit(theta)="rad"; check_dim must pass.

III. Axioms P209-*


IV. Minimal Equations S209-*


V. Calibration & Registration Workflow M90-*


VI. Contracts & Assertions


VII. Implementation Bindings I90-*


VIII. Cross-References


IX. Quality Metrics & Risk Control

  1. Core metrics
    • rmse/p95/p99(eps_reproj), p95(eps_epi), coverage_r, inlier_rate, cond(K).
    • Runtime drift: drift_fx, drift_cx, drift_k1 evaluated over windows Delta_t; alert thresholds and rollback strategies.
    • Resource metrics (streaming): latency_undistort, cpu/mem, drop_rate.
  2. Key risks & playbooks
    • Board planarity or scale error: enable scale cross-checks or dual-board mutual verification.
    • Motion/rolling-shutter mismatch: enable S209-6 model or drop high-speed frames; couple with time-sync cleansing.
    • Model overfit: if dist_monotone fails, reduce polynomial order or switch to piecewise LUT.
    • Focal/thermal drift: map { focus, zoom, T_cam } -> { K,d } and switch configurations at runtime.
    • Cross-modality registration failure: switch to mutual information or edge-structure measures; when needed, use semi-automatic anchors.

Summary
This chapter provides a unified workflow for geometry and registration—from planar calibration and epipolar geometry to global BA—producing K, d, {R_i,t_i}, LUT_undistort/rectify, and quality reports. Manifests and signatures guarantee traceability and rollback, while contracts and metrics sustain stable operation in multi-camera / multi-modality systems and streaming deployments.