Kako iz dveh ali treh slik dobimo globino. To je poglavje z največ izpitnimi nalogami — 14, 15, 16, 17 in 18 na prvem izpitu ter 1–5 na drugem kolokviju. Skupaj 100 od 500 točk.
Na osnovi ene slike ne moremo določiti globine (oddaljenosti) točke iz scene vzdolž projekcijskega žarka. Že iz dveh slik (iste scene, a posnete pod različnim kotom) lahko merimo globino — uporabimo triangulacijo.
| Oznaka | Pomen |
|---|---|
| $O$, $O'$ | optična centra (luknjici) prve oz. druge kamere |
| $P$ | točka v prostoru |
| $p$, $p'$ | sliki točke $P$ na virtualni slikovni ravnini $\Pi$ in $\Pi'$ |
| $e$, $e'$ | epipola posamezne kamere |
| $l = pe$, $l' = e'p'$ | epipolarni premici (daljici) |
Virtualni ravnini se nahajata pred luknjico — uporabljeni sta zaradi lažjega risanja. Vse enačbe in razlage veljajo tudi za fizikalno sliko oz. mrežnico, ki se nahaja za luknjico.
Točke $O$, $O'$ in $P$ definirajo ravnino, ki jo imenujemo epipolarna ravnina — točki $p$ in $p'$ ležita na tej ravnini. Epipol $e$ dobimo na presečišču virtualne ravnine $\Pi$ in osnovnice (daljice) $OO'$.
Če sta točki $p$ in $p'$ sliki (projekciji) iste točke $P$, potem mora $p'$ ležati na epipolarni premici, prirejeni točki $p$.
Če poznamo položaj točke $p$, potem lahko potencialne ujemajoče se točke v drugi sliki ležijo le na epipolarni premici $l'$. Ta omejitev igra ključno vlogo v stereo vidu ter pri analizi gibanja — namesto 2D iskanja po celi sliki iščemo po 1D premici.
Predpostavimo, da so notranji parametri obeh kamer poznani. Velja:
Matrika $\mathsf{E}$ je osnovna matrika (essential matrix), velikosti $3\times3$.
Produkt $\mathsf{E}p'$ interpretiramo kot koordinatni vektor, ki predstavlja epipolarno premico, povezano s točko $p'$, v PRVI sliki (tj. premica $l$):
Podobno velja za produkt $\mathsf{E}p$, vendar za drugo sliko.
kjer je $t$ vektor $OO'$, $\mathsf{R}$ pa rotacijska matrika, ki poveže drugi pogled s prvim. Poljuben vektor $w'$ (predstavljen v drugem koordinatnem sistemu) je v prvem koordinatnem sistemu izražen kot $\mathsf{R}w'$.
Iz $au + bv + c = 0$ dobimo obliko, kot jo pričakuje izpit:
Notranji parametri obeh kamer niso poznani. Velja:
Matrika $\mathsf{F}$ je temeljna matrika (fundamental matrix), velikosti $3\times3$:
kjer sta matriki $\mathsf{K}$ in $\mathsf{K}'$ matriki notranjih parametrov oz. kalibracijski matriki kamer. Izraz $\mathsf{F}p'$ prav tako določa epipolarno premico $l$ (izraz $\mathsf{F}p$ pa premico $l'$).
Postopek določitve matrike $\mathsf{F}$ imenujemo umerjanje oz. kalibracija. Za določitev matrike $\mathsf{F}$ moramo določiti korespondenčne točke — par ujemajočih se točk $(p_i, p'_i)$, kjer je $p_i$ točka iz prve slike, $p'_i$ pa pripadajoča točka iz druge slike.
Za vsak par dobimo eno vrstico oblike:
Če izberemo $n > 8$ korespondenčnih točk, lahko matriko $\mathsf{F}$ ocenimo z uporabo linearne metode najmanjših kvadratov, kjer minimiziramo izraz $\sum_{i=1}^{n}\left(p_i^T \mathsf{F} p'_i\right)^2$.
Raziskave so pokazale, da dobimo boljše rezultate, če algoritem normaliziramo:
Najprej odštej povprečje, šele nato pomnoži s skalirnim faktorjem: $u = (u_{\text{orig}} - \bar{u}) \cdot s$. Če bi najprej skaliral, dobiš popolnoma drugo vrstico — in prav ta odgovor je med ponujenimi na izpitu.
Algoritem daje povprečne rezultate — boljši so robustni postopki kalibracije: npr. metoda M-cenilk, metoda RANSAC, metoda LMedS (najmanjša mediana kvadratov).
Pare korespondenčnih točk lahko izberemo:
Paziti moramo, da so korespondenčne točke izbrane oz. razpršene po vsej sliki (da ne ležijo preveč skupaj) — sicer postane umerjanje nestabilno.
Sceno opazujemo s tremi perspektivnimi kamerami z optičnimi centri $O_1$, $O_2$, $O_3$. Opazovana točka $P$ ima projekcije $p_1$, $p_2$, $p_3$ na virtualnih slikovnih ravninah $\Pi_1$, $\Pi_2$, $\Pi_3$.
Vsak par kamer definira svojo epipolarno omejitev — obravnavamo torej 3 neodvisne enačbe:
$\mathsf{E}_{ij}$ je osnovna matrika, prirejena slikama $i$ in $j$. Podane enačbe veljajo za umerjene razmere; pri neumerjenih bi namesto osnovne matrike uporabili temeljno matriko ($\mathsf{F}_{ij}$).
V praksi se žarki $R_1$, $R_2$ in $R_3$, ki so prirejeni slikovnim točkam $p_1$, $p_2$ in $p_3$, ne sekajo! Enako situacijo imamo že pri dveh pogledih.
Ta fraza v nalogi 16 pomeni težišče trikotnika. Če naloga pove, da je ena rekonstrukcija »2× bolj natančna«, jo v povprečju štej dvakrat — torej deli s 4, ne s 3. Odgovor, ki ustreza navadnemu povprečju treh točk, je namenoma med ponujenimi.
Imejmo dve ujemajoči se slikovni točki $p$ in $p'$ opazovane točke $P$ v prostoru.
1. rešitev: točko $P$ postavimo na sredino daljice z najkrajšo razdaljo med žarkoma.
2. rešitev: izraz $p = \frac{1}{z}\mathsf{M}P$ lahko zapišemo kot $p \times \mathsf{M}P = 0$ in na tej osnovi dobimo sistem:
Rešiti moramo torej predeterminiran sistem 4 neodvisnih linearnih enačb.
Poseben primer stereo konfiguracije:
Vrednost razlike med točkama — dispariteta $d$:
Pozor: $u$ in $u'$ sta enaka! Absolutna oddaljenost $z$ točke $P$ je odvisna od razlike $d$; $B$ je osnovnica — razdalja med optičnima centroma $OO'$.
Epipolarne premice sovpadajo s horizontalnimi linijami slike (tj. vrsticami) in so tudi vzporedne z osnovnico; epipola sta v neskončnosti.
Dispariteta $d$ je najprej v pikslih. Formula $z = fB/d$ zahteva, da je $d$ v istih enotah kot $f$ in $B$ (metrih). Zato: $d_{\text{[m]}} = d_{\text{[px]}} \,/\, \text{prostorska ločljivost [px/m]}$. Šele nato v formulo.
Rektifikacija je proces, ki originalni sliki obeh kamer (lahko poljubno postavljeni!) zamenja z ekvivalentnima slikama, ki imata skupno slikovno ravnino, le-ta pa je paralelna z osnovnico, ki povezuje optična centra.
S tem postopkom pridemo na umeten način do situacije paralelnih kamer — velja vse, kar smo povedali pri paralelnih kamerah (tudi enačbe!).
Rektifikacija je preslikava, ki ima 2 parametra:
Gre za reševanje problema: kje se nahaja določen del prve (leve) slike na drugi (desni) sliki.
Možna pristopa:
| Omejitev | Pomen |
|---|---|
| Podobnost (kompatibilnost) | podobne vrednosti sivin oz. značilnic v obeh slikah |
| Enoličnost | en piksel oz. značilnica se ujema z enim pikslom oz. značilnico z druge slike |
| Zveznost | vrednost razlike (disparity) se skozi sliko spreminja gladko |
| Urejanje | če sta ujemajoča se para $(m, m')$ in $(n, n')$ in je $m$ levo od $n$, potem bo tudi $m'$ levo od $n'$ |
| Epipolarna omejitev | ujemajoča se točka lahko leži le na pripadajoči epipolarni premici — ta omejitev je najbolj zanesljiva! |
Najprej enote: $B = 0{,}12$ m, $f = 0{,}05$ m. Dispariteta v metrih: $d = 17 / 1400 = 0{,}012143$ m.
$z = \dfrac{fB}{d} = \dfrac{0{,}05 \cdot 0{,}12}{0{,}012143} = \dfrac{0{,}006}{0{,}012143} = \mathbf{0{,}49}$ m. Odgovor a) je past za tiste, ki pozabijo pretvoriti disparieto iz pikslov.
Normalizacija ima dva koraka v določenem vrstnem redu: (1) premik v težišče, (2) skaliranje.
$u = (272 - 558) \cdot 0{,}52 = -286 \cdot 0{,}52 = \mathbf{-148{,}72}$. Odgovor a) je past za obrnjen vrstni red, odgovor d) za pozabljeno skaliranje.
»Postopek z geometrijsko interpretacijo« = težišče. Prva točka šteje dvakrat, zato delimo s 4:
$x = (2\cdot488 + 414 + 446)/4 = 1836/4 = 459$
$y = (2\cdot535 + 508 + 567)/4 = 2145/4 = 536{,}25 \to 536$
$z = (2\cdot104 + 174 + 170)/4 = 552/4 = 138$
Odgovor b) je natanko tisto, kar dobiš, če uteži ne upoštevaš.