Open xuelinchao opened 7 years ago
sorry, this is not supported
How memory(RAM) requirements depends on number of images? Any a rough estimate?
OpenMVG just released a new version (v1.2) that is able to cluster the scene in smaller peaces and process them individually in OpenMVS, thus overcome the memory limit and process virtually any number of images. See: SfM_Data clustering for chunk post-processing in MVS
.
You can checkout master there: https://github.com/openMVG/openMVG and look to the binary called openMVG_main_ComputeClusters
I was able to get OpenMVG's ComputeClusters
to work all the way up through creating a dense point cloud in OpenMVS. However, when I try to call ReconstructMesh
I always end up with an empty mesh (I've tried 0, 0.5, and 10 for the --quality-factor
and --thickness-factor
:
17:32:56 [App ] Scene loaded (131ms):
20 images (20 calibrated) with a total of 9.89 MPixels (0.49 MPixels/image)
95780 points, 0 vertices, 0 faces
Points inserted 95780 (100%, 691ms)
17:32:57 [App ] Delaunay tetrahedralization completed: 95780 points -> 46352 vertices, 271490 (+226) cells, 543093 (+339) faces (729ms)
Points weighted 46352 (100%, 12ms)
17:32:57 [App ] Delaunay tetrahedras weighting completed: 271716 cells, 543432 faces (212ms)
17:32:57 [App ] Delaunay tetrahedras graph-cut completed (0 flow): 0 vertices, 0 faces (270ms)
17:32:57 [App ] Mesh reconstruction completed: 0 vertices, 0 faces (1s275ms)
17:32:57 [App ] Scene saved (1ms):
20 images (20 calibrated)
0 points, 0 vertices, 0 faces
17:32:57 [App ] MEMORYINFO: {
17:32:57 [App ] VmPeak: 800992 kB
17:32:57 [App ] VmSize: 717784 kB
17:32:57 [App ] } ENDINFO
My goal was to create meshes from the chunks, refine & texture them and then merge them back together, but after thinking some more about it I'm not sure it is possible. Merging point clouds is one thing, but merging meshes together seems much more difficult.
So, is ComputeClusters
only designed for creating chunks up until the point cloud stage?
Is ReconstructMesh
working for a normal scene (not clustered)?
@bkjohnson ComputeClusters
is used to cut a large scene into tiny chunks.
It is mostly helpful to compute point clouds. As you saw merging mesh is a tedious task.
The ideal solution for use would be to make a open source version of Scalable Surface Reconstruction from Point Clouds with Extreme Scale and Density Diversity - CVRP17
@cdcseacave I keep getting inconsistent results with ReconstructMesh
and I haven't figured out why yet. I will use the exact pipeline on the same dataset and sometimes I'll get a great mesh, sometimes it will be empty, and other times it looks very bad. I don't want to hijack this issue with my unrelated problem, so I'll try for a few more days to figure it out and if it is still inconsistent I'll open a new issue with more details. I guess the short answer is "sometimes it works".
@pmoulon that looks exciting! I read the article but I'll need to familiarize myself with more of the theory in order to make sense of it.
how can i use more then one PC to compute one model? can i use 2 or 3 PC to run openMVS together?