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 .