Skip to content

Fisheye lens information loss during undistortion #1523

@ekuznetsov139

Description

@ekuznetsov139

I am trying to use colmap to reconstruct a scene from a set of fisheye lens images, 2048x2048 with FOV 180 degrees (camera: RADIAL_FISHEYE 2048 2048 600 1024 1024 0 0).

Sparse reconstruction works well - I see the poses correctly reconstructed and much of the scene in place (apart from some outliers).

Problems begin when I move on to dense reconstruction. For some reason, colmap "undistorts" input images by slightly deforming them and cropping them to 409x409 pixels, keeping only the center portion of each image. Effectively 90% of the image is simply lost. The resulting mesh is very poor quality and missing large chunks.

I can achieve better results by manually transforming all images to pinhole projection and specifying the camera as SIMPLE_PINHOLE - in that case, colmap apparently skips the undistortion step and copies the images as-is. But that's inefficient (to keep the original resolution and to retain most of the original image, I need to convert them to SIMPLE_PINHOLE 3072 3072 512 1536 1536, which corresponds to the FOV of 140 degrees - more than double the number of pixels.) Not to mention that there's nothing in the documentation to suggest that manually converting images is a required or even a recommended step.

P.S. Colmap 3.8 commit 3021f1 on 2022-04-01 with CUDA on Linux. The same behavior is observed with GUI and with the command-line version.

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