pmoulon / CMVS-PMVS

This software (CMVS) takes the output of a structure-from-motion (SfM) software as input, then decomposes the input images into a set of image clusters of managable size. An MVS software can be used to process each cluster independently and in parallel, where the union of reconstructions from all the clusters should not miss any details that can be otherwise obtained from the whole image set. CMVS should be used in conjunction with an SfM software Bundler and an MVS software PMVS2 (PMVS version 2).
http://opensourcephotogrammetry.blogspot.com/
939 stars 464 forks source link

Different results between elaborations #29

Closed roby23 closed 6 years ago

roby23 commented 6 years ago

I noticed that running PMVS on the same dataset and with the same parameters, gives different results between elaborations. The differences are both in the number of points and their position. Not big differences but I just want to understand why it's happening. I think it has something to do with multi thread, because if I run it with CPU = 1 I get the same result every time. Can you confirm this behaviour? Is there a way to fix it?

Thanks

pmoulon commented 6 years ago

Unfortunately multithreading is making some operations in a different order and so will always produce a bit different output.

roby23 commented 6 years ago

So it's not a problem of race conditions, it's just that the data comes every time in a different order giving slightly different results. Good to know, so I must use it with a single thread to have a consistent result.

Many thanks

roby23 commented 6 years ago

Just a quick info, is it just a problem of the current implementation, or can it be solved rewriting the algorithm in some way?

pmoulon commented 6 years ago

I did not wrote the software so I can't answer.