You are on page 1of 8

UNIVERZITET U NOVOM SADU

FAKULTET TEHNIČKIH NAUKA

Ljubiša Kovačević

Katedra za animaciju u inženjerstvu


Video u inženjerskoj
animaciji
Konačni predmetni zadatak

Novi Sad, 2023.


Ljubiša Kovačević Konačni predmetni zadatak

1. Uvod

U ovom radu biće opisan postupak koji uključuje obradu videa, izdvajanje obeležja,
stereo rektifikaciju i dinamičko 3D renderovanje uz pomoć OpenCV i OpenGL biblioteka.
Projekat je podeljen u dva radna fajla, KPZ1 i KPZ2, gde su u KPZ1 dobijene depth mape, a u
KPZ2 je dobijan finalni render. Ceo postupak biće objašnjen uz propratna teorijska objašnjenja
koja stoje iza koda.

2. Obrada videa

U KPZ1 prvi deo koda zasniva se na izdvajanju i obradi frejmova snimljenog videa. U
main-u, video se učitava pomoću funkcije VideoCapture. While petlja služi da iz videa izdvaja
frejmove – u ovom slučaju svaki 30. Frejmovi se zapisuju pomoću imwrite kao eksterni fajl.
Izdvojeni frejmovi služiće kao slike nad kojim će biti vršena dalja obrada. Od izdvojenih slika
biraju se najpogodnije i učitavaju pomoću imread. Ove učitane slike će se upotrebljavati u
daljem kodu.
Ljubiša Kovačević Konačni predmetni zadatak

3. Izdvajanje obeležja i podudarnost

Nakon odabira slika, one se konvertuju u sivi prostor boja i čuvaju. Ovo je potreban korak
pre početka detekcije obeležja. Za nalaženje podudarnosti koristi se robust matcher. Robust
matcher služi da pronađe podudarna obeležja između dva skupa ključnih tačaka slike. Ovo
obično postiže uz pomoć algoritama za detekciju obeležja (feature detection algorithms) poput
SURF (Speeded-Up Robust Features), SIFT (Scale Invariant Feature Transform) ili ORB
(Oriented FAST and Rotated BRIEF). Radi tako što filtrira neželjene komponente (takozvane
outlier-e) i time čini da samo pouzdane podudarnosti utiču u narednim proračunima, poput
procene fundamentalne matrice ili 3D rekonstrukcije.

Robust matcher sadrži nekoliko ključnih elemenata:

• Nivo pouzdanosti (u datom kodu conf): Određuje prag za željene komponente (inlier-e)
tokom nalaženja podudarnosti. Viši nivo pouzdanosti daje uži skup inlier-a.

• Minimalna distanca do epipolarne linije (u datom kodu minDist): Minimalno dozvoljeno


rastojanje tačke od njene epipolarne linije. Tačke van ove razdaljine se smatraju outlier-
ima i odbacuju iz konačnog skupa podudarnih tačaka.

• Provera odnosa (u datom kodu ratio): Prag odnosa koji se koristi za proveru odnosa
tokom pronalaženja podudarnih obeležja. Ona poredi rastojanje najbliže podudarne
tačke u odnosu na rastojanje druge najbliže podudarne tačke. Ako je njihov odnos ispod
ovog praga, podudarnost se smatra pouzdanom.
Ljubiša Kovačević Konačni predmetni zadatak

Detektor obeležja (feature detector) služi za pronalaženje ključnih tačaka (keypoints) na


slikama. U ovom slučaju kao algoritam detekcije postavlja se SURF.

Matcher sada vrši detekciju podudarnih obeležja između parova slika. Kao izlaz daje
pronađene podudarnosti (matches) koje se i upisuju kao eksterni fajl, ključne tačke prve i druge
slike (keypoints). Fundamentalna matrica procenjuje se pomoću RANSAC (Random Sample
Consesus) algoritma. RANSAC je robusna statistička metoda koja se često koristi u obradi slike
za rešavanje sistema podataka sa velikim brojem outlier-a. RANSAC se sastoji iz nekoliko
koraka:

1. Nasumično bira dve tačke.


2. Povezuje te tačke linijom.
3. Broji inlier-e (tačke u blizini linije).
4. Ponavlja za određen broj iteracija.
5. Bira liniju sa najviše inlier-a kao najbolje odgovarajuću liniju.

Fundamentalna matrica je fundamentalna ( ) za stereo rektifikaciju i izvođenje


informacije o dubini. Funkcija computeCorrespondingEpilines računa epipolarne linije koje
odgovaraju podudarnim tačkama.
Ljubiša Kovačević Konačni predmetni zadatak

Stereo rektifikacija podrazumeva korišćenje fundamentalne matrice kako bi se


rektifikovali stereo parovi slika. Rektifikacijom se transformišu slike iz stereo para (uslikanog
pomoću dve kamere) tako da se korespondentne tačke na sceni nalaze na istoj horizontali na
obe slike, odnosno epipolarne linije (linije koje povezuju korespondentne tačke na obe slike) se
dovode na zajedničku horizontalnu osu. Kao rezultat rektifikacije dobijaju se matrice
homografije koje se dalje normalizuju i primenjuju kako bi se rektifikovale slike. Matrice
homografije su matrice transformacije koje očuvavaju kolinearnost tačaka. Pored rektifikacije
slike često koriste i za:

• Povezivanje panorama (stitching): za kombinovanje više slika u panoramu.

• Proširenu realnost: za mapiranje virtuelnih objekata na scene iz realnog sveta.

• Kalibraciju kamere: za procenu intrinzičnih i ekstrinzičnih parametara kamere.

• Prepoznavanje predmeta: za poređenje i prepoznavanje različitih predmeta


sagledavanjem njihovih obeležja iz različitih uglova.

Stereo podudaranje (matching) postiže se korišćenjem block-matching algoritma


StereoBM. On se često koristi u obradi slike za procenu pokreta, obično u kontekstu kompresije
i analize videa. Glavni cilj mu je da proceni vektor pomeraja regiona (blokova) u uzastopnim
frejmovima video sekvence. Ima široku primenu u kodecima poput MPEG i H.264. Block-
matching metoda ima sledeće parametre:

• preFilterSize: veličina bloka za prefiltriranje ulaznih stereo slika. Koristi se za


normalizaciju vrednosti piksela i smanjenje šuma.

• preFilterCap: postavlja prag za korak prefiltriranja. Sprečava prefilter u


pojačavanju šuma.
Ljubiša Kovačević Konačni predmetni zadatak

• minDisparity: minimalna moguća vrednost dispariteta. Predstavlja najmanju


moguću razliku horizontalnih pozicija između korespondentnih piksela na levoj i
desnoj slici.

• numberOfDisparities: opseg mogućih dispariteta. Predstavlja razliku


maksimalnog i minimalnog dispariteta. Algoritam traži disparitete u ovom opsegu.

• textureThreshold: prag koji se koristi za odstranjivanje regiona sa niskom


teksturom. Sprečava da algoritam kreira disparitete u oblastima sa niskom
teksturom.

• uniquenessRatio: proverava razliku između najbolje i druge najbolje podudarnosti


(match-a). Ako je razlika manja od ove vrednosti, match se smatra nepouzdanim
i odbacuje se.

• speckleWindowSize: maksimalna veličina glatkih disparitetnih regiona. Ako je


pozitivan, speckle-i (mrljice) manje veličine dispariteta od ovog opsega biće
izfiltrirane.

• speckleRange: maksimalna varijacija dispariteta u svakoj povezanoj komponenti


(speckle-u). Definiše koliko se vrednosti dispariteta mogu razlikovati unutar
speckle-a da bi se mogle smatrati delom istog objekta.

• disp12MaxDiff: maksimalna dozvoljena razlika (merena u pikselima) u proveri


dispariteta levo-desno. Filtrira nekonzistentne disparitete između leve i desne
slike.

• SADWindowSize: veličina bloka za podudaranje (match-ovanje). Definiše veličinu


prozora koji se koristi za match-ovanje. Veća veličina prozora obuhvata veću
okolinu, što može da poboljša preciznost ali produžava vreme proračuna.

Ovaj algoritam daje mape dispariteta, koje ukazuju na razlike u pikselima između
rektifikovanih parova slika. Adekvatno podešavanje gore navednih parametara je ključno u
dobijanju dobre mape dispariteta. Mape dispariteta se normalizuju, što daje mape dubine (depth
maps) koje obuhvataju trodimenzionalne karakteristike scene. Nakon ovoga, rektifikuju se i
slike u boji i zapisuju u eksterni fajl kako bi se koristile u finalnom renderu. Postupak se ponavlja
za svaki naredni par ulaznih slika.
Ljubiša Kovačević Konačni predmetni zadatak

4. 3D rendering

Unutar KPZ2 učitan je OpenGL radi postizanja 3D rendera. Inicijalizuje se OpenGL,


učitavaju se teksture izvedene iz depth mapa i priprema se 3D renderovanje terena. OpenGL
(Open Graphics Library) je moćan i široko upotrebljivan API za renderovanje 2D i 3D grafike.
Svrha mu je da sarađuje sa grafičkom karticom računara radi efikasnog renderovanja. Ima
široku upotrebu – od dizajna i simulacija do zahtevnih modernih video igara. OpenGL je „cross-
platform“ što znači da ga je moguće koristiti na različitim operativnim sistemima. Koraci
primenjeni u kodu su:

• Inicijalizacija OpenGL parametara i aktiviranje neophodnih funkcija.

• Učitavanje podataka o terenu i odgovarajućih tekstura izvedenih iz depth mapa.

• Implementacija svetla pomoću ambijentalnog i difuznog izvora radi poboljšanja


vizuelnog realizma.

• Renderovanje 3D terena uz pomoć podataka o verteksima i normalama dobijenih


iz učitanog terena.
Ljubiša Kovačević Konačni predmetni zadatak

Funkcija zasnovana na vremenu služi da dinamično menja različite slika depth mapa i
njihove odgovarajuće terene. Dinamičko menjanje modela stvara kontinualnu 3D vizualizaciju.

You might also like