ModuleNotFoundError: No module named 'packaging' when running with Singularity

How did you install ODM? (Docker, installer, natively, …)?

Singularity
singularity pull --disable-cache docker://opendronemap/odm:latest
singularity pull --disable-cache docker://opendronemap/odm:2.8.6

Using singularity 3.9.6
Currently Loaded Modulefiles:

  1. singularity/3.9.6(default)

What is the problem?

I was testing out using Singularity to run the container for jobs on a HPC cluster but for some reason when I try to execute a simple test job I get the error below:

[[email protected] odm_processing_code]$ singularity run --bind $images_dir:/$output_dir/code/images --writable-tmpfs odm_latest.sif --orthophoto-png --dtm --orthophoto-kmz --project-path $output_dir
[INFO]    DTM is turned on, automatically turning on point cloud classification
[INFO]    Initializing ODM ? - Tue Jul 19 04:12:41  2022
[INFO]    ==============
[INFO]    3d_tiles: False
[INFO]    auto_boundary: False
[INFO]    auto_boundary_distance: 0
[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: True
[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_neighbors: 0
[INFO]    matcher_type: flann
[INFO]    max_concurrency: 36
[INFO]    merge: all
[INFO]    mesh_octree_depth: 11
[INFO]    mesh_size: 200000
[INFO]    min_num_features: 10000
[INFO]    name: code
[INFO]    no_gpu: False
[INFO]    optimize_disk_space: False
[INFO]    orthophoto_compression: DEFLATE
[INFO]    orthophoto_cutline: False
[INFO]    orthophoto_kmz: True
[INFO]    orthophoto_no_tiled: False
[INFO]    orthophoto_png: True
[INFO]    orthophoto_resolution: 5
[INFO]    pc_classify: True
[INFO]    pc_copc: 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: /data2/RS_GIS_Data/UAS_Data/NGEEArctic/UAS_Flights/Seward_2021/Skydio2/Kougarok/20210816/Flight_2/odm
[INFO]    radiometric_calibration: none
[INFO]    rerun: None
[INFO]    rerun_all: False
[INFO]    rerun_from: None
[INFO]    resize_to: 2048
[INFO]    rolling_shutter: False
[INFO]    rolling_shutter_readout: 0
[INFO]    sfm_algorithm: incremental
[INFO]    skip_3dmodel: False
[INFO]    skip_band_alignment: False
[INFO]    skip_orthophoto: False
[INFO]    skip_report: False
[INFO]    sky_removal: 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: /data2/RS_GIS_Data/UAS_Data/NGEEArctic/UAS_Flights/Seward_2021/Skydio2/Kougarok/20210816/Flight_2/odm/code/images
[INFO]    Loading 187 images
[INFO]    Wrote images database: /data2/RS_GIS_Data/UAS_Data/NGEEArctic/UAS_Flights/Seward_2021/Skydio2/Kougarok/20210816/Flight_2/odm/code/images.json
[INFO]    Found 187 usable images
[INFO]    Parsing SRS header: WGS84 UTM 3N
[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
[INFO]    Maximum photo dimensions: 4056px
[INFO]    Photo dimensions for feature extraction: 2028px
[INFO]    nvidia-smi not found in PATH, using CPU
[INFO]    Altitude data detected, enabling it for GPS alignment
[INFO]    ['use_exif_size: no', 'flann_algorithm: KDTREE', 'feature_process_size: 2028', 'feature_min_frames: 10000', 'processes: 36', 'matching_gps_neighbors: 0', 'matching_gps_distance: 0', 'matching_graph_rounds: 50', 'optimize_camera_parameters: yes', 'reconstruction_algorithm: incremental', 'undistorted_image_format: tif', 'bundle_outlier_filtering_type: AUTO', 'sift_peak_threshold: 0.066', 'align_orientation_prior: vertical', 'triangulation_type: ROBUST', 'retriangulation_ratio: 2', 'matcher_type: FLANN', 'feature_type: SIFT', 'use_altitude_tag: yes', 'align_method: auto', 'local_bundle_radius: 0']
[INFO]    Wrote reference_lla.json
[INFO]    running "/code/SuperBuild/install/bin/opensfm/bin/opensfm" detect_features "/data2/RS_GIS_Data/UAS_Data/NGEEArctic/UAS_Flights/Seward_2021/Skydio2/Kougarok/20210816/Flight_2/odm/code/opensfm"
Traceback (most recent call last):
  File "/code/SuperBuild/install/bin/opensfm/bin/opensfm_main.py", line 9, in <module>
    from opensfm import commands
  File "/code/SuperBuild/install/bin/opensfm/opensfm/commands/__init__.py", line 1, in <module>
    from . import (
  File "/code/SuperBuild/install/bin/opensfm/opensfm/commands/compute_statistics.py", line 4, in <module>
    from opensfm.actions import compute_statistics
  File "/code/SuperBuild/install/bin/opensfm/opensfm/actions/compute_statistics.py", line 5, in <module>
    from opensfm import stats
  File "/code/SuperBuild/install/bin/opensfm/opensfm/stats.py", line 13, in <module>
    import matplotlib as mpl
  File "/home/sserbin/.local/lib/python3.9/site-packages/matplotlib/__init__.py", line 105, in <module>
    from packaging.version import parse as parse_version
ModuleNotFoundError: No module named 'packaging'

===== 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)
  File "/code/opendm/types.py", line 328, in run
    self.process(self.args, outputs)
  File "/code/stages/run_opensfm.py", line 35, in process
    octx.feature_matching(self.rerun())
  File "/code/opendm/osfm.py", line 410, in feature_matching
    raise e
  File "/code/opendm/osfm.py", line 400, in feature_matching
    self.run('detect_features')
  File "/code/opendm/osfm.py", line 34, in run
    system.run('"%s" %s "%s"' %
  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/

I’ve even simplified more

singularity run --bind $images_dir:/$output_dir/code/images --writable-tmpfs odm_latest.sif --orthophoto-png --dtm --orthophoto-kmz --project-path $output_dir

Same error

Interestingly the same source containers mostly work in podman but fail for another reason late in the processing, but I dont yet know why that is. I think perhaps an issue with trying to create the DTM. The example above does seem to generally work with podman/docker.

Not really sure why in Singularity it would be telling me a package is missing.

What should be the expected behavior? If this is a feature request, please describe in detail the changes you think should be made to the code, citing files and lines where changes should be made, if possible.

I would expect the job to execute and generate an orthophoto.

How can we reproduce this? What steps did you do to trigger the problem? If this is an issue with processing a dataset, YOU MUST include a copy of your dataset uploaded on Google Drive or Dropbox (otherwise we cannot reproduce this).

images_dir=/data2/RS_GIS_Data/UAS_Data/NGEEArctic/UAS_Flights/Seward_2021/Skydio2/Kougarok/20210816/Flight_2/images
name=`basename $images_dir`
output_dir=/data2/RS_GIS_Data/UAS_Data/NGEEArctic/UAS_Flights/Seward_2021/Skydio2/Kougarok/20210816/Flight_2/odm
mkdir -p $output_dir

singularity run --bind $images_dir:/$output_dir/code/images \
--writable-tmpfs odm_latest.sif \
--orthophoto-png --dtm --orthophoto-kmz --feature-quality ultra --max-concurrency 16 \
--use-hybrid-bundle-adjustment --build-overviews --min-num-features 10000 \
--project-path $output_dir

I suspect I may not be invoking the run correctly. Any insight would be much appreciated. Thanks!

I use/create a lot of containerized environments that run in Docker and Singularity but I seem to not really understand how the code expects to be provided the location of the source image files and output(s). I think its also trying to create or point to the code folder which might be where its looking for the python code. Perhaps I just need a little more help on how to structure my folders and the singularity run command to find the folders and have the data in the expected location(s)

I’ve made a little more progress by doing what I thought would be the correct way to use ODM with Singularity, and mirrored the approach for Docker (i.e. not following the instructions here: Tutorials — OpenDroneMap 2.8.7 documentation). I tried

[[email protected] odm_processing_code]$ singularity run --bind /data2/RS_GIS_Data/UAS_Data/NGEEArctic/UAS_Flights/Seward_2021/Skydio2/Kougarok/20210816:/datasets --writable-tmpfs odm_latest.sif --project-path /datasets Flight_2

As in basically followed the same approach as the example for Docker except using Singularity and mimicking how Docker works by allowing --writable-tmpfs

This got me farther, as it started creating the output folders

lrwxrwxrwx. 1 sserbin sserbin          2 Jul 19 00:22 images -> L0
-rw-rw-r--. 1 sserbin sserbin     170198 Jul 19 12:05 images.json
-rw-rw-r--. 1 sserbin sserbin       2431 Jul 19 12:05 img_list.txt
drwxrwxr-x. 2 sserbin test          8192 Jul 19 04:49 L0
-rw-rw-r--. 1 sserbin test    1929246497 Jul 18 20:52 L0.tar.gz
drwxrwxr-x. 3 sserbin test          4096 Oct  4  2021 L1
-rw-rw-r--. 1 sserbin sserbin      10606 Jul 19 12:05 log.json
drwxrwxr-x. 2 sserbin sserbin         93 Jul 19 12:05 odm_georeferencing
drwxrwxr-x. 3 sserbin sserbin       4096 Jul 19 12:05 opensfm

but I eventually still got the same error:

[INFO]    Initializing ODM ? - Tue Jul 19 12:05:28  2022
[INFO]    ==============
[INFO]    3d_tiles: False
[INFO]    auto_boundary: False
[INFO]    auto_boundary_distance: 0
[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_neighbors: 0
[INFO]    matcher_type: flann
[INFO]    max_concurrency: 16
[INFO]    merge: all
[INFO]    mesh_octree_depth: 11
[INFO]    mesh_size: 200000
[INFO]    min_num_features: 10000
[INFO]    name: Flight_2
[INFO]    no_gpu: False
[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_copc: 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]    rolling_shutter: False
[INFO]    rolling_shutter_readout: 0
[INFO]    sfm_algorithm: incremental
[INFO]    skip_3dmodel: False
[INFO]    skip_band_alignment: False
[INFO]    skip_orthophoto: False
[INFO]    skip_report: False
[INFO]    sky_removal: 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/Flight_2/images
[INFO]    Loading 187 images
[INFO]    Wrote images database: /datasets/Flight_2/images.json
[INFO]    Found 187 usable images
[INFO]    Parsing SRS header: WGS84 UTM 3N
[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
[INFO]    Maximum photo dimensions: 4056px
[INFO]    Photo dimensions for feature extraction: 2028px
[INFO]    nvidia-smi not found in PATH, using CPU
[INFO]    Altitude data detected, enabling it for GPS alignment
[INFO]    ['use_exif_size: no', 'flann_algorithm: KDTREE', 'feature_process_size: 2028', 'feature_min_frames: 10000', 'processes: 16', 'matching_gps_neighbors: 0', 'matching_gps_distance: 0', 'matching_graph_rounds: 50', 'optimize_camera_parameters: yes', 'reconstruction_algorithm: incremental', 'undistorted_image_format: tif', 'bundle_outlier_filtering_type: AUTO', 'sift_peak_threshold: 0.066', 'align_orientation_prior: vertical', 'triangulation_type: ROBUST', 'retriangulation_ratio: 2', 'matcher_type: FLANN', 'feature_type: SIFT', 'use_altitude_tag: yes', 'align_method: auto', 'local_bundle_radius: 0']
[INFO]    Wrote reference_lla.json
[INFO]    running "/code/SuperBuild/install/bin/opensfm/bin/opensfm" detect_features "/datasets/Flight_2/opensfm"
Traceback (most recent call last):
  File "/code/SuperBuild/install/bin/opensfm/bin/opensfm_main.py", line 9, in <module>
    from opensfm import commands
  File "/code/SuperBuild/install/bin/opensfm/opensfm/commands/__init__.py", line 1, in <module>
    from . import (
  File "/code/SuperBuild/install/bin/opensfm/opensfm/commands/compute_statistics.py", line 4, in <module>
    from opensfm.actions import compute_statistics
  File "/code/SuperBuild/install/bin/opensfm/opensfm/actions/compute_statistics.py", line 5, in <module>
    from opensfm import stats
  File "/code/SuperBuild/install/bin/opensfm/opensfm/stats.py", line 13, in <module>
    import matplotlib as mpl
  File "/home/sserbin/.local/lib/python3.9/site-packages/matplotlib/__init__.py", line 105, in <module>
    from packaging.version import parse as parse_version
ModuleNotFoundError: No module named 'packaging'

===== 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)
  File "/code/opendm/types.py", line 328, in run
    self.process(self.args, outputs)
  File "/code/stages/run_opensfm.py", line 35, in process
    octx.feature_matching(self.rerun())
  File "/code/opendm/osfm.py", line 410, in feature_matching
    raise e
  File "/code/opendm/osfm.py", line 400, in feature_matching
    self.run('detect_features')
  File "/code/opendm/osfm.py", line 34, in run
    system.run('"%s" %s "%s"' %
  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/

I noticed that Singularity is trying to use my host user python / modules instead of those in the container, which is creating issues for me. Looking into that

Yup, looking for python modules in my host $HOME was the issue I was having. For now I added the “–no-home” flag and it started running!

[[email protected] odm_processing_code]$ singularity run --no-home --bind /data2/RS_GIS_Data/UAS_Data/NGEEArctic/UAS_Flights/Seward_2021/Skydio2/Kougarok/20210816:/datasets odm_latest.sif --project-path /datasets Flight_2
[INFO]    Initializing ODM ? - Tue Jul 19 12:17:12  2022
[INFO]    ==============
[INFO]    3d_tiles: False
[INFO]    auto_boundary: False
[INFO]    auto_boundary_distance: 0
[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_neighbors: 0
[INFO]    matcher_type: flann
[INFO]    max_concurrency: 16
[INFO]    merge: all
[INFO]    mesh_octree_depth: 11
[INFO]    mesh_size: 200000
[INFO]    min_num_features: 10000
[INFO]    name: Flight_2
[INFO]    no_gpu: False
[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_copc: 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]    rolling_shutter: False
[INFO]    rolling_shutter_readout: 0
[INFO]    sfm_algorithm: incremental
[INFO]    skip_3dmodel: False
[INFO]    skip_band_alignment: False
[INFO]    skip_orthophoto: False
[INFO]    skip_report: False
[INFO]    sky_removal: 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/Flight_2/images
[INFO]    Loading images database: /datasets/Flight_2/images.json
[INFO]    Found 187 usable images
[INFO]    Coordinates file already exist: /datasets/Flight_2/odm_georeferencing/coords.txt
[INFO]    Model geo file already exist: /datasets/Flight_2/odm_georeferencing/odm_georeferencing_model_geo.txt
[INFO]    Parsing SRS header: WGS84 UTM 3N
[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/Flight_2/opensfm/image_list.txt already exists, not rerunning OpenSfM setup
[WARNING] /datasets/Flight_2/opensfm/exif already exists, not rerunning photo to metadata
[INFO]    running "/code/SuperBuild/install/bin/opensfm/bin/opensfm" detect_features "/datasets/Flight_2/opensfm"
Matplotlib created a temporary config/cache directory at /tmp/matplotlib-nje6voyz because the default path (/home/sserbin/.config/matplotlib) is not a writable directory; it is highly recommended to set the MPLCONFIGDIR environment variable to a writable directory, in particular to speed up the import of Matplotlib and to better support multiprocessing.
2022-07-19 12:17:15,373 INFO: Planning to use 96205.946484375 MB of RAM for both processing queue and parallel processing.
2022-07-19 12:17:15,374 INFO: Scale-space expected size of a single image : 93.39873218536377 MB
2022-07-19 12:17:15,374 INFO: Expecting to queue at most 200 images while parallel processing of 16 images.
2022-07-19 12:17:15,382 INFO: Reading data for image S1001131.JPG (queue-size=0
2022-07-19 12:17:15,382 INFO: Reading data for image S1001178.JPG (queue-size=0
2022-07-19 12:17:15,383 INFO: Reading data for image S1001225.JPG (queue-size=0
2022-07-19 12:17:15,383 INFO: Reading data for image S1001272.JPG (queue-size=0
2022-07-19 12:17:17,335 INFO: Reading data for image S1001226.JPG (queue-size=1
2022-07-19 12:17:17,403 INFO: Extracting ROOT_SIFT features for image S1001225.JPG
2022-07-19 12:17:17,556 DEBUG: Computing sift with threshold 0.066
2022-07-19 12:17:18,156 INFO: Reading data for image S1001132.JPG (queue-size=1
2022-07-19 12:17:18,158 INFO: Extracting ROOT_SIFT features for image S1001131.JPG
2022-07-19 12:17:18,278 DEBUG: Computing sift with threshold 0.066
2022-07-19 12:17:18,881 INFO: Reading data for image S1001179.JPG (queue-size=1
2022-07-19 12:17:18,882 INFO: Extracting ROOT_SIFT features for image S1001178.JPG
2022-07-19 12:17:18,942 DEBUG: Computing sift with threshold 0.066
2022-07-19 12:17:19,253 INFO: Reading data for image S1001273.JPG (queue-size=1
2022-07-19 12:17:19,253 INFO: Extracting ROOT_SIFT features for image S1001272.JPG
2022-07-19 12:17:19,346 DEBUG: Computing sift with threshold 0.066
2022-07-19 12:17:20,532 INFO: Reading data for image S1001227.JPG (queue-size=1
2022-07-19 12:17:20,533 INFO: Extracting ROOT_SIFT features for image S1001226.JPG
2022-07-19 12:17:21,152 DEBUG: Computing sift with threshold 0.066
2022-07-19 12:17:22,218 INFO: Reading data for image S1001133.JPG (queue-size=1
2022-07-19 12:17:22,220 INFO: Extracting ROOT_SIFT features for image S1001132.JPG
2022-07-19 12:17:22,345 DEBUG: Computing sift with threshold 0.066
2022-07-19 12:17:22,567 INFO: Reading data for image S1001180.JPG (queue-size=1
2022-07-19 12:17:22,568 INFO: Extracting ROOT_SIFT features for image S1001179.JPG
2022-07-19 12:17:22,696 DEBUG: Computing sift with threshold 0.066

So I think that could be a good thing to consider mentioning in the docs for Singularity execution. Happy to add my insights as I get them running on a HPC. I will also be creating scripts to submit jobs to SLURM

1 Like

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