なぜ一つに統一されていないのか……
とりあえず使ったことがあるものをまとめていく

Forward: +Z, Up: -Y, Right: +X

Forward: -Z, Up: +Y, Right: +X

  • 右手系
  • NerfStudio, OpenGL, Blender
  • NeRF, InstantNGP などで使われている保存形式である transforms.jsontransform_matrix もこれ

変換

translation については単純に逆向きになっている軸を反転すればいい

rotation については、 それぞれのパラメータの意味 を参考にして考えると

  • cw の横ベクトル、または
  • wc の縦ベクトル
    を反転させればいいとわかる。すなわち例えば、COLMAP > OpenGL の変換だと
R_cw[1:3] = R_cw[1:3] * -1
# または
R_wc[:, 1:3] = R_wc[:, 1:3] * -1