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

2 Likes

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.

2 Likes

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.

2 Likes

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