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

Hough Transform

La trasformata di Hough è una tecnica di visione artificiale basata sul voto che rileva linee, cerchi e forme, anche in presenza di interruzioni o bordi dell’immagine rumorosi.

La trasformata di Hough è una tecnica geometrica di estrazione delle caratteristiche che rileva linee, cerchi e altre forme parametrizzate facendo votare i punti dell’immagine a favore delle forme possibili. I punti appartenenti alla stessa struttura si rafforzano a vicenda, producendo un picco netto in una tabella di votazione. Nella visione artificiale, questo aiuta a recuperare forme con interruzioni o contorni rumorosi.

Paul V. C. Hough introdusse la tecnica nel 1959 in Analisi automatica delle immagini di camere a bolle, affrontando il problema delle tracce di particelle nelle fotografie di fisica. Richard Duda e Peter Hart introdussero la rappresentazione angolo-distanza, ampiamente utilizzata, nel loro articolo del 1972 sul rilevamento di linee e curve.

Come funziona il voto di Hough#

Un flusso di lavoro tipico inizia con il preprocessing dei dati e il rilevamento dei bordi. Un rilevatore di bordi individua le variazioni locali di luminosità; la trasformata di Hough raggruppa i pixel dei bordi in strutture geometriche. L'operatore di Sobel stima i gradienti di luminosità, mentre Canny produce una mappa dei bordi sottile, adatta al voto delle linee.

Ogni linea candidata è rappresentata da rho, la sua distanza perpendicolare con segno dall’origine dell’immagine, e da theta, l’angolo di tale perpendicolare rispetto all’asse x. Questo permette di gestire le linee verticali senza una pendenza infinita. Ogni pixel di bordo vota per le coppie rho–theta compatibili in un accumulatore, una tabella che suddivide lo spazio dei parametri in intervalli discreti. I pixel collineari contribuiscono allo stesso intervallo, anche quando sono separati nell’immagine. I picchi individuano le linee supportate.

La geometria e le regole di voto determinano l’output. Un rilevatore di deep learning apprende schemi visivi dai dati di addestramento; il rilevamento di Hough usa un modello di forma scelto e soglie numeriche anziché i pesi del modello appresi.

Trasformate per linee, probabilistica e per cerchi#

Tre implementazioni comuni differiscono per modalità di ricerca e output:

  • Trasformata standard per linee: cv2.HoughLines() restituisce coppie rho–theta che descrivono linee infinite. Per ottenere gli estremi dei segmenti sono necessarie ulteriori elaborazioni.
  • Trasformata probabilistica per linee: cv2.HoughLinesP() riduce il lavoro di votazione campionando i punti e restituisce direttamente gli estremi dei segmenti. minLineLength scarta i segmenti corti; maxLineGap controlla la distanza massima tra i tratti allineati che possono essere uniti.
  • Trasformata per cerchi: i candidati cerchi richiedono un centro e un raggio. cv2.HoughCircles() usa un approccio basato sul gradiente, restringendo la ricerca con limiti sul raggio. Il suo input è in scala di grigi, mentre le funzioni per le linee accettano un’immagine binaria.

Rilevare segmenti di linea in Python#

Installa le dipendenze con pip install opencv-python numpy. Questo esempio usa OpenCV per rilevare e disegnare segmenti di linea nell’immagine 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)
image = cv2.imdecode(encoded, cv2.IMREAD_COLOR)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# Estrai i bordi per il voto.
edges = cv2.Canny(gray, 50, 150)
# Rileva i segmenti finiti supportati dai voti dell’accumulatore.
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’immagine salvata sovrappone in rosso i segmenti restituiti. Gli intervalli rho sono larghi un pixel, quelli theta coprono un grado e threshold=80 imposta la soglia di voto dell’accumulatore. Le impostazioni relative alla lunghezza dei segmenti e agli spazi vuoti sono misurate in pixel.

Applicazioni e limiti pratici#

Nell'elaborazione dei documenti, l’estrazione delle linee della griglia supporta l’analisi strutturale: OpenCV mostra il rilevamento di Hough su un’immagine di Sudoku. Il voto circolare individua centri e raggi delle monete negli esempi di cerchi ed ellissi di scikit-image. Questi output descrivono la geometria; il rilevamento degli oggetti aggiunge categorie semantiche e la segmentazione di istanze assegna i pixel ai singoli oggetti.

Un prototipo per la misurazione di travi d’acciaio combina le maschere di YOLOv8, i bordi Canny e le linee di Hough probabilistiche per supportare l’estrazione degli angoli. La segmentazione di Ultralytics YOLO26 fornisce maschere per l'isolamento degli oggetti, consentendo di usare lo stesso approccio con input mascherati prima dell’elaborazione geometrica separata.

Intervalli più fini nell’accumulatore aumentano l’uso di memoria; quelli più grossolani uniscono candidati vicini. Nell'estrazione dei bordi delle tabelle, i bordi incompleti riducono i contorni rilevabili, mentre le linee non pertinenti possono causare correzioni errate dei bordi. Aumentando maxLineGap si uniscono interruzioni più ampie tra i tratti allineati; aumentando minLineLength si eliminano i segmenti più corti.

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