DLT против оценки гомографии - PullRequest
0 голосов
/ 30 мая 2018

Меня немного смущает разница между алгоритмом DLT, описанным здесь , и оценкой гомографии, описанной здесь .В обоих этих методах мы пытаемся найти элементы матрицы 3х3, используя как минимум 4 точечных соответствия.В обоих методах мы создали систему, в которой у нас есть «измерительная» матрица, и мы используем SVD для определения вектора элементов, составляющих H. Мне было интересно, почему есть два метода, которые, кажется, делают одно и то же, ипочему один может быть использован над другим.

1 Ответ

0 голосов
/ 01 июня 2018

У вас есть соответствия левого и правого изображений {p_i} <-> {p'_i}, где p_i = (x_i, y_i) и т. Д.

Нормализация их в единицу квадрата означает вычисление двух сдвигов m=(mx, my), m'=(mx', my') и двух шкал s=(sx,sy), s'=(sx',sy') таким образом, что q_i = (p_i - m) / s и q_i' = (p_i' - m') / s', а также точки преобразованного изображения {q_i} и {q'_i} центрированы в (0,0) и приблизительно содержатся в квадрате длины стороны единицы.Небольшая математика показывает, что хорошим выбором для терминов m являются средние значения координат x, y в каждом наборе точек изображения, а для терминов s вы используете стандартные отклонения (или двойное стандартное отклонение), умноженные на 1 / sqrt (2).

Вы можете выразить это нормализующее преобразование в матричной форме: q = T p, где T = [[1/sx, 0, -mx/sx], [0, 1/sy, -my/sy], [0, 0, 1]], а также q' = T' p'.

Затем вы вычисляете гомографию K между {q_i}и {q'_i} баллов: q_i' = K q_i.

Наконец, вы денормализуете K в исходные (ненормализованные) координаты, таким образом: H = inv(T') K T, а H - желаемая гомография, отображающая {p} в {p'}.

...