Skip to content

Support for distorted camera models / COLMAP fisheye cameras #1

Description

@DuVogel87

Hi,

I would like to experiment with ZipSplat on datasets that use distorted camera models, in particular COLMAP-style fisheye / thin-prism camera models.

From what I have found so far, ZipSplat currently seems to assume a pinhole-style camera representation. The public Camera class appears to store only [w, h, fx, fy, cx, cy], and I did not find support for distortion parameters such as radial/tangential/thin-prism coefficients. In the paper, camera priors also seem to be represented mainly through pose and field-of-view information, rather than a full distorted projection model.

My use case is a dataset reconstructed with COLMAP using a distorted camera model, for example THIN_PRISM_FISHEYE. I would prefer not to undistort or crop the images before running ZipSplat, because I am trying to preserve as much image content as possible.

I would like to try adding support for distorted camera models, but I am not fully sure which parts of the codebase would need to be changed.

Could you point me to the relevant places where camera projection / ray generation / camera priors are handled?

In particular, I would appreciate guidance on questions like:

  • Is the current model architecture fundamentally tied to pinhole cameras, or could distorted camera models be added mostly by extending the camera representation?
  • Where would distortion-aware projection or ray generation need to be implemented?
  • If using use_priors=True, where should additional camera parameters such as COLMAP distortion coefficients be encoded?
  • Would adding distorted cameras require retraining the model, or could this potentially work for inference/fine-tuning with modified camera handling?
  • Are there any assumptions in the preprocessing, cropping, resizing, or Gaussian parameter prediction that would break for strongly distorted fisheye images?

I am happy to experiment and possibly contribute a patch, but I would really appreciate some pointers on the intended architecture and the minimum set of files/functions that would need to be adapted.

Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions