Abort during local seam leveling

Hi,
my reconstruction failed and I am not sure what the problem is.
It aborts during loval seam leveling:
I have tried a few different settings starting with:
–dsm --dtm --dem-resolution 4
–orthophoto-resolution 1 --ignore-gsd --orthophoto-kmz
–resize-to -1
–mesh-octree-depth 14

After it aborted, I removed some of the setting and tried it again, which did not work.

Here is the log:

[INFO]    Finished odm_meshing stage
[INFO]    Running mvs_texturing stage
[WARNING] Found a valid ODM Texture file in: /datasets/Tropical_Regen_Block1_basemap/odm_texturing/odm_textured_model_geo.obj
[INFO]    Writing MVS Textured file in: /datasets/Tropical_Regen_Block1_basemap/odm_texturing_25d/odm_textured_model_geo.obj
[INFO]    Removing old tmp directory /datasets/Tropical_Regen_Block1_basemap/odm_texturing_25d/tmp
[INFO]    running "/code/SuperBuild/install/bin/texrecon" "/datasets/Tropical_Regen_Block1_basemap/opensfm/undistorted/reconstruction.nvm" "/datasets/Tropical_Regen_Block1_basemap/odm_meshing/odm_25dmesh.ply" "/datasets/Tropical_Regen_Block1_basemap/odm_texturing_25d/odm_textured_model_geo" -d gmi -o gauss_clamping -t none --no_intermediate_results    --nadir_mode  
/code/SuperBuild/install/bin/texrecon (built on Oct 13 2021, 21:14:35)
Load and prepare mesh: 
Reading PLY: 200733 verts... 399530 faces... done.
Warning: Zero-length normals detected: 0 face normals, 9 vertex normals
Generating texture views: 
NVM: Loading file...
NVM: Number of views: 1001
NVM: Number of features: 1199242

                                                                                
        Loading 100%... done. (Took 84.756s)
Building adjacency graph: 

                                                                                
        Adding edges 100%... done. (Took 0.883s)
        598521 total edges.
View selection:
        Building BVH from 399530 faces... done. (Took: 375 ms)

                                                                                
        Calculating face qualities 100%... done. (Took 87.952s)

                                                                                
        Postprocessing face infos 100%... done. (Took 0.181s)
        Maximum quality of a face within an image: 0.999988
        Clamping qualities to 0.997288 within normalization.
        Optimizing:
                Time[s] Energy
                0       80834
                1       79987
                1       72853
                2       69544
                2       68137
                3       67414
                3       67029
                3       66936
                4       66727
                4       66544
                5       66408
                5       66327
                6       66255
                6       66246
                6       66210
                7       66183
                7       66151
                8       66132
                8       66109
        8833 faces have not been seen
        Took: 98.31s
Generating texture patches:
        Running... done. (Took 72.806s)
        4408 texture patches.
Running global seam leveling:
        Create matrices for optimization...  done.
        Lhs dimensionality: 228166 x 228166
        Calculating adjustments:
                Color channel 0: CG took 96 iterations. Residual is 9.3873e-05
                Color channel 2: CG took 95 iterations. Residual is 9.97205e-05
                Color channel 1: CG took 96 iterations. Residual is 9.62447e-05
                Took 0.49 seconds

                                                                                
        Adjusting texture patches 100%... done. (Took 119.133s)
Running local seam leveling:
free(): invalid next size (normal)
Aborted (core dumped)

===== Dumping Info for Geeks (developers need this to fix bugs) =====
Child returned 134
Traceback (most recent call last):
  File "/code/stages/odm_app.py", line 94, in execute
    self.first_stage.run()
  File "/code/opendm/types.py", line 347, in run
    self.next_stage.run(outputs)
  File "/code/opendm/types.py", line 347, in run
    self.next_stage.run(outputs)
  File "/code/opendm/types.py", line 347, in run
    self.next_stage.run(outputs)
  [Previous line repeated 4 more times]
  File "/code/opendm/types.py", line 328, in run
    self.process(self.args, outputs)
  File "/code/stages/mvstex.py", line 108, in process
    system.run('"{bin}" "{nvm_file}" "{model}" "{out_dir}" '
  File "/code/opendm/system.py", line 106, in run
    raise SubprocessException("Child returned {}".format(retcode), retcode)
opendm.system.SubprocessException: Child returned 134

===== Done, human-readable information to follow... =====

[ERROR]   Uh oh! Processing stopped because of strange values in the reconstruction. This is often a sign that the input data has some issues or the software cannot deal with it. Have you followed best practices for data acquisition? See https://docs.opendronemap.org/flying/

Finally, I ran it with only
–fast-orthophoto
to see if that works. It still abort at the same step, but the error message is a bit different.

docker run -ti --rm \
> -v /ETA/Lars/odm/datasets:/datasets opendronemap/odm \
> --project-path /datasets Tropical_Regen_Block1_basemap \
> #--orthophoto-resolution 1 \
--fast-orthophoto [INFO]    Initializing ODM - Mon Nov 01 06:37:44  2021
[INFO]    ==============
[INFO]    auto_boundary: False
[INFO]    boundary: {}
[INFO]    build_overviews: False
[INFO]    camera_lens: auto
[INFO]    cameras: {}
[INFO]    cog: False
[INFO]    copy_to: None
[INFO]    crop: 3
[INFO]    debug: False
[INFO]    dem_decimation: 1
[INFO]    dem_euclidean_map: False
[INFO]    dem_gapfill_steps: 3
[INFO]    dem_resolution: 5
[INFO]    depthmap_resolution: 640
[INFO]    dsm: False
[INFO]    dtm: False
[INFO]    end_with: odm_postprocess
[INFO]    fast_orthophoto: False
[INFO]    feature_quality: high
[INFO]    feature_type: sift
[INFO]    force_gps: False
[INFO]    gcp: None
[INFO]    geo: None
[INFO]    gps_accuracy: 10
[INFO]    ignore_gsd: False
[INFO]    matcher_distance: 0
[INFO]    matcher_neighbors: 8
[INFO]    matcher_type: flann
[INFO]    max_concurrency: 32
[INFO]    merge: all
[INFO]    mesh_octree_depth: 11
[INFO]    mesh_size: 200000
[INFO]    min_num_features: 8000
[INFO]    name: Tropical_Regen_Block1_basemap
[INFO]    optimize_disk_space: False
[INFO]    orthophoto_compression: DEFLATE
[INFO]    orthophoto_cutline: False
[INFO]    orthophoto_kmz: False
[INFO]    orthophoto_no_tiled: False
[INFO]    orthophoto_png: False
[INFO]    orthophoto_resolution: 5
[INFO]    pc_classify: False
[INFO]    pc_csv: False
[INFO]    pc_ept: False
[INFO]    pc_filter: 2.5
[INFO]    pc_geometric: False
[INFO]    pc_las: False
[INFO]    pc_quality: medium
[INFO]    pc_rectify: False
[INFO]    pc_sample: 0
[INFO]    pc_tile: False
[INFO]    primary_band: auto
[INFO]    project_path: /datasets
[INFO]    radiometric_calibration: none
[INFO]    rerun: None
[INFO]    rerun_all: False
[INFO]    rerun_from: None
[INFO]    resize_to: 2048
[INFO]    skip_3dmodel: False
[INFO]    skip_band_alignment: False
[INFO]    skip_report: False
[INFO]    sm_cluster: None
[INFO]    smrf_scalar: 1.25
[INFO]    smrf_slope: 0.15
[INFO]    smrf_threshold: 0.5
[INFO]    smrf_window: 18.0
[INFO]    split: 999999
[INFO]    split_image_groups: None
[INFO]    split_overlap: 150
[INFO]    texturing_data_term: gmi
[INFO]    texturing_keep_unseen_faces: False
[INFO]    texturing_outlier_removal_type: gauss_clamping
[INFO]    texturing_skip_global_seam_leveling: False
[INFO]    texturing_skip_local_seam_leveling: False
[INFO]    texturing_tone_mapping: none
[INFO]    tiles: False
[INFO]    time: False
[INFO]    use_3dmesh: False
[INFO]    use_exif: False
[INFO]    use_fixed_camera_params: False
[INFO]    use_hybrid_bundle_adjustment: False
[INFO]    verbose: False
[INFO]    ==============
[INFO]    Running dataset stage
[INFO]    Loading dataset from: /datasets/Tropical_Regen_Block1_basemap/images
[INFO]    Loading images database: /datasets/Tropical_Regen_Block1_basemap/images.json
[INFO]    Found 1383 usable images
[INFO]    Coordinates file already exist: /datasets/Tropical_Regen_Block1_basemap/odm_georeferencing/coords.txt
[INFO]    Model geo file already exist: /datasets/Tropical_Regen_Block1_basemap/odm_georeferencing/odm_georeferencing_model_geo.txt
[INFO]    Parsing SRS header: WGS84 UTM 55S
[INFO]    Finished dataset stage
[INFO]    Running split stage
[INFO]    Normal dataset, will process all at once.
[INFO]    Finished split stage
[INFO]    Running merge stage
[INFO]    Normal dataset, nothing to merge.
[INFO]    Finished merge stage
[INFO]    Running opensfm stage
[WARNING] /datasets/Tropical_Regen_Block1_basemap/opensfm/image_list.txt already exists, not rerunning OpenSfM setup
[WARNING] Detect features already done: /datasets/Tropical_Regen_Block1_basemap/opensfm/features exists
[WARNING] Match features already done: /datasets/Tropical_Regen_Block1_basemap/opensfm/matches exists
[WARNING] Found a valid OpenSfM tracks file in: /datasets/Tropical_Regen_Block1_basemap/opensfm/tracks.csv
[WARNING] Found a valid OpenSfM reconstruction file in: /datasets/Tropical_Regen_Block1_basemap/opensfm/reconstruction.json
[INFO]    Already extracted cameras
[INFO]    Export reconstruction stats
[WARNING] Found existing reconstruction stats /datasets/Tropical_Regen_Block1_basemap/opensfm/stats/stats.json
[WARNING] Will skip exporting /datasets/Tropical_Regen_Block1_basemap/opensfm/reconstruction.geocoords.json
[INFO]    Undistorting /datasets/Tropical_Regen_Block1_basemap/opensfm ...
[WARNING] Already undistorted (nominal)
[WARNING] Found a valid OpenSfM NVM reconstruction file in: /datasets/Tropical_Regen_Block1_basemap/opensfm/undistorted/reconstruction.nvm
[INFO]    Finished opensfm stage
[INFO]    Running openmvs stage
[WARNING] Found a valid OpenMVS reconstruction file in: /datasets/Tropical_Regen_Block1_basemap/opensfm/undistorted/openmvs/scene_dense_dense_filtered.ply
[INFO]    Finished openmvs stage
[INFO]    Running odm_filterpoints stage
[WARNING] Found a valid point cloud file in: /datasets/Tropical_Regen_Block1_basemap/odm_filterpoints/point_cloud.ply
[INFO]    Finished odm_filterpoints stage
[INFO]    Running odm_meshing stage
[WARNING] Found a valid ODM Mesh file in: /datasets/Tropical_Regen_Block1_basemap/odm_meshing/odm_mesh.ply
[WARNING] Found a valid ODM 2.5D Mesh file in: /datasets/Tropical_Regen_Block1_basemap/odm_meshing/odm_25dmesh.ply
[INFO]    Finished odm_meshing stage
[INFO]    Running mvs_texturing stage
[WARNING] Found a valid ODM Texture file in: /datasets/Tropical_Regen_Block1_basemap/odm_texturing/odm_textured_model_geo.obj
[INFO]    Writing MVS Textured file in: /datasets/Tropical_Regen_Block1_basemap/odm_texturing_25d/odm_textured_model_geo.obj
[INFO]    Removing old tmp directory /datasets/Tropical_Regen_Block1_basemap/odm_texturing_25d/tmp
[INFO]    running "/code/SuperBuild/install/bin/texrecon" "/datasets/Tropical_Regen_Block1_basemap/opensfm/undistorted/reconstruction.nvm" "/datasets/Tropical_Regen_Block1_basemap/odm_meshing/odm_25dmesh.ply" "/datasets/Tropical_Regen_Block1_basemap/odm_texturing_25d/odm_textured_model_geo" -d gmi -o gauss_clamping -t none --no_intermediate_results    --nadir_mode  
/code/SuperBuild/install/bin/texrecon (built on Oct 13 2021, 21:14:35)
Load and prepare mesh: 
Reading PLY: 200733 verts... 399530 faces... done.
Warning: Zero-length normals detected: 0 face normals, 9 vertex normals
Generating texture views: 
NVM: Loading file...
NVM: Number of views: 1001
NVM: Number of features: 1199242

                                                                                
        Loading 100%... done. (Took 153.404s)
Building adjacency graph: 

                                                                                
        Adding edges 100%... done. (Took 0.91s)
        598521 total edges.
View selection:
        Building BVH from 399530 faces... done. (Took: 383 ms)

                                                                                
        Calculating face qualities 100%... done. (Took 86.404s)

                                                                                
        Postprocessing face infos 100%... done. (Took 0.179s)
        Maximum quality of a face within an image: 0.999988
        Clamping qualities to 0.997288 within normalization.
        Optimizing:
                Time[s] Energy
                0       81133
                1       80238
                1       73115
                2       69705
                2       68264
                2       67499
                3       67047
                3       66986
                4       66747
                4       66577
                5       66428
                5       66313
                5       66250
                6       66250
                6       66209
                6       66176
                7       66150
                7       66125
                8       66107
        8833 faces have not been seen
        Took: 96.47s
Generating texture patches:
        Running... done. (Took 72.62s)
        4373 texture patches.
Running global seam leveling:
        Create matrices for optimization...  done.
        Lhs dimensionality: 228065 x 228065
        Calculating adjustments:
                Color channel 0: CG took 95 iterations. Residual is 9.24459e-05
                Color channel 2: CG took 95 iterations. Residual is 9.70899e-05
                Color channel 1: CG took 101 iterations. Residual is 9.77669e-05
                Took 0.484 seconds

                                                                                
        Adjusting texture patches 100%... done. (Took 117.316s)
Running local seam leveling:
Received signal SIGSEGV (segmentation fault)
Obtained 11 stack frames: 0x561d650e2216 0x561d650e2324 0x7f35ec66c040 0x7f35ec6be93d 0x7f35ec6c27a8 0x561d6509c25d 0x561d65023334 0x561d650155d9 0x7f35ec871166 0x7f35ec820450 0x7f35ec742d53
/code/SuperBuild/install/bin/texrecon(_ZN4util6system17print_stack_traceEv+0x36)[0x561d650e2216]
/code/SuperBuild/install/bin/texrecon(+0x1d1324)[0x561d650e2324]
/lib/x86_64-linux-gnu/libc.so.6(+0x41040)[0x7f35ec66c040]
/lib/x86_64-linux-gnu/libc.so.6(+0x9393d)[0x7f35ec6be93d]
/lib/x86_64-linux-gnu/libc.so.6(cfree+0x68)[0x7f35ec6c27a8]
/code/SuperBuild/install/bin/texrecon(_Z13poisson_blendSt10shared_ptrIKN3mve5ImageIfEEES_IKNS1_IhEEES_IS2_Ef+0xc3d)[0x561d6509c25d]
/code/SuperBuild/install/bin/texrecon(_ZN12TexturePatch5blendESt10shared_ptrIKN3mve5ImageIfEEE+0xa4)[0x561d65023334]
/code/SuperBuild/install/bin/texrecon(+0x1045d9)[0x561d650155d9]
/lib/x86_64-linux-gnu/libgomp.so.1(+0x1d166)[0x7f35ec871166]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x9450)[0x7f35ec820450]
/lib/x86_64-linux-gnu/libc.so.6(clone+0x43)[0x7f35ec742d53]
Segmentation fault

===== Dumping Info for Geeks (developers need this to fix bugs) =====
Child returned 1
Traceback (most recent call last):
  File "/code/stages/odm_app.py", line 94, in execute
    self.first_stage.run()
  File "/code/opendm/types.py", line 347, in run
    self.next_stage.run(outputs)
  File "/code/opendm/types.py", line 347, in run
    self.next_stage.run(outputs)
  File "/code/opendm/types.py", line 347, in run
    self.next_stage.run(outputs)
  [Previous line repeated 4 more times]
  File "/code/opendm/types.py", line 328, in run
    self.process(self.args, outputs)
  File "/code/stages/mvstex.py", line 108, in process
    system.run('"{bin}" "{nvm_file}" "{model}" "{out_dir}" '
  File "/code/opendm/system.py", line 106, in run
    raise SubprocessException("Child returned {}".format(retcode), retcode)
opendm.system.SubprocessException: Child returned 1

===== Done, human-readable information to follow... =====

[ERROR]   Uh oh! Processing stopped because of strange values in the reconstruction. This is often a sign that the input data has some issues or the software cannot deal with it. Have you followed best practices for data acquisition? See https://docs.opendronemap.org/flying/

The dataset consist of 1387 photos with >25MB each (apologies for not posting any). I can put a few into a cloud service, if that helps.

The photos have minimal overlap (70% front, 60% side) but that worked on a smaller dataset.

Does anyone has an idea what went wrong here?
Thanks!

1 Like

Welcome!

Sorry you’re having a bit of trouble.

I would say that in general, I’d avoid --ignore-GSD, haha.

What is the imaged scene of? Lots of good texture and contrast?

Maybe increase the --min-num-features and --matcher-neighbors and try processing again with restart from load dataset to avoid using any existing checkpoints that may be problematic.

Hi Saijin,
Thanks fo rmuch for your quick response and advise!
The photos are mainly of a grassy and bushy area with forest around. So the contrast and texture is more in the details. There are only a few structures and a good number of trees.

I used --ignore-gsd to make sure the resolution is high, but I will better turn it off. I had it tured off in the last run that was with minimal settings.

I will try to increase the parameters as suggested and run it again.
Thanks!

1 Like

Update:
The recommendations worked!
I increased --min-num-features (from 8000 to 16000) and --matcher-neighbors (from 8 to 16) and the mapping did not abort!
Thanks, Saijin!!!

Now I try it with –resize-to -1 for better resolution
and with –mesh-octree-depth 14 to decrease the glitches at the vegetation.

2 Likes

Sounds like you’re well on your way!

Please post what you get if you’d like. We love seeing what folks are doing!

Unfortunatley it crashed again :frowning: (I was on leave for a week so I could not follow up earlier).

I run the same dataset but this time without resizing (using 45MP photos)
(–dsm --dtm --dem-resolution 4 --resize-to -1 --orthophoto-kmz --mesh-octree-depth 14 --min-num-features 16000 --matcher-neighbors 16 )

Here is the last bit of the log. Do you (or anybody) have an idea what went wrong?

Filtering /datasets/Tropical_Regen_Block1_basemap_highres/odm_filterpoints/parts/part_226.ply (statistical, meanK 16, standard deviation 2.5)
[INFO]    running pdal pipeline -i /tmp/tmpr7asunuw.json > /dev/null 2>&1
[INFO]    Filtering /datasets/Tropical_Regen_Block1_basemap_highres/odm_filterpoints/parts/part_478.ply (statistical, meanK 16, standard deviation 2.5)
[INFO]    Filtering /datasets/Tropical_Regen_Block1_basemap_highres/odm_filterpoints/parts/part_264.ply (statistical, meanK 16, standard deviation 2.5)
[INFO]    running pdal pipeline -i /tmp/tmp2_7c23bn.json > /dev/null 2>&1
[INFO]    running pdal pipeline -i /tmp/tmpw327acs1.json > /dev/null 2>&1
[INFO]    Merging 541 point cloud chunks to /datasets/Tropical_Regen_Block1_basemap_highres/odm_filterpoints/point_cloud.ply
[INFO]    Finished odm_filterpoints stage
[INFO]    Running odm_meshing stage
[INFO]    Writing ODM Mesh file in: /datasets/Tropical_Regen_Block1_basemap_highres/odm_meshing/odm_mesh.ply
[INFO]    running "/code/SuperBuild/install/bin/PoissonRecon" --in "/datasets/Tropical_Regen_Block1_basemap_highres/odm_filterpoints/point_cloud.ply" --out "/datasets/Tropical_Regen_Block1_basemap_highres/odm_meshing/odm_mesh.dirty.ply" --depth 14 --pointWeight 4.0 --samplesPerNode 1.0 --threads 31 --maxMemory 185 --bType 2 --linearFit 
Segmentation fault (core dumped)
[WARNING] Child returned 139
[WARNING] PoissonRecon failed with 15 threads, let's retry with 7...
[INFO]    running "/code/SuperBuild/install/bin/PoissonRecon" --in "/datasets/Tropical_Regen_Block1_basemap_highres/odm_filterpoints/point_cloud.ply" --out "/datasets/Tropical_Regen_Block1_basemap_highres/odm_meshing/odm_mesh.dirty.ply" --depth 14 --pointWeight 4.0 --samplesPerNode 1.0 --threads 15 --maxMemory 185 --bType 2 --linearFit 
Segmentation fault (core dumped)
[WARNING] Child returned 139
[WARNING] PoissonRecon failed with 7 threads, let's retry with 3...
[INFO]    running "/code/SuperBuild/install/bin/PoissonRecon" --in "/datasets/Tropical_Regen_Block1_basemap_highres/odm_filterpoints/point_cloud.ply" --out "/datasets/Tropical_Regen_Block1_basemap_highres/odm_meshing/odm_mesh.dirty.ply" --depth 14 --pointWeight 4.0 --samplesPerNode 1.0 --threads 7 --maxMemory 185 --bType 2 --linearFit 
Segmentation fault (core dumped)
[WARNING] Child returned 139
[WARNING] PoissonRecon failed with 3 threads, let's retry with 1...
[INFO]    running "/code/SuperBuild/install/bin/PoissonRecon" --in "/datasets/Tropical_Regen_Block1_basemap_highres/odm_filterpoints/point_cloud.ply" --out "/datasets/Tropical_Regen_Block1_basemap_highres/odm_meshing/odm_mesh.dirty.ply" --depth 14 --pointWeight 4.0 --samplesPerNode 1.0 --threads 3 --maxMemory 185 --bType 2 --linearFit 
Segmentation fault (core dumped)
[WARNING] Child returned 139
[WARNING] PoissonRecon failed with 1 threads, let's retry with 0...
[INFO]    running "/code/SuperBuild/install/bin/PoissonRecon" --in "/datasets/Tropical_Regen_Block1_basemap_highres/odm_filterpoints/point_cloud.ply" --out "/datasets/Tropical_Regen_Block1_basemap_highres/odm_meshing/odm_mesh.dirty.ply" --depth 14 --pointWeight 4.0 --samplesPerNode 1.0 --threads 1 --maxMemory 185 --bType 2 --linearFit 
Segmentation fault (core dumped)
[WARNING] Child returned 139
[INFO]    running "/code/SuperBuild/install/bin/OpenMVS/ReconstructMesh" -i "/datasets/Tropical_Regen_Block1_basemap_highres/odm_meshing/odm_mesh.dirty.ply" -o "/datasets/Tropical_Regen_Block1_basemap_highres/odm_meshing/odm_mesh.ply" --remove-spikes 0 --remove-spurious 20 --smooth 0 --target-face-num 400000 
14:36:15 [App     ] Build date: Oct 13 2021, 21:19:36
14:36:15 [App     ] CPU: Intel(R) Xeon(R) CPU E5-2630 v3 @ 2.40GHz (32 cores)
14:36:15 [App     ] RAM: 251.83GB Physical Memory 29.92GB Virtual Memory
14:36:15 [App     ] OS: Linux 5.11.0-37-generic (x86_64)
14:36:15 [App     ] SSE & AVX compatible CPU & OS detected
14:36:15 [App     ] Command line: -i /datasets/Tropical_Regen_Block1_basemap_highres/odm_meshing/odm_mesh.dirty.ply -o /datasets/Tropical_Regen_Block1_basemap_highres/odm_meshing/odm_mesh.ply --remove-spikes 0 --remove-spurious 20 --smooth 0 --target-face-num 400000

===== Dumping Info for Geeks (developers need this to fix bugs) =====
Child returned 1
Traceback (most recent call last):
  File "/code/stages/odm_app.py", line 94, in execute
    self.first_stage.run()
  File "/code/opendm/types.py", line 347, in run
    self.next_stage.run(outputs)
  File "/code/opendm/types.py", line 347, in run
    self.next_stage.run(outputs)
  File "/code/opendm/types.py", line 347, in run
    self.next_stage.run(outputs)
  [Previous line repeated 3 more times]
  File "/code/opendm/types.py", line 328, in run
    self.process(self.args, outputs)
  File "/code/stages/odm_meshing.py", line 24, in process
    mesh.screened_poisson_reconstruction(tree.filtered_point_cloud,
  File "/code/opendm/mesh.py", line 207, in screened_poisson_reconstruction
    system.run('"{reconstructmesh}" -i "{infile}" '
  File "/code/opendm/system.py", line 106, in run
    raise SubprocessException("Child returned {}".format(retcode), retcode)
opendm.system.SubprocessException: Child returned 1

===== Done, human-readable information to follow... =====

[ERROR]   Uh oh! Processing stopped because of strange values in the reconstruction. This is often a sign that the input data has some issues or the software cannot deal with it. Have you followed best practices for data acquisition? See https://docs.opendronemap.org/flying/
1 Like

Avoid ignore-GSD? Can it make things bad?

3 Likes

Looks like Out-Of-Memory again. Maybe drop mesh octree to 13?

1 Like

It seems --ignore-gsd causes a higher memory usage.

The danger with --ignore-gsd is that it throws away some memory optimization and other goodies, so you may need more RAM, if your dataset is sufficiently large.

3 Likes

Massively more. It’s pretty drastic, to be honest.

2 Likes

But ignoring GSD is better for urban settings right or when there’s just many hight differences?

The strange thing is that during the matching and dense reconstruction ram isn’t a problem, but at the end there’s a huge spike in ram use. What is happening at the end that makes the use of ram spike? Maybe that part needs to be optimised.

1 Like

I don’t think it’d be as important for a regular urban scene as you may think.

Last few steps are point cloud filtering and composition, and model meshing and texture mapping.

1 Like

I have that book on ODM, as it is explain it looks like it has a huge impact on areas with big differences in hight.

I’ve set the Ortophoto and DSM resolution to 20mm, will unchecking ignore-GSD change anything? Does ignore-GSD affect the pointcloud?

1 Like

The book is fantastic, but was written prior to lots of massive changes. I would test to verify you need ignore-gsd. Almost every memory failure we see is due to using this flag, which throws away most of the memory optimization in ODM, often with (IMO) little improvement.

3 Likes

So maybe checking that box is the source of a lot of problems I’ve been experiencing.

3 Likes

Yes, as I’ve been trying to convince folks of :rofl:

My next step is to make it ask you to confirm like, 30 times before it lets you use it :crazy_face:

2 Likes

But does it affect the pointcloud?

1 Like

It can, but I don’t think it is as important for the point cloud as other, less problematic settings are.

ODM does a pretty fantastic job of accurate GSD estimation, so the onus of tuning points mostly falls on --pc-quality, --pc-filter, --pc-sample.

–ignore-gsd is really only useful in certain edge cases, and even then carries a ton of baggage that makes it often not the right or optimal choice.

Sort of like using a cannon to scratch an itch on your leg, if you get me.

1 Like

I’ve taken drone photos with a GSD of 10mm to get good point clouds. It’s been said that you get an uncertainty of gsd * 2 in x/y and gsd * 3 in hight. So I would not want to make things worse.

1 Like

Update:
It worked with mesh-octree-depth set to 13, but the output is low resulution. (as you can see in the uploaded photos)
original:


orthophoto (low res and glitchy):

I tried to go back to set --ignore-gsd and --orthophoto-resolution 1 , but it aborted again. Porbably due to the memory issues discussed here.

I read that without setting --ignore-gsd the resolution of the othrophoto cannot be changed. How can one get to the resoution that are given in the original pictures? The discrepancy is rather large.

2 Likes