Kako iz svetlobe nastane matrika števil in kako iz točke v prostoru izračunamo piksel,
v katerega se preslika. To poglavje da izpitne naloge 1, 2 in 3 — 60 od 500 točk.
Zajemanje slik s kamerami CCD razumevanje
Kamere CCD (charge-coupled-device) vsebujejo senzor CCD. Senzor je običajno pravokotne oblike
in sestoji iz množice polj (elementov). Vsako polje je občutljivo na svetlobo, ki pade nanjo:
lahko meri količino svetlobne energije, ki pade nanjo;
količina svetlobne energije se v vsakem polju zbira skozi določeno časovno obdobje.
Kako se slika prebere s senzorja
Shranjen naboj v posameznih poljih celotne vrstice se prenese v register (začnemo pri najnižji vrstici).
Slika se prebere iz senzorja CCD vrstico za vrstico, pri čemer se celotna vrstica vzporedno posreduje v serijski izhodni register.
Register posreduje prejet naboj polja (enega naenkrat) v izhodni ojačevalnik, ki zgenerira ustrezen analogni oz. zvezni signal.
Pred pošiljanjem naslednje vrstice se pošlje kontrolni signal.
Opisani proces se ponovi za vsako vrstico oz. dokler ni prebrana celotna slika. Branje se lahko ponovi
večkrat na sekundo (npr. 30 fps), lahko pa traja tudi več ur (npr. v astronomiji).
Kako pa dobimo digitalno sliko? naloga 1
ustvarjeni analogni video signal se posreduje slikovnemu digitalizatorju (frame grabber);
izvrši se analogno/digitalna (A/D) pretvorba — signal se pretvori v nivo sivine
(npr. v trenutku T se vrednost signala 0,5 V pretvori v sivino 127);
digitaliziramo oz. vzorčimo tipično z ločljivostjo 8 bitov:
dobimo $2^8 = 256$ različnih sivin;
območje napetosti se razdeli na 256 razredov, pri čemer je posamezen razred velik
na listu
Širina razreda pri A/D pretvorbi
$$\triangle = \frac{U_{\max} - U_{\min}}{256}$$
Vsem napetostim znotraj istega razreda priredimo enako sivino. Vzorčimo ob točno določenih časovnih
trenutkih; časovni trenutek eksaktno določa položaj piksla znotraj matrike.
⚠️ Kako pravzaprav pretvoriti napetost v sivino
Formula z lista da širino razreda. Za sivino pa moraš narediti to:
Pomni: napetosti nad $U_{\max}$ se porežejo na $Q$. In $U_{\max}$ je
tisto, kar naloga navede kot mejo poreza — ne privzeto 1 V ali 5 V.
Kako pridemo do barvnih digitalnih slik? info
Barva sestoji iz treh komponent (npr. rdeče, zelene in modre pri barvnem modelu RGB). Poznamo različne
načine zajemanja:
Način »single-shot«
a) Nad senzor položimo Bayerjev filter, ki prepušča le določen barvni spekter.
Po zajemu uporabimo postopek Bayerjevega demoziciranja in dobimo digitalno barvno sliko —
gre za interpoliranje podatkov na osnovi vrednosti sosednjih pikslov.
b) V napravi imamo tri senzorje, vsak namenjen eni osnovni barvni komponenti.
Vstopno svetlobo pošljemo na stekleno prizmo (beam splitter), ki svetlobo razbije in odbije na posamezen senzor.
Pristop »multi-shot« — senzor 3× zaporedoma (v zelo kratkem intervalu) izpostavimo svetlobi.
Pri vsakem odpiranju zaslonke se pred senzor položi filter, ki prepušča le določeno barvno komponento.
Originalne prosojnice (str. 15–18)
Modeli kamer ključno
Obravnavamo tri modele: kamero na luknjico, kamero s tankimi lečami in kamero z debelimi lečami.
A. Kamera na luknjico (pinhole camera)
Velikost objektov na slikovni ravnini je odvisna od njihove oddaljenosti od luknjice.
Perspektivni efekt: oddaljeni predmeti se zdijo manjši od predmetov, ki so bližje luknjici.
Kameri priredimo koordinatni sistem:
Oznaka
Pomen
$O$
izhodišče — je v luknjici
$\Pi'$
slikovna ravnina
$\vec{i}, \vec{j}$
bazna vektorja za ravnino, ki je paralelna ravnini $\Pi'$
$f'$
oddaljenost ravnine $\Pi'$ od luknjice v smeri vektorja $\vec{k}$ (merjeno pozitivno)
$C'$
slikovni center — leži na presečišču optične osi in ravnine $\Pi'$; pomemben za kalibracijo
Optična os je pravokotna na ravnino $\Pi'$ in gre skozi luknjico.
Kako določimo za točko v sceni njen položaj na sliki?
Točka iz scene $P = [x, y, z]$, njena slika na slikovni ravnini $P' = [x', y', z']$. Ker $P'$ leži
na slikovni ravnini, je $z' = f'$. Koordinati $x'$ in $y'$ določimo iz podobnosti trikotnikov:
na listu
Perspektivna projekcija
$$x' = f' \frac{x}{z} \qquad \text{in} \qquad y' = f' \frac{y}{z}$$
💡 Zakaj iz ene slike ne moremo določiti globine
V formuli nastopa samo razmerje $x/z$. Točka, ki je dvakrat dlje in
dvakrat večja, da identično sliko. To je celoten razlog, zakaj obstaja poglavje 6 (geometrija
več pogledov): globino lahko izmerimo šele, ko isto točko vidimo z dveh mest.
B. Kamera s tankimi lečami
Perspektivna projekcija pri luknjici je le približek geometrije slikovnega procesa. Večina kamer
je opremljenih z lečami — iz dveh razlogov:
potrebne so za zbiranje svetlobe, saj bi sicer posamezen žarek dosegel vsako točko v slikovni ravnini pri idealni projekciji skozi luknjico;
realne luknjice imajo končno velikost. Večja kot je luknjica, svetlejša je slika, a hkrati bolj
zamegljena (blurry), in obratno. Drugi razlog je torej, da sliko obdržimo čim bolj v ostrem fokusu,
pri čemer zbiramo svetlobo iz širšega fokusa.
na listu
Enačba leče (1)
$$\frac{1}{z'} - \frac{1}{z} = \frac{1}{f}$$
$f$ — goriščna razdalja leče;
žarki skozi središče $O$ se ne lomijo;
žarki, ki so paralelni z optično osjo, se fokusirajo v goriščno točko $F'$;
točki $F$ in $F'$ sta goriščni točki oz. goriščnici.
Pozor: položaj točke $P'$ je enak kot pri perspektivni projekciji kamere z luknjico.
FOV (field of view) kamere je delež scene, ki se dejansko projicira na retino (mrežnico) kamere.
Odvisen je od goriščne razdalje in efektivnega področja retine (ploščine filma oz. ploščine senzorja CCD).
C. Kamera z debelimi lečami
Bolj realističen model optičnega sistema.
Točki $H$ in $H'$ sta »glavni točki« leč.
Enačba (1) velja tudi tu.
Preproste leče so podvržene številnim popačenjem (npr. sferično, kromatično popačenje).
Popačenja minimiziramo, če sestavimo več preprostih leč z dobro izbranimi oblikami in karakteristikami;
sestavljene leče lahko še vedno modeliramo z enačbami, veljavnimi za debele leče.
Originalne prosojnice (str. 19–24)
Parametri kamere ključnonaloga 2
Enačbi $x' = f'x/z$, $y' = f'y/z$ sta veljavni le, če razdalje merimo v koordinatnem sistemu kamere,
slikovne koordinate pa imajo izhodišče v glavni točki $C'$, kjer os simetrije kamere prebije retino.
V praksi sta realni (world) koordinatni sistem in koordinatni sistem kamere povezana preko
fizikalnih parametrov: goriščna razdalja leč, velikosti pikslov, položaj glavne točke, položaj ter
orientacija kamere. Ločimo dve vrsti parametrov:
a) Notranji (intrinsic)
Spravijo v relacijo koordinatni sistem kamere in idealiziran koordinatni sistem. Teh je 5.
b) Zunanji (extrinsic)
Spravijo v relacijo koordinatni sistem kamere s fiksnim realnim koordinatnim sistemom — dejansko
specificirajo položaj in orientacijo kamere v prostoru. Teh je 6.
A. Notranji parametri kamere
Notranji parametri kamere so $\alpha, \beta, u_0, v_0$ in $\theta$. Velja:
točka $p$ je izražena v pikslih — $p = [u, v, 1]^T$;
točka $P$ je izražena v homogenih koordinatah koordinatnega sistema kamere — $P = [x, y, z, 1]^T$.
na listu
Kaj sta α in β
$$\alpha = k f, \qquad \beta = l f$$
$k$ in $l$ sta podana v enoti piksel/meter in določata velikost piksla;
$\alpha$ in $\beta$ sta zato izražena v enotah piksel;
parametra $u_0$ in $v_0$ določata premik izhodišča koordinatnega sistema kamere (točka $C$)
v točko $C_0$ — točko, kjer optična os prebada slikovno ravnino;
kot $\theta$ med osema koordinatnega sistema zaradi nenatančnosti pri izdelavi kamer ni popolnoma
enak $\pi/2$ oz. 90° (je pa zelo blizu).
Normalizirana slikovna ravnina je ravnina, ki je oddaljena za 1 enoto od luknjice. Fizikalna
mrežnica je na oddaljenosti $f$ od luknjice in vzporedna normalizirani slikovni ravnini.
B. Zunanji parametri kamere
Smiselni so, kadar realni koordinatni sistem ($W$) in koordinatni sistem kamere ($C$) nista enaka.
Potrebna je transformacija enega koordinatnega sistema v drugega:
kjer so $m_i$ vrstice matrike $\mathsf{M}$. Ta zapis je izhodišče za linearno kalibracijo (spodaj).
6 zunanjih parametrov: 3 koti, ki definirajo rotacijo, ter 3 koordinate vektorja translacije $t$.
Vsako rotacijo lahko podamo kot kompozicijo rotacij okoli treh osi (Eulerjev teorem):
na listu
Rotacijske matrike (koti merjeni v proti urni smeri)
Geometrijsko kalibriranje je proces ocenjevanja notranjih in zunanjih parametrov kamere.
Predpostavka: kamera opazuje množico točk (linij ipd.) z znanim položajem v fiksnem realnem
koordinatnem sistemu ($W$). Tedaj kalibracijo modeliramo kot optimizacijski proces, kjer
minimiziramo razhajanje med položajem opazovanih točk (značilnic) in njihovim teoretičnim položajem
(napovedanim z enačbami perspektivne projekcije) — minimiziramo glede na notranje in zunanje parametre.
A. Linearni postopek kalibriranja
Poznamo točne položaje za $n$ točk:
$P_i$ — poznamo njegove točne homogene koordinate ($i = 1, \dots, n$);
$p_i$ — položaj točk $P_i$ v sliki; $p_i = [u_i, v_i]$;
Rešiti je treba homogen sistem enačb $\mathsf{P}m = 0_{2n\times1}$, kjer je matrika $\mathsf{P}$
znana, vektor $m$ pa iskan. Matriko $\mathsf{M}$ dobimo iz izračunanega vektorja $m$ kot
$\mathsf{M} = [m_1; m_2; m_3]$.
Rešitev dobimo, kadar je $n \geq 6$: pri $n = 6$ dobimo enolično rešitev, sicer minimiziramo izraz $|\mathsf{P}m|^2$.
Iz projekcijske matrike $\mathsf{M}$ lahko določimo notranje (5) in zunanje (6) parametre kamere — obstajajo eksaktne formule.
Pozor: pri izbiranju točk $P_i$ je treba paziti, da vse točke ne ležijo na isti ravnini!
Zgoraj navedeno velja za idealne leče; v praksi se srečamo s popačenji, ki jih moramo pri kalibraciji upoštevati.
Ko je kamera kalibrirana, lahko izvajamo natančno 3D merjenje položaja točk v digitalnih slikah.
Originalne prosojnice (str. 30–32)
Preveri se
1Notranjih parametrov kamere je 5, zunanjih 6. Kateri parametri opisujejo, kje in kako obrnjena je kamera v prostoru?
Razlaga
Zunanji parametri so v matrikah $\mathsf{R}$ (3 koti) in $t$ (3 komponente)
ter povezujejo realni koordinatni sistem s kamerinim. Notranji parametri opisujejo samo kamero
(velikost piksla, položaj glavne točke, kot med osema) in se ne spremenijo, če kamero premakneš.
2Pri linearni kalibraciji ena korespondenca (Pᵢ, pᵢ) da dve vrstici matrike P. Koliko elementov ima vsaka vrstica?
Razlaga
Vektor $m$ ima 12 komponent (matrika $\mathsf{M}$ je 3×4), zato ima vsaka
vrstica matrike $\mathsf{P}$ prav tako 12 elementov: $[P_i^T \mid 0^T \mid -u_i P_i^T]$, kjer
je vsak blok dolg 4, ker so koordinate homogene (dodana enica). Če ti odgovor ponuja 11 elementov
ali blok brez enice, je napačen.
3Zakaj pri kalibraciji vse točke Pᵢ ne smejo ležati na isti ravnini?
Razlaga
Če so vse točke koplanarne, so stolpci matrike $\mathsf{P}$ linearno
odvisni — sistem postane degeneriran in ima neskončno rešitev. Isto vodilo velja pri algoritmu osmih
točk v poglavju 6: korespondenčne točke morajo biti razpršene po sliki, sicer postane umerjanje
nestabilno.