Я использую набор данных DTU (https://github.com/lioryaryiv/idr/blob/ ... VENTION.md). Каждому изображению присваиваются матрицы «world_mat» и «scale_mat».
Я делаю следующее:
Код: Выделить всё
P = (world_mat @ scale_mat)[:3, :]
K, R, t = cv2. decomposeProjectionMatrix(P)[:3]
fx = K[0, 0]
fy = K[1, 1]
cx = K[0, 2]
cy = K[1, 2]
t = (t[:3] / t[3]).reshape(3)
qx, qy, qz, qw = Rotation.from_matrix(R).as_quat()
Однако результаты, которые я получаю от 3DGS, ужасны. Я почти уверен, что что-то не так с тем, как я получаю K, R, t или с тем, как я преобразую их в формат COLMAP.
Я также пытался транспонировать матрицу вращения, отрицая вектор перевода (почти все, о чем я мог подумать или где-то прочитать), но на самом деле ничего не работает.
Подробнее здесь: https://stackoverflow.com/questions/790 ... -structure