Added colmap input format#743
Conversation
| 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)) |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
ff10b1c to
4020828
Compare
I found myself often comparing poses and trajectories between different SfM pipelines which all use the
colmapformat of asparse/0folder and the camera extrinsics in theimages.binorimages.txtfile.