Ultralytics YOLO27: Iscriviti alla lista d'attesa.
Licenza YOLO
Torna al glossario di Ultralytics

Canny Edge Detection

Il rilevamento dei bordi di Canny è un algoritmo a più fasi che riduce il rumore, rileva variazioni nette di luminosità e crea mappe di bordi sottili per la computer vision.

Il rilevamento dei bordi di Canny è un algoritmo di elaborazione delle immagini a più fasi che individua variazioni nette di luminosità e le converte in una mappa di bordi binaria e sottile. Riduce il rumore, individua le transizioni di intensità e collega i pixel di bordo affidabili in contorni. Nella computer vision, questi contorni descrivono la struttura dell'immagine per l'analisi delle forme e le misurazioni.

John Canny ha sviluppato il metodo nel 1983 e lo ha descritto nel suo articolo del 1986, A Computational Approach to Edge Detection. Il metodo bilancia tre obiettivi: rilevare i bordi autentici, individuarli con precisione e produrre una sola risposta per ogni bordo. «Rilevatore di bordi di Canny» è un sinonimo dell'algoritmo.

Come funziona il rilevamento dei bordi di Canny#

L'algoritmo combina la preelaborazione dei dati con il filtraggio e l'analisi della connettività. Le sue cinque fasi hanno funzioni distinte:

  • Riduzione del rumore: La sfocatura gaussiana calcola la media dei pixel vicini con pesi che dipendono dalla distanza, attenuando le fluttuazioni che genererebbero bordi indesiderati.
  • Stima del gradiente: Le derivate orizzontali e verticali misurano la rapidità con cui cambia la luminosità. La loro combinazione fornisce la forza del bordo e una direzione perpendicolare al contorno. In questa fase OpenCV usa le derivate di Sobel.
  • Assottigliamento dei bordi: La soppressione dei non massimi conserva i picchi locali del gradiente lungo la direzione del gradiente, producendo creste strette anziché fasce ampie.
  • Doppia sogliatura: Una soglia alta individua i bordi forti; una soglia bassa elimina le risposte deboli. I pixel compresi tra le due soglie diventano candidati.
  • Collegamento per isteresi: I pixel candidati vengono mantenuti quando sono collegati a un bordo forte tramite altri candidati. I candidati isolati vengono eliminati.

Soglie, smoothing e modalità di errore#

Le soglie agiscono sull'intensità del gradiente, non sulla luminosità grezza o sulla confidenza del modello. Abbassandole si conservano più dettagli e rumore; alzandole si eliminano i contorni deboli. Aumentare la soglia alta riduce anche i pixel di bordo forti disponibili come punti iniziali per il collegamento tramite isteresi.

La scala gaussiana controlla un compromesso distinto. Un maggiore smoothing sopprime il rumore, ma rimuove le strutture fini. Nell'esempio del quadrato rumoroso di scikit-image, modificare la deviazione standard gaussiana cambia la quantità di rumore che rimane attorno al quadrato.

Nell'ispezione delle crepe, le superfici di calcestruzzo ruvido producono bordi di texture indesiderati e contorni delle crepe incompleti. Aumentare le soglie elimina alcuni bordi falsi, ma fa perdere anche tratti di crepe reali.

Sobel stima le derivate dell'intensità; Canny combina la stima del gradiente con smoothing, assottigliamento e selezione basata sulla connettività. La fase di assottigliamento di Canny confronta i pixel vicini, mentre la NMS per il rilevamento degli oggetti confronta i riquadri predetti sovrapposti.

Rilevamento dei bordi Canny in Python#

Installa le dipendenze con pip install opencv-python numpy. Questo esempio usa OpenCV per salvare una mappa dei bordi del campione dell'autobus:

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)

# Applica smoothing all'immagine prima di calcolare i gradienti dell'intensità.
smoothed = cv2.GaussianBlur(gray, (5, 5), 1.4)
edges = cv2.Canny(smoothed, 50, 150, L2gradient=True)
cv2.imwrite("canny_edges.png", edges)

Il PNG salvato mostra i bordi conservati in bianco su sfondo nero. Nel flusso di lavoro di rilevamento dei bordi di OpenCV, il secondo e il terzo argomento di Canny specificano rispettivamente la soglia bassa e quella alta. L2gradient=True usa il modulo euclideo del gradiente; il valore predefinito usa la somma delle derivate orizzontali e verticali in valore assoluto. Queste scelte modificano i valori del gradiente e quindi il comportamento delle soglie.

Canny supporta l'estrazione di caratteristiche geometriche: l'esempio di rilevamento delle linee di scikit-image lo applica a una fotografia di un cameraman prima che una trasformata di Hough probabilistica estragga i segmenti rettilinei. Canny fornisce i pixel dei bordi; il voto di Hough li raggruppa in linee. Il rilevamento degli oggetti assegna categorie e riquadri, mentre la segmentazione di istanze assegna i pixel ai singoli oggetti.

La segmentazione di YOLO26 di Ultralytics restituisce maschere per l'isolamento degli oggetti, che possono selezionare regioni dell'immagine da elaborare separatamente con Canny. Questo approccio combina la selezione degli oggetti appresa con l'estrazione classica dei contorni.

Nell'IA generativa, ControlNet usa mappe Canny come condizioni spaziali per i modelli di diffusione. La sua implementazione condizionata da Canny guida la generazione con Stable Diffusion 1.5 usando i contorni estratti insieme a un prompt testuale.

Esplora le soluzioni

La visione artificiale nello sport

La visione artificiale nello sport

Scopri come Ultralytics YOLO alimenta la computer vision nello sport con il tracciamento di giocatori e palloni, l'analisi delle prestazioni, gli approfondimenti per gli allenatori e la riabilitazione degli atleti.
Scopri di più
Computer vision per immagini aeree

Computer vision per immagini aeree

Trasforma immagini aeree e riprese da drone in informazioni utili in tempo reale per agricoltura, acquacoltura, conservazione e analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Applica la visione artificiale nel settore aerospaziale con Ultralytics YOLO per l'ispezione degli aeromobili, il rilevamento di FOD sulle piste, le operazioni di terra aeroportuali e il rilevamento di difetti nei materiali compositi.
Scopri di più
Visione artificiale nella sicurezza

Visione artificiale nella sicurezza

Proteggi ogni sito con i modelli Ultralytics YOLO. L'IA visiva alimenta il monitoraggio perimetrale, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Visione artificiale nella robotica

Visione artificiale nella robotica

Dai più potenza alle macchine intelligenti con i modelli Ultralytics YOLO. Nell'ambito della robotica, l'IA visiva alimenta la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Visione artificiale nella logistica

Visione artificiale nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. L'IA per la visione consente l'ispezione dei pacchi, la selezione, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Visione artificiale nel commercio al dettaglio

Visione artificiale nel commercio al dettaglio

Ripensa il commercio al dettaglio con i modelli Ultralytics YOLO. L'IA per la visione consente di tracciare le scorte, monitorare gli scaffali, gestire le code e ottenere informazioni più approfondite sui clienti.
Scopri di più
Visione artificiale in ambito sanitario

Visione artificiale in ambito sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. In ambito sanitario, l'IA per la visione consente di elaborare più rapidamente le immagini mediche, migliorare la diagnostica e monitorare i pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La visione basata sull'IA migliora il controllo qualità, il rilevamento dei difetti, la conformità ai requisiti sui DPI e l'automazione delle linee di assemblaggio.
Scopri di più
Computer vision nel settore automobilistico

Computer vision nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La visione basata sull'IA migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli, per strade più intelligenti.
Scopri di più
Visione artificiale in agricoltura

Visione artificiale in agricoltura

Porta l'IA visiva nell'agricoltura intelligente con i modelli Ultralytics YOLO. Gestisci il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per ottenere raccolti più abbondanti e intelligenti.
Scopri di più

Costruiamo insieme il futuro dell'IA!

Inizia il tuo percorso verso il futuro del machine learning