Вычислить фундаментальную матрицу без точечных соответствий?

Я хотел бы проверить, правильно ли я понимаю фундаментальную матрицу и возможно ли вычислить F без использования соответствующих пар точек.

Фундаментальная матрица рассчитывается как F = inv(transpose(Mr))*R*S*inv(Ml) где Mr и Ml - матрицы внутренней и правой камеры, R - матрица вращения, которая переводит правую систему координат в левую, а S - кососимметричная матрица.

S = 0    -T[3]   T[2]  where T is the translation vector of the right coordinate system 
    T[3]     0  -T[1]  from the left.
   -T[2]  T[1]      0

Я понимаю, что фундаментальная матрица может быть вычислена с помощью 8-точечного алгоритма, но у меня нет точечных соответствий. Однако обе мои камеры откалиброваны, поэтому у меня есть все внутренние и внешние параметры. Из приведенного выше определения основной матрицы можно вычислить F только с этими параметрами, верно?

(Проблема, с которой я сталкиваюсь, заключается в том, что фундаментальная матрица кажется неверной при расчете по ее определению. Сейчас я просто хотел бы знать, правильно ли мое понимание выше).

2 ответа

Я бы предпочел сделать это как уравнения в главе 9 "Геометрия множественного обзора". Я проверил это в Matlab. Это правильно.

Если вы можете получить как внутреннюю, так и внешнюю матрицу обеих камер, вы можете рассчитать F-матрицу следующим образом:

F = [e '] _ x * P' * p ^ +

(Подробные определения см. На стр. 244 "Геометрия нескольких видов").

Если у вас есть вращение и перемещение каждой из камер относительно общей системы координат, то вы можете вычислить вращение и перемещение между камерами, а затем использовать формулу, которую вы процитировали для вычисления основной матрицы.

Лучшим способом было бы откалибровать обе камеры вместе как одну стереосистему. Последняя версия (2014a) Computer Vision System Toolbox позволяет вам сделать это. Смотрите этот пример.

Другие вопросы по тегам