You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Keep dense reconstruction topocentric and apply exact final georeferencing - #12
This ports the downstream ODX integration for the exact OpenSfM georeferencing fix.
It keeps dense reconstruction in topocentric coordinates for OpenMVS/texturing, exports geocoords artifacts separately, and applies the corrected projected transform only to final outputs such as the LAZ point cloud, textured OBJ / orthophoto path, and shots.geojson.
This PR depends on the matching WebODM/OpenSfM PR: WebODM/OpenSfM#1
I intentionally did not point SuperBuild/cmake/External-OpenSfM.cmake at my personal fork. Before this ODX PR is merged, the OpenSfM PR should be merged first and the ODX OpenSfM GIT_TAG should be updated to that merged WebODM/OpenSfM commit.
I validated and ported the approach into the ODX pipeline. I have basic coding experience; most of the porting and integration work was done with AI assistance from Codex.
Validation context
I tested the same approach downstream in an ODM/NodeODM pipeline on two real RTK Mavic 3E survey areas. Each test was roughly 1,600,000 m虏 with about 2,000 images, using gcp.txt and geo.txt. In both areas, the observed final precision improved as expected from Yann's commit.
Full ODX/ODM processing, because this PR needs the matching WebODM/OpenSfM PR merged/pinned before an upstream build can exercise export_geocoords --mode projected.
Hey @lupionpe I appreciate the PR, but I don't trust that Codex did this correctly. Aside from the memory/performance issues that I can see at a glance, the fact that this was included:
Hints that this is for sure the incorrect approach. (I wrote --mode projected and it should have never been merged, as it was test code that never worked for our pipeline's purposes).
Perhaps we can open an issue to track the problem until there's time to fix it?
The --mode projected part is here because this PR was ported together with the matching OpenSfM PR, so I carried over the same interface from that side as well. If that path was only test code and not something that should be used in the real ODX/WebODM pipeline, then I agree this PR is not the right shape as-is.
I'll open an issue with the full context, links, and the validation I saw on my datasets so we can discuss the correct approach there.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This ports the downstream ODX integration for the exact OpenSfM georeferencing fix.
It keeps dense reconstruction in topocentric coordinates for OpenMVS/texturing, exports geocoords artifacts separately, and applies the corrected projected transform only to final outputs such as the LAZ point cloud, textured OBJ / orthophoto path, and
shots.geojson.This PR depends on the matching WebODM/OpenSfM PR:
WebODM/OpenSfM#1
I intentionally did not point
SuperBuild/cmake/External-OpenSfM.cmakeat my personal fork. Before this ODX PR is merged, the OpenSfM PR should be merged first and the ODX OpenSfMGIT_TAGshould be updated to that merged WebODM/OpenSfM commit.Attribution
Credit for the core georeferencing fix belongs to Yann, from:
YanNoun/OpenSfM@446a4b0
I validated and ported the approach into the ODX pipeline. I have basic coding experience; most of the porting and integration work was done with AI assistance from Codex.
Validation context
I tested the same approach downstream in an ODM/NodeODM pipeline on two real RTK Mavic 3E survey areas. Each test was roughly 1,600,000 m虏 with about 2,000 images, using
gcp.txtandgeo.txt. In both areas, the observed final precision improved as expected from Yann's commit.References
Local checks
python3 -m py_compile opendm/align.py opendm/osfm.py opendm/shots.py opendm/types.py stages/odm_georeferencing.py stages/odm_report.py stages/run_opensfm.pygit diff --checkNot run locally:
export_geocoords --mode projected.