Матриця камери

Матеріал з testwiki
Версія від 01:40, 2 лютого 2024, створена imported>InternetArchiveBot (Bluelink 1 book for Перевірність (20240201)) #IABot (v2.0.9.5) (GreenC bot)
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)
Перейти до навігації Перейти до пошуку

У комп'ютерному зорі матриця камери або матриця проєкції (камери) є матрицею 3×4, яка описує відображення стенопа від 3D-точок в світі, до 2D-точок зображення. Нехай 𝐱 — представлення тривимірної точки в однорідних координатах (чотиривимірний вектор), і нехай 𝐲 буде представленням зображення цієї точки в стенопі (3-вимірний вектор). Тоді має місце наступне співвідношення

𝐲𝐂𝐱

де 𝐂 — це матриця камери, а знак, що означає, що ліва і права частини рівності рівні ненульовому скалярному множенню.

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

Походження

Відображення координат тривимірної точки P на координати двовимірного зображення проєкції точки на площину зображення, відповідно до моделі стенопа, дається формулою

(y1y2)=fx3(x1x2)

де (x1,x2,x3) є тривимірними координатами P щодо централізованої системи координат камери, (y1,y2) — отримані координати зображення, f — фокусна відстань камери, для якої передбачається, що f > 0. Крім того, ми також припускаємо, що x3 > 0.

Для отримання матриці камери цей вираз переписується в термінах однорідних координат. Замість двовимірного вектора (y1,y2) розглянемо проєктивний елемент (3D-вектор) 𝐲=(y1,y2,1) та замість рівності розглядаємо рівність з точністю до масштабування на ненульове число, що позначається . Спочатку ми записуємо координати однорідного зображення у вигляді виразів в звичайних тривимірних координатах.

(y1y21)=fx3(x1x2x3f)(x1x2x3f)

Нарешті, також тривимірні координати виражаються в однорідному представленні 𝐱, і ось як виглядає матриця камери:

(y1y21)(10000100001f0)(x1x2x31)   чи   𝐲𝐂𝐱

де 𝐂 матриця камери, яка дається формулою

𝐂=(10000100001f0),

і відповідна матриця камери тепер стає

𝐂=(10000100001f0)(f0000f000010)

Останній крок є наслідком того, що 𝐂 сам по собі є проєктивним елементом.

Виведена тут матриця камери може здатися тривіальною в тому сенсі, що вона містить дуже мало ненульових елементів. Це в значній мірі залежить від конкретних систем координат, які були обрані для 3D і 2D точок. На практиці, однак, інші форми матриць камер є загальними, що буде показано нижче.

Положення камери

Матриця камери 𝐂, отримана в попередньому розділі, має нульовий простір, натягнуте на вектор

𝐧=(0001)

Це також однорідне уявлення тривимірної точки, яка має координати (0,0,0), тобто «центр камери» (так зване вхідне вічко; положення отвору стенопа), що знаходиться в O.

Для будь-якої іншої 3D-точки з x3=0, результат 𝐲𝐂𝐱 коректно визначений і має вигляд 𝐲=(y1y20). Це відповідає нескінченно віддаленій точці на площині проєктованого зображення (навіть якщо площина зображення вибрана як евклідова площина, то не існує відповідної точки перетину).

Нормована матриця камери і координати нормованого зображення

Матриця камери, отримана вище, може бути спрощена ще більше, якщо ми припустимо, що f = 1:

𝐂0=(100001000010)=(𝐈𝟎)

де 𝐈 тут позначає одиничну матрицю 3×3. Зверніть увагу, що 3×4 matrix 𝐂 тут розділена на конкатенацію матриці 3×3 і тривимірного вектору. Матриця камери 𝐂0 іноді називається канонічної формою.

До сіх пір всі точки в тривимірному світі були представлені в системі координат відцентрованої камери, тобто в системі координат, яка має початок в центрі камери (місце розташування точкового отвору стенопа). На практиці, однак, 3D-точки можуть бути представлені в термінах координат відносно довільної системи координат (X1',X2',X3'). Припускаючи, що координатні осі камери (X1,X2,X3) і осі (X1',X2',X3') мають Евклідів тип (ортогональний і ізотропний), існує єдине Евклідове тривимірне перетворення (поворот і зрушення) між двома системами координат. Іншими словами, камера не обов'язково знаходиться на початку координат і дивиться уздовж осі z.

Дві операції обертання і зсуву тривимірних координат можуть бути представлені у вигляді двох матриць 4×4

(𝐑𝟎𝟎1) and (𝐈𝐭𝟎1)

де 𝐑 є матрицею повороту 3×3, а 𝐭 є тривимірним вектором паралельного перенесення. Коли перша матриця множиться на однорідне уявлення 3D-точки, результатом є однорідне уявлення поверненої точки, а друга матриця виконує замість цього паралельне перенесення. Виконання двох операцій послідовно, тобто спочатку поворот, а потім паралельне перенесення (з вектором паралельного перенесення, заданим у вже поверненій системі координат), дає комбіновану матрицю повороту і паралельного перенесення

(𝐑𝐭𝟎1)

Припускаючи, що 𝐑 і 𝐭 — це точно обертання та перенесення, які пов'язані з двома системами координат (X1,X2,X3) і (X1',X2',X3') вище, це означає, що

𝐱=(𝐑𝐭𝟎1)𝐱

де 𝐱 — однорідне уявлення точки P в системі координат (X1',X2',X3').

Припускаючи також, що матриця камери задана 𝐂0, відображення з координат в (X1',X2',X3') до однорідних координатам зображення стає

𝐲𝐂0𝐱=(𝐈𝟎)(𝐑𝐭𝟎1)𝐱=(𝐑𝐭)𝐱

Отже, матриця камери, яка пов'язує точки в системі координат (X1',X2',X3') з координатами зображення, є

𝐂N=(𝐑𝐭)

конкатенація матриці 3D обертання і тривимірного вектора перенесення.

Цей тип матриці камери називають нормованою матрицею камери, вона приймає фокусну відстань = 1 і координати зображення вимірюються в системі координат, де початок координат знаходиться на перетині між віссю X3 і площиною зображення, і має ті ж одиниці як тривимірна система координат. Отримані координати зображення називаються координатами нормованого зображення.

Положення камери

Знову ж, описаний вище нульове простір нормованої матриці камери, описана вище 𝐂N, натягнуто на 4-мірний вектор

𝐧=(𝐑1𝐭1)=(𝐧~1)

Це, знову ж, координати центру камери, тепер відносно системи (X1',X2',X3'). Це можна побачити, застосувавши спочатку поворот, а потім паралельний перенос до тривимірного вектору 𝐧~ і результат є однорідним представленням тривимірних координат (0,0,0).

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

Нормовану матрицю камери 𝐂N можна тепер записати у вигляді

𝐂N=𝐑(𝐈𝐑1𝐭)=𝐑(𝐈𝐧~)

де 𝐧~ — це тривимірні координати камери відносно системи (X1',X2',X3').

Загальна матриця камери

З огляду на відображення, створене нормованою матрицею камери, отримані координати нормованого зображення можуть бути перетворені за допомогою довільної двовимірної гомографіі. Це включає двовимірний перенос та обертання, а також масштабування (изотропне і анізотропне), але, також, і загальні двовимірні перспективні перетворення. Таке перетворення може бути представлено як матриця 3×3 matrix 𝐇, яка відображає координати нормованого зображення 𝐲 до координат перетвореного однорідного зображення 𝐲:

𝐲=𝐇𝐲

Вставка вищенаведеного виразу для координат нормованого зображення у вигляді тривимірних координат дає

𝐲=𝐇𝐂N𝐱

Це дає найбільш загальну форму матриці камери

𝐂=𝐇𝐂N=𝐇(𝐑𝐭)

Див. також

Посилання