Description
A critical regression in ODX 3.8.0 (OpenSfM) causes the altitude sampling grid search to hit a boundary on a standard DJI RTK nadir dataset (74 images), erroneously defaulting to 1.0m. This completely breaks the SfM topology, leading to a flipped Z-axis, negative GSD, and single-line camera alignment. The exact same dataset processed perfectly in ODX 3.7.4.
Sample Image EXIF Context
GPS Status: RTK / RtkAlt
Absolute / Relative Altitude: +244.578m / +63.119m
Gimbal Pitch Degree: -90.00° (Nadir)
Log Comparison
ODX 3.7.4 (Successful Run):
[INFO] Altitude for orientation based matching 5118.677506227718
[INFO] Reconstruction 0: 74 images, 97232 points
ODX 3.8.0 (Failed Run):
[INFO] Minimum found at sampling altitude 1 with size 69315.9719507554
[INFO] Altitude extrema is at the boundary of search space. Using default altitude of 1.0
[INFO] Altitude for orientation based matching 1.0
...
[WARNING] Shots and/or GCPs are aligned on a single-line. Using vertical prior
[WARNING] Negative GSD estimated, this might indicate a flipped Z-axis.
Note: Activating --force-gps does not bypass this issue, as the error occurs during the initial feature matching stage, before georeferencing takes place.
Expected Behavior
OpenSfM should use the accurate XMP/GPS altitude tags from RTK-enabled DJI drones to seed the orientation-based matching altitude, rather than forcing an unrealistic 1.0m fallback when the grid search fails.
Environment
OS: Linux 6.12.76-linuxkit (aarch64)
Hardware: 18 cores / 94.12GB RAM
Dataset: 74 DJI Nadir Images (-90° gimbal pitch)
Description
A critical regression in ODX 3.8.0 (OpenSfM) causes the altitude sampling grid search to hit a boundary on a standard DJI RTK nadir dataset (74 images), erroneously defaulting to 1.0m. This completely breaks the SfM topology, leading to a flipped Z-axis, negative GSD, and single-line camera alignment. The exact same dataset processed perfectly in ODX 3.7.4.
Sample Image EXIF Context
GPS Status: RTK / RtkAlt
Absolute / Relative Altitude: +244.578m / +63.119m
Gimbal Pitch Degree: -90.00° (Nadir)
Log Comparison
ODX 3.7.4 (Successful Run):
[INFO] Altitude for orientation based matching 5118.677506227718
[INFO] Reconstruction 0: 74 images, 97232 points
ODX 3.8.0 (Failed Run):
[INFO] Minimum found at sampling altitude 1 with size 69315.9719507554
[INFO] Altitude extrema is at the boundary of search space. Using default altitude of 1.0
[INFO] Altitude for orientation based matching 1.0
...
[WARNING] Shots and/or GCPs are aligned on a single-line. Using vertical prior
[WARNING] Negative GSD estimated, this might indicate a flipped Z-axis.
Note: Activating --force-gps does not bypass this issue, as the error occurs during the initial feature matching stage, before georeferencing takes place.
Expected Behavior
OpenSfM should use the accurate XMP/GPS altitude tags from RTK-enabled DJI drones to seed the orientation-based matching altitude, rather than forcing an unrealistic 1.0m fallback when the grid search fails.
Environment
OS: Linux 6.12.76-linuxkit (aarch64)
Hardware: 18 cores / 94.12GB RAM
Dataset: 74 DJI Nadir Images (-90° gimbal pitch)