Относительное изменение позы камеры от глобальных поз - PullRequest
1 голос
/ 29 марта 2020

В OpenCV можно оценить относительное вращение и перемещение камеры от отслеживаемых точек, используя функцию recoverPose, но я пытаюсь выяснить, можно ли сделать что-то подобное, используя положение и ориентацию камеры в двух последовательных точках во времени например, для наземных данных в наборе данных TUM RGB-D (https://vision.in.tum.de/data/datasets/rgbd-dataset/file_formats), где на каждой отметке времени они обеспечивают перемещение и ориентацию камеры относительно глобальной системы координат.

Очевидно, что можно просто вычесть значения перевода, чтобы получить глобальный относительный перевод, но я хочу вычислить относительное вращение и перемещение камеры от одного кадра к другому, чтобы получить сопоставимые результаты с recoverPose.

Насколько я понимаю (из https://docs.opencv.org/3.4/d9/d0c/group__calib3d.html#ga40919d0c7eaf77b0df67dd76d5d24fa1), можно сформировать матрицу для преобразования из мира в координаты камеры через матрицу 4x4, верхняя 3x3 которой представляет глобальное вращение камеры и 4-й столбец это перевод из глобального происхождения в. Будет ли уместно решить мою проблему просто с помощью умножения матриц, другими словами, вычислите C = AB ', где C - матрица «относительного изменения», A - матрица второго кадра, а B - матрица первый кадр?

Код, который у меня сейчас есть для этого:

from pyquaternion import Quaternion
import numpy as np

quatA = Quaternion(x=x2, y=y2, z=z2, w=w2)
quatB = Quaternion(x=x1, y=y1, z=z1, w=w1)

matA = quatA.transformation_matrix
matA[0,3] = tx2
matA[1,3] = ty2
matA[2,3] = tz2

matB = quatB.transformation_matrix
matB[0,3] = tx1
matB[1,3] = ty1
matB[2,3] = tz1

matC = matA * np.linalg.inv(matB)

Этот код выполняется, но я понятия не имею, вычисляет ли что-нибудь полезное.

Если это совершенно неправильно Какой лучший способ добиться этого с OpenCV и Python?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...