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

Canny Edge Detection

La détection des contours de Canny est un algorithme en plusieurs étapes qui réduit le bruit, détecte les changements brusques de luminosité et crée des cartes de contours fines pour la vision par ordinateur.

La détection des contours de Canny est un algorithme de traitement d’image en plusieurs étapes qui repère les changements brusques de luminosité et les convertit en une carte de contours binaire et fine. Il réduit le bruit, repère les transitions d’intensité et relie les pixels de contour fiables pour former des contours continus. En vision par ordinateur, ces contours décrivent la structure de l’image pour l’analyse des formes et la mesure.

John Canny a mis au point cette méthode en 1983 et l’a présentée dans son article de 1986, A Computational Approach to Edge Detection. Sa conception vise trois objectifs : détecter les vrais contours, les localiser avec précision et produire une seule réponse par contour. « Détecteur de contours de Canny » est un synonyme de l’algorithme.

Fonctionnement de la détection des contours de Canny#

L’algorithme associe le prétraitement des données au filtrage et à l’analyse de connectivité. Ses cinq étapes ont chacune un rôle distinct :

  • Réduction du bruit : le lissage gaussien calcule la moyenne des pixels voisins avec des poids qui varient selon la distance, supprimant les fluctuations susceptibles de créer des contours indésirables.
  • Estimation du gradient : les dérivées horizontales et verticales mesurent la vitesse à laquelle la luminosité change. Leur combinaison donne la force du contour et une direction perpendiculaire à sa limite. OpenCV utilise les dérivées de Sobel lors de cette étape.
  • Amincissement des contours : la suppression des non-maxima conserve les pics locaux du gradient dans la direction de celui-ci, produisant des crêtes étroites plutôt que de larges bandes.
  • Double seuillage : un seuil élevé repère les contours forts ; un seuil faible élimine les réponses faibles. Les pixels situés entre les deux seuils deviennent des candidats.
  • Liaison par hystérésis : les pixels candidats sont conservés lorsqu’ils sont reliés à un contour fort par d’autres candidats. Les candidats isolés disparaissent.

Seuils, lissage et modes d’échec#

Les seuils s’appliquent à l’intensité du gradient plutôt qu’à la luminosité brute ou à la confiance du modèle. Les diminuer conserve davantage de détails et de bruit ; les augmenter supprime les contours faibles. Augmenter le seuil élevé réduit également le nombre de pixels de contour forts disponibles pour le chaînage par hystérésis.

L’échelle gaussienne contrôle un compromis distinct. Un lissage plus important atténue le bruit, mais supprime les structures fines. Dans l’exemple du carré bruité de scikit-image, modifier l’écart type gaussien change la quantité de bruit qui subsiste autour du carré.

Lors de l’inspection des fissures, les surfaces de béton rugueuses produisent des contours de texture indésirables et des contours de fissures incomplets. Augmenter les seuils supprime certains faux contours, mais fait aussi disparaître des sections de fissures réelles.

Sobel estime les dérivées de l’intensité ; Canny combine l’estimation du gradient avec le lissage, l’amincissement et une sélection fondée sur la connectivité. L’étape d’amincissement de Canny compare les pixels voisins, tandis que la NMS de détection d’objets compare les boîtes prédites qui se chevauchent.

Détection des contours avec Canny en Python#

Installe les dépendances avec pip install opencv-python numpy. Cet exemple utilise OpenCV pour enregistrer une carte de contours de l’échantillon 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)
gray = cv2.imdecode(encoded, cv2.IMREAD_GRAYSCALE)

# Lisse l’image avant de calculer les gradients d’intensité.
smoothed = cv2.GaussianBlur(gray, (5, 5), 1.4)
edges = cv2.Canny(smoothed, 50, 150, L2gradient=True)
cv2.imwrite("canny_edges.png", edges)

Le fichier PNG enregistré montre les contours conservés en blanc sur fond noir. Dans le flux de détection des contours d’OpenCV, les deuxième et troisième arguments de Canny définissent les seuils bas et haut. L2gradient=True utilise la norme euclidienne du gradient ; le comportement par défaut utilise la somme des dérivées horizontale et verticale en valeur absolue. Ces choix modifient les valeurs du gradient et, par conséquent, le comportement des seuils.

Canny prend en charge l’extraction de caractéristiques géométriques : l’exemple de détection de lignes de scikit-image l’applique à une photographie de cameraman avant qu’une transformée de Hough probabiliste n’extraie des segments droits. Canny fournit les pixels de contour ; le vote de Hough les regroupe en lignes. La détection d’objets attribue des catégories et des boîtes, tandis que la segmentation d’instances attribue les pixels à des objets individuels.

La segmentation YOLO26 d’Ultralytics renvoie des masques pour l’isolation d’objets, qui permettent de sélectionner des régions de l’image pour un traitement Canny distinct. Cette approche combine la sélection d’objets apprise avec l’extraction classique des contours.

En IA générative, ControlNet utilise des cartes Canny comme conditions spatiales pour les modèles de diffusion. Son implémentation conditionnée par Canny guide la génération avec Stable Diffusion 1.5 en utilisant les contours extraits en complément d’une invite textuelle.

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