Пряме лінійне перетворення (англ. Direct linear transformation, DLT ) - це алгоритм, який знаходить набір змінних із набору відношень подібності:

 для

де і відомі вектори, позначає рівність до невідомого скалярного множника, і - це матриця (або лінійне перетворення) що складається із невідомих.

Залежності такого типу часто зустрічаються в проективній геометрії . Практичні приклади включають взаємозв'язок між 3D-точками сцени та їх проєкцією на площину зображення камери-обскури та гомографії.

Вступ Звичайна система лінійних рівнянь

 для

може бути розв'яза, наприклад, перетворенням її у матричне рівняння де матриці і містять вектори і у відповідних стовпцях. Якщо існує унікальний розв'язок, то його можна визначити як

Проблема прямого лінійного перетворення відрізняється від наведеного вище стандартного випадку тим, що ліва та права сторони рівняння можуть відрізнятися на невідомий множник k, свій для кожного рівняння. Як наслідок, неможливо обчислити стандартним шляхом. Натомість відношення подібності переписуються як система лінійних однорідних рівнянь, яка потім може бути вирішена стандартним методом. Представлення рівнянь подібності як системи однорідних лінійних рівнянь із подальшим її розв’язанням стандартними методами зветься алгоритмом прямого лінійного перетворення або алгоритмом DLT . Метод DLT приписується Айвену Сазерленду. У фотограмметрії метод під назвою «пряме лінійне перетворення» описали Абдель-Азіз і Карара в праці 1971 року, перевиданій 2015 року: він дає змогу перейти від координат точок, виміряних на компараторі, безпосередньо до координат у просторі об'єкта без координатних міток і без початкових наближень параметрів внутрішнього та зовнішнього орієнтування камери, тому особливо придатний для обробки знімків, отриманих неметричними камерами. Метод дає прямий розв’язок; модель містить 11 невідомих, тож для його визначення потрібно щонайменше шість добре розподілених опорних точок.

Приклад Припустимо, що . Нехай і два відомі вектори і ми хочемо знайти матрицю таку, що

де - невідомий скалярний коефіцієнт, пов'язаний з рівнянням k .

Щоб позбутися невідомих скалярів та отримати однорідні рівняння, визначемо антисиметричну матрицю

та помножемо обидві сторони рівняння на зліва

Оскільки наведені однорідні рівняння більше не містять невідомих скалярів

Для того, щоб знайти з цього набору рівнянь розглянемо елементи векторів і і матрицю :

,  , і 

Наведене вище однорідне рівняння отримує вигляд

 для

Або у матричній формі:

 для

де і - це 6-мірні вектори, що визначаються як

 і 

Наразі ми маємо 1 рівняння та 6 невідомих. Набір однорідних рівнянь можна записати у матричній формі

де є матрицею, яка містить відомі вектори в рядах. Невідоме може бути визначено, наприклад, шляхом розкладу на особливі значення ; - правий сингулярний вектор . Коли визначено, матриця може бути побудована з елементів . Зверніть увагу, що масштабування або не є важливим (за винятком нульового масштабу), оскільки початкові рівняння вже допускають невідоме масштабування.

На практиці вектори і можуть містити шум, що означає, що рівняння подібності справедливі лише приблизно. Як наслідок, може не існувати вектора для якого однорідне рівняння виконується точно. У цих випадках для розв'язку можна використовувати метод найменших квадратів.

Загальніші випадки У наведеному прикладі і , але загальний підхід — переписування відношень подібності у вигляді однорідних лінійних рівнянь — можна узагальнити на довільні розмірності як , так і .

Якщо і , ті самі перетворення, що й вище, приводять до рівняння

 для

де матриця тепер має розмір . Кожне k дає одне рівняння відносно невідомих елементів ; разом ці рівняння можна записати як , де — відома матриця розміру , а — невідомий -вимірний вектор. Цей вектор можна знайти так само, як і в прикладі вище.

У найзагальнішому випадку і . Головна відмінність від попереднього полягає в тому, що матриця тепер має розмір і є антисиметричною. Якщо , простір таких матриць уже не одновимірний: його розмірність дорівнює

Отже, кожне значення k дає M однорідних рівнянь вигляду

 для  і

де матриці утворюють базис M-вимірного простору антисиметричних матриць розміру .

Приклад для p = 3 Для p = 3 як можна обрати такі три матриці:

, , 

У цьому випадку однорідні лінійні рівняння можна записати як

 для

де — матричне подання векторного добутку. Це рівняння векторне: ліворуч стоїть нульовий елемент простору .

Кожне значення k дає три однорідні лінійні рівняння відносно невідомих елементів . Проте оскільки ранг матриці (для ненульового ) дорівнює 2, лінійно незалежними є щонайбільше два з них. Тому на практиці часто використовують лише дві з трьох матриць , наприклад з m = 1, 2. Однак лінійна залежність між рівняннями залежить від , тож у невдалих випадках краще було б обрати, наприклад, m = 2, 3 (зокрема, якщо третя компонента дорівнює нулю, рівняння з m = 1 і m = 2 лінійно залежні). Тому, якщо кількість рівнянь не є обмеженням, під час побудови матриці може бути краще використати всі три рівняння.

Лінійна залежність між отриманими однорідними рівняннями — загальна проблема для випадку p > 2. Її розв'язують або скороченням набору антисиметричних матриць , або допускаючи, щоб матриця була більшою, ніж необхідно для визначення .

Примітки

Посилання Homography Estimation by Elan Dubrofsky (§2.1 sketches the "Basic DLT Algorithm") A DLT Solver based on MATLAB by Hsiang-Jen (Johnny) Chien