2017-02-10 24 views
2

У меня матрица homgraphyминимизировать ошибку в омографии матрице

[h1 h2 h3 
    h4 h5 h6 
    h7 h8 h9] 

Я преобразовал точку p1 to P1 с помощью описанной выше омографии матрицы. Аналогично

p2 to P2 
    p3 to P3 
    p4 to P4 

Я знаю diffence между

P1-P2 = D1 
P2-P3 = D2 
P3-P4 = D3 

Из-за ошибки в омографии Существует небольшая ошибка в D1, D2, D3. (Я знаю фактическое значение разности) Пусть ошибка будет E1, E2, E3 (известные значения).

(E1 = D1 - Actual_Difference_between_P1_andP2) 

Аналогично вычисляются E2, E3 и E4.

Теперь мне нужно изменить мою матрицу гомографии, чтобы мои E1, E2, E3, E4 были сведены к минимуму.

ответ

2

Введение:

омография может быть получена из 4 паров точек с точностью 100% (реальный 0 перепроецирование-ошибок). Однако, когда число пар точек больше 4, вы, возможно, не сможете получить 0-погрешную гомографию. Это связано с тем, что точки могут быть не в одном 3D-планере.

Итак, сначала вам нужно иметь дело с тем фактом, что в реальных словах может быть не 100% точная гомография (из-за совпадений ошибок), но есть одна оптимальная (минимальная матрица ошибок повторения).

Состав:

Что касается вашего вопроса, то кажется, что у вас есть два набора пары точек. Тот, который вы использовали для получения Гомографии, и еще один, который вы проверяете на своей модели на основе этого, а затем вы хотите использовать его для улучшения своей модели.

Как улучшить гомографию?

Во-первых, используйте оба набора для получения гомографии с использованием некоторого надежного метода оценки (например, RANSAC). Вы можете найти дополнительную информацию here.

Во-вторых, выполните итерацию по вашему набору и вычислите ошибку перепрограммирования для каждой точки, как описано. Затем устраните все точки, у которых ошибка перепрограммирования больше некоторого порога.

В-третьих, применяйте методы оптимизации тонкой настройки только на вкладках, пока вы не получите хорошую гомографию в виде суммы ошибок среди линеек.

Как сделать третий шаг?

У вас есть 8 параметров для оптимизации:

h11 h12 h13 
h21 h22 h23 
h31 h32  1 

Функция оптимизации:

enter image description here

И вы уже вычислили гомография с помощью RANSAC. Итак, у вас есть очень хорошая оценка, которая составляет около глобального оптимального. Это означает, что для этого случая достаточно использовать нелинейную локальную оптимизацию. существует много алгоритмов. Выберите один и начать (некоторые предложения: Hill Climbing, Simulated Annealing)


Редактировать после комментариев OP, что только расстояния betwen второго набора известны:

Функция оптимизации должна быть: enter image description here

Где AD_ij - фактическое расстояние между Pi и Pj.

Вы можете попытаться уменьшить сложность, используя, например, секвенция евклидова дистанции для справки и запроса.

+0

Для некоторых (второго набора) точек я не знаю точное положение после преобразования. Но эти моменты после трансформации я знаю точное эвклидовое расстояние между ними. Я хочу использовать эту информацию для улучшения матрицы гомографии. – Deepak

+0

@ user_12 отредактировано относительно вашей заметки –

+0

Спасибо. Как реализовать это в Matlab или Octave или C++ – Deepak

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

  • Нет связанных вопросов^_^