We’re attempting to test out WebODM with 42MP images, 201 in the set. Currently we seem to OOM even with 16GB RAM, 32GB swap. I assume using full resolution is advantageous. I was also looking at ClusterODM, and noticed for a 201 image set on AWS, it seems to recommend an M5.large instance (8GB RAM).
So I have three questions:
How much memory should I expect to use, do you think?
Are the images too large? I’d image more is better.
Is it possible to configure ClusterODM to look at image size, and not just quantity?
Thank you very much with 1 & 2. Definitely helps us understand the scale we should be dealing with.
For 3. I’m referring to this document. It appears I can tell ClusterODM to spin up instances based on quantity of images, but I don’t see how to get it to factor in the size of the images, which seems to be relevant.
32GB + 32GB swap should do it. But it depends on the settings, the altitude of the flight, and the output orthophoto/dsm resolution.
ODM should be able to handle those. But resizing will reduce both memory usage and improve runtime. Do you need super-high resolution outputs? If no, then resize.
Please provide a update on your rendering. Looking to the future I am wondering about a 48to 55 MB photos in system requirements. You can provide that answer.
I am rendering about 40 photos 21MP pushing ODM into high gear can clearly see a person’s eye … solid clean color pupil with white color around it. ODM is great!!!
I will, I’m currently investigating into having ClusterODM scale depending on the size of the images.
A random guess based on our tests would be simply 8-16GB RAM should do the trick, 8GB swap just in case, as your set is around 1/8 the size of our set. This is a rough guess though, I haven’t done a lot of testing yet.
Do you think it’s reasonable to estimate memory usage by only factoring in total image size? I was thinking if I just multiply the total size by 8, add 500MB on, that might be a “reasonable” estimation. Hopefully a better estimate than just using image count anyways.
So as an efficient solution, grab the MP from an image (using image-pixels or something), multiply that number by the total images? If that’s all, I’ll work on implementing that.