nerfstudio-project/nerfstudio

inconsistent documentation about transforms.json

Opened this issue · 1 comments

The docstings in the data convention say that transforms.js expects extrinsics of the form

    // [+X0 +Y0 +Z0 X]
    // [+X1 +Y1 +Z1 Y]
    // [+X2 +Y2 +Z2 Z]
    // [0.0 0.0 0.0 1]

yet colmap exports the last row to have non zero values in the first three rows, and works perfectly. I havea custom dataset with know camera poses, yet using the description mentioned above doesn't work.

What is the actual precise meaning of the top-left submatrix? Can someone please document this accurately? The docstring is very vague

These are just SE(3) rigid body transform matrices. Nerfstudio uses the C2W (camera to world) convention whereas raw COLMAP output gives W2C (world to camera) transforms. To transform one from the other, inversion is required. The top T[:3,:3] elements of the transform is the rotation component (SO(3)) and the last column T[:3,3] is the translation component.

Which part of the description does not make sense (not accurate)?