Teoretická analýza geometrickej kalibrácie kamery

30. Júl, 2014, Autor článku: Kováč Ondrej, Elektrotechnika, Informačné technológie
Ročník 7, číslo 7 This page as PDF Pridať príspevok

p17190_iconPríspevok je venovaný teoretickej analýze geometrickej kalibrácie kamery. Popisuje dva prístupy ku kalibrácii. Prvým prístupom je kalibrácia na základe korešpondencie bodu v 3R priestore a v priestore snímky. Druhou metódou je, ak ku kalibrácii postačuje použitie 2R kalibračnej roviny a teda kalibráciu je možne vykonať aj bez presného určenia hĺbkovej súradnice korešpondujúcich bodov v 3R priestore. V článku taktiež popisujeme metódu výpočtu homografie medzi dvoma snímkami, a to medzi kalibračným obrazcom a jeho snímkou z kamery. Potom ukážeme využitie matice homografie pri kalibrácii kamerového systému ako aj pri rektifikácii snímky vzhľadom na v nej vybranú oblasť.

1. Úvod

Kalibrácia kamerového systému (KS) je nevyhnutným krokom v 3R počítačovej grafike za účelom extrakcie informácie o rozmeroch z 2R snímok. Znalosť vonkajších – extrinzických a vnútorných – intrinzických parametrov je nevyhnutná pre aplikáciu rekonštrukcie 3R vizuálnej scény (VS) pomocou stereoskopického KS (SKS). Kalibrácia sa taktiež využíva pri tvorbe panoramatických fotografií. Techniky kalibrácie je možné rozdeliť do dvoch základných skupín [1]. Sú to tradičné techniky, ktoré využívajú kalibračný obrazec a moderné autokalibračné techniky. V tradičných metódach využívajúcich kalibračný obrazec je presnosť kalibrácie závislá od presnosti merania kalibračného obrazcu, teda je nutná presná extrakcia súradníc bodov kalibračného obrazcu [2]. Tradičné techniky je možné rozdeliť na také, ktoré využívajú korešpondenciu súradníc bodov v 3R priestore a im zodpovedajúcich bodov v rovine snímky a techniky, pri ktorých sa využíva korešpondencia bodov umiestnených v rovine umiestnenej v 3R priestore [3]. Pri autokalibračných technikách už nie je potrebné snímať kalibračný obrazec, ale stačí snímať objekt u ktorého je možné extrahovať informáciu o pravých uhloch a na základe homografie potom obnoviť parametre kamerového systému.

2. Kalibrácia pomocou korešpondencie bodov v 3R priestore

V tomto prípade je kalibrácia docielená pozorovaním kalibračného objektu, ktorého geometrické parametre v 3R priestore sú s vysokou presnosťou známe. Kalibráciu je možne dosiahnuť veľmi efektívne [4]. Kalibračný objekt zvyčajne pozostáva z dvoch alebo troch ortogonálnych rovín. Niekedy je využitá iba jedna rovina, ktorá sa posúva v hĺbkovej súradnici[5] a takto je možné dosiahnuť 3R referenciu. Korešpondenčné body v 3R rovine môžu byť reprezentované pomocou ortogonálnych šachovníc zobrazených na obr. 1.

p17190_01_obr01
Obr.1 Kalibračná pomôcka s troma ortogonálnymi šachovnicami

Populárna technika z kategórie týchto techník pozostáva z troch krokov:

  • Detekcia rohov šachovnice v každej snímke
  • Estimácia projekčnej matice P.
  • Obnova vnútorných a vonkajších parametrov kamery z matice P.

V ďalšej časti budeme uvažovať bod už v súradnicovom systéme kamery. Nech bod M má súradnicu [x,y,z] a jeho priemet v rovine snímky je m = [j , i]. Vzťah medzi súradnicou bodu M v 3R priestore a jeho priemetom v rovine snímky je:

\bf{m = A [R \; \overline{t}] M = PM} (1)

kde A je matica vnútorných parametrov kamery

\bf{A} = \left [ \begin{array}{ccc} f_x & 0 & j_0 \\ 0 & f_y & i_0 \\ 0 & 0 & 1 \end{array} \right ] (2)

kde fx a fy sú ohniskové vzdialenosti a i0 a j0 je bod predstavujúci stred snímky a matica \bf{[R \overline{t}]} sú vonkajšie parametre kamery reprezentujúce rotáciu a posunutie kamerového systému.

\bf{[R \overline{t}]} = \left [ \begin{array}{cccc} r_{11} & r_{12} & r_{13} & t_1 \\ r_{21} & r_{22} & r_{23} & t_2 \\ r_{31} & r_{32} & r_{33} & t_3 \end{array} \right ] (3)

Potom matica P bude projekčná matica kamery. Je nutné poznamenať, že vzťah 1 so zanedbaním rotácie a posunutia nie je nič iné ako perspektívna projekcia, ktorá je matematickou reprezentáciou kamery[6, 7].

2.1. Lineárna estimácia projekčnej matice kamery

Ak sú známe korešpondujúce dvojice bodov v rovine snímky a v 3R priestore je možné estimovať projekčnú maticu. Ako body sa použijú rohy štvorcov šachovnice. Lineárne riešenie je možné vykonať nasledovne. Na základe korešpondencie 2R – 3R ,mk=[ik jk] ↔ Mk=[xk yk zk] je možné zostaviť dve rovnice:

\left [ \begin{array}{cccccccccccc} x_k & y_k & z_k & 1 & 0 & 0 & 0 & 0 & j_k x_k & j_k y_k & j_k z_k & j_k \\ 0 & 0 & 0 & 0 & x_k & y_k & z_k & 1 & i_k x_k & i_k y_k & i_k z_k & i_k \end{array} \right ] \bf{\overline{p}} =
= \bf{G_k \overline{p} = 0} (4)

kde \bf{\overline{p}}=[p_{11},p_{12},p_{13}, \dots , p_{34} ]^T a \bf{\overline{0}}=[0,0]^T. Pre n korešpondencii bude mať matica G rozmer 2n x 12.

2.2. Výpočet vnútorných a vonkajších parametrov z projekčnej matice

Ak je projekčná matica P známa, je možné vypočítať parametre kamery. Nech prvá submatica s rozmerom 3×2 matice P je B a posledný stĺpcový vektor je \bf{\overline{b}}, teda \bf{P=[B \overline{b}]}. Vyššie bolo uvedené že \bf{P=A[R \overline{t}]}. Potom

\bf{B=AR} (5)

\bf{\overline{b}=A \overline{t}} (6)

Potom

\bf{K \equiv BB^T \equiv AA^T} = \left [ \begin{array}{ccc} f_x^2 + j_0^2 & i_0 j_0 & j_0 \\ i_0 j_0 & f_y^2 + i_0^2 & i_0 \\ j_0 & i_0 & 1 \end{array} \right ] (7)

Keďže P je definovaná až po škálovací faktor, posledný prvok matice K nemusí byť rovný 1, preto je nutná normalizácia tak aby K33 = 1. Vnútorné parametre kamery potom budú :

i_0 = K_{13} (8)

j_0 = K_{23} (9)

f_y = \sqrt{K_{22}-i_0^2} (10)

f_x = \sqrt{K_{11}-j_0^2} (11)

Keď sú vnútorné parametre známe, je možne vypočítať aj vonkajšie takto

\bf{R=A^{-1} B} (12)

\bf{\overline{t}=A^{-1} \overline{b}} (13)

3. Kalibrácia pomocou 2R roviny umiestnenej v 3R priestore

Nevýhodou predošlej metódy je, že ku kalibrácii je nutná znalosť súradníc bodov v 3R priestore. Tento nedostatok odstraňuje nasledujúca metóda[8]. Bez toho aby sme prišli o všeobecnosť riešenia predpokladajme, že rovina je umiestnená v začiatku súradnicového systému 3R priestoru teda z = 0. Potom

\left [ \begin{array}{c} j \\ i \\ 1 \end{array} \right ] = \bf{A} \left [ \begin{array}{cccc} r_{11} & r_{12} & r_{13} & t_1 \\ r_{21} & r_{22} & r_{23} & t_2 \\ r_{31} & r_{32} & r_{33} & t_3 \end{array} \right ] \left [ \begin{array}{c} x \\ y \\ 0 \\ 1 \end{array} \right ] =

= \bf{A} \left [ \begin{array}{ccc} r_{11} & r_{12} & t_1 \\ r_{21} & r_{22} & t_2 \\ r_{31} & r_{32} & t_3 \end{array} \right ] \left [ \begin{array}{c} x \\ y \\ 1 \end{array} \right ] (14)

Závislosť medzi bodom v rovine snímky a bodom v 3R priestore je daná maticou homografie H [9].

\bf{H} = \tau \bf{A} \left [ \begin{array}{ccc} r_{11} & r_{12} & t_1 \\ r_{21} & r_{22} & t_2 \\ r_{31} & r_{32} & t_3 \end{array} \right ] = \left [ \begin{array}{ccc} h_{11} & h_{12} & h_{13} \\ h_{21} & h_{22} & h_{23} \\ h_{31} & h_{32} & h_{33} \end{array} \right ] (15)

Kde τ je ľubovoľný skalár.

3.1. Homografia a jej aplikácia pri rektifikácii nasnímanej snímky

Homografiu z korešpondencie bodov je možné vypočítať pomocou vzťahu (16). K jej výpočtu je nutné poznať aspoň 4 korešpondujúce body minimálne v dvoch snímkach snímanej roviny. Ako prvú snímku budeme využívať originál kalibračného obrazu a druhá snímka potom bude kalibračný obrazec nasnímaný kamerou.

\left [ \begin{array}{cccccccc} x_1 & y_1 & 1 & 0 & 0 & 0 & -x_1 \hat{x}_1 & -y_1 \hat{x}_1 \\ 0 & 0 & 0 & x_1 & y_1 & 1 & -x_1 \hat{y}_1 & -y_1 \hat{y}_1 \\ \dots & \dots & \dots & \dots & \dots & \dots & \dots & \dots \\ x_4 & y_4 & 1 & 0 & 0 & 0 & -x_4 \hat{x}_4 & -y_4 \hat{x}_4 \\ 0 & 0 & 0 & x_4 & y_4 & 1 & -x_4 \hat{y}_4 & -y_4 \hat{y}_4 \end{array} \right ] \left [ \begin{array}{c} h_{11} \\ h_{12} \\ \dots \\ h_{31} \\ h_{32} \end{array} \right ] =

= \bf{KH} = \left [ \begin{array}{c} \hat{x}_1 \\ \hat{y}_1 \\ \dots \\ \hat{x}_4 \\ \hat{y}_4 \end{array} \right ] = \bf{\overline{b}} (16)

Kde body so súradnícami xi a yi predstavujú zvolené body v prvej snímke a body so súradnícami \hat{x}_i, \hat{y}_i sú tie isté body ale v druhej snímke. Index i je poradové číslo bodu snímky. Maticu homografie je možné získať pomocou vzťahu

= \bf{H = K^{-1} \overline{b}} (17)

Na obr.2 je zobrazený kalibračný obrazec definovaný ako šachovnica s rozmerom 10×7 štvorcov. Tento obrazec bol následné nasnímaný kamerovým systémom a výsledná snímka je na obr.3.

p17190_02_obr02
Obr. 2 Kalibračný obrazec

p17190_03_obr03
Obr. 3 Kalibračný obrazec nasnímaný kamerou

Jedným z využití homografie je rektifikácia [10] nasnímanej snímky vzhľadom na kalibračný obrazec. Takáto operácia je nevyhnutná napríklad pri meraniach, kde je dôležité aby oblasť merania bola pravouhlá a jej rovina bola rovnobežná s rovinou kamery. Takéto umiestnenie kamery môže byť problematické a navyše samotný kamerový systém vnáša skreslenia a zakrivenia. Tento krok je tiež nevyhnutný pri tvorbe panoramatických záberov [11]. Na obr.4 je červeným obdĺžnikom vyznačená oblasť kalibračného obrazca definovaná štyrmi vrcholmi kalibračného obrazca, z ktorých bude vypočítaná homografia a z nej taká deformácia obrazu, aby rovina definovaná vyznačenou oblasťou bola rovnobežná s rovinou kamery tvorenou osami x a y. Na obr.5 je výsledná rektifikovaná snímka. Pre lepšiu ilustráciu sú nepodstatné časti snímky orezané.

p17190_04_obr04
Obr. 4 Oblasť rektifikácie v kalibračnom obrazci

p17190_05_obr05
Obr. 5 Rektifikovaná snímka

3.2. Kalibrácia

Keďže vektory rotačnej matice [r_{11} r_{21} r_{31}]^T a [r_{12} r_{22} r_{32}]^T sú ortogonálne môžeme písať:

\left [ \begin{array}{ccc} h_{11} & h_{21} & h_{31} \end{array} \right ] (\bf{A}^{-1})^T \bf{A}^{-1} \left [ \begin{array}{c} h_{12} \\ h_{22} \\ h_{32} \end{array} \right ] = 0 (18)

\left [ \begin{array}{ccc} h_{11} & h_{21} & h_{31} \end{array} \right ] (\bf{A}^{-1})^T \bf{A}^{-1} \left [ \begin{array}{c} h_{11} \\ h_{21} \\ h_{31} \end{array} \right ] =
= \left [ \begin{array}{ccc} h_{12} & h_{22} & h_{32} \end{array} \right ] (\bf{A}^{-1})^T \bf{A}^{-1} \left [ \begin{array}{c} h_{12} \\ h_{22} \\ h_{32} \end{array} \right ] (19)

3.3. Analytické riešenie

V nasledujúcej podkapitole ukážeme ako vyriešiť problém kalibrácie. Nech matica B je daná ako:

\bf{B} =  (\bf{A}^{-1})^T \bf{A}^{-1} \equiv \left [ \begin{array}{ccc} B_{11} & \dots & B_{13} \\ \dots & \dots & \dots \\ B_{31} & \dots & B_{33} \end{array} \right ] (20)

Dá sa ukázať, že matica B je symetrická. Potom preusporiadaním jej prvkov do vektora dostávame

\overline{\bf{B}} = \left [ \begin{array}{cccccc} B_{11} & B_{12} & B_{22} & B_{13} & B_{23} & B_{33} \end{array} \right ] (21)

Nech k-ty stĺpec matice H bude \overline{h_k} = [ h_{k1} h_{k2} h_{k3}]^T, potom môžeme písať

\overline{h_k}^T B \overline{h_q} = \overline{v_{kq}}^T \overline{b} (22)

kde

\overline{v_{kq}} = [ h_{k1} h_{q1} \, h_{k1} h_{q2} + h_{k2} h_{q1} \, h_{k2} h_{q2}  \, h_{k3} h_{q1} + h_{k1} h_{q3} \, h_{k3} h_{q2} + h_{k2} h_{q3} \, h_{k3} h_{q3}]

Rovnice (18) a (19) potom možno prepísať do maticového tvaru kde vektor b je neznámy.

\overline{\bf{B}} = \left [ \begin{array}{c} \overline{\bf{v}}_{12}^T \\ \overline{\bf{v}}_{11}^T - \overline{\bf{v}}_{22}^T \end{array} \right ] \overline{\bf{b}} = \bf{V} \overline{\bf{b}} = \overline{\bf{0}} (23)

Vnútorné parametre kamery potom budú dane vzťahmi

j_0 = \frac{B_{12} B_{13} - B_{11} B_{23}}{B_{11} B_{22} - B_{12}^2} (24)

\tau = B_{33} -\frac{B_{13}^2 + j_0(B_{12} B_{13} - B_{11} B_{23})}{B_{11}} (25)

f_x = \sqrt{\frac{\tau}{B_{11}}} (26)

f_y = \sqrt{\frac{\tau B_{11}}{B_{11} B_{22} - B_{12}^2}} (27)

i_0 = \frac{ B_{13} f_x^2}{\tau} (28)

Vonkajšie parametre budú

\bf{R} = \left [ \begin{array}{ccc} r_{11} & r_{12} & r_{13} \\ r_{21} & r_{22} & r_{23} \\ r_{31} & r_{32} & r_{33} \end{array} \right ] (29)

kde i je z intervalu <1,2>

\left [ \begin{array}{ccc} r_{1i} & r_{2i} & r_{3i} \end{array} \right ]^T = \tau \bf{A}^{-1}  \left [ \begin{array}{ccc} h_{1i} & h_{2i} & h_{3i} \end{array} \right ]^T (30)

a pre i = 3

\left [ \begin{array}{ccc} r_{13} & r_{23} & r_{33} \end{array} \right ] = \left [ \begin{array}{ccc} r_{11} & r_{21} & r_{31} \end{array} \right ] \left [ \begin{array}{c} r_{12} \\ r_{12} \\ r_{12} \end{array} \right ]^T (31)

Pre vektor posunutia možno písať

\left [ \begin{array}{ccc} t_{1} & t_{2} & t_{2} \end{array} \right ]^T = \tau \bf{A}^{-1}  \left [ \begin{array}{ccc} h_{13} & h_{23} & h_{33} \end{array} \right ]^T (30)

4. Záver

V príspevku sme popísali matematický postup pri kalibrácii kamery. Popísali sme dve štandardné techniky. Prvá technika pri kalibrácii využíva korešpondenciu bodov v 3R vizuálnej scény a 2R snímky. Nevýhodou tejto techniky je však to, že pre kalibráciu je nutná znalosť aj hĺbkovej súradnice bodu kalibračného obrazcu. Druhá metóda bez straty všeobecnosti riešenia využíva korešpondenciu bodov kalibračnej roviny. Pri tejto metóde nie je nutná znalosť hĺbkovej súradnice bodov korešpondencie. Nevýhodou tejto metódy je však náročnosť výpočtu a nutnosť výpočtu a hľadania homografie medzi snímkami kalibračného obrazca. Taktiež sme ukázali postup výpočtu homografie medzi dvoma snímkami a jej praktické využitie pri rektifikácii snímky.

Literatúra

  1. ZHANG, Z.: Flexible camera calibration by viewing a plane from unknown orientations, Computer Vision, 1999. The Proceedings of the Seventh IEEE International Conference on. IEEE, 1999.
  2. KIM, J. S., KIM, H. W., KWEON, I. S.: A camera calibration method using concentric circles for vision applications. ACCV2002, Melbourne, Australia, 2002.
  3. ZHANG, Z.: Camera calibration with one-dimensional objects. Pattern Analysis and Machine Intelligence, IEEE Transactions on, 2004.
  4. ZHANG, Z.: Camera Calibration, Chapter 2, pages 4-43, in G. Medioni and S.B. Kang, eds., Emerging Topics in Computer Vision, rentice Hall Professional Technical Reference, 2004.
  5. FAUGERAS, O.: Three-Dimensional Computer Vision: a Geometric Viewpoint, MIT Press, 1993.
  6. MIHALÍK, J., MICHALČIN, V.: 3D Motion Esti-mation and Texturing of Human Head Model. Radioengineering, Vol.13, No.1, 2004.
  7. MIHALIK, J., MICHALCIN, V.: 3D motion estimation of human head by using optical flow. Radioengineering, 2006.
  8. JIANG. G., ZHAO, C.: Camera Calibration Based on 2D-plane. 2010.
  9. HARTLEY, R., ZISSERMAN, A.: Multiple view geometry in computer vision. Cambridge university press, 2003.
  10. LOOP, Ch., ZHANG, Z.: Computing rectifying homographies for stereo vision, Computer Vision and Pattern Recognition, IEEE Computer Society Conference on. IEEE, 1999.
  11. JETHWA, M., ZISSERMAN, A., FITZGIBBON, A., W.: Real-time Panoramic Mosaics and Augmented Reality, BMVC. 1998.

Spoluautorom článku je Prof. Ing. Ján Mihalík, CSc. Laboratórium číslicového spracovania obrazov a videokomunikácií, Katedra elektroniky a multimediálnych telekomunikácií, Fakulta elektrotechniky a informatiky, Technická univerzita v Košiciach

Napísať príspevok