-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Planar Reconstruction #1452
Planar Reconstruction #1452
Conversation
Sheffield park (78 images, not 100% planar): Incremental reconstruction time:
Planar reconstruction time:
|
Sunset park (69 images, mostly planar): Incremental:
Planar:
|
Brighton beach (18 images, not 100% planar): Incremental:
Planar:
|
Agremo dataset (195 images, AG field): Incremental:
Planar:
|
I expect numbers to be even better on machines that have lots of cores, as this algorithm has less deadlocks while doing multi-threaded operations. |
Future improvements could include a more robust outlier filter for degenerate camera poses by looking at points that fall outside of the main plane. |
Did you experience increased memory consumption/swapping with planar? I'm testing it on my Old_Orchard dataset against defaults and noticed that with planar all 32GB RAM have been consumed and I'm currently pushing 30GB swap, which wasn't even touched with incremental/defaults. |
It shouldn't take more memory during the reconstruction step, but perhaps the reconstruction ended up degenerate and some other issue caused out of memory problems. Do you know at which step in the process the memory usage went up? |
Partway through the OpenMVS phase. Options:
Dataset imported via Cloud Import - GitHub: Node:
Versions:
|
Correction, it might take more memory during |
Did you run with |
Not with concurrency at |
Memory usage should be vastly improved with #1455 |
Starting small in my tests. Running a 2300 image dataset through... 😄 |
And a 430 image dataset... . Ok, I've got a few worth trying. |
But was the end result good also? 😄 |
1855 processed in 02:23:53. Not too shabby. Corridor based mapping the ODM often struggles with. The 2000+ image set (more square than long and skinny) is taking a very long time at the orthophoto stage however. |
Is the terrain actually planar in this dataset? I would imagine that as an area gets wider the planar assumption starts to break down more and more (and bundle adjustment can no longer optimize a solution). |
It would be interesting to see if combining this with split-merge could handle it better. |
Oooh. On it. |
Final time: 14:51:40. Not too shabby. I'll try turning down the size of the submodels. That missing bit is weird, but it's too late tonight to investigate. |
It is missing the southwest corner. I haven't checked yet, but I have seen that before when cutlines fail to converge. I am re-running at a 300 image split as that will reduce the number of submodels and thus hopefully reduce the probability of missing submodels. But the gap in the middle is now filled, and the data look quite good. It seems the combo of planar reconstruction and split merge is quite suitable even for hilly areas. |
Have run my first test on a dataset of 1600 images taken with P4RTK. It has processed much quicker (9:28 vs 5:49) but according to the report there is GPS error of 427m, without planar the GPS error was 0.01. What could be causing this? I'll try run it again without fast-orthophoto and see if any difference. Settings used:
|
My guess: the estimates of error haven't been redesigned for this approach... . They might be meaningless. But, I didn't write any of the code, so this is pure hunch. |
You might try setting split to some multi-hundred image value, say 3-400. |
I would expect that if you set |
I think it's been a bit slow down with split: 400 rather than max-concurrency, no ? |
I tested on multiple dataset such as marine ones. Split ~300 is needed for all my tests to have proper results |
No: one of the major enhancements with this is maximising concurrency of use. So if you constrain it to a single thread, you remove the major performance improvement. |
I'm finding something quite similar over cities: somewhere between 2-400 seems to be a sweet spot in assuming planarityn of input data, even for a moderately hilly city. |
This PR adds support for really fast planar reconstructions (e.g. agricultural fields)
Requirements:
Then to obtain an orthophoto really quickly, one can pass:
--sfm-algorithm planar --matcher-neighbors 4 --fast-orthophoto
If one needs a full 3D model from the mostly planar scene, one can omit the
--fast-orthophoto
flag and a full 3D reconstruction will still take place.Experimental! 💥