Matricea camerei - Camera matrix
În viziunea computerizată, o matrice de cameră sau o matrice de proiecție (cameră) este o matrice care descrie cartarea unei camere stenopulare de la punctele 3D din lume la punctele 2D ale unei imagini.
Fie o reprezentare a unui punct 3D în coordonate omogene (un vector 4-dimensional), și să fie o reprezentare a imaginii acestui punct în camera stenopetică (un vector 3-dimensional). Atunci se ține următoarea relație
unde este matricea camerei și semnul implică faptul că laturile din stânga și din dreapta sunt egale cu o multiplicare scalară diferită de zero.
Deoarece matricea camerei este implicată în maparea între elementele a două spații proiective , și ea poate fi privită ca un element proiectiv. Aceasta înseamnă că are doar 11 grade de libertate, deoarece orice înmulțire cu un scalar diferit de zero are ca rezultat o matrice de cameră echivalentă.
Derivare
Cartarea de la coordonatele unui punct 3D P la coordonatele de imagine 2D ale proiecției punctului pe planul imaginii, conform modelului camerei cu stenopi , este dată de
unde sunt coordonatele 3D ale lui P față de un sistem de coordonate centrate pe cameră, sunt coordonatele imaginii rezultate și f este distanța focală a camerei pentru care presupunem f > 0. Mai mult, presupunem și că x 3 > 0 .
Pentru a obține matricea camerei, expresia de mai sus este rescrisă în termeni de coordonate omogene. În loc de vectorul 2D considerăm elementul proiectiv (un vector 3D) și în loc de egalitate considerăm egalitatea până la scalarea cu un număr diferit de zero, notat . În primul rând, scriem coordonatele omogene ale imaginii ca expresii în coordonatele 3D obișnuite.
În cele din urmă, de asemenea, coordonatele 3D sunt exprimate într-o reprezentare omogenă și așa apare matricea camerei:
- sau
unde este matricea camerei, care aici este dată de
- ,
iar matricea corespunzătoare a camerei devine acum
Ultimul pas este o consecință a faptului că el însuși este un element proiectiv.
Matricea camerei derivată aici poate părea trivială în sensul că conține foarte puține elemente diferite de zero. Acest lucru depinde în mare măsură de sistemele de coordonate specifice care au fost alese pentru punctele 3D și 2D. Cu toate acestea, în practică, alte forme de matrice de cameră sunt comune, așa cum se va arăta mai jos.
Poziția camerei
Matricea camerei derivată în secțiunea anterioară are un spațiu nul care este întins de vector
Aceasta este , de asemenea , reprezentarea omogenă a punctului 3D care are coordonatele (0,0,0), adică, „centrul camerei“ (aka pupila de intrare , poziția pinhole unui camera obscură ) este la O . Aceasta înseamnă că centrul camerei (și numai acest punct) nu poate fi mapat la un punct din planul imaginii de către cameră (sau în mod echivalent, mapează la toate punctele imaginii pe măsură ce fiecare rază a imaginii trece prin acest punct).
Pentru orice alt punct 3D cu , rezultatul este bine definit și are forma . Aceasta corespunde unui punct la infinit în planul imaginii proiective (chiar dacă, dacă planul imaginii este considerat a fi un plan euclidian , nu există un punct de intersecție corespunzător).
Matricea normalizată a camerei și coordonatele imaginii normalizate
Matricea camerei derivată mai sus poate fi simplificată și mai mult dacă presupunem că f = 1 :
unde aici denotă o matrice de identitate. Rețineți că matricea este împărțită aici într-o concatenare a unei matrice și un vector tridimensional. Matricea camerei este uneori denumită o formă canonică .
Până în prezent, toate punctele din lumea 3D au fost reprezentate într-un sistem de coordonate centrate pe cameră , adică un sistem de coordonate care își are originea în centrul camerei (locația orificiului orizontal al unei camere orificiale ). Cu toate acestea, în practică, punctele 3D pot fi reprezentate în termeni de coordonate în raport cu un sistem de coordonate arbitrar (X1 ', X2', X3 '). Presupunând că axele de coordonate ale camerei (X1, X2, X3) și axele (X1 ', X2', X3 ') sunt de tip euclidian (ortogonal și izotrop), există o transformare 3D euclidiană (rotație și translație) unică între două sisteme de coordonate. Cu alte cuvinte, camera nu este neapărat la origine și se uită de-a lungul axei z .
Cele două operații de rotație și translație a coordonatelor 3D pot fi reprezentate ca cele două matrice
- și
unde este o matrice de rotație și este un vector de traducere tridimensional. Când prima matrice este înmulțită pe reprezentarea omogenă a unui punct 3D, rezultatul este reprezentarea omogenă a punctului rotit, iar a doua matrice efectuează în schimb o translație. Efectuarea celor două operații în ordine, adică mai întâi rotația și apoi translația (cu vectorul de translație dat în sistemul de coordonate deja rotit), oferă o matrice de rotație și translație combinată
Presupunând că și sunt exact rotația și translațiile care leagă cele două sisteme de coordonate (X1, X2, X3) și (X1 ', X2', X3 ') de mai sus, aceasta implică faptul că
unde este reprezentarea omogenă a punctului P în sistemul de coordonate (X1 ', X2', X3 ').
Presupunând, de asemenea, că matricea camerei este dată de , maparea de la coordonatele din sistemul (X1, X2, X3) la coordonatele omogene ale imaginii devine
În consecință, matricea camerei care leagă punctele din sistemul de coordonate (X1 ', X2', X3 ') de coordonatele imaginii este
o concatenare a unei matrice de rotație 3D și a unui vector de traducere tridimensional.
Acest tip de matrice a camerei este denumită matrică normală a camerei , presupune distanță focală = 1 și că coordonatele imaginii sunt măsurate într-un sistem de coordonate în care originea este situată la intersecția dintre axa X3 și planul imaginii și are aceleași unități ca sistem de coordonate 3D. Coordonatele de imagine rezultate sunt denumite coordonate de imagine normalizate .
Poziția camerei
Din nou, spațiul nul al matricei camerei normalizate, descris mai sus, este întins de vectorul 4-dimensional
Aceasta este, de asemenea, coordonatele centrului camerei, acum relativ la sistemul (X1 ', X2', X3 '). Acest lucru poate fi văzut aplicând mai întâi rotația și apoi translația la vectorul tridimensional, iar rezultatul este reprezentarea omogenă a coordonatelor 3D (0,0,0).
Aceasta implică faptul că centrul camerei (în reprezentarea sa omogenă) se află în spațiul nul al matricei camerei, cu condiția să fie reprezentat în termeni de coordonate 3D în raport cu același sistem de coordonate la care se referă matricea camerei.
Matricea normalizată a camerei poate fi acum scrisă ca
unde este coordonatele 3D ale camerei în raport cu sistemul (X1 ', X2', X3 ').
Matricea generală a camerei
Având în vedere cartografierea produsă de o matrice normalizată a camerei, coordonatele imaginii normalizate rezultate pot fi transformate prin intermediul unei omografii 2D arbitrare . Aceasta include traduceri și rotații 2D, precum și scalare (izotropă și anizotropă), dar și transformări generale de perspectivă 2D . O astfel de transformare poate fi reprezentată ca o matrice care mapează coordonatele omogene ale imaginii normalizate la coordonatele omogene ale imaginii transformate :
Inserarea expresiei de mai sus pentru coordonatele de imagine normalizate în termeni de coordonate 3D oferă
Aceasta produce cea mai generală formă de matrice a camerei
Vezi si
Referințe
- Richard Hartley și Andrew Zisserman (2003). Geometrie cu vizualizare multiplă în viziunea computerizată . Cambridge University Press. ISBN 0-521-54051-8 .