OpenDroneMap / NodeMICMAC

A Lightweight REST API to Access MICMAC Photogrammetry and SFM Engine.
https://opendronemap.org/nodemicmac/
GNU General Public License v3.0
79 stars 21 forks source link

[Feature Request] Add GCP functionality #21

Closed smathermather closed 4 years ago

smathermather commented 5 years ago

I see this on the checklist/wishlist in the README, adding GCP functionality would be great.

pierotofy commented 5 years ago

Wonder if we could make a parser to conform to the GCP format already used by ODM.

smathermather commented 5 years ago

Yes, I suppose that would be ideal. Having two GCP formats wouldn't make anyone happy.

dronemapper-io commented 5 years ago

The MM GCP format is as follows:

3d_gcp.txt: GCPNAME UTMX UTMY ELEVATION PRECISIONXY PRECISIONZ

2d_gcp.txt: GCNAME IMAGENAME PIXELX PIXELY

PRECISIONXY and PRECISIONZ is the surveyed precision error in meters.

pierotofy commented 5 years ago

A good starting point could be the GCP class in ODM https://github.com/OpenDroneMap/ODM/blob/master/opendm/gcp.py which already does some parsing.

smathermather commented 5 years ago

PRECISIONXY and PRECISIONZ is the surveyed precision error in meters.

Are these required, and if unknown, are there suggested dummy values?

pierotofy commented 5 years ago

I'm thinking you could just set this to a low value; I think it serves the purpose of allowing for different weights, in case you have survey points of different precision.

dronemapper-io commented 5 years ago

Yes they are required but I usually use 0.05 for each value -- it seems to be a good generic / universal value for most GCP missions. It helps loosen or tighten the GCP bundle block adjustment depending on the value used.

smathermather commented 5 years ago

Format questions/differences aside, GCPs could be used with NodeMICMAC now, or is additional work needed?

dronemapper-io commented 5 years ago

Would need to add some logic into the run.py to detect GCP files and use them if formatted properly. it isn't a big amount of work. The larger task would be detecting a gcp_list.txt and converting it into the proper format for MicMac (which requires 2 files.. one 3D (real world) and another is the image list and X/Y target locations) I'll take a look at opendm/gcp.py this tonight

smathermather commented 5 years ago

Awesome. Thanks!

dani2007 commented 4 years ago

Once, the GCP can be used in NodeMICMAC, are the GCP used to imrove the prosessing or - as I understand it in ODM - just at the end to stretch and fit the finished results?

Side question: could NodeMICMAC already use GCPs if they where in the right (2 file) format?

dronemapper-io commented 4 years ago

GCP for NMM are used in the aerial triangulation. GCP support was recently committed to master Thanks @pierotofy for the path bug fix