Прямое линейное преобразование (DLT) - алгоритм, который решает набор переменных из набора отношений подобия:
за 
куда
и
известные векторы,
обозначает равенство с точностью до неизвестного скалярного умножения, а
представляет собой матрицу (или линейное преобразование), которая содержит неизвестные, которые необходимо решить.
Этот тип отношений часто встречается в проективная геометрия. Практические примеры включают соотношение между трехмерными точками в сцене и их проекцию на плоскость изображения объекта. камеры-обскуры,[1] и омографии.
Вступление
Обычный система линейных уравнений
за 
можно решить, например, переписав его в виде матричного уравнения
где матрицы
и
содержат векторы
и
в соответствующих столбцах. Учитывая, что существует единственное решение, оно задается формулой

Решения также могут быть описаны в случае, если уравнения переопределены или недоопределены.
Отличие задачи прямого линейного преобразования от приведенного выше стандартного случая заключается в том, что левая и правая части определяющего уравнения могут отличаться неизвестным мультипликативным множителем, который зависит от k. Как следствие,
невозможно вычислить, как в стандартном случае. Вместо этого отношения подобия переписываются в виде собственных линейных однородных уравнений, которые затем могут быть решены стандартным методом. Комбинация переписывания уравнений подобия в виде однородных линейных уравнений и их решения стандартными методами называется алгоритм прямого линейного преобразования или же Алгоритм DLT. DLT приписывают Ивану Сазерленду.[2]
Пример
Предположим, что
. Позволять
и
- два известных вектора, и мы хотим найти
матрица
такой, что

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

и умножим обе части уравнения на
слева

С
следующие однородные уравнения, которые больше не содержат неизвестных скаляров, находятся под рукой

Чтобы решить
из этой системы уравнений рассмотрим элементы векторов
и
и матрица
:
,
, и 
и полученное выше однородное уравнение принимает вид
за 
Это также можно записать в матричной форме:
за 
куда
и
оба являются 6-мерными векторами, определенными как
и 
Пока у нас есть 1 уравнение и 6 неизвестных. Систему однородных уравнений можно записать в матричной форме

куда
это
матрица, содержащая известные векторы
в его рядах. Неизвестный
может быть определена, например, разложение по сингулярным числам из
;
является правым сингулярным вектором
соответствующий сингулярному значению, равному нулю. Один раз
определено, элементы матрицы
можно переставить из вектора
. Обратите внимание, что масштабирование
или же
не имеет значения (за исключением того, что он должен быть ненулевым), поскольку определяющие уравнения уже допускают неизвестное масштабирование.
На практике векторы
и
может содержать шум, что означает, что уравнения подобия действительны только приблизительно. Как следствие, может не быть вектора
которое решает однородное уравнение
точно. В этих случаях Всего наименьших квадратов решение можно использовать, выбрав
как правый сингулярный вектор, соответствующий наименьшему сингулярному значению 
Более общие случаи
В приведенном выше примере
и
, но общая стратегия переписывания соотношений подобия в однородные линейные уравнения может быть обобщена на произвольные измерения как для
и 
Если
и
предыдущие выражения все еще могут привести к уравнению
за 
куда
сейчас
Каждый k дает одно уравнение в
неизвестные элементы
и вместе эти уравнения можно записать
для известных
матрица
и неизвестно 2кв.-мерный вектор
Этот вектор можно найти так же, как и раньше.
В самом общем случае
и
. Основное отличие от предыдущей в том, что матрица
сейчас
и антисимметричный. Когда
пространство таких матриц уже не одномерно, а размерно

Это означает, что каждое значение k обеспечивает M однородные уравнения типа
за
и для 
куда
это M-мерный базис пространства
антисимметричные матрицы.
Пример п = 3
В случае, если п = 3 следующие три матрицы
можно выбрать