Skip to content

Keep dense reconstruction topocentric while applying exact final georeferencing#2008

Open
lupionpe wants to merge 2 commits intoOpenDroneMap:masterfrom
lupionpe:codex/odm-exact-georef-integration
Open

Keep dense reconstruction topocentric while applying exact final georeferencing#2008
lupionpe wants to merge 2 commits intoOpenDroneMap:masterfrom
lupionpe:codex/odm-exact-georef-integration

Conversation

@lupionpe
Copy link

Summary

  • keep the dense reconstruction pipeline in topocentric coordinates instead of swapping the projected reconstruction into reconstruction.json
  • export geocoords side artifacts separately and apply the exact local-to-projected conversion to the final LAZ, textured OBJ, and shots.geojson outputs
  • avoid the OpenMVS regressions caused by feeding projected reconstruction coordinates into the dense pipeline while preserving the improved georeferencing in the final outputs

Companion OpenSfM PR

This PR is the ODM-side integration for the companion OpenSfM fix here:

The core georeferencing solution was proposed and implemented by Yann Noutary in:

Credit for the root fix is his. This PR is the downstream ODM integration needed to make that corrected transform reach the final orthoimage / point cloud outputs without breaking dense reconstruction.

I have some basic coding experience, but most of the porting / validation / integration work for this contribution was done with AI (Codex).

Context

Related discussions:

Validation

My conclusion after downstream validation is that this does seem to solve the root cause.

I ran two real tests on two different areas with roughly:

  • ~1,600,000 m² survey area
  • ~2000 images
  • gcp.txt + geo.txt
  • RTK on the drone (Mavic 3E)

In both cases the observed precision improved, as expected.

Checks I could run locally here:

  • python3 -m py_compile opendm/types.py opendm/osfm.py opendm/shots.py opendm/align.py stages/run_opensfm.py stages/odm_georeferencing.py stages/odm_report.py
  • downstream end-to-end validation in a custom ODM / NodeODM deployment on Debian 12
  • native ODM unit tests are not runnable in this shell because the local environment here is missing ODM's Python dependencies

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant