Not enough memory and technical specifications

Hi everyone,

I’m Hugo, I’m new here and I’m from Portugal. I’m also new to the drone world and the mapping and process software and for now is being a good challenge.

Recently I happily found this amazing tool and forum to share and unfortunately I’m having some troubles processing the images. Looked for the topic and found some info but nothing very clear to me. So I’m having the “Not enough memory” warning and can’t do much. I only have 8GB RAM.

Here’s my diagnostics:

And my hardware is an 27" iMac from 2020:
3,8 GHz 8-Core Intel Core i7
8 GB 2667 MHz DDR4
and if it’s important: AMD Radeon Pro 5500 XT 8 GB

So reading the forum I saw that I need at least 16GB RAM. I’m doing some mapping for agriculture purposes. For now I’m trying to process 1000/1500 images done with a Phantom 4 pro v2. If I upgrade my memory to 32GB will be enough? Or should I upgrade directly to 64GB?

The other option, I guess, is doing it by blocks of maybe 500 images and then put the result all together, it will be 3/4 big images? Can I do this with webODM? Or should I use other image software and do it by “hand”?

And If reduce the size/quality of the images obtained with the drone and process it. Would it be possible to do it? Or with 32/64GB I have to reduce them anyways? Right now each image has an average of 8Mb.

Thank you

I’m doing 500 * 20mp images with 64gb ram but I have to use split-merge. I split at 250 images but with ortophoto I have to go even lower.

So the more ram you can have the better.

To use gpu it needs to be a Nvidia with Cuda cores.

Thank you for the info! Good to know. I’m starting with ortophotos and if it is like that I see that the processing really needs some top tech. Will try to install the maximum RAM I can. How do you split-merge. Is there any function?

There the “plit-merge” function with “split-overlap” for large datasets that can’t be processed as a whole.

curious why you are having to use split merge with those machine specs. I have 64gb as well and can reguarly process more than 800 images without split merge with high settings.

If I try and use ultra it will usually fail with not enough memory and that includes the 128gb of virtual it uses as well.

I have everything on ultra.

It can do more than 250 images at the time but for larger sets it seems to be right.

With 96GB RAM I can run 881 images on ultra/ultra with no problems. It does take a few days though.
I’ve given up wasting time with split-merge, as it has failed on every attempt, usually after quite a few days.

Hi @hugof,
I did some testing with different amounts of RAM. I hope to find soon some time to publish them here.
But with 16-32Gbyte of RAM and a big enough pagefile and not locating the pagefile on a HDD but at least SSD or even NVMe SSD you should not have problems.

For processing 1000-1500 pictures 32Gb of RAM should be minimum, more is always better.
In one of my last processes I computed 1413 images with feature- and pc-quality high in around 9 hours and memory usage peaked at ~80Gbyte. Roughly 20Gbyte of that were swapfile.
So even 32Gbyte of RAM should do, just make sure to make 2x or 3x RAM size as pagefile available.

As @Gordon says: split-merge is quite tricky.
Sometimes the submodels would not merge well, be far apart in elevation or mostly … they just fail after 4-5 days of waiting.

Thank you, great info! I will try to go to 64Gb RAM. I have a 500Gb SSD with more less 300Gb free so don’t think that would be a problem. I will try with this configuration and see how it goes. For what you say I guess that the ultra option is something like high resolution.

Yes, 300Gbyte of SSD is good to have. Though during processing things can really swell up.
The other day my 1TB SSD ran out of space with a process. It was a big job and the SSD had around 300Gbyte of space available.
But you always have the option to use the “optimize-disk-space” function under settings.
At times I simply move the docker folder to a HDD with several terrabytes and only keep the pagefile on the SSD.

feature- and pc-quality have high and ultra as options and there is a humongous difference in resources needed. Somewhere in the forum or in the documentation you can read that it relates to the size of the image that is used for feature extraction or pointcloud creation. Ultra is using the image 1:1 and high I think is something like 0,75 of actual image size. And nope, this has nothing to do with the resize-to setting :grin:

Ok, good to know that those options exist. Have to try with them. For now just need to update the RAM and see how it goes :smiley:

Are using docker or a native windows install. Trying to get webodm to work on my system with 16gig ram 300 images high resolution does not seem to work. maybe I’m doing somthing wrong worked fine with smaller datasets 75 images

Docker on Linux (Ubuntu 20.04.5 LTS). But that should not make a major difference.
For 300 images be prepared to have >40Gb of memory available.
In case you run WebODM under Windows, enlarge the pagefile. If you have the space on your disk, give it 64-128Gb. That plus your physical RAM should be good for small-medium datasets.
But that is just a guess:

that WebODM would through you a “not enough memory” message?!

If that is not the case, post the error code you are getting and we can have a look.

Welcome!

This normally means you’re running out of RAM. Which makes sense for 300 images on 16GB RAM.

Thanks for responding
yes I get " not enough memory " and webODM seems to freeze or maybe I just thought it did.
I have an 8 core intel Zeon cpu would all the cores be automatically be assigned to webODM or is that done manually in the wslconfig file. The page file size is set in the wslconfig. Right? so you saying set the swapfile size to 128gb

I’m running docker and windows 10. I do have 250gb free space on a SSD.

I am not familiar with Windows, since I mostly work with Linux.
But wslconfig should allow you to dedicate resources to your Linux Subsystem.
Yet I think the WebODM installation is running under Docker in Windows?!
At least when I read the installation instructions on the Github page:

So I guess you would have to open the Docker Desktop software and there you can set the resources for the Docker containers.

But you still need to change the actual size of your page file or virtual memory as Microsoft may call it, you can follow the instructions here:

Yep, if you have the space …

If you also have the Docker container on the same drive, it may get a bit tight, especially during processing. If you get in trouble use the optimize_disk_space setting in WebODM, which will reduce the storage usage during processing. Storage meaning disk or SSD usage, not memory.