-
Notifications
You must be signed in to change notification settings - Fork 9
Open
Description
I have a container in Docker running NodeODM:
[INFO] Initializing ODM 3.5.6 - Mon Aug 25 06:44:15 2025
[INFO] ==============
[INFO] 3d_tiles: False
[INFO] align: None
[INFO] auto_boundary: False
[INFO] auto_boundary_distance: 0
[INFO] bg_removal: False
[INFO] boundary: {}
[INFO] build_overviews: True
[INFO] camera_lens: brown
[INFO] cameras: {}
[INFO] cog: True
[INFO] copy_to: None
[INFO] crop: 3
[INFO] dem_decimation: 1
[INFO] dem_euclidean_map: False
[INFO] dem_gapfill_steps: 0
[INFO] dem_resolution: 8.0
[INFO] dsm: True
[INFO] dtm: True
[INFO] end_with: odm_postprocess
[INFO] fast_orthophoto: False
[INFO] feature_quality: medium
[INFO] feature_type: sift
[INFO] force_gps: True
[INFO] gcp: /var/www/data/060bc581-2363-4a30-bfba-e2fe3db50c56/gcp/gcp_list.txt
[INFO] geo: /var/www/data/060bc581-2363-4a30-bfba-e2fe3db50c56/gcp/geo.txt
[INFO] gltf: False
[INFO] gps_accuracy: 1.0
[INFO] gps_z_offset: 0
[INFO] ignore_gsd: False
[INFO] matcher_neighbors: 8
[INFO] matcher_order: 2
[INFO] matcher_type: flann
[INFO] max_concurrency: 28
[INFO] merge: all
[INFO] mesh_octree_depth: 8
[INFO] mesh_size: 200000
[INFO] min_num_features: 10000
[INFO] name: 060bc581-2363-4a30-bfba-e2fe3db50c56
[INFO] no_gpu: False
[INFO] optimize_disk_space: False
[INFO] orthophoto_compression: DEFLATE
[INFO] orthophoto_cutline: True
[INFO] orthophoto_kmz: False
[INFO] orthophoto_no_tiled: False
[INFO] orthophoto_png: False
[INFO] orthophoto_resolution: 2.0
[INFO] pc_classify: True
[INFO] pc_copc: True
[INFO] pc_csv: False
[INFO] pc_ept: True
[INFO] pc_filter: 5.0
[INFO] pc_las: False
[INFO] pc_quality: high
[INFO] pc_rectify: True
[INFO] pc_sample: 0.05
[INFO] pc_skip_geometric: True
[INFO] primary_band: auto
[INFO] project_path: /var/www/data/060bc581-2363-4a30-bfba-e2fe3db50c56
[INFO] radiometric_calibration: none
[INFO] rerun: None
[INFO] rerun_all: False
[INFO] rerun_from: ['dataset', 'split', 'merge', 'opensfm', 'openmvs', 'odm_filterpoints', 'odm_meshing', 'mvs_texturing', 'odm_georeferencing', 'odm_dem', 'odm_orthophoto', 'odm_report', 'odm_postprocess']
[INFO] rolling_shutter: False
[INFO] rolling_shutter_readout: 0
[INFO] sfm_algorithm: triangulation
[INFO] sfm_no_partial: False
[INFO] skip_3dmodel: False
[INFO] skip_band_alignment: False
[INFO] skip_orthophoto: False
[INFO] skip_report: False
[INFO] sky_removal: False
[INFO] sm_cluster: True
[INFO] sm_no_align: False
[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_keep_unseen_faces: False
[INFO] texturing_single_material: False
[INFO] texturing_skip_global_seam_leveling: False
[INFO] tiles: False
[INFO] use_3dmesh: True
[INFO] use_exif: False
[INFO] use_fixed_camera_params: False
[INFO] use_hybrid_bundle_adjustment: False
[INFO] video_limit: 500
[INFO] video_resolution: 4000
[INFO] ==============
[INFO] Running dataset stage
[INFO] Loading dataset from: /var/www/data/060bc581-2363-4a30-bfba-e2fe3db50c56/images
[INFO] Loading 1639 images
[INFO] Found image geolocation file
[INFO] Updated 1639 image positions
[INFO] Forcing GPS DOP to 1.0 for all images
[INFO] Setting camera lens to brown for all images
[INFO] Wrote images database: /var/www/data/060bc581-2363-4a30-bfba-e2fe3db50c56/images.json
[INFO] Found 1639 usable images
[INFO] 19 GCP points will be used for georeferencing
[INFO] Generated coords file from GCP: WGS84 UTM 15N
[INFO] Wrote /var/www/data/060bc581-2363-4a30-bfba-e2fe3db50c56/odm_georeferencing/odm_georeferencing_model_geo.txt
[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.
[crash_log.txt](https://github.com/user-attachments/files/21973258/crash_log.txt)
[INFO] Finished merge stage
[INFO] Running opensfm stage
[INFO] Maximum photo dimensions: 9504px
[INFO] Photo dimensions for feature extraction: 1188px
[WARNING] Georeferenced reconstruction, ignoring --matcher-order
[INFO] Checking for GPU as using SIFT for extracting features
[INFO] nvidia-smi detected
[INFO] popsift can handle texture size 1188x792
[INFO] Using GPU for extracting SIFT features
[INFO] Altitude data detected, enabling it for GPS alignment
[INFO] ['use_exif_size: no', 'flann_algorithm: KDTREE', 'feature_process_size: 1188', 'feature_min_frames: 10000', 'processes: 28', 'matching_gps_neighbors: 8', 'matching_gps_distance: 0', 'matching_graph_rounds: 0', 'optimize_camera_parameters: yes', 'reconstruction_algorithm: triangulation', 'undistorted_image_format: tif', 'bundle_outlier_filtering_type: AUTO', 'sift_peak_threshold: 0.066', 'align_orientation_prior: vertical', 'triangulation_type: ROBUST', 'retriangulation_ratio: 2', 'camera_projection_type: BROWN', 'matcher_type: FLANN', 'feature_type: SIFT_GPU', 'use_altitude_tag: yes', 'align_method: auto', 'local_bundle_radius: 0', 'bundle_use_gcp: yes', 'bundle_compensate_gps_bias: yes']
[...]
it crashes on the FPCFilter - v0.2:
[INFO] running "/code/SuperBuild/install/bin/FPCFilter" --input "/var/www/data/060bc581-2363-4a30-bfba-e2fe3db50c56/opensfm/undistorted/openmvs/scene_dense_dense_filtered.ply" --output "/var/www/data/060bc581-2363-4a30-bfba-e2fe3db50c56/odm_filterpoints/point_cloud.ply" --concurrency 28 --radius 0.05 --meank 16 --std 5.0 --stats "/var/www/data/060bc581-2363-4a30-bfba-e2fe3db50c56/odm_filterpoints/point_cloud_stats.json"
*** FPCFilter - v0.2 ***
?> Parameters:
input = /var/www/data/060bc581-2363-4a30-bfba-e2fe3db50c56/opensfm/undistorted/openmvs/scene_dense_dense_filtered.ply
output = /var/www/data/060bc581-2363-4a30-bfba-e2fe3db50c56/odm_filterpoints/point_cloud.ply
stats = /var/www/data/060bc581-2363-4a30-bfba-e2fe3db50c56/odm_filterpoints/point_cloud_stats.json
std = 5
radius = 0.05
meanK = 16
boundary = auto
concurrency = 28
verbose = no
-> Setting num_threads to 28
?> Skipping crop
-> Sampling
double free or corruption (out)
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 82, in execute
self.first_stage.run()
File "/code/opendm/types.py", line 470, in run
self.next_stage.run(outputs)
File "/code/opendm/types.py", line 470, in run
self.next_stage.run(outputs)
File "/code/opendm/types.py", line 470, in run
self.next_stage.run(outputs)
[Previous line repeated 2 more times]
File "/code/opendm/types.py", line 449, in run
self.process(self.args, outputs)
File "/code/stages/odm_filterpoints.py", line 52, in process
point_cloud.filter(inputPointCloud, tree.filtered_point_cloud, tree.filtered_point_cloud_stats,
File "/code/opendm/point_cloud.py", line 108, in filter
system.run('"%s" %s' % (context.fpcfilter_path, " ".join(args)))
File "/code/opendm/system.py", line 112, 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/
However, when I shell into the running container, it succeeds:
"/code/SuperBuild/install/bin/FPCFilter" --input "/var/www/data/060bc581-2363-4a30-bfba-e2fe3db50c56/opensfm/undistorted/openmvs/scene_dense_dense_filtered.ply" --output "/var/www/data/060bc581-2363-4a30-bfba-e2fe3db50c56/odm_filterpoints/point_cloud.ply" --concurrency 28 --radius 0.05 --meank 16 --std 5.0 --stats "/var/www/data/060bc581-2363-4a30-bfba-e2fe3db50c56/odm_filterpoints/point_cloud_stats.json"
*** FPCFilter - v0.2 ***
?> Parameters:
input = /var/www/data/060bc581-2363-4a30-bfba-e2fe3db50c56/opensfm/undistorted/openmvs/scene_dense_dense_filtered.ply
output = /var/www/data/060bc581-2363-4a30-bfba-e2fe3db50c56/odm_filterpoints/point_cloud.ply
stats = /var/www/data/060bc581-2363-4a30-bfba-e2fe3db50c56/odm_filterpoints/point_cloud_stats.json
std = 5
radius = 0.05
meanK = 16
boundary = auto
concurrency = 28
verbose = no
-> Setting num_threads to 28
?> Skipping crop
-> Sampling
?> Done in 84.27s
-> Statistical filtering
-> Spacing estimation completed (0.04 meters)
?> Done in 19.72s
-> Writing output
?> Done in 4.908s
?> Pipeline done in 108.9s
Which seems to rule out Docker limits on memory or cpu, as there shouldn't be a difference between the container running itself and running a shell inside the container. It's possible this is a ODM issue, but unclear.
Metadata
Metadata
Assignees
Labels
No labels