OOM - Choosing sane resolution with unitless input data

Even though 0.1mm is a reasonable estimate of the actual “GSD” with just 74 phone images of a bonsai, it cant be used… unless you have over a Terrabyte of RAM it would seem. Failed when generating the orthophoto, which I don’t even want, but disabling the ortho guarantees a crash.

[WARNING] Cannot calculate GSD, using requested resolution of 0.01
[INFO] running “D:\WebODM\resources\app\apps\ODM\SuperBuild\install\bin\odm_orthophoto” -inputFiles “D:\WebODM\resources\app\apps\NodeODM\data\c72f3ad8-d97d-4aaa-a2ad-00a00cc767ad\odm_texturing\odm_textured_model_geo.obj” -logFile “D:\WebODM\resources\app\apps\NodeODM\data\c72f3ad8-d97d-4aaa-a2ad-00a00cc767ad\odm_orthophoto\odm_orthophoto_log.txt” -outputFile “D:\WebODM\resources\app\apps\NodeODM\data\c72f3ad8-d97d-4aaa-a2ad-00a00cc767ad\odm_orthophoto\odm_orthophoto_render.tif” -resolution 10000.0 -outputCornerFile “D:\WebODM\resources\app\apps\NodeODM\data\c72f3ad8-d97d-4aaa-a2ad-00a00cc767ad\odm_orthophoto\odm_orthophoto_corners.txt”
Error in OdmOrthoPhoto:
OpenCV(4.5.0) D:\a\ODM\ODM\SuperBuild\src\opencv\modules\core\src\alloc.cpp:73: error: (-4:Insufficient memory) Failed to allocate 1040882109372 bytes in function ‘cv::OutOfMemoryError’

Trying again with 0.3mm as a “GSD”

1 Like

What settings are you using for your object reconstructions like this one? I skip everything except the pointcloud and that’s been a nice speedup for me.

1 Like

This worked:

74 images 00:39:02
|Processing Node:|node-odm-1 (auto)|
|Options:|auto-boundary: true, feature-quality: ultra, mesh-octree-depth: 12, mesh-size: 300000, min-num-features: 12000, orthophoto-resolution: 0.05, pc-filter: 5, pc-quality: ultra, resize-to: -1, use-3dmesh: true|
|Area:|3,043.14 m²|
|Reconstructed Points:|9,443,483|

I was trying to improve the 3D model, which had incorrectly placed bits of textures and a few holes. I reduced GSD to 0.01 and increased Octree_depth to 13, and mesh size to 350000, which gave OOM

The couple of times I’ve tried skip ortho, it failed, and you suggested maybe just leave it at default


What is the size the model comes out as? If it isn’t coming out in real world sizes but larger and you are estimating a GSD that is small, you can easily OOM.


With GSD set to 0.05cm, it’s 46GB, and with GSD 0.03cm its enormous, 112GB! In both cases it’s apparently too large to show dimensions in file properties.
The reason I set it to around the real-life value was that if left at default, the ortho looks very pixelated and it shows as covering a ridiculously large area, hundreds or thousands of times reality. It’s not an output I even want, it was more of a test to see what happened, and now I know :slight_smile:

the 3D textured model is slightly worse with these settings:

||auto-boundary: true, dem-gapfill-steps: 4, feature-quality: ultra, mesh-octree-depth: 13, mesh-size: 350000, min-num-features: 13000, orthophoto-resolution: 0.03, pc-filter: 3, pc-quality: ultra, resize-to: -1, texturing-keep-unseen-faces: true, use-3dmesh: true, rerun-from: odm_dem|
|Area:|2,873.72 m²|

I saw that 235GB of memory was in use towards the end of the task, so it’s easy to see why I saw OOM with the GSD set to 0.01cm.

But I notice the area is still ridiculous- it’s a bonsai, not a huge tree!

1 Like

Since you have no reference system on the input data, you can’t expect anything but a random size on the output. If you measure the model in those CC or meshlab, then you’ll have enough info to choose a sane orthophoto resolution. And, you can choose that sane resolution and then choose to rerun from orthophoto stage and save time.


This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.