Scopri YOLO26: vision AI di prossima generazione.
Ultralytics
Torna al glossario Ultralytics

Non-Maximum Suppression (NMS)

Scopri come la Non-Maximum Suppression (NMS) elimina i bounding box duplicati nel rilevamento degli oggetti. Scopri come Ultralytics YOLO26 fornisce NMS end-to-end nativo.

Non-Maximum Suppression (NMS) è una tecnica di post-elaborazione utilizzata nel rilevamento oggetti per perfezionare le previsioni grezze effettuate da un modello. Quando un modello di rilevamento oggetti analizza un'immagine, spesso genera più bounding box sovrapposti per un singolo oggetto, ciascuno con un punteggio di confidenza associato. Queste previsioni ridondanti si verificano perché il modello potrebbe rilevare la stessa caratteristica a scale o posizioni leggermente diverse. NMS filtra questo output mantenendo solo il bounding box più accurato per ogni oggetto e scartando gli altri, assicurando che l'output finale sia pulito, preciso e privo di duplicati.

Link to this sectionCome funziona Non-Maximum Suppression#

L'algoritmo NMS opera su un elenco di bounding box candidati e i relativi punteggi di confidenza. L'obiettivo è selezionare la scatola migliore per un oggetto e sopprimere (rimuovere) qualsiasi altra scatola che si sovrapponga significativamente ad essa, poiché si tratta probabilmente di rilevamenti duplicati dello stesso oggetto. Il processo segue tipicamente questi passaggi:

  1. Filtro: Elimina tutti i bounding box con punteggi di confidenza inferiori a una soglia specifica (ad esempio, 0.25) per rimuovere immediatamente le previsioni deboli.

  2. Ordinamento: Ordina i box rimanenti in ordine decrescente in base ai loro punteggi di confidenza.

  3. Selezione: Scegli il box con il punteggio di confidenza più alto come rilevamento valido.

  4. Confronto: Confronta questo box selezionato con tutti gli altri box rimanenti utilizzando Intersection over Union (IoU), una metrica che misura la sovrapposizione tra due box.

  5. Soppressione: Se l'IoU tra il box selezionato e un altro box supera una soglia predefinita (ad esempio, 0.45), il box con il punteggio inferiore viene considerato un duplicato e rimosso.

  6. Iterazione: Ripeti il processo con il successivo box con il punteggio più alto che non è ancora stato soppresso o selezionato, finché tutti i box non vengono elaborati.

Link to this sectionApplicazioni nel mondo reale#

NMS è essenziale in scenari in cui la precisione è fondamentale e i rilevamenti duplicati possono confondere i sistemi a valle.

  • Guida autonoma: Nei sistemi di auto a guida autonoma, le telecamere rilevano pedoni, altri veicoli e segnali stradali. Un modello potrebbe prevedere tre box leggermente diversi per un singolo pedone. NMS assicura che il sistema di pianificazione del veicolo riceva solo una coordinata per quel pedone, evitando frenate brusche o errori di pianificazione del percorso causati da ostacoli "fantasma".
  • Gestione dell'inventario al dettaglio: Quando si utilizza la computer vision per contare i prodotti su uno scaffale, gli articoli sono spesso imballati molto vicini tra loro. Senza NMS, una singola lattina di bibita potrebbe essere contata due volte a causa di previsioni sovrapposte, portando a livelli di stock inaccurati. NMS perfeziona questi rilevamenti per garantire che il conteggio dell'inventario corrisponda alla realtà.

Link to this sectionImplementazione di NMS con PyTorch#

Sebbene molti framework moderni gestiscano NMS internamente, comprendere l'implementazione aiuta nella regolazione dei parametri. L'esempio seguente dimostra come applicare NMS utilizzando la libreria PyTorch:

import torch
import torchvision.ops as ops

# Example bounding boxes: [x1, y1, x2, y2]
boxes = torch.tensor(
    [
        [100, 100, 200, 200],  # Box A
        [105, 105, 195, 195],  # Box B (High overlap with A)
        [300, 300, 400, 400],  # Box C (Distinct object)
    ],
    dtype=torch.float32,
)

# Confidence scores for each box
scores = torch.tensor([0.9, 0.8, 0.95], dtype=torch.float32)

# Apply NMS with an IoU threshold of 0.5
# Boxes with IoU > 0.5 relative to the highest scoring box are suppressed
keep_indices = ops.nms(boxes, scores, iou_threshold=0.5)

print(f"Indices to keep: {keep_indices.tolist()}")
# Output will likely be [2, 0] corresponding to Box C (0.95) and Box A (0.9),
# while Box B (0.8) is suppressed due to overlap with A.

Link to this sectionNMS vs. Rilevamento End-to-End#

Tradizionalmente, NMS è stato un passaggio di "pulizia" obbligatorio che si trova al di fuori della rete neurale principale, aggiungendo latenza di inferenza. Tuttavia, il settore si sta evolvendo verso architetture end-to-end.

  • NMS standard: Un processo euristico che richiede la regolazione manuale della soglia IoU. Se la soglia è troppo bassa, oggetti validi vicini tra loro potrebbero essere mancati (basso recall). Se troppo alta, i duplicati rimangono (bassa precisione).
  • Modelli End-to-End: I modelli di prossima generazione come YOLO26 sono progettati per essere nativamente end-to-end. Imparano a prevedere esattamente un box per oggetto durante l'addestramento, internalizzando efficacemente il processo NMS. Ciò elimina la necessità di post-elaborazione esterna, risultando in velocità di inferenza più elevate e pipeline di distribuzione più semplici sulla Ultralytics Platform.

Link to this sectionConcetti correlati#

  • Soft-NMS: Una variante in cui i box sovrapposti non vengono rigorosamente rimossi ma vedono i loro punteggi di confidenza ridotti. Ciò consente a oggetti parzialmente sovrapposti (come persone in una folla) di essere ancora rilevati se i loro punteggi rimangono abbastanza alti dopo il decadimento.
  • Anchor Boxes: Forme di box predefinite utilizzate da molti rilevatori per stimare le dimensioni dell'oggetto. NMS viene applicato alle previsioni finali perfezionate da queste ancore.
  • Intersection over Union (IoU): La formula matematica utilizzata da NMS per determinare quanto due box si sovrappongono, agendo come soglia decisionale per la soppressione.

Explore solutions

Real-time AI that works with your team

AI nella Robotica

Potenzia macchine più intelligenti con i modelli Ultralytics YOLO. La Vision AI nella robotica guida la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.

Scopri di più
Real-time AI that works with your team

IA nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. La Vision AI abilita l'ispezione dei pacchi, lo smistamento, il tracciamento dei veicoli e il monitoraggio della sicurezza in magazzino in tempo reale.

Scopri di più
Real-time AI that works with your team

AI nel settore Retail

Reimmagina il retail con i modelli Ultralytics YOLO. La Vision AI alimenta il tracciamento dell'inventario, il monitoraggio degli scaffali, la gestione delle code e insight più intelligenti sui clienti.

Scopri di più
Real-time AI that works with your team

IA nel settore sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. La vision AI nella sanità potenzia l'imaging medico più rapido, diagnosi più intelligenti e il monitoraggio dei pazienti.

Scopri di più
Real-time AI that works with your team

IA nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La Vision AI guida il controllo qualità, il rilevamento dei difetti, la conformità ai DPI e l'automazione della linea di assemblaggio.

Scopri di più
Real-time AI that works with your operation

AI nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La vision AI migliora la sicurezza stradale, l'assistenza alla guida e l'automazione dei veicoli per strade più intelligenti.

Scopri di più
Real-time AI tailored to your operation

AI in Agricoltura

Porta la vision AI nell'agricoltura intelligente con i modelli Ultralytics YOLO. Potenzia il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per rese più elevate e intelligenti.

Scopri di più
Real-time AI that works with your team

AI nella Robotica

Potenzia macchine più intelligenti con i modelli Ultralytics YOLO. La Vision AI nella robotica guida la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.

Scopri di più
Real-time AI that works with your team

IA nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. La Vision AI abilita l'ispezione dei pacchi, lo smistamento, il tracciamento dei veicoli e il monitoraggio della sicurezza in magazzino in tempo reale.

Scopri di più
Real-time AI that works with your team

AI nel settore Retail

Reimmagina il retail con i modelli Ultralytics YOLO. La Vision AI alimenta il tracciamento dell'inventario, il monitoraggio degli scaffali, la gestione delle code e insight più intelligenti sui clienti.

Scopri di più
Real-time AI that works with your team

IA nel settore sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. La vision AI nella sanità potenzia l'imaging medico più rapido, diagnosi più intelligenti e il monitoraggio dei pazienti.

Scopri di più
Real-time AI that works with your team

IA nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La Vision AI guida il controllo qualità, il rilevamento dei difetti, la conformità ai DPI e l'automazione della linea di assemblaggio.

Scopri di più
Real-time AI that works with your operation

AI nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La vision AI migliora la sicurezza stradale, l'assistenza alla guida e l'automazione dei veicoli per strade più intelligenti.

Scopri di più
Real-time AI tailored to your operation

AI in Agricoltura

Porta la vision AI nell'agricoltura intelligente con i modelli Ultralytics YOLO. Potenzia il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per rese più elevate e intelligenti.

Scopri di più
Real-time AI that works with your team

AI nella Robotica

Potenzia macchine più intelligenti con i modelli Ultralytics YOLO. La Vision AI nella robotica guida la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.

Scopri di più
Real-time AI that works with your team

IA nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. La Vision AI abilita l'ispezione dei pacchi, lo smistamento, il tracciamento dei veicoli e il monitoraggio della sicurezza in magazzino in tempo reale.

Scopri di più
Real-time AI that works with your team

AI nel settore Retail

Reimmagina il retail con i modelli Ultralytics YOLO. La Vision AI alimenta il tracciamento dell'inventario, il monitoraggio degli scaffali, la gestione delle code e insight più intelligenti sui clienti.

Scopri di più
Real-time AI that works with your team

IA nel settore sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. La vision AI nella sanità potenzia l'imaging medico più rapido, diagnosi più intelligenti e il monitoraggio dei pazienti.

Scopri di più
Real-time AI that works with your team

IA nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La Vision AI guida il controllo qualità, il rilevamento dei difetti, la conformità ai DPI e l'automazione della linea di assemblaggio.

Scopri di più
Real-time AI that works with your operation

AI nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La vision AI migliora la sicurezza stradale, l'assistenza alla guida e l'automazione dei veicoli per strade più intelligenti.

Scopri di più
Real-time AI tailored to your operation

AI in Agricoltura

Porta la vision AI nell'agricoltura intelligente con i modelli Ultralytics YOLO. Potenzia il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per rese più elevate e intelligenti.

Scopri di più

Costruiamo insieme il futuro dell'AI!

Inizia il tuo viaggio con il futuro del machine learning