Skip to content

Conversation

@N-Demir
Copy link

@N-Demir N-Demir commented Jul 25, 2025

I found myself often comparing poses and trajectories between different SfM pipelines which all use the colmap format of a sparse/0 folder and the camera extrinsics in the images.bin or images.txt file.

@N-Demir N-Demir mentioned this pull request Jul 25, 2025
len(positions_xyz), file_path))

# Use image ids as timestamps so that we can plot compare with evo_traj
return PoseTrajectory3D(positions_xyz, orientations_quat_wxyz, np.arange(len(positions_xyz), dtype=float))
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Doesn't look like a good idea to me. Not only the fake timestamps, but also in general an SfM batch doesn't necessarily correspond to a sequential path/trajectory like in SLAM/odometry? With correct sorting you can maybe calculate metrics like this, but stuff like plots can look weird because they're designed for the SLAM use case and not arbitrary camera poses.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah that's a good callout. From what I've seen, the main datasets for novel view synthesis have ordered image sequences. The only reason they're being run in an "SfM" context is to get the highest quality camera extrinsics for the downstream NVS methods to work well. So using evo is actually really helpful, especially with new methods coming out to change how the camera poses are generated.

The problem is that the NVS community almost entirely expects as input the colmap image/camera param format, so recent SLAM techniques (VGGT-SLAM eg) are also exporting it that way.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants