Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[2022] Estimacija pokreta #6

Open
wants to merge 31 commits into
base: master
Choose a base branch
from
Open
Changes from 6 commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
7b9013a
deo uvoda, trecina metode, daisy, deo rezultata
GojakMilica Oct 9, 2022
1bd7b82
Slovne greske, LaTeX, izmenjen deo o generisanju
NovakTJ Oct 15, 2022
d5b06a1
Dodato o modelu i BCD
NovakTJ Oct 16, 2022
34fba3b
Lepse pojasnjen DP deo BCDa
NovakTJ Oct 24, 2022
231b103
Dodato objasnjenje k skupova
NovakTJ Oct 24, 2022
ebe413d
popravljena grcka slova
NovakTJ Oct 25, 2022
641f37b
Dodat latex i pojasnjenja
NovakTJ Nov 9, 2022
77df5b6
Popravljena latex definicija k skupa
NovakTJ Nov 9, 2022
f88fd1a
Dodati grafici zavisnosti u repozitorijum
NovakTJ Nov 9, 2022
d44fdbb
Dodati grafici u izvestaj
NovakTJ Nov 9, 2022
3820662
popravljen jedan dolar, inace latex ne radi svugde
NovakTJ Nov 9, 2022
aeffb13
dodat folder images
NovakTJ Nov 9, 2022
82b0574
gomila komentara resolvovana, latex radi.
NovakTJ Nov 11, 2022
31ede1e
par ispravki
NovakTJ Nov 12, 2022
b14bd3d
dodate ref, opis KITTI, postproc, izmena DAISY
GojakMilica Nov 12, 2022
5cf4cbc
Update content/2022/estimacija-pokreta.md
NovakTJ Nov 13, 2022
b75a49e
Update content/2022/estimacija-pokreta.md
NovakTJ Nov 13, 2022
c9f552b
Update content/2022/estimacija-pokreta.md
NovakTJ Nov 13, 2022
9409bd5
Update content/2022/estimacija-pokreta.md
NovakTJ Nov 13, 2022
da3ae60
Update content/2022/estimacija-pokreta.md
NovakTJ Nov 13, 2022
2a32174
Update content/2022/estimacija-pokreta.md
NovakTJ Nov 13, 2022
8beb7e3
Update content/2022/estimacija-pokreta.md
NovakTJ Nov 13, 2022
74225c0
objasnjen coarse to fine,izbrisan visak, KITTI ref
GojakMilica Nov 13, 2022
6e73ca9
apstrakt
GojakMilica Nov 20, 2022
204fc53
popravljene greske u apstraktu
NovakTJ Nov 20, 2022
f2d2964
Dodat graf apstrakt
NovakTJ Nov 23, 2022
15a00f3
objasnjenu u apstraktu sta su predlozi
NovakTJ Nov 23, 2022
174e8cb
Update content/2022/estimacija-pokreta.md
NovakTJ Nov 25, 2022
7454ae0
Update content/2022/estimacija-pokreta.md
NovakTJ Nov 25, 2022
2bff5d6
Update content/2022/estimacija-pokreta.md
NovakTJ Nov 25, 2022
b2efeff
Update content/2022/estimacija-pokreta.md
NovakTJ Nov 25, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
89 changes: 89 additions & 0 deletions content/2022/estimacija-pokreta.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,92 @@
title: Estimacija pokreta
summary: Estimacija pokreta pomoću optical flow je projekat rađen na letnjem kampu za stare polaznike 2022. godine od Milice Gojak i Novaka Stijepića.
---
[to do]: <ubaci reference, objasni CRF, ubaci slike, postprocessing>

KockaAdmiralac marked this conversation as resolved.
Show resolved Hide resolved
## Uvod

Procena kretanja je proces određivanja vektora kretanja koji opisuju prelazak jedne slike u drugu. Predstavlja jedan od osnovnih problema oblasti kompjuterske vizije.

Većina metoda definiše problem estimacije kao problem minimizacije energije.
KockaAdmiralac marked this conversation as resolved.
Show resolved Hide resolved

Uprkos njihovim uspesima, ovaj i mnogi drugi pristupi su ograničeni činjenicom da je prostorna regularnost modelirana kao konveksna funkcija. Pretpostavka pomaže optimizaciji mada dobijenom polju kretanja (eng. *flow field*)
NovakTJ marked this conversation as resolved.
Show resolved Hide resolved
nedostaju oštri prekidi koji postoje u pravom polju kretanja, naročito pri opisivanju kretanja u blizini granica.
Veliki broj istraživača je fokusiran na preformulaciju problema ne bi li bili dopušteni diskontinuiteti.

Roth i Black su proučavali prostorne statistike optičkog protoka i nagovestili da konveksne energije koje koristi većina pristupa estimaciji obezbeđuju samo aproksimaciju statistika protoka. Predlažu korišćenje Markovljevih slučajnih procesa, ali zbog nekonveksnih energija, dobijanje zaključka ostaje vrlo izazovan problem i polja kretanja procenjena korišćenjem pristupa kontinualne optimizacije još uvek pate od izglađenih diskontinuiteta.
KockaAdmiralac marked this conversation as resolved.
Show resolved Hide resolved
NovakTJ marked this conversation as resolved.
Show resolved Hide resolved

U oblasti *stereo matching*-a ove poteškoće su prepoznate i potreba za nekonveksnim energetskim funkcijama je razrešena. Korišćenje funkcija je olakšano modeliranjem diskretnih optimizacionih algoritama, poput *graph cut*-ova ili *message passing* koje su često bile u mogućnosti da ostvare približno globalan optimum. Većina stereo tehnika sa najboljim rezultatima se oslanja na diskretnu optimizaciju za minimizaciju energije a ne konveksnih funkcija. Iako se estimacija dispariteta može posmatrati i kao ograničeni slučaj optičkog protoka, malo autora je pokušalo da koristi diskretnu optimizaciju za estimaciju optičkog protoka.
KockaAdmiralac marked this conversation as resolved.
Show resolved Hide resolved

U referentnoj metodi(Menze et al. 2015) su predložene tri različite strategije optimizacije diskretnog pristupa. Cilj rada je bio ispitivanje uticaja različitih algoritama na preciznost određivanja optičkog prootka.
KockaAdmiralac marked this conversation as resolved.
Show resolved Hide resolved

## Metod

### Generisanje predloga

Polje kretanja se određuje nad parom slika; referentnoj slici i ciljanoj slici (slici koja je uslikana nekoliko trenutaka nakon referentne). Referentnu sliku želimo da pomoću vektora protoka pretvorimo u ciljanu sliku.

Ciljana slika se deli na ćelije jednakih veličina. Za svaku ćeliju se koristi nasumična k-d šuma (eng: *randomized k-d tree forest*) za deskriptore piksela koji pripadaju toj ćeliji. To je efikasna struktura za nalaženje $K$ piksela najbližih datom pikselu, po sličnosti deskriptora računatih DAISY algoritmom. Za razliku od referentne metode koja čuva sve k-d šume tokom generisanja predloga, naša metoda pravi k-d šumu za jednu ćeliju, iskoristi je za nalaženje najsličnijih piksela u ćelijama u okolini i više je ne čuva. Time svaki piksel dobije ukupno $M$ predloga destinacije vektora protoka, po $K$ iz svake okolne ćelije. Za pravljenje k-d šuma koristi se algoritam iz biblioteke FLANN.
KockaAdmiralac marked this conversation as resolved.
Show resolved Hide resolved
KockaAdmiralac marked this conversation as resolved.
Show resolved Hide resolved

Kako susedni pikseli često imaju sličan vektor protoka, dodatno se uzima $N$ nasumičnih piksela iz lokalne Gausove distribucije centrirane na referentnom pikselu i u skup predloga se dodaju vektori protoka čija je destinacija piksel koji najbolje odgovara izabranom pikselu. Naša metoda ne dodaje vektor u skup predloga u slučaju da je već prisutan, za razliku od referentne metode koja dodaje sledeći najbolji vektor protoka tog piksela. Zbog toga ne mora da sortira sve predloge iz datog piksela, čime dobija na efikasnosti.
NovakTJ marked this conversation as resolved.
Show resolved Hide resolved
NovakTJ marked this conversation as resolved.
Show resolved Hide resolved

#### DAISY

DAISY je algoritam koji pretvara lokalne regione slike u niskodimenzionalne invarijantne deskriptore koji mogu da se koriste za uparivanje i klasifikaciju.

Slično SIFT deskriptoru, DAISY je 3D histogram gradijenata lokacija i orijentacija. Razlika leži u dva aspekta.
KockaAdmiralac marked this conversation as resolved.
Show resolved Hide resolved
Jedna je da se u SIFT-u za konvolucije gradijenata u određenim smerovima koriste težinske sume normi gradijenata, dok DAISY koristi nekolino Gausovih filtera. Ovo doprinosi efikasnom računanju deskriptora na svakoj lokaciji piksela, zato što histogram treba da se izračuna samo jednom po regiji i može se koristiti za sve okolne piksele. Druga razlika je da DAISY koristi kružnu konfiguraciju komšija umesto pravougaone koje koristi SIFT. Za datu ulaznu sliku $I$, određen broj mapa orijentacija $G_o$, jedna za svaki procenjeni pravac $o$, su prvo izračunati. Formalno su definisani kao:


$$G_o = \left(\frac{\partial I}{\partial o} \right) ^+ $$

Gde $+$ znači da su samo pozitivne vrednosti sačuvane da bi se održala polarnost intenziteta promena. Nad svakom mapom orijentacija, koja predstavlja gradijentne norme za taj pravac na svim lokacijama piksela, se nekoliko puta vrši Gausova konvolucija sa kernelima različitih standardnih devijacija da bi se dobile konvoluirane orijentacione mape. Efikasnost DAISY algoritma proizilazi upravo odavde, zato što su Gausovi filteri razdvojivi i zato se konvolucije mogu vršiti vrlo efikasno. Ovo znači da se konvolucije sa velikim kernelom mogu računati iz nekoliko uzastopnih konvolucija sa manjim kernelima. Stoga se smanjuje količina računanja.

Na svakoj lokaciji piksela, njegova okolina je podeljena u krugove različitih veličina lociranih na seriji koncentričnih prstenova. Prečnik svakog kruga je proporcionalan njegovoj udaljenosti od centraknog piksela i standardna devijacija Gausovog kernela je proporcionalna veličini kruga. Unutar svakog kruga je napravljen vektor sabiranjem svih

Postoje 4 glavna parametra koji određuju izgled DAISY deskriptora: prečnik oblasti komšija ($R$), broj izdvojenih orijentacija ($o$), broj konvolucionih orijentacionih prstenova ($r$) i broj krugova na svakom prstenu ($c$).

Menhetn norma razlike deskriptorskih vektora početnog i krajnjeg piksela vektora protoka se čuva kao *cena* tog vektora protoka. Odseca se iznad granične vrednosti $\tau_\phi$ i koristi se u daljim proračunima.

### Random Field Model

Polje protoka je modelirano kao Markovljev slučajni proces. Problem procene pokreta je sveden na minimizaciju zbira cena vektora protoka i *cene slaganja* dva vektora protoka svaka dva susedna piksela, koja je definisana kao Menhetn norma njihove razlike. Kao i cena vektora protoka, odsečena je odozgo sa $\tau_\psi$, što omogućava efikasnije izvršavanje programa i izbegavanje neproporcionalnog uticaja oštrih prekida. U svakom trenutku se čuva trenutno polje protoka, i ukupna cena se postepeno smanjuje odabirom bolje kombinacije vektora protoka iz skupa vektora svakog piksela. Ovo se radi pomoću spuštanja po blokovima koordinata (eng: *block coordinate descent), nalaženjem minimalnog zbira cena u pojedinačnom redu ili koloni piksela na slici. Ovo ne garantuje nalaženje globalnog minimuma cene, što je NP-težak problem, ali garantuje smanjivanje ukupne cene slike u svakom koraku spuštanja.

(Dodati LaTex)

### Pronalaženje optimalnih vektora

U pojedinačnom redu piksela je potrebno naći kombinaciju vektora protoka iz predloga koja će dati minimalan zbir cena vektora protoka i cena slaganja, uzimajući u obzir trenutno stanje polja protoka u susedna dva reda. Cene na koje treba paziti su cene vektora protoka, cena slaganja sa pikselima iz susednih redova i cena slaganja sa pikselima iz istog reda.

Problem minimizacije je rešen dinamičkom matricom, čije su koordinate pozicija piksela u redu i redni broj trenutnog predloga u tom pikselu. Naime, algoritam kreće od početka reda piksela, i u matrici čuva najmanju od kumulativnih cena svih kombinacija u delu reda od početnog do datog piksela, koje se završavaju predlogom datog rednog broja u tom pikselu. Sami vektori protoka koji sačinjavaju tu kombinaciju se ne čuvaju, već se najbolja kombinacija rekonstruiše idući unazad kroz matricu nakon što se popuni do kraja. Stari predlozi vektora se zamene novim i kreće se sa obradom sledećeg reda.

Bez modifikacija algoritma, bilo bi neophodno računati cene slaganja svakog para vektora protoka iz svaka dva susedna piksela u redu. Radi optimizacije možemo koristiti činjenicu da su cene slaganja odsečene. Naša metoda pre BCD-a za svaki par susednih piksela pravi *k-skupove* koji za svaki predlog jednog od njih čuvaju redne brojeve predloga drugog piksela koji daju cenu slaganja manju od granične vrednosti, $\tau_\psi$. Algoritam mora da računa samo cene slaganja za predloge prisutne u k-skupovima. Zbog raznovrsnosti predloga, velika većina cena slaganja je odsečena, što čini k-skupove malim i ubrzava algoritam. ((Dodati LaTex + objasnjenja))

Iako deluje da mogu biti od pomoći, u originalnom radu je pokazano da korišćenje algoritama detekcije ivica u ovom delu programa daje gore rezultate, tako da nisu korišćeni.
NovakTJ marked this conversation as resolved.
Show resolved Hide resolved

### Baza podataka

(Malo o bazi)
KockaAdmiralac marked this conversation as resolved.
Show resolved Hide resolved

### Postprocesiranje
KockaAdmiralac marked this conversation as resolved.
Show resolved Hide resolved

## Rezultati

### Kvantitativni rezultati

Uspešnost algoritma je merena na osnovu dve metrike: srednja greška i procenat pogrešnih piksela. Srednja greška je računata kao srednja vrednost zbira kvadrata razlike komponenata istinitog vektora pomeraja i naše procene. Pogrešan piksel se smatra onaj čija je greska veća od 3 piksela. Za evaluaciju su korišćeni podaci iz KITTI baze koja sadrži parove uzastopnih slika sa primerima manjih i većih pomeraja. Svaki par slika u skupu za trening sadrži i istinito polje pokreta.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Referenca na KITTI.

Tabela prikazuje zavisnost metrike od broja izvršenih BCD-ova. Testiranja su vršena nad skupom od po sedam parova slika.
KockaAdmiralac marked this conversation as resolved.
Show resolved Hide resolved

| BCD | Srednja greška | Procenat pogrešnih piksela|
| ----------- | ----------- | ------------------------|
| 0 | 13.81 | 30.97 |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rekli smo da na ovom mestu treba dodati merne nesigurnosti, za sve vrednosti koje su usrednjene treba izračunati standardnu devijaciju i zabeležiti pored srednje vrednosti, i uskladiti broj cifara srednje vrednosti sa brojem cifara greške. U moje vreme, Stojke bi nas linkovao do ove prezentacije, koja vam i sad može biti od koristi.

| 1 | 6.59 | 21.67 |
|2 | 4.81| 19.2|
|3|4.54| 18.64|
|4|4.41|18.40|
|5|4.36|18.27|
|6| 4.33|18.20|
|7|4.30|18.15|

## Literatura

Roth, S., Black, M.J.: On the spatial statistics of optical flow. IJCV 74(1), 33–50 (2007)