Skip to content

Support native uncalibrated distorted cameras - #47

Merged
Zador-Pataki merged 2 commits into
zador/panorama-rigsfrom
zador/distorted-cameras
Oct 25, 2026
Merged

Zador-Pataki merged 2 commits into
zador/panorama-rigsfrom
zador/distorted-cameras

Conversation

@Zador-Pataki

Copy link
Copy Markdown
Collaborator

Motivation

Support monocular reconstruction from uncalibrated distorted images while retaining their original image coordinates for matching and reconstruction.

Changes

  • Calibration

    • Support OPENCV_FISHEYE and distorted perspective camera models.
    • Use GeoCalib to estimate the initial focal length and distortion needed for tracking and keyframing.
    • After matching and geometric verification, refine focal length and distortion through view-graph calibration before DA3 depth prediction, keeping the principal point fixed.
    • Reuse the refined cameras during mapping without repeating calibration; retain the original GeoCalib predictions as priors.
    • Require initial view-graph calibration whenever intrinsics are estimated, independently of subsequent mapping refinement.
  • Tracking and depth

    • Track and match features in the original distorted images.
    • Use the refined calibration to define an auxiliary forward-facing pinhole crop for DA3, then transfer the predicted depths back to the original image coordinates.
    • Keep observations outside that crop usable without depth constraints.
  • Reconstruction and visualization

    • Account for the selected distortion model in geometric verification and relative-pose estimation.
    • Extend browser camera visualization and point-quality calculations to the supported distortion models.

Limitations

  • DA3 does not receive the original distorted images. It receives a pinhole crop undistorted using estimated calibration, and its predicted depths are resampled back to the original image coordinates. Depth quality therefore depends on that calibration and resampling; depth support is limited to the crop.
  • Track sampling, density estimation, and suppression use image-space distances and neighborhoods without compensating for lens distortion. Equal-sized pixel neighborhoods can therefore cover different angular regions across the image, affecting the spatial distribution of tracks.

@Zador-Pataki
Zador-Pataki added this pull request to stack #48 October 25, 2026 17:06
@Zador-Pataki
Zador-Pataki marked this pull request as ready for review October 25, 2026 17:09
@Zador-Pataki
Zador-Pataki merged commit ca5605e into main Oct 25, 2026
1 check passed
@Zador-Pataki
Zador-Pataki deleted the zador/distorted-cameras branch October 25, 2026 17:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant