Ultralytics YOLO27 : Rejoins la liste d'attente.
Licence YOLO
Retour au glossaire Ultralytics

Homography

Une homographie est une transformation projective qui associe des plans entre différentes vues, permettant la correction de perspective, le recalage d’images et l’assemblage de panoramas.

Une homographie est une transformation projective inversible qui associe les points d’un plan aux points d’un autre tout en préservant les lignes droites. En vision par ordinateur, elle décrit l’apparence d’une surface plane depuis différents points de vue : une page rectangulaire photographiée en biais peut être transformée en un rectangle vu de face. Les homographies permettent le recalage d’images, la correction de perspective et l’assemblage de panoramas. « Transformation projective » est un synonyme ; le terme linguistique « homographe » désigne des mots qui ont la même orthographe.

Fonctionnement de la matrice d’homographie#

Une homographie est représentée par une matrice 3 x 3, généralement appelée H. Elle opère sur des coordonnées homogènes, qui représentent un point bidimensionnel à l’aide de trois valeurs. Après la multiplication matricielle, diviser les deux premières valeurs de sortie par la troisième donne les coordonnées ordinaires de l’image.

Bien que H contienne neuf éléments, elle possède huit paramètres indépendants, ou degrés de liberté : multiplier chaque élément par un même nombre non nul ne modifie pas le mapping. Cette géométrie des transformations planaires d’images explique pourquoi quatre correspondances de points adaptées déterminent une homographie.

Une transformation affine est une homographie restreinte qui préserve les droites parallèles. Une homographie générale représente aussi les effets de perspective, notamment les bords parallèles qui convergent vers un point de fuite. Les distances et les angles changent généralement. Michel Chasles a développé ce concept dans son mémoire de 1837 sur la dualité et l’homographie.

Comment estimer une homographie#

L’estimation commence par des points correspondants : des emplacements représentant les mêmes caractéristiques physiques dans deux images. Il peut s’agir de coins sélectionnés manuellement ou de points clés mis en correspondance à l’aide de l’extraction de caractéristiques. Des méthodes comme la transformation de caractéristiques invariante à l’échelle fournissent des descripteurs — des résumés numériques de l’apparence locale — pour mettre en correspondance des caractéristiques entre différentes vues.

Il faut au minimum quatre paires de points, sans que trois points soient colinéaires dans l’un ou l’autre ensemble. L’algorithme de transformation linéaire directe (DLT) convertit les relations entre leurs coordonnées en un système linéaire. Des correspondances supplémentaires améliorent l’estimation lorsque les mesures comportent du bruit.

Les correspondances incorrectes nécessitent un ajustement robuste. Le consensus par échantillonnage aléatoire (RANSAC) ajuste à plusieurs reprises des transformations candidates à de petits sous-ensembles et identifie les valeurs aberrantes : les correspondances cohérentes avec une transformation candidate. L’erreur de reprojection mesure la distance entre un point source transformé et sa destination observée. L’API d’estimation d’homographie d’OpenCV expose ce processus via cv2.findHomography et renvoie à la fois H et un masque des valeurs aberrantes.

Appliquer une homographie en Python#

OpenCV fournit des opérations distinctes pour estimer une matrice et déformer une image. Installe les dépendances avec pip install opencv-python numpy. Cet exemple transforme le contour rectangulaire de l’image d’exemple en trapèze :

from urllib.request import urlopen

import cv2
import numpy as np

image_url = "https://ultralytics.com/images/bus.jpg"
with urlopen(image_url) as response:
    encoded = np.frombuffer(response.read(), dtype=np.uint8)
image = cv2.imdecode(encoded, cv2.IMREAD_COLOR)
height, width = image.shape[:2]

# Conserve le même ordre des coins dans le sens horaire dans les deux tableaux.
source = np.float32([[0, 0], [width - 1, 0], [width - 1, height - 1], [0, height - 1]])
target = np.float32([[120, 80], [width - 121, 80], [width - 1, height - 1], [0, height - 1]])
matrix, _ = cv2.findHomography(source, target)
warped = cv2.warpPerspective(image, matrix, (width, height))
cv2.imwrite("homography_result.jpg", warped)

L’image enregistrée montre un raccourcissement en perspective : son bord supérieur est plus étroit, tandis que les bords droits de la scène restent droits.

Applications de l’homographie#

  • Traitement de documents : la rectification de perspective transforme les quatre coins d’un document plan en un rectangle. Cette étape de prétraitement régularise la disposition du texte avant la reconnaissance optique de caractères, selon la même géométrie de déformation planaire que celle présentée dans les exemples de correction de perspective d’OpenCV.
  • Assemblage de panoramas : les photographies qui se chevauchent sont alignées avant leur fusion. Le système Autostitch de Matthew Brown et David Lowe utilise des caractéristiques locales mises en correspondance pour automatiser la création de panoramas, notamment en repérant les images qui se chevauchent dans des collections non triées.

Dans Ultralytics YOLO, l’augmentation RandomPerspective applique des déformations projectives pendant l’entraînement, en transformant ensemble les images et leurs boîtes englobantes, contours de segmentation et points clés associés. Le paramètre perspective contrôle la composante de perspective de cette augmentation des données.

Une seule homographie établit une relation exacte entre des vues idéales d’une caméra à sténopé d’un même plan, ou entre des vues capturées en faisant pivoter une caméra autour de son centre de projection. Avec une translation de caméra et des objets situés à différentes profondeurs, la parallaxe produit un déplacement qui dépend de la profondeur. L’alignement d’un plan d’arrière-plan laisse alors les objets au premier plan déplacés, créant des bords doublés ou des images fantômes dans les images assemblées.

L’étalonnage de caméra traite la distorsion de l’objectif, dont la géométrie courbe de l’image doit être corrigée avant l’alignement planaire. Pour les scènes tridimensionnelles générales, la géométrie épipolaire contraint un point correspondant à se trouver sur une droite ; une homographie prédit directement son emplacement. En vision stéréoscopique, la position restante le long de la droite épipolaire fournit une information de disparité utilisée pour l’estimation de profondeur.

Explore solutions

La vision par ordinateur dans le sport

La vision par ordinateur dans le sport

Découvre comment Ultralytics YOLO propulse la vision par ordinateur dans le sport grâce au suivi des joueurs et du ballon, aux analyses de performance, aux conseils d’entraînement et à la rééducation des athlètes.
En savoir plus
Vision par ordinateur pour les images aériennes

Vision par ordinateur pour les images aériennes

Transforme les images de drones et les images aériennes en informations exploitables en temps réel pour l’agriculture, l’aquaculture, la conservation et l’analyse géospatiale avec Ultralytics YOLO.
En savoir plus
Vision par ordinateur dans l’aérospatiale

Vision par ordinateur dans l’aérospatiale

Applique la vision par ordinateur dans l’aérospatiale avec Ultralytics YOLO pour l’inspection des aéronefs, la détection des corps étrangers sur les pistes, les opérations au sol des aéroports et la détection des défauts des matériaux composites.
En savoir plus
La vision par ordinateur dans la sécurité

La vision par ordinateur dans la sécurité

Protège chaque site avec les modèles Ultralytics YOLO. L’IA visuelle permet la surveillance des périmètres, la détection des menaces, la reconnaissance des plaques d’immatriculation et la sécurité au travail.
En savoir plus
La vision par ordinateur en robotique

La vision par ordinateur en robotique

Donne plus de capacités à tes machines grâce aux modèles Ultralytics YOLO. Dans la robotique, l’IA visuelle permet la navigation autonome, la perception, le suivi des objets et le contrôle en temps réel.
En savoir plus
La vision par ordinateur dans la logistique

La vision par ordinateur dans la logistique

Optimise la logistique avec les modèles Ultralytics YOLO. La vision par IA permet d’inspecter les colis, de les trier, de suivre les véhicules et de surveiller la sécurité des entrepôts en temps réel.
En savoir plus
La vision par ordinateur dans le commerce de détail

La vision par ordinateur dans le commerce de détail

Réinvente le commerce de détail avec les modèles Ultralytics YOLO. La vision par IA permet de suivre les stocks, de surveiller les rayons, de gérer les files d’attente et de mieux comprendre les clients.
En savoir plus
La vision par ordinateur dans le secteur de la santé

La vision par ordinateur dans le secteur de la santé

Crée des solutions de santé avec les modèles Ultralytics YOLO. La vision par IA dans le secteur de la santé accélère l’imagerie médicale, améliore les diagnostics et facilite la surveillance des patients.
En savoir plus
La vision par ordinateur dans l’industrie manufacturière

La vision par ordinateur dans l’industrie manufacturière

Optimise la fabrication avec les modèles Ultralytics YOLO. La vision par IA améliore le contrôle qualité, la détection des défauts, le respect des règles concernant les EPI et l’automatisation des chaînes de montage.
En savoir plus
La vision par ordinateur dans l’automobile

La vision par ordinateur dans l’automobile

Mets la vision par ordinateur au service de l’automobile avec les modèles Ultralytics YOLO. La vision par IA renforce la sécurité routière, l’aide à la conduite et l’automatisation des véhicules pour des routes plus intelligentes.
En savoir plus
Vision par ordinateur dans l’agriculture

Vision par ordinateur dans l’agriculture

Fais entrer l’IA de vision dans l’agriculture intelligente avec les modèles Ultralytics YOLO. Optimise le suivi des cultures et du bétail ainsi que l’agriculture de précision pour obtenir des rendements plus élevés et plus intelligents.
En savoir plus

Construisons ensemble l’avenir de l’IA !

Commence ton parcours vers l’avenir de l’apprentissage automatique