<!--Converted with LaTeX2HTML 99.1 release (March 30, 1999)
original version by:  Nikos Drakos, CBLU, University of Leeds
* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
* with significant contributions from:
  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta name="generator" content=
  "HTML Tidy for Mac OS X (vers 31 October 2006 - Apple Inc. build 13), see www.w3.org" />

  <title>Projet : TEMICS - temics</title>
  <meta http-equiv="Content-Type" content=
  "text/html; charset=utf-8" />
  <meta http-equiv="Content-Style-Type" content="text/css" />
  <meta name="Robots" content="noindex" />
  <meta name="Generator" content="LaTeX2HTML v99.1 release" />
  <meta http-equiv="Content-Style-Type" content="text/css" />
</head>

<frameset cols="200,*">
  <frame src="temics_Toc.html" name="toc" scrolling="auto" id=
  "toc" />
  <frame src="fonde_mddd_mn.html" name="main" scrolling="no" id=
  "main" />

  <noframes>
    <body bgcolor="#FFFFFF" text="#000000" link="#9944EE" vlink=
    "#0000FF" alink="#00FF00">
      <h2><a name="SECTION00031000000000000000" id=
      "SECTION00031000000000000000">Modélisation 3<small>D</small>
      par géométrie projective</a></h2><!-- module id:3/mddd -->
      <a name="TEMICS_fondements_mddd" id=
      "TEMICS_fondements_mddd"></a>

      <p><strong>Mots clés :</strong> <i>reconstruction 3D, vision
      par ordinateur, géométrie projective, projection perspective,
      modèle de caméra, équations de projection, auto-calibration,
      coordonnées homogènes, espace projectif, matrice
      fondamentale, matrice essentielle, contrainte épipolaire
      .</i></p>

      <h3>Résumé :</h3>

      <div class="ABSTRACT">
        <i>La modélisation (ou reconstruction) 3<small>D</small>
        désigne l'estimation de la forme et de la position d'objets
        3<small>D</small> à partir d'un ensemble d'images de ces
        objets. TEMICS s'intéresse plus particulièrement au
        problème de la modélisation de grandes scènes à partir de
        séquences vidéo monoculaires. De par sa nature, la
        modélisation 3<small>D</small> par géométrie projective est
        un problème inverse. Nous nous concentrons sur l'un des
        problèmes non résolus de la reconstruction
        3<small>D</small> par géométrie projective, à savoir sur
        l'estimation des paramètres 3<small>D</small> de la caméra,
        rendue particulièrement délicate lorsque cette estimation
        doit se faire à partir de nombreux points de vue distants
        fournis par une caméra mobile. Nous nous intéressons
        également à la cohérence des observations entre les points
        de vue, à la gestion des parties cachées et des
        discontinuités de profondeur.</i>
      </div>

      <p>Les outils méthodologiques utilisés sont issus du domaine
      de la vision par ordinateur et de la géométrie projective.
      Les <i>équations de projection</i> pour une caméra <!-- MATH
 ${\mathcal{C}}_i$
 -->
      <span class="MATH"><img width="10" height="12" align="bottom"
      border="0" src="img1.png" alt=
      "$ \mathcal {C}$" /><sub>i</sub></span> modélisée par une
      <i>projection perspective</i> s'écrivent&nbsp;:</p>

      <div align="center" class="mathdisplay">
        <a name="systmP" id="systmP"></a> <!-- MATH
 \begin{equation}
{\tilde{p_i}}  = P_i {\tilde{x}},
\end{equation}
 -->

        <table width="100%" align="center">
          <tr valign="middle">
            <td align="center" nowrap="nowrap"><img width="13"
            height="23" align="middle" border="0" src="img2.png"
            alt="$\displaystyle \tilde{p_i}$" /> =
            <i>P</i><sub>i</sub><img width="9" height="23" align=
            "middle" border="0" src="img3.png" alt=
            "$\displaystyle \tilde{x}$" />,</td>

            <td class="eqno" width="10" align="right">(<span class=
            "eqn-number">1</span>)</td>
          </tr>
        </table>
      </div>où <span class="MATH"><img width="10" height="12"
      align="bottom" border="0" src="img4.png" alt=
      "$ \tilde{x}$" /></span> est un point 3<small>D</small> de
      coordonnées homogènes <!-- MATH
 ${\tilde{x}}=(x\ y\ z\ 1)^t$
 -->
      <span class="MATH"><img width="10" height="12" align="bottom"
      border="0" src="img4.png" alt="$ \tilde{x}$" /> =
      (<i>x</i>&nbsp;<i>y</i>&nbsp;<i>z</i>&nbsp;1)<sup>t</sup></span>
      dans le repère de la scène <!-- MATH
 ${\mathcal{R}}_0$
 -->
      <span class="MATH"><img width="13" height="12" align="bottom"
      border="0" src="img5.png" alt=
      "$ \mathcal {R}$" /><sub>0</sub></span>, et où <!-- MATH
 ${\tilde{p_i}}=(X_i\ Y_i\ 1)^t$
 -->
      <span class="MATH"><img width="13" height="23" align="middle"
      border="0" src="img6.png" alt="$ \tilde{p_i}$" /> =
      (<i>X</i><sub>i</sub>&nbsp;<i>Y</i><sub>i</sub>&nbsp;1)<sup>t</sup></span>
      représente les coordonnées de son projeté dans le plan image
      <span class="MATH"><i>I</i><sub>i</sub></span>. La matrice
      <span class="MATH"><i>P</i><sub>i</sub></span> est la
      <i>matrice de projection</i> associée à la caméra <!-- MATH
 ${\mathcal{C}}_i$
 -->
      <span class="MATH"><img width="10" height="12" align="bottom"
      border="0" src="img1.png" alt=
      "$ \mathcal {C}$" /><sub>i</sub></span>. Elle s'exprime en
      fonction de la matrice <span class="MATH"><i>K</i></span>
      représentant les <i>paramètres intrinsèques</i> de la caméra,
      et en fonction des transformations (rotation <span class=
      "MATH"><i>R</i><sub>i</sub></span> et translation
      <span class="MATH"><i>t</i><sub>i</sub></span>) permettant de
      passer du repère de la scène <!-- MATH
 ${\mathcal{R}}_0$
 -->
      <span class="MATH"><img width="13" height="12" align="bottom"
      border="0" src="img5.png" alt=
      "$ \mathcal {R}$" /><sub>0</sub></span> au repère de la
      caméra <!-- MATH
 ${\mathcal{R}}_i$
 -->
      <span class="MATH"><img width="13" height="12" align="bottom"
      border="0" src="img5.png" alt=
      "$ \mathcal {R}$" /><sub>i</sub></span>, par
      l'équation&nbsp;:

      <div align="center" class="mathdisplay">
        <!-- MATH
 \begin{equation}
P_i=K(R_i|t_i).
\end{equation}
 -->

        <table width="100%" align="center">
          <tr valign="middle">
            <td align="center" nowrap="nowrap"><i>P</i><sub>i</sub>
            = <i>K</i>(<i>R</i><sub>i</sub>|
            <i>t</i><sub>i</sub>).</td>

            <td class="eqno" width="10" align="right">(<span class=
            "eqn-number">2</span>)</td>
          </tr>
        </table>
      </div>La matrice <span class="MATH"><i>K</i></span> des
      <i>paramètres intrinsèques</i> de la caméra est définie
      par&nbsp;: <!-- MATH
 \begin{displaymath}
K=\left(
\begin{array}{ccc}
\frac{f}{l_x} & \frac{-f}{l_x~tan\theta} & X_c \\
0 & \frac{f}{l_y~sin \theta} & Y_c \\
0 & 0 & 1
\end{array}
\right),
\end{displaymath}
 -->

      <div align="center" class="mathdisplay">
        <i>K</i> = <img width="14" height="66" align="middle"
        border="0" src="img7.png" alt=
        "$\displaystyle \left(\vphantom{ \begin{array}{ccc} \frac{f}{l_x} &amp; \frac{-f}{l_x... ... X_c \ 0 &amp; \frac{f}{l_y~sin \theta} &amp; Y_c \ 0 &amp; 0 &amp; 1 \end{array}}\right.$" />
        <img width="102" height="66" align="middle" border="0" src=
        "img8.png" alt=
        "$\displaystyle \begin{array}{ccc} \frac{f}{l_x} &amp; \frac{-f}{l_x~tan\theta} &amp; X_c \ 0 &amp; \frac{f}{l_y~sin \theta} &amp; Y_c \ 0 &amp; 0 &amp; 1 \end{array}$" />
        <img width="14" height="66" align="middle" border="0" src=
        "img9.png" alt=
        "$\displaystyle \left.\vphantom{ \begin{array}{ccc} \frac{f}{l_x} &amp; \frac{-f}{l_x... ... X_c \ 0 &amp; \frac{f}{l_y~sin \theta} &amp; Y_c \ 0 &amp; 0 &amp; 1 \end{array}}\right)$" />
        ,
      </div>où <span class="MATH"><i>f</i></span> est la
      <i>distance focale</i> de la caméra, et où <span class=
      "MATH"><i>l</i><sub>x</sub></span> et <span class=
      "MATH"><i>l</i><sub>y</sub></span> dénotent la taille en
      <span class="MATH"><i>x</i></span> et <span class=
      "MATH"><i>y</i></span> des pixels. Le terme <span class=
      "MATH"><img width="9" height="12" align="bottom" border="0"
      src="img10.png" alt="$ \theta$" /></span> représente l'angle
      entre les axes <span class="MATH"><i>x</i></span> et
      <span class="MATH"><i>y</i></span> du plan image, et
      <span class="MATH"><i>X</i><sub>c</sub></span> et
      <span class="MATH"><i>Y</i><sub>c</sub></span> sont les
      coordonnées de la projection perpendiculaire du centre
      optique dans le plan image. Les matrices de rotation
      <span class="MATH"><i>R</i><sub>i</sub></span> et de
      translation <span class="MATH"><i>t</i><sub>i</sub></span>
      définissent les <i>paramètres extrinsèques</i> associés à la
      caméra <!-- MATH
 ${\mathcal{C}}_i$
 -->
      <span class="MATH"><img width="10" height="12" align="bottom"
      border="0" src="img1.png" alt=
      "$ \mathcal {C}$" /><sub>i</sub></span>.

      <p>Les paramètres intrinsèques et extrinsèques, aussi appelés
      paramètres de prise de vue, sont obtenus par des opérations
      de calibration ou d'auto-calibration. La <i>calibration</i>
      consiste à estimer les paramètres de prise de vue à l'aide de
      mires (objets fournissant des points 3<small>D</small>
      connus), et d'images de ces mires. L' <i>auto-calibration</i>
      consiste à estimer les paramètres de prise de vue uniquement
      à partir de données des images, préalablement mises en
      correspondance par identification et regroupement des
      projetés d'un même point 3<small>D</small>. Plus précisément,
      si on suppose les paramètres intrinsèques constants et
      connus, les paramètres extrinsèques <span class=
      "MATH"><i>R</i><sub>i</sub></span> et <span class=
      "MATH"><i>t</i><sub>i</sub></span> peuvent être estimés comme
      suit. Le repère de la scène est choisi arbitrairement
      confondu avec le repère <!-- MATH
 $\mathcal{R}_{1}$
 -->
      <span class="MATH"><img width="13" height="12" align="bottom"
      border="0" src="img5.png" alt=
      "$ \mathcal {R}$" /><sub>1</sub></span>. Les matrices de
      rotation et de translation de la caméra <!-- MATH
 ${\mathcal{C}}_i$
 -->
      <span class="MATH"><img width="10" height="12" align="bottom"
      border="0" src="img1.png" alt=
      "$ \mathcal {C}$" /><sub>i</sub></span> sont donc celles qui
      font passer du repère <!-- MATH
 $\mathcal{R}_{1}$
 -->
      <span class="MATH"><img width="13" height="12" align="bottom"
      border="0" src="img5.png" alt=
      "$ \mathcal {R}$" /><sub>1</sub></span> au repère <!-- MATH
 $\mathcal{R}_{i}$
 -->
      <span class="MATH"><img width="13" height="12" align="bottom"
      border="0" src="img5.png" alt=
      "$ \mathcal {R}$" /><sub>i</sub></span> de l'image
      <span class="MATH"><i>I</i><sub>i</sub></span>. Pour estimer
      ces matrices, on définit la <i>matrice essentielle</i>
      <span class="MATH"><i>E</i> =
      <i>T</i><sub>i</sub>.<i>R</i><sub>i</sub></span> et la
      <i>matrice fondamentale</i> <!-- MATH
 $F=K^{-t}.E.K^{-1}$
 -->
      <span class="MATH"><i>F</i> =
      <i>K</i><sup>-t</sup>.<i>E</i>.<i>K</i><sup>-1</sup></span>.
      La matrice <span class="MATH"><i>F</i></span> est elle-même
      estimée à partir d'un ensemble de points mis en
      correspondance entre les images <span class=
      "MATH"><i>I</i><sub>1</sub></span> et <span class=
      "MATH"><i>I</i><sub>i</sub></span>, par résolution du système
      formé de la <i>contrainte épipolaire</i> appliquée à chaque
      paire de points</p>

      <div align="center" class="mathdisplay">
        <!-- MATH
 \begin{equation}
p_1^t.F.p_i = 0.
\end{equation}
 -->

        <table width="100%" align="center">
          <tr valign="middle">
            <td align="center" nowrap="nowrap">
            <i>p</i><sub>1</sub><sup>t</sup>.<i>F</i>.<i>p</i><sub>i</sub>
            = 0.</td>

            <td class="eqno" width="10" align="right">(<span class=
            "eqn-number">3</span>)</td>
          </tr>
        </table>
      </div>La décomposition de <span class="MATH"><i>E</i></span>
      en valeurs singulières fait apparaître un produit de matrices
      qui permet de déduire la matrice de rotation <span class=
      "MATH"><i>R</i><sub>i</sub></span> et le vecteur de
      translation <span class="MATH"><i>t</i><sub>i</sub></span>.
      Résoudre le problème de reconstruction 3<small>D</small>
      revient alors à trouver <!-- MATH
 ${\tilde{x}}$
 -->
      <span class="MATH"><img width="10" height="12" align="bottom"
      border="0" src="img4.png" alt="$ \tilde{x}$" /></span>
      connaissant les <!-- MATH
 ${\tilde{p_i}}$
 -->
      <span class="MATH"><img width="13" height="23" align="middle"
      border="0" src="img6.png" alt="$ \tilde{p_i}$" /></span>,
      c'est-à-dire résoudre le système d'équations (<a href=
      "fonde_mddd_Toc.html#systmP">1</a>) relativement aux
      coordonnées <!-- MATH
 ${\tilde{x}}$
 -->
      <span class="MATH"><img width="10" height="12" align="bottom"
      border="0" src="img4.png" alt="$ \tilde{x}$" /></span>. Comme
      toute résolution de problème inverse, la reconstruction
      3<small>D</small> est très sensible aux erreurs de mesure. Sa
      résolution requiert une bonne précision des mesures faites
      dans l'image, ainsi qu'un choix judicieux des techniques
      d'optimisation numérique.
    </body>
  </noframes>
</frameset>
</html>
