Homographie (vision par ordinateur)

0

Dans le domaine de la vision par ordinateur , deux images quelconques de la même surface plane dans l’espace sont liées par une homographie (en supposant un modèle de caméra à sténopé ). Cela a de nombreuses applications pratiques, telles que la rectification d’image , l’enregistrement d’image ou le mouvement de la caméra (rotation et translation) entre deux images. Une fois que la résection de la caméra a été effectuée à partir d’une matrice d’homographie estimée, ces informations peuvent être utilisées pour la navigation ou pour insérer des modèles d’objets 3D dans une image ou une vidéo, afin qu’ils soient rendus avec la perspective correcte et semblent avoir fait partie du scène originale (voir Réalité augmentée ).

Configuration géométrique pour l’homographie : caméras stéréo O 1 et O 2 toutes deux pointées vers X en géométrie épipolaire . Dessin de Neue Konstruktionen der Perspektive und Photogrammétrie par Hermann Guido Hauck (1845 – 1905)

Équation plan à plan 3D

Nous avons deux caméras a et b , regardant des points P je {displaystyle P_{i}} P_{i} P_{i}dans un avion. Passant de la projection b p je = ( b tu je ; b v je ; 1 ) {displaystyle {}^{b}p_{i}=left({}^{b}u_{i};{}^{b}v_{i};1right)} {displaystyle {}^{b}p_{i}=left({}^{b}u_{i};{}^{b}v_{i};1right)} {displaystyle {}^{b}p_{i}=left({}^{b}u_{i};{}^{b}v_{i};1right)}de P je {displaystyle P_{i}} P_{i} P_{i}en b à la projection un p je = ( a u i ; a v i ; 1 ) {displaystyle {}^{a}p_{i}=left({}^{a}u_{i};{}^{a}v_{i};1right)} {displaystyle {}^{a}p_{i}=left({}^{a}u_{i};{}^{a}v_{i};1right)} {displaystyle {}^{a}p_{i}=left({}^{a}u_{i};{}^{a}v_{i};1right)}de P i {displaystyle P_{i}} P_{i} P_{i}dans un :

a p i = b z i a z i K a ⋅ H a b ⋅ K b − 1 ⋅ b p i {displaystyle {}^{a}p_{i}={frac {{}^{b}z_{i}}{{}^{a}z_{i}}}K_{a}cdot H_{ ab}cdot K_{b}^{-1}cdot {}^{b}p_{i}} {displaystyle {}^{a}p_{i}={frac {{}^{b}z_{i}}{{}^{a}z_{i}}}K_{a}cdot H_{ab}cdot K_{b}^{-1}cdot {}^{b}p_{i}} {displaystyle {}^{a}p_{i}={frac {{}^{b}z_{i}}{{}^{a}z_{i}}}K_{a}cdot H_{ab}cdot K_{b}^{-1}cdot {}^{b}p_{i}}

où a z i {displaystyle {}^{a}z_{i}} {displaystyle {}^{a}z_{i}} {displaystyle {}^{a}z_{i}}et b z i {displaystyle{}^{b}z_{i}} {displaystyle {}^{b}z_{i}} {displaystyle {}^{b}z_{i}}sont les coordonnées z de P dans chaque cadre de caméra et où la matrice d’homographie H a b {displaystyle H_{ab}} {displaystyle H_{ab}} est donné par

H a b = R − t n T d {displaystyle H_{ab}=R-{frac {tn^{T}}{d}}} {displaystyle H_{ab}=R-{frac {tn^{T}}{d}}} {displaystyle H_{ab}=R-{frac {tn^{T}}{d}}}.

R {displaystyle R} R Rest la matrice de rotation par laquelle b est tourné par rapport à a ; t est le vecteur de translation de a vers b ; n et d sont respectivement le vecteur normal du plan et la distance de l’origine au plan. K a et K b sont les matrices des paramètres intrinsèques des caméras .

Homography-transl-bold.svg Homography-transl-bold.svg

La figure montre la caméra b regardant le plan à la distance d . Remarque : à partir de la figure ci-dessus, en supposant n T P i + d = 0 {displaystyle n^{T}P_{i}+d=0} n^{T}P_{i}+d=0 n^{T}P_{i}+d=0comme modèle d’avion, n T P i {displaystyle n^{T}P_{i}} n^{T}P_{i} n^{T}P_{i}est la projection du vecteur P i {displaystyle P_{i}} P_{i} P_{i}sur n {displaystyle n} n n, et égal à − d {displaystyle -d} -d -d. Alors t = t ⋅ 1 = t ( − n T P i d ) {displaystyle t=tcdot 1=tleft(-{frac {n^{T}P_{i}}{d}}right)} {displaystyle t=tcdot 1=tleft(-{frac {n^{T}P_{i}}{d}}right)} {displaystyle t=tcdot 1=tleft(-{frac {n^{T}P_{i}}{d}}right)}. Et nous avons H a b P i = R P i + t {displaystyle H_{ab}P_{i}=RP_{i}+t} {displaystyle H_{ab}P_{i}=RP_{i}+t} {displaystyle H_{ab}P_{i}=RP_{i}+t}où H a b = R − t n T d {displaystyle H_{ab}=R-{frac {tn^{T}}{d}}} {displaystyle H_{ab}=R-{frac {tn^{T}}{d}}} {displaystyle H_{ab}=R-{frac {tn^{T}}{d}}}.

Cette formule n’est valable que si la caméra b n’a ni rotation ni translation. Dans le cas général où R a , R b {displaystyle R_{a},R_{b}} R_{a},R_{b} R_{a},R_{b}et t a , t b {displaystyle t_{a},t_{b}} t_{a},t_{b} t_{a},t_{b}sont les rotations et translations respectives des caméras a et b , R = R a R b T {displaystyle R=R_{a}R_{b}^{T}} R=R_{a}R_{b}^{T} R=R_{a}R_{b}^{T}et la matrice d’homographie H a b {displaystyle H_{ab}} {displaystyle H_{ab}} {displaystyle H_{ab}}devient

H a b = R a R b T − ( − R a ∗ R b T ∗ t b + t a ) n T d {displaystyle H_{ab}=R_{a}R_{b}^{T}-{frac {(-R_{a}*R_{b}^{T}*t_{b}+t_{a} )n^{T}}{d}}} {displaystyle H_{ab}=R_{a}R_{b}^{T}-{frac {(-R_{a}*R_{b}^{T}*t_{b}+t_{a})n^{T}}{d}}} {displaystyle H_{ab}=R_{a}R_{b}^{T}-{frac {(-R_{a}*R_{b}^{T}*t_{b}+t_{a})n^{T}}{d}}}

d est la distance de la caméra b au plan.

La matrice d’homographie ne peut être calculée qu’entre des images prises par la même caméra prises sous des angles différents. Peu importe ce qui est présent dans les images. La matrice contient une forme déformée des images.

Homographie affine

Lorsque la région d’image dans laquelle l’homographie est calculée est petite ou que l’image a été acquise avec une grande distance focale, une homographie affine est un modèle plus approprié des déplacements d’image. Une homographie affine est un type particulier d’homographie générale dont la dernière ligne est fixée à

h 31 = h 32 = 0 , h 33 = 1. {displaystyle h_{31}=h_{32}=0,;h_{33}=1.} h_{{31}}=h_{{32}}=0,;h_{{33}}=1. h_{{31}}=h_{{32}}=0,;h_{{33}}=1.

Voir également

  • Transformation linéaire directe
  • Géométrie épipolaire
  • Fonctionnalité (vision par ordinateur)
  • Matrice fondamentale (vision par ordinateur)
  • Pose (vision par ordinateur)
  • Photogrammétrie

Références

  • O. Chum et T. Pajdla et P. Sturm (2005). “L’erreur géométrique pour les homographies” (PDF) . Vision par ordinateur et compréhension des images . 97 (1): 86-102. doi : 10.1016/j.cviu.2004.03.004 .

Boîtes à outils

  • homest est une bibliothèque GPL C / C++ pour une estimation d’homographie robuste et non linéaire (basée sur l’ algorithme de Levenberg–Marquardt ) à partir de paires de points appariés (Manolis Lourakis).
  • OpenCV est une bibliothèque complète ( ouverte et gratuite ) de logiciels de vision par ordinateur qui contient de nombreuses routines liées à l’estimation d’homographie ( cvFindHomography ) et à la reprojection ( cvPerspectiveTransform ).

Liens externes

  • Serge Belongie & David Kriegman (2007) Explanation of Homography Estimation from Department of Computer Science and Engineering, University of California, San Diego .
  • A. Criminisi, I. Reid & A. Zisserman (1997) “A Plane Measuring Device” , §3 Computing the Plane to Plane Homography, du Visual Geometry Group, Department of Engineering Science, University of Oxford .
  • Elan Dubrofsky (2009) Homography Estimation , mémoire de maîtrise , du Département d’informatique, Université de la Colombie-Britannique .
  • Richard Hartley et Andrew Zisserman (2004) Géométrie à vues multiples du Visual Geometry Group, Oxford. Inclut les fonctions Matlab pour le calcul d’une homographie et de la matrice fondamentale (vision par ordinateur) .
  • Tutoriel GIMP – Utilisation de l’outil Perspective par Billy Kerr sur YouTube . Montre comment effectuer une transformation de perspective à l’aide de GIMP .
  • Allan Jepson (2010) Homographies planaires du Département d’informatique, Université de Toronto . Comprend l’homographie 2D à partir de quatre paires de points correspondants, les mosaïques dans le traitement d’image, la suppression de la distorsion de perspective dans la vision par ordinateur, le rendu des textures dans l’infographie et le calcul des ombres planes.
  • Homographie par transfert d’avion Notes de cours du CSE576 à l’Université de Washington à Seattle .
  • Etienne Vincent & Robert Laganiere (2000) Detecting Planar Homographies in an Image Pair de l’École d’ingénierie et de technologie de l’information, Université d’Ottawa . Décrit un algorithme de détection de plans dans les images, utilise la méthode de consensus d’échantillon aléatoire ( RANSAC ), décrit l’heuristique et l’itération.
You might also like
Leave A Reply

Your email address will not be published.

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More