Матрица камеры из основной матрицы
Я пытаюсь извлечь матрицу камеры из основной матрицы. Я нашел несколько ответов по этому поводу.
определить поворот камеры и матрицу перевода из основной матрицы
Вращение и перевод из основной матрицы неверны
В этих ответах они предлагают мне использовать newE
где [U,S,V] = svd(E)
а также newE = U*diag(1,1,0)*Vt
, Я не понимаю, почему мне нужно использовать newE
, Как я знаю, единичные значения уникальны. Таким образом, изменение единичных значений в diag(1,1,0)
кажется сделать E
на совершенно разные значения.
Я также читаю "Геометрию множественного вида в компьютерном зрении", но она относится только к идеальному случаю, т. Е. Единичные значения равны (1,1,0). Я не нашел причину использования newE
,
Пожалуйста, кто-нибудь может объяснить мне, почему люди используют newE
?
1 ответ
Если я правильно понимаю ваш вопрос, то так как вы источник данных (и, следовательно, E
) обычно шумные данные реального мира, то с помощью diag(1,1,0)
Вы ограничиваете матрицу правильным масштабом и рангом и алгебраически применяете геометрические ограничения.
В Википедии также есть хороший раздел, объясняющий это.