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

Hard Negative Mining

L'hard negative mining individua gli esempi negativi che il modello confonde maggiormente con quelli positivi e concentra su di essi l'addestramento, riducendo i falsi positivi nel rilevamento e nella ricerca.

Il mining degli hard negative è una strategia di addestramento che individua gli esempi negativi su cui un modello sbaglia di più e concentra l'apprendimento su di essi. Un esempio negativo non appartiene alla classe obiettivo, mentre un hard negative è un esempio che il modello continua a valutare come positivo: una porzione di sfondo che un rilevatore riquadra come oggetto o un'immagine non pertinente che un modello di embedding colloca vicino alla query. La maggior parte degli esempi negativi è facile e, una volta che il modello li gestisce correttamente, contribuisce pochissimo al segnale di apprendimento; selezionare quelli difficili rende quindi più netti i confini decisionali e riduce i falsi positivi.

Come funziona il mining degli hard negative#

Ciò che si considera difficile dipende dall'attività:

Il mining può essere offline o online. Il mining offline esegue un modello addestrato su un ampio insieme di dati contenenti solo esempi negativi, raccoglie i falsi positivi, li aggiunge al set di addestramento e ripete l'addestramento. I classici rilevatori di pedoni a finestra scorrevole venivano addestrati così: scandivano immagini senza persone alla ricerca di falsi allarmi e ripetevano l'addestramento usando tali immagini. Il mining online seleziona gli esempi difficili all'interno di ogni batch di addestramento. SSD ordina le box negative predefinite in base alla perdita di classificazione e conserva solo quelle con perdita più alta, fino a 3 esempi negativi per ogni positivo; il mining online degli esempi difficili (OHEM) applica la stessa idea alle proposte di regioni dei rilevatori a due stadi. La selezione SSD richiede poche righe:

import torch
import torch.nn.functional as F

torch.manual_seed(0)

# Simulated objectness logits for 8,400 candidate boxes: 20 cover an object, the rest are background
logits = torch.randn(8400) - 3
labels = torch.zeros(8400)
labels[:20] = 1
loss = F.binary_cross_entropy_with_logits(logits, labels, reduction="none")

# Keep every positive plus only the highest-loss negatives, at most 3 per positive
positives = labels == 1
negative_loss = loss.masked_fill(positives, 0)
hard_negatives = negative_loss.topk(3 * int(positives.sum())).indices
kept = torch.cat([positives.nonzero().squeeze(1), hard_negatives])

print(f"boxes in the loss: {len(kept)} of {len(loss)}")
print(f"mean negative loss: all {loss[~positives].mean():.3f}, mined {loss[hard_negatives].mean():.3f}")

La perdita conserva 80 delle 8.400 box: i 20 esempi positivi e i 60 esempi negativi che il modello valuta più simili a oggetti. La perdita media di questi 60 esempi negativi selezionati è 0,648, contro 0,075 per tutti i 8.380 esempi negativi; il gradiente si concentra così sullo sfondo che il modello confonde davvero.

  • Campionamento negativo: seleziona un sottoinsieme gestibile di tutti gli esempi negativi, spesso a caso. Il mining degli hard negative seleziona quelli più difficili da distinguere.
  • Focal loss: mantiene ogni esempio nella perdita, ma riduce il peso di quelli classificati correttamente, permettendo ai rilevatori a uno stadio come RetinaNet di addestrarsi su tutte le box candidate senza campionamento esplicito.
  • Apprendimento attivo: seleziona esempi incerti e non etichettati da far annotare alle persone, inclusi possibili esempi positivi. Il mining degli hard negative si concentra su esempi già confermati come negativi.
  • Ribilanciamento delle classi: corregge le frequenze non uniformi delle classi tramite sottocampionamento e aumento dei pesi. Una classe negativa frequente non è necessariamente difficile.
  • Aumento dei dati: crea varianti dei campioni esistenti, ma non può introdurre un oggetto difficile da distinguere che non fosse presente nel dataset.

Applicazioni nel mondo reale#

  • Rilevamento per la sicurezza in magazzino: un rilevatore di carrelli elevatori che segnala ripetutamente transpallet, riflessi sugli scaffali e piattaforme a forbice mina la fiducia degli operatori con falsi allarmi. Raccogliere queste scene come immagini negative e ripetere l'addestramento insegna al rilevatore le caratteristiche che distinguono un carrello elevatore da attrezzature simili.
  • Ricerca visiva di prodotti: quando una ricerca di una specifica scarpa da corsa nera classifica troppo in alto scarpe simili di altre linee, tali prodotti diventano hard negative. Addestrare il modello su questi prodotti, per esempio usandoli come esempi negativi nelle triplette ancora-positivo-negativo di una rete siamese, insegna al modello di embedding a mantenere distinzioni sottili, come la forma della suola, la posizione del logo e il materiale.

Flusso di lavoro del mining offline#

Ogni ciclo di mining offline esegue il modello corrente, verifica ciò che ha segnalato e reinserisce i casi confermati nell'addestramento:

La fase di revisione è importante perché un «falso positivo» è spesso un oggetto reale sfuggito agli annotatori, e aggiungerlo come negativo insegnerebbe al modello a sopprimere i rilevamenti corretti. Ultralytics YOLO tratta un'immagine di addestramento il cui file delle etichette è mancante o vuoto come immagine di sfondo, quindi assegna un punteggio target pari a zero a ogni punto di ancoraggio dell'immagine e penalizza qualsiasi previsione ad alta confidenza in corrispondenza di quei punti, il che significa che per aggiungere i negativi individuati tramite mining basta copiare nel dataset YOLO26 le immagini senza etichette. I progressi si riflettono in una precisione più elevata a parità di richiamo, con precisione e richiamo monitorati sull'intero set di test e su un sottoinsieme dedicato agli esempi negativi difficili.

Addestrare un modello solo sugli esempi negativi più difficili può essere controproducente. Nell'addestramento del face embedding di FaceNet, scegliere gli esempi negativi più difficili nelle prime fasi poteva indurre il modello a mappare ogni volto sullo stesso punto; per questo gli autori hanno usato esempi semi-difficili, più lontani dall'ancora rispetto all'esempio positivo ma ancora entro il margine della tripletta.

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