Прямое линейное преобразование
Прямое линейное преобразование ( DLT ) — это алгоритм, который решает набор переменных из набора отношений подобия:
- для
где и являются известными векторами, обозначает равенство с точностью до неизвестного скалярного умножения, а — это матрица (или линейное преобразование), содержащая неизвестные, которые необходимо решить.
Этот тип отношений часто встречается в проективной геометрии . Практические примеры включают связь между 3D-точками сцены и их проекцией на плоскость изображения камеры-обскуры . [1] и гомографии .
Введение
[ редактировать ]Обыкновенная система линейных уравнений
- для
можно решить, например, переписав его в виде матричного уравнения где матрицы и содержат векторы и в соответствующих столбцах. Учитывая, что существует единственное решение, оно имеет вид
Решения также могут быть описаны в случае, если уравнения переопределены или недостаточно определены.
Что отличает задачу прямого линейного преобразования от приведенного выше стандартного случая, так это тот факт, что левая и правая части определяющего уравнения могут отличаться на неизвестный мультипликативный коэффициент, который зависит от k . Как следствие, не может быть вычислено, как в стандартном случае. Вместо этого отношения подобия переписываются как собственные линейные однородные уравнения, которые затем можно решить стандартным методом. Сочетание переписывания уравнений подобия в виде однородных линейных уравнений и решения их стандартными методами называется алгоритмом прямого линейного преобразования или алгоритмом DLT . DLT приписывается Ивану Сазерленду. [2]
Пример
[ редактировать ]Предположим, что . Позволять и — два известных вектора, и мы хотим найти матрица такой, что
где — неизвестный скалярный коэффициент, связанный с уравнением k .
Чтобы избавиться от неизвестных скаляров и получить однородные уравнения, определим антисимметричную матрицу
и умножим обе части уравнения на слева
С под рукой имеются следующие однородные уравнения, которые уже не содержат неизвестных скаляров
Чтобы решить из этой системы уравнений рассмотрим элементы векторов и и матрица :
- , , и
и приведенное выше однородное уравнение принимает вид
- для
Это также можно записать в матричной форме:
- для
где и оба являются 6-мерными векторами, определяемыми как
- и
На данный момент у нас есть 1 уравнение и 6 неизвестных. Совокупность однородных уравнений можно записать в матричной форме
где это матрица, содержащая известные векторы в своих рядах. Неизвестное может быть определена, например, путем разложения по сингулярным значениям ; является правым сингулярным вектором соответствующее сингулярному значению, равному нулю. Один раз определены элементы матрицы можно переставить из вектора . Обратите внимание, что масштабирование или не имеет значения (за исключением того, что оно должно быть отличным от нуля), поскольку определяющие уравнения уже допускают неизвестное масштабирование.
На практике векторы и может содержать шум, а это означает, что уравнения подобия верны только приблизительно. Как следствие, вектора может не быть. которое решает однородное уравнение точно. В этих случаях полное решение методом наименьших квадратов , выбрав можно использовать как правый сингулярный вектор, соответствующий наименьшему сингулярному значению
Более общие случаи
[ редактировать ]В приведенном выше примере есть и , но общую стратегию переписывания отношений подобия в однородные линейные уравнения можно обобщить на произвольные размерности как для и
Если и предыдущие выражения все еще могут привести к уравнению
- для
где сейчас это Каждый k представляет собой одно уравнение в неизвестные элементы и вместе эти уравнения можно записать для известных матрица и неизвестный 2q -мерный вектор Этот вектор можно найти аналогично предыдущему способу.
В самом общем случае и . Основное отличие от предыдущего заключается в том, что матрица сейчас это и антисимметричный. Когда пространство таких матриц уже не одномерно, оно имеет размерность
Это означает, что каждое значение k дает M однородных уравнений типа
- для и для
где является M -мерным базисом пространства антисимметричные матрицы.
Пример р = 3
[ редактировать ]В случае p = 3 следующие три матрицы можно выбрать
- , ,
В этом частном случае однородные линейные уравнения можно записать в виде
- для
где — матричное представление векторного векторного произведения . Обратите внимание, что последнее уравнение имеет векторное значение; левая часть — это нулевой элемент в .
Каждое значение k дает три однородных линейных уравнения с неизвестными элементами . Однако, поскольку имеет ранг = 2, не более двух уравнений линейно независимы. Поэтому на практике принято использовать только две из трех матриц. , например, для m =1, 2. Однако линейная зависимость между уравнениями зависит от , а это значит, что в неудачных случаях лучше было бы выбрать, например, m =2,3. Как следствие, если количество уравнений не имеет значения, возможно, лучше использовать все три уравнения, когда матрица построен.
Линейная зависимость между полученными однородными линейными уравнениями представляет собой общую проблему для случая p > 2, и ее приходится решать либо путем сокращения набора антисимметричных матриц или позволив стать больше, чем необходимо для определения
Ссылки
[ редактировать ]- ^ Абдель-Азиз, Ю.И.; Карара, Ее Величество (01 февраля 2015 г.). «Прямое линейное преобразование координат компаратора в координаты пространства объектов в фотограмметрии ближнего действия» . Фотограмметрическая инженерия и дистанционное зондирование . 81 (2). Американское общество фотограмметрии и дистанционного зондирования: 103–107. дои : 10.14358/чел.81.2.103 . ISSN 0099-1112 .
- ^ Сазерленд, Иван Э. (апрель 1974 г.), «Ввод трехмерных данных с помощью планшета», Proceedings of the IEEE , 62 (4): 453–461, doi : 10.1109/PROC.1974.9449
- Ричард Хартли и Эндрю Зиссерман (2003). Множественная геометрия в компьютерном зрении . Издательство Кембриджского университета. ISBN 978-0-521-54051-3 .
Внешние ссылки
[ редактировать ]- Оценка гомографии Элана Дубровски (в §2.1 описывается «Базовый алгоритм DLT»)
- Решатель DLT на основе MATLAB Сян-Джена (Джонни) Чиена