2. Model kamere in zajemanje slik

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:

Kako se slika prebere s senzorja

  1. Shranjen naboj v posameznih poljih celotne vrstice se prenese v register (začnemo pri najnižji vrstici).
  2. Slika se prebere iz senzorja CCD vrstico za vrstico, pri čemer se celotna vrstica vzporedno posreduje v serijski izhodni register.
  3. Register posreduje prejet naboj polja (enega naenkrat) v izhodni ojačevalnik, ki zgenerira ustrezen analogni oz. zvezni signal.
  4. 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

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:

$$g = \left\lfloor \frac{U - U_{\min}}{U_{\max} - U_{\min}} \cdot Q \right\rceil, \qquad Q = 2^b - 1$$

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:

  1. Način »single-shot«
  2. 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)
1516 1718

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)

Kameri priredimo koordinatni sistem:

OznakaPomen
$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:

  1. potrebne so za zbiranje svetlobe, saj bi sicer posamezen žarek dosegel vsako točko v slikovni ravnini pri idealni projekciji skozi luknjico;
  2. 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}$$

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

Originalne prosojnice (str. 19–24)
192021 222324

Parametri kamere ključno naloga 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:

na listu
Projekcija z matriko notranjih parametrov
$$p = \frac{1}{z}\mathsf{M}P, \qquad \mathsf{M}_{3\times4} = [\mathsf{K},\, 0], \qquad \mathsf{K} = \begin{bmatrix} \alpha & -\alpha \cot\theta & u_0 \\[2pt] 0 & \dfrac{\beta}{\sin\theta} & v_0 \\[2pt] 0 & 0 & 1 \end{bmatrix}$$
na listu
Kaj sta α in β
$$\alpha = k f, \qquad \beta = l f$$

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:

na listu
Projekcija z zunanjimi parametri (2)
$$p = \frac{1}{z}\mathsf{M}P, \qquad \text{vendar sedaj} \quad \mathsf{M}_{3\times4} = \mathsf{K}[\mathsf{R},\, t]$$
na listu
Zapis po komponentah (3)
$$u = \frac{m_1 P}{m_3 P} \qquad \text{in} \qquad v = \frac{m_2 P}{m_3 P}$$

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)
$$\mathsf{R}_x = \begin{bmatrix}1&0&0\\0&\cos\alpha&\sin\alpha\\0&-\sin\alpha&\cos\alpha\end{bmatrix},\; \mathsf{R}_y = \begin{bmatrix}\cos\beta&0&-\sin\beta\\0&1&0\\\sin\beta&0&\cos\beta\end{bmatrix},\; \mathsf{R}_z = \begin{bmatrix}\cos\gamma&\sin\gamma&0\\-\sin\gamma&\cos\gamma&0\\0&0&1\end{bmatrix}$$
Originalne prosojnice (str. 25–29)
252627 2829

Geometrijsko kalibriranje kamer naloga 3

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:

Če preuredimo enačbo (3), dobimo:

na listu
Enačbi za eno korespondenco
$$(m_1 - u_i m_3) P_i = 0 \qquad (m_2 - v_i m_3) P_i = 0$$

Za 1 točko torej dobimo 2 enačbi. Za $n$ točk dobimo $2n$ enačb, ki jih zložimo v matriko $\mathsf{P}$ in vektor $m$:

Sestava matrike P (2n × 12)
$$\mathsf{P}_{2n\times12} = \begin{bmatrix} P_1^T & 0^T & -u_1 P_1^T \\ 0^T & P_1^T & -v_1 P_1^T \\ \vdots & \vdots & \vdots \\ P_n^T & 0^T & -u_n P_n^T \\ 0^T & P_n^T & -v_n P_n^T \end{bmatrix}, \qquad m_{12\times1} = \begin{bmatrix} m_1^T \\ m_2^T \\ m_3^T \end{bmatrix}$$

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]$.

Originalne prosojnice (str. 30–32)
303132

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.