edgarriba / OpenDroneMap

OpenDroneMap is a tool to postprocess small Unmanned Aerial Vehicle (sUAS), balloon, kite, and street view data to geographic data. With the current update, we are adding the ability to create orthophotos from drone, balloon, and kite imagery which has GPS ephemeris. Forked from qwesda/BundlerTools ( https://github.com/qwesda/BundlerTools )
GNU General Public License v3.0
0 stars 0 forks source link

GPS info during OpenSfM #16

Open dakotabenjamin opened 8 years ago

dakotabenjamin commented 8 years ago

I was running the process with odm_data/seneca, which has GPS coords in the exif on all the photos (I double-checked), but I got this warning:

WARNING:__main__:Not all images have GPS info. Disabling matching_gps_neighbors.

I ran it on the master branch and did not run across this issue.

edgarriba commented 8 years ago

Not sure but I guess it's that flag. https://github.com/edgarriba/OpenDroneMap/blob/cmake/scripts/opensfm.py#L59

Anyways it's only a warning that's tells you what you said. Any consideration @paulinus ?

dakotabenjamin commented 8 years ago

I'm wondering if it has to do with https://github.com/OpenDroneMap/OpenDroneMap/commit/1cf79b64fffc0cd52198229b4099f6aad496cc5c

dakotabenjamin commented 8 years ago

What is happening in the declare_params() call? https://github.com/edgarriba/OpenDroneMap/blob/cmake/scripts/opensfm.py#L9

    def declare_params(self, params):
        params.declare("use_exif_size", "The application arguments.", False)
        params.declare("feature_process_size", "The application arguments.", False)
        params.declare("feature_min_frames", "The application arguments.", 0)
        params.declare("processes", "The application arguments.", 0)
        params.declare("matching_gps_neighbors", "The application arguments.", 0)

Is the last arg in params.declare supposed to be the default?

edgarriba commented 8 years ago

https://github.com/edgarriba/OpenDroneMap/blob/cmake/scripts/odm_app.py#L41

takes the value in 'matcher_k' which right I'm not sure if it's correct

dakotabenjamin commented 8 years ago

I'm currently updating those arguments to matcher_neighbors and matcher_distance. We'll see if it changes anything!

edgarriba commented 8 years ago

nice!

dakotabenjamin commented 8 years ago

well I'm not getting anywhere with the matcher-distance args, but I did find the source of the warning. Looking into it now: https://github.com/mapillary/OpenSfM/blob/odm-2/bin/match_features#L48

dakotabenjamin commented 8 years ago

Yeah I installed OpenSfM separately and ran bin/run_all, had the same warning. The config.yaml file has matching_neighbors, so all(map(has_gps_info, exifs)) must be returning false. My guess is the new directory design means that opensfm is not getting the exif info from the images. The image lists file uses absolute references to the images, I don't see how that could be the problem.

paulinus commented 8 years ago

There was a bug in that line checking for gps info. Just fixed that in OpenSfM odm-2 branch. Sorry for being slow here.

Btw, what will be the procedure for updating opensfm when using releases, instead of tracking a branch.

dakotabenjamin commented 8 years ago

That's a good question. How often do you expect OpenSfM to update such that it affects ODM?

dakotabenjamin commented 8 years ago

After that fix OpenSfM seems to be running at speeds like the master branch. I'll run some tests and PR an update.