cdcseacave / openMVS

open Multi-View Stereo reconstruction library
http://cdcseacave.github.io
GNU Affero General Public License v3.0
3.21k stars 895 forks source link

RefineMesh - std::bad_alloc #276

Open BigAloz opened 6 years ago

BigAloz commented 6 years ago

Specifications like the version of the project, operating system, and hardware

I have installed openMVS on the Amazon Web Service. I have installed on a Ubuntu machine using the instructions from this website. My current machine has 64GB ram and plenty of cores (I can check from here but would be around 20 cores). I am not using the GPU.

I can upscale to more cores,RAM and a GPU compute if that is what the problem is related to but would have thought I have plenty of computing memory for this task.

Steps to reproduce the problem

It was working fine until my current data set.

  1. 28 images of around 2.2 MB in size.
  2. this is quite a relatively small data set

I get a std::bad_alloc in RefineMesh which I assume means it has run out of memory.

I can't find a solution and was wondering if there other settings i need to try in the pipeline processing pipeline.

I am new to Linux so haven't been able to use gdb to try and identify the line that is causing the problem.

Any advice will be appreciated.

Regards,

Alan Buchanan

cdcseacave commented 6 years ago

This does not seem to be a memory issue judging by the number of images. Is the SfM reconstruction looking good? You can validate it visually using the Viewer included in OpenMVS on scene.mvs you try to reconstruct.

BigAloz commented 6 years ago

​ mvs.zip https://drive.google.com/file/d/1cZYS_LaXzBzgauVr9ymWgAwkZxSVMwWV/view?usp=drive_web ​ The dataset is fine (reprojection error of around 0.6 pixels). I have been using this for testing for quite some time.

I generated the scene.mvs from openMVG.

I haven't worked out how to debug and step through the program to isolate the line that is causing this issue.

I have stuck the dataset on the cloud if you have time to check itv out.

Regards,

Alan

On Thu, Dec 7, 2017 at 6:33 AM, cDc notifications@github.com wrote:

This does not seem to be a memory issue judging by the number of images. Is the SfM reconstruction looking good? You can validate it visually using the Viewer included in OpenMVS and the `scene.mvs you try to reconstruct.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/cdcseacave/openMVS/issues/276#issuecomment-349797247, or mute the thread https://github.com/notifications/unsubscribe-auth/AeGN69m8GV0QwbRVzA7GXzvVKo4abmlVks5s9xYsgaJpZM4Q4GvM .

cdcseacave commented 6 years ago

The reconstruction looks good indeed, the problem is that you geo-reference the scene during SfM; due to reasons explained so many times in previous issues, you should do that only after MVS.

BigAloz commented 6 years ago

Ok thank you.

So related to you using floats in the algorithm.

I'll try it using a different coordinates system

By the way is there a limit on the amount of images that can be processed ? With processing on the cloud I have access to a large amount of cores and RAM.

I have a dataset with 1500 images which I would like run through this pipeline

On 7 Dec 2017 23:42, "cDc" notifications@github.com wrote:

The reconstruction looks good indeed, the problem is that you geo-reference the scene during SfM; due to reasons explained so many times in previous issues, you should do that only after MVS.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/cdcseacave/openMVS/issues/276#issuecomment-350005599, or mute the thread https://github.com/notifications/unsubscribe-auth/AeGN63Q7MdQOsKrsKVheSfHyDiFRo8qGks5s-AeBgaJpZM4Q4GvM .

cdcseacave commented 6 years ago

No limit, give it a try, depends also a lot on the quality settings you use. You can also use OpenMVG clustering algorithm to split the scene in multiple smaller parts and run OpenMVS on each of them.