Skip to content

Using --rolling-shutter and --split together causes "opensfm create_tracks" to crash #2043

Description

@zestyping

When the --rolling-shutter option is used on a local split-merge run (--split), the spawned opensfm create_tracks command crashes on the second submodel.

Here are the last few lines of log output. This happens after reconstruction has finished for the second time on submodel_0000, just as opensfm create_tracks is starting on submodel_0001.

2026-07-01 16:20:11,477 DEBUG: Ceres Solver Report: Iterations: 21, Initial cost: 5.713060e+01, Final cost: 4.698220e+01, Termination: CONVERGENCE
2026-07-01 16:20:11,479 INFO: Removed outliers: 0
2026-07-01 16:20:11,480 INFO: Reconstruction 0: 1682 images, 1692562 points
2026-07-01 16:20:11,480 INFO: Reconstruction 1: 4 images, 858 points
2026-07-01 16:20:11,480 INFO: Reconstruction 2: 4 images, 477 points
2026-07-01 16:20:11,480 INFO: Reconstruction 3: 3 images, 355 points
2026-07-01 16:20:11,480 INFO: 4 partial reconstructions in total.
[WARNING] Multiple reconstructions detected (4), this might be an indicator that some areas did not have sufficient overlap
[INFO]    Attempting merge
[INFO]    Merging reconstruction 0
[INFO]    Merging reconstruction 1
[INFO]    Merging reconstruction 2
[INFO]    Merging reconstruction 3
[WARNING] Cannot merge shot id DJI_20260218170311_0450_D.JPG (Landmark 163348 already exists.)
[WARNING] Cannot merge shot id DJI_20260218170311_0450_D.JPG (Landmark 1114550 already exists.)
[WARNING] Cannot merge shot id DJI_20260218170311_0450_D.JPG (Landmark 163061 already exists.)
[WARNING] Cannot merge shot id DJI_20260218170311_0450_D.JPG (Landmark 163051 already exists.)
[INFO]    Reconstructing /datasets/hunk51-200m-rs/submodels/submodel_0001/opensfm
[INFO]    running "/code/SuperBuild/install/bin/opensfm/bin/opensfm" create_tracks "/datasets/hunk51-200m-rs/submodels/submodel_0001/opensfm"
2026-07-01 16:21:13,786 INFO: reading features
2026-07-01 16:21:32,594 DEBUG: Merging features onto tracks
2026-07-01 16:22:05,543 DEBUG: Good tracks: 2204332
Traceback (most recent call last):
  File "/code/SuperBuild/install/bin/opensfm/bin/opensfm_main.py", line 25, in <module>
    commands.command_runner(
  File "/code/SuperBuild/install/bin/opensfm/opensfm/commands/command_runner.py", line 38, in command_runner
    command.run(data, args)
  File "/code/SuperBuild/install/bin/opensfm/opensfm/commands/command.py", line 13, in run
    self.run_impl(data, args)
  File "/code/SuperBuild/install/bin/opensfm/opensfm/commands/create_tracks.py", line 13, in run_impl
    create_tracks.run_dataset(dataset)
  File "/code/SuperBuild/install/bin/opensfm/opensfm/actions/create_tracks.py", line 18, in run_dataset
    tracks_manager = tracking.create_tracks_manager(
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/code/SuperBuild/install/bin/opensfm/opensfm/tracking.py", line 93, in create_tracks_manager
    x, y, s = features[image][featureid]
              ~~~~~~~~~~~~~~~^^^^^^^^^^^
IndexError: index 6215 is out of bounds for axis 0 with size 4483

For context on which stage we're at, here's the sequence of spawned commands:

# grep 'running "' odm.log
[INFO]    running "/code/SuperBuild/install/bin/opensfm/bin/opensfm" detect_features "/datasets/hunk51-200m-rs/opensfm"
[INFO]    running "/code/SuperBuild/install/bin/opensfm/bin/opensfm" match_features "/datasets/hunk51-200m-rs/opensfm"
[INFO]    running "/code/SuperBuild/install/bin/opensfm/bin/opensfm" create_submodels "/datasets/hunk51-200m-rs/opensfm"
[INFO]    running "/code/SuperBuild/install/bin/opensfm/bin/opensfm" create_tracks "/datasets/hunk51-200m-rs/submodels/submodel_0000/opensfm"
[INFO]    running "/code/SuperBuild/install/bin/opensfm/bin/opensfm" reconstruct "/datasets/hunk51-200m-rs/submodels/submodel_0000/opensfm"
[INFO]    running "/code/SuperBuild/install/bin/opensfm/bin/opensfm" rs_correct "/datasets/hunk51-200m-rs/submodels/submodel_0000/opensfm"
[INFO]    running "/code/SuperBuild/install/bin/opensfm/bin/opensfm" match_features "/datasets/hunk51-200m-rs/submodels/submodel_0000/opensfm"
[INFO]    running "/code/SuperBuild/install/bin/opensfm/bin/opensfm" create_tracks "/datasets/hunk51-200m-rs/submodels/submodel_0000/opensfm"
[INFO]    running "/code/SuperBuild/install/bin/opensfm/bin/opensfm" reconstruct "/datasets/hunk51-200m-rs/submodels/submodel_0000/opensfm"
[INFO]    running "/code/SuperBuild/install/bin/opensfm/bin/opensfm" create_tracks "/datasets/hunk51-200m-rs/submodels/submodel_0001/opensfm"

The entire ODM log file is attached here: odm.log.zip

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions