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

Hough Transform

La transformée de Hough est une technique de vision par ordinateur fondée sur le vote, qui détecte des lignes, des cercles et des formes, même lorsque les contours des images sont discontinus ou bruités.

La transformée de Hough est une technique géométrique d’extraction de caractéristiques qui détecte des lignes, des cercles et d’autres formes paramétrées en faisant voter les points de l’image pour les formes possibles. Les points appartenant à la même structure se renforcent mutuellement, ce qui crée un pic marqué dans un tableau de votes. En vision par ordinateur, cette technique aide à retrouver les formes dont les contours sont discontinus ou bruités.

Paul V. C. Hough a introduit cette technique en 1959 dans Machine Analysis of Bubble Chamber Pictures, pour étudier les trajectoires de particules dans des photographies prises en physique. Richard Duda et Peter Hart ont introduit la représentation angle-distance largement utilisée dans leur article de 1972 sur la détection de lignes et de courbes.

Fonctionnement du vote de Hough#

Un flux de travail classique commence par le prétraitement des données et la détection des contours. Un détecteur de contours repère les variations locales de luminosité ; la transformée de Hough regroupe les pixels de contour en structures géométriques. L’opérateur de Sobel estime les gradients de luminosité, tandis que Canny produit une carte de contours fins adaptée au vote pour les lignes.

Chaque ligne candidate est représentée par rho, sa distance perpendiculaire signée à l’origine de l’image, et par theta, l’angle de cette perpendiculaire par rapport à l’axe x. Cela permet de traiter les lignes verticales sans pente infinie. Chaque pixel de contour vote pour les couples rho–theta compatibles dans un accumulateur, un tableau qui divise l’espace des paramètres en cellules discrètes. Les pixels colinéaires contribuent à la même cellule, même s’ils sont éloignés les uns des autres dans l’image. Les pics indiquent les lignes étayées par les votes.

La géométrie et les règles de vote déterminent le résultat. Un détecteur d’apprentissage profond apprend des motifs visuels à partir des données d’entraînement ; la détection de Hough utilise un modèle de forme choisi et des seuils numériques plutôt que des poids de modèle appris.

Transformées de lignes, probabiliste et de cercles#

Trois implémentations courantes diffèrent par leur méthode de recherche et leurs résultats :

  • Transformée standard pour les lignes : cv2.HoughLines() renvoie des couples rho–theta décrivant des lignes infinies. Un traitement supplémentaire est nécessaire pour obtenir les extrémités des segments.
  • Transformée probabiliste pour les lignes : cv2.HoughLinesP() réduit le travail de vote par échantillonnage des points et renvoie directement les extrémités des segments. minLineLength rejette les segments courts ; maxLineGap contrôle la distance maximale entre les morceaux alignés pouvant être raccordés.
  • Transformée pour les cercles : les cercles candidats nécessitent un centre et un rayon. cv2.HoughCircles() utilise une approche fondée sur les gradients, et les limites de rayon réduisent l’espace de recherche. L’entrée est une image en niveaux de gris, tandis que les fonctions de détection de lignes prennent une image binaire.

Détecter des segments de ligne en Python#

Installe les dépendances avec pip install opencv-python numpy. Cet exemple utilise OpenCV pour détecter et tracer des segments de ligne dans l’image d’exemple du bus.

from urllib.request import urlopen

import cv2
import numpy as np

with urlopen("https://ultralytics.com/images/bus.jpg") as response:
    encoded = np.frombuffer(response.read(), dtype=np.uint8)
image = cv2.imdecode(encoded, cv2.IMREAD_COLOR)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# Extraire les contours pour le vote.
edges = cv2.Canny(gray, 50, 150)
# Détecter les segments finis étayés par les votes de l’accumulateur.
lines = cv2.HoughLinesP(
    edges,
    1,
    np.pi / 180,
    threshold=80,
    minLineLength=80,
    maxLineGap=10,
)
if lines is not None:
    for x1, y1, x2, y2 in lines[:, 0]:
        cv2.line(image, (x1, y1), (x2, y2), (0, 0, 255), 2)
cv2.imwrite("hough_segments.jpg", image)

L’image enregistrée superpose en rouge les segments renvoyés. Les cellules rho ont une largeur d’un pixel, les cellules theta couvrent un degré et threshold=80 définit le seuil de votes de l’accumulateur. Les paramètres de longueur des segments et d’écart sont exprimés en pixels.

Applications et limites pratiques#

Dans le traitement de documents, l’extraction des lignes de la grille facilite l’analyse structurelle : OpenCV présente la détection de Hough sur une image de sudoku. Le vote circulaire localise les centres et les rayons des pièces dans les exemples de détection de cercles et d’ellipses de scikit-image. Ces résultats décrivent la géométrie ; la détection d’objets ajoute des catégories sémantiques, et la segmentation d’instances attribue les pixels à des objets individuels.

Un prototype de mesure de poutres en acier combine les masques YOLOv8, les contours Canny et les lignes de Hough probabilistes pour faciliter l’extraction des coins. La segmentation d’Ultralytics YOLO26 fournit des masques pour l’isolement des objets, ce qui permet d’appliquer la même approche avec une entrée masquée avant un traitement géométrique distinct.

Des cellules plus fines dans l’accumulateur augmentent la consommation mémoire ; des cellules grossières fusionnent les candidats proches. Lors de l’extraction des limites de tableaux, des bordures incomplètes réduisent le nombre de limites détectables, tandis que des lignes sans rapport peuvent entraîner des corrections erronées des limites. Augmenter maxLineGap permet de raccorder des ruptures plus larges entre des morceaux alignés ; augmenter minLineLength élimine les segments plus courts.

Découvre les 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