Перейти до вмісту

Пряме лінійне перетворення

Матеріал з Вікіпедії — вільної енциклопедії.

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

 для

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

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

Вступ

[ред. | ред. код]

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

 для

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

Проблема прямого лінійного перетворення відрізняється від наведеного вище стандартного випадку тим, що ліва та права сторони рівняння можуть відрізнятися на невідомий множник k, свій для кожного рівняння. Як наслідок, неможливо обчислити стандартним шляхом. Натомість відношення подібності переписуються як система лінійних однорідних рівнянь, яка потім може бути вирішена стандартним методом. Представлення рівнянь подібності як системи однорідних лінійних рівнянь із подальшим її розв’язанням стандартними методами зветься алгоритмом прямого лінійного перетворення або алгоритмом DLT . Метод DLT приписується Айвену Сазерленду. [2]

Приклад

[ред. | ред. код]

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

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

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

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

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

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

, і 

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

 для

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

 для

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

 і 

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

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

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

Примітки

[ред. | ред. код]
  1. Abdel-Aziz, Y.I.; Karara, H.M. (1 лютого 2015). Direct Linear Transformation from Comparator Coordinates into Object Space Coordinates in Close-Range Photogrammetry. Photogrammetric Engineering & Remote Sensing. American Society for Photogrammetry and Remote Sensing. 81 (2): 103—107. doi:10.14358/pers.81.2.103. ISSN 0099-1112.
  2. Sutherland, Ivan E. (April 1974), Three-dimensional data input by tablet, Proceedings of the IEEE, 62 (4): 453—461, doi:10.1109/PROC.1974.9449

Посилання

[ред. | ред. код]
  • Homography Estimation by Elan Dubrofsky (§2.1 sketches the "Basic DLT Algorithm") (англ.)
  • A DLT Solver based on MATLAB by Hsiang-Jen (Johnny) Chien (англ.)