Dividing the odm_25dmesh into several tiles for texrecon. The orthophoto has some holes

Hello, everyone! I describe in detail some of my attempts and problems. Firstly, I used the “dem2mesh” to create “odm_25dmesh.ply” for the “mesh_dsm.tif”. Like this:


Because the entire mesh is too large and the number of images is 300, resulting in insufficient memory crash when “texrecon” calculates the texture map for “odm_25dmesh.ply”. Then I divided the “odm_25dmesh.ply” into several tiles. Like tihs:

These mesh tiles are a whole mesh(odm_25dmesh.ply) in meshlab.
I used the “texrecon” to calculate the texture mapping of each mesh tile separately. Like this:


These texture tiles are a whole in meshlab. Like:

Finally, I used “odm_orthophoto” to calculate the orthophoto for each texture tile separately. Like this:
0 7
I merges these orthophoto tiles into one whole. Like this:

But this whole orthophoto has some errors. There are some holes between the orthophoto tiles. The gap is about a pixel size. Like this:


Is there any possibility of improvement in the program “odm_orthophoto”? Can anyone give some good advice? Does anyone have a better way?
In addition, do anyone compute orthophoto for each dsm tile and then merge orthophoto tiles? Does anyone have a better way?
Thank you!

Is the whole dataset 300 photos? Even a modestly spec’d server should be able to process that in one go - what parameters are you using?

Hello! The whole dataset is 300 images. I used the default parameters. My computer memory is only 8G. More importantly, I try to calculate larger orthophoto in limited memory. Because I found that pix4d can compute orthophoto for each dsm tiles and merge orthophoto tiles in limited memory, so I made some attempts in ODM.

If you don’t have the budget for more RAM or one of the ODM processing services like webodm.net or survey.aero, I’d recommend creating a very large swap file and hope for the best. It’s going to be painfully slow, but you should get a result.

What’s a very large swap file? I don’t understand what you mean. Please explain the swap file. Thank you.

Thank you. I see it. But I want to solve the above problem.

You don’t have enough RAM to process the dataset. You can create extra RAM by using swap space, which treats a portion of your hard drive as RAM, which essentially increases the RAM available to you. Creating or extending a swap file is different for each operating system, so I’d recommend Googling "create swap space " where is your operating system (e.g. Linux, Windows, OSX, etc).

That’s a very clever workaround :slight_smile: One way to avoid the lines would have been to keep an overlap buffer between the meshes.

Have you tried to use split-merge by setting the --split option to something like 50? It will take a while to process, but might complete. https://docs.opendronemap.org/large.html

1 Like

Thank you for your tips. I had tried to use spilt-merge. It really takes a while.