Issues with large-scale city reconstruction – locked poses and focal length inconsistency

Hello everyone,

I’m currently working on a large-scale reconstruction (a small city) using 18,000 aerial images captured with a Leica CityMapper system. We have around 4,000 photo positions, with 5 images per position — one nadir and four obliques (forward, backward, left, right), each tilted at 45°.

We also have a flight log containing XYZ coordinates and yaw, pitch, roll information for each shot.

During the reconstruction, I encountered several issues:

  1. Locked nadir poses being altered
    I first performed an alignment using only the nadir images. The result was excellent and validated with our GCPs and checkpoints.
    After that, I locked this nadir component using the “Lock pose for continue” option.
    However, during the next alignment (including oblique images), RealityScan still modifies the nadir positions, as if it recalculates them globally.
    → Is this expected behavior, or am I missing a setting to truly “freeze” these camera positions?

  2. Incorrect focal length estimation
    The software estimates a focal length of 95 mm, while the camera calibration file provided with the sensor specifies a focal length of 146 mm.
    → Should I force the calibration parameters manually to match the official values?

  3. Locked positions/orientations still being adjusted
    Even though I’ve locked the position and orientation of all cameras, RealityScan still adjusts them during reconstruction.
    → How can I prevent the software from altering these locked parameters?

Any advice or insight from others who have worked on large datasets or with Leica CityMapper would be greatly appreciated.

Thanks in advance!
— Oscar

Hi Oscar

  1. Lock pose for continue keeps only the relative camera poses, so some absolute pose change is expected.
  2. RealityScan shows the focal length in 35 mm format, so it could be different as in the calibration file
  3. This shouldn’t be happening. But is it not ideal to use Locked in such cases, as those positions aren’t so absolutely precise. Locked option is more for the stable captures, like camera rigs. Also, there is a bug regarding reading Yaw, Pitch, Roll values from the flight log, so I would use only the positions from the flight log.