2015-12-02 3 views
2

У меня есть два изображения с известными соответствующими 2D-точками, внутренние параметры камер и трехмерное преобразование между камерами. Я хочу рассчитать ошибку 2D-перепечатки с одного изображения на другое.Фундаментальная матрица от преобразования

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

Я знаю, что E = R * [t] и F = K^(-t) * E * K^(-1), где E является существенной матрицей и [t] является кососимметрической матрицей вектора сдвига. Однако это возвращает нулевую матрицу, если движение является чистым вращением (t = [0 0 0]). Я знаю, что в этом случае гомография объясняет движение лучше, чем фундаментальная матрица, так что я могу сравнить норму вектора переноса с малым порогом, чтобы выбрать фундаментальную матрицу или гомогафию. Есть ли лучший способ сделать это?

+0

Если вращение и перевод не равны нулю, гомография не моделирует движение правильно. – ChronoTrigger

+0

Извините, у меня его нет, но это нацелено на фотографии комнат. Однако структура не должна быть важной. – ChronoTrigger

+0

О! извините, что я не правильно прочитал ваш вопрос. Я удалил свой комментарий –

ответ

1

«Я хочу рассчитать ошибку двукратного повторного воспроизведения с одного изображения на другое».

Затем перейдите и вычислите его. Ваша настройка откалибрована, поэтому вам не нужно ничего, кроме известной части 3D-геометрии. Забудьте об эпиполярной ошибке, которая также может быть неопределенной, если ваше движение камеры (близкое к) чистое вращение.

Возьмите объект с известными размерами и формой (например, шахматная доска), выработайте свое местоположение в трехмерном пространстве с одного вида камеры (для шахматной доски вы можете поместить гомографию между своей физической моделью и ее проекцией, а затем разложить это в [R | t]). Затем проецируйте теперь расположенную трехмерную фигуру в другую камеру с учетом калиброванных параметров камеры и сравните проекцию с фактическим изображением объекта.

+0

У меня есть некоторая известная трехмерная структура в сцене, но у меня также есть 2D-точки на неизвестной глубине, которые я также хочу учитывать, когда я вычисляю ошибку репроцессинга, чтобы проверить качество преобразования [R | t]. Меня интересует последнее. – ChronoTrigger

+0

Ну, вы действительно не можете сделать лучше, чем настройку комплекта, а затем, используя свою откалиброванную настройку и известную 3d-структуру в качестве отправной точки. –

+0

Как я могу выполнить настройку связки для вычисления ошибки репроцессинга? Я уже знаю 3D-преобразование. – ChronoTrigger

Смежные вопросы