How to use high precision images together with GCPs

Hey ODM community!

I have a question about how ODM/OpenSFM prioritize and use the exif GPS tags and the GCPs for the 3d reconstruction.

We are using high precision GPS for both the drone flight and the GCPs, and we wanted to understand how to use them properly with the system.

So first, I did a little digging, and apparently OpenSFM uses the dop (dilution of precision) exif tag somehow. So I can set the value for each image and OpenSFM will read it.

However, that will only happen if bundle_use_gps is set to true. The problem is that it looks like ODM sets it to false if there are GCPs.

Am I getting something wrong? If not, then why does ODM disable gps for the reconstruction if there are GCPs? Can this be configured somehow?

Also, is there any other way to let OpenSFM know the high precision of the GPS measurements besides using dop and enabling both bundle_use_gps and bundle_use_gcp flags?

Thanks in advance for taking the time to read this!

The logic for bundle_use_gps being set to false if there are GCPs is because most datasets are captured with low precision GPS. So to increase the accuracy of the reconstruction, we use only GCPs for georeferencing. If you want to use both, I’d recommend changing the code (or make a PR to add a flag that allows both? Like --force-gps).

3 Likes

Ok, will do!

Thanks for the help :smile: