Proces kamera trackinga
Autori teksta:
Bogdan Mihajlović, Matchmove supervizor u QLBeans
Zlatko Milojičić, VFX artista
Matchmove (tracking) u VFX produkciji predstavlja rekonstrukciju kretanja kamere , a po potrebi i kretanja objekata, u realnoj sceni. U postupku produkcije vizuelnih efekata matchmove se nalazi na samom početku jer bez podataka kretanju kamera nije moguće nastaviti dalji tok produkcije. Dalje, iz toga proizilazi da rekonstrukcija kamere mora biti što tačnija (kretanje kamere nikad nije verno rekonstruisano, ali greška koja se javlja je ljudskom oku neuočljiva).
Sam proces trackinga možemo podeliti u četiri etape:
1. Redistorzija (rekonstrukcija) objektiva
2. 2D track
3. Solve
4. Layout
Redistorzija (rekonstrukcija) objektiva
Iz camera trackinga ne dobija se samo informacija o kretanju kamere, već i o karakteristikama objektiva i senzora.
Karakteristike senzora čine njegove dimenzije i FPS. Te informacije se najčešće dobijaju iz same produkcije. U slučaju da ne postoje informacije, onda se uzimaju standardizovane vrednosti od već postojećih kamera (npr. širina 0.935 inča, jer je to širina senzora kod Arri kamera).
Naravno, ovde treba napomenuti da se snimljeni materijal ne mora snimiti isključivo senzorima, već može i filmskom trakom, onda se u tom slučaju uzima dimenzija jednog frejma filmske trake.
U slučaju da se snima anamorfnim objektivom onda je širina frejma trake ili senzora dva puta veća od one koja je data u specifikacijama.
Karakteristike objektiva su fokalna dužina (u daljem tekstu: fokalna) i distorzija. Podatke o fokalnoj dužini dostavlja produkcija, ali u slučaju da ne postoje onda se ručno ili automatski određuje fokalna.
Programi za tracking u sebi već imaju ugrađene alate za ručno nalaženje fokalne, ali se ona može odrediti i u nekom od 3D programa za modeling pomoću primitiva. Automatsko određivanje fokalne se vrši u procesu solve o kome će biti reči kasnije.
Distorzija može biti prosta (jednostepena ili dvostepena) ili kompleksna (više stepena).
Sferični objektivi najčešće imaju prostu distorziju, dok anamorfni mogu imati obe.
Informacije o objektivima se dobijaju iz lens gridova. Lens grid je ravna površina ofarbana po šablonu šahovske table.
U programima za tracking undistrozija se vrši najčešće tako što se horizontalne i vertikalne linije poklapaju sa linijama šahovske table. Razlika između prave linije i iskrivljene predstavlja informaciju na osnovu koje program rekonstruiše distorziju. Što je veći broj linija to je undistorzija tačnija.
Kada se snimaju gridovi za distorziju poželjno je da se oni snime u perspektivi jer se na taj način omogućava da se istovremeno nađe fokalna i distorzija objektiva.
U slučaju da produkcija ne dostavi snimljene lens gridove onda je moguće izvršiti undistorziju i pomoću nekih objekata na slici (npr. vertikala zgrade). Informacije o distorziji se departmanu za render ili compositing dostavljaju pomoću STMapa ili Nuke scripti, u zavisnosti kakav je pipeline studija ili kompanije.
2D track
2D track predstavlja generisanje vektora kretanja tačaka na slici. Intenzitet ovih vektora je definisan razlikom u pikselima određene karakteristične tačke (homolog) na slici između frejmova.
Na osnovu pravca, smera i intenziteta vektora program izračunava paralaksu između dva frejma, kada se ovi proračuni primene na veću grupu frejmova onda se može izračunati kretanje kamere. Tako npr. ako svi vektori imaju isti pravac, smer i intenzitet onda program zna da se radi o nodalnoj kameri jer kod nje nema paralakse pa samim tim razlika između vektora je nula.
Kao što je već poznato, paralaksa je vidljiva promena pozicije objekta kada se gleda iz različitog ugla (iz dva oka ili dve različite pozicije). Drugim rečima, to je razlika jednog objekta kada se gleda iz različitih uglova. Paralaksa se često koristi da se opiše razlika između homologa. Homolizi su identične karakteristične tačke dva ili više frejma. Rastojanje između dve homologne tačke definisano je kao razdvajanje dve slike. Razdvajanje se može koristiti u određivanju ispravne pozicije dve slike ili više slike - ali treba imati na umu da odvajanje dve slike varira u zavisnosti od udaljenosti od tačaka. Bliži objekti imaju veću paralaksu od udaljenijih objekata. Zbog ovoga, paralaksa se može koristiti da bi se odredilo rastojanje: paralaksa je ugao između dve linije pravca gledanja.
Dakle, objekti koji su bliži kameri brže će se kretati u odnosu na posmatrača (kameru), a oni koji su dalji sporije. Iz ovoga se može zaključiti da će tačke bližih objekata imati veći intenzitet vektora, a dalji objekti manji.
U programima postoje dve vrste trakera (vektora): user i autotrack. User trackovi su oni koji se generisani od strane korisnika, a autotrack-ovi od strane programa. Kada se radi solve program u računanju naviše uzima u obzir user trackove jer se smatra da su oni najtačniji, a auto trekeri se koristi kao pomoć za “peglanje” animacije kamere.
Iako je autotrack dosta napredovao u odnosu na prve verzije programa, on još uvek ne izbacuje skroz tačne rezultate (vektore). Najveći problem autotracku predstavljaju objekti u T preseku. Objekti T preseka predstavlja objekte koji se nalaze na različitim rastojanjima jedan iz drugog. Gledajući iz kamere njihova tačka preseka predstavlja jedan homolog, međutim u toj tački nastaje kolizija paralakse. Što dalje implicira da vektor te tačke nije tačan jer će imati drugačije vrednosti u odnosu na većinu ostalih susednih vektora.
Iz ovih razloga je preporučljivo da se ručno izbrišu autotrackeri koji se nalaze u T preseku, pošto ih program nije prepoznao, kao netačne vektore.
Na kraju treba napomenuti da se UVEK prvo radi 2D track, pa tek se onda primeni undistorzija. U slučaju da ako se uradi obrnuto, može se doći u situaciju da se mora raditi 2D track za svaku novu distorziju jer postoje slučajevi kada se distorzija ne može tačno iz prvog puta odrediti već mora iz više iteracija ili naći njenu srednju vrednosti.
Solve
Solve predstavlja rešavanje kretanje kamere. Na osnovu informacija o distorziji, fokalne i vektorima izračunava kamera. U praksi se retko kad dobija kamera iz prvog puta. Ako je u nekom opsegu frejmova solve netačan onda je potrebno dodati 2D user trackere ili pročistiti auto treckere. Ako je procenjeno da je solve dobar sledeće što treba uraditi jeste proveriti krive animacije. Translacije trebaju biti smooth (glatke), jer zbog težine kamere ili stabilizatora koje se koriste, kamera ne može da ima nagle skokove između dva susedna frejma. Takođe, mogu se javiti i šumovi u translacijma koji nisu poželjni. U slučaju ako postoje šumovi u rotacijama oni se ostavljaju, ali ako se jave nagli skokovi između dva susedna frejma onda se skokovi “peglaju”. Bitno je napomenuti da rotacija ima najveći utiče na položaj horizonta, s toga treba biti oprezan kada se radi njeno peglanje. U slučaju da dođe do preteranog peglanja horizonta može se doći u situaciju da nebo “pliva” ako se ono bude menjalo u compositingu.
Najtačniji metod za rešavanje kamere je pomoću survey solvera u koji se unosi 3D koordinata svakog homologa. Koordinate se pronalaze preko 3D modela objekta ili prostora, koji se generise postupkom fotogramaterije ili LIDAR skenerom. Dakle, svaki vektor (homolog) će imati tačnu poziciju u 3D prostoru. Mana survey solvera je sto zahteva precizne modele sa teksturama, jer greška od nekoliko centimetara u položaju jednog homolga može uticati na tačnost rešavanja kamere.
Layout
Layout predstavlja izradu low poly 3D objekata koji se nalaze na sceni, ali istovremeno služi za proveru kretanja kamere. Današnji programi za 3D track imaju mogućnost za modelovanje objekata ali se zbog brzine i preciznosti to ne radi u njima već u programima koju su specijalizovani za 3D modeling. U slučaju ako pojedini objekti u 3D prostoru nemaju logičan položaj onda se potrebno se vratiti u program za tracking I tamo ispraviti 3D track kamere. Ponekad je potrebno vise iteracija solve-layout da bi se dobio precizan track.
https://mt.elfak.ni.ac.rs/index.php/sr/12-kategorija-sr-yu/intervjui/30-proces-kamera-trackinga#sigFreeId30f6d247ee