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

One-Shot Learning

L'apprendimento one-shot riconosce una nuova classe da un singolo esempio etichettato, solitamente confrontando gli embedding. Panoramica delle reti siamesi, degli impieghi e del codice.

L'apprendimento one-shot è il compito di riconoscere una nuova classe a partire da un singolo esempio etichettato. Un modello convenzionale di classificazione delle immagini richiede centinaia di immagini etichettate per classe e un nuovo addestramento ogni volta che si aggiunge una classe, mentre di solito una persona riconosce un nuovo volto o un nuovo prodotto dopo averlo visto una sola volta. I sistemi one-shot si avvicinano a questa capacità riutilizzando la conoscenza di molte classi apprese in precedenza: una rete addestrata su tali classi mappa le immagini in embedding in cui le immagini dello stesso elemento si trovano vicine, perciò basta un singolo esempio per determinare la posizione di una nuova classe. La verifica dei volti, il controllo delle firme e il riconoscimento dei prodotti funzionano tutti in questo modo; nei modelli linguistici di grandi dimensioni (LLM), invece, il prompting one-shot fornisce al modello un singolo esempio svolto del compito nel prompt.

Come funziona l'apprendimento one-shot#

La maggior parte dei sistemi one-shot sostituisce la classificazione con il confronto. Una rete neurale esegue l'estrazione delle caratteristiche sull'esempio memorizzato e su ogni nuova query, mentre una distanza tra i due embedding, come la distanza euclidea o la similarità coseno, determina se corrispondono. Una rete neurale siamese formalizza questo approccio con due rami che condividono gli stessi pesi. Jane Bromley, Yann LeCun e colleghi ne usarono una per verificare firme nel 1993, e Gregory Koch e colleghi ne addestrarono una nel 2015 per classificare caratteri scritti a mano di nuovi alfabeti dopo averne visto un solo esempio per ciascuno:

La rete di embedding viene addestrata in precedenza su molte altre classi con funzioni di perdita contrastive o triplet, che avvicinano le immagini della stessa classe e allontanano quelle di classi diverse, così la distanza appresa si generalizza alle classi che compaiono solo in seguito. I metodi di meta-apprendimento, come le Matching Networks, si addestrano su migliaia di compiti one-shot simulati, ciascuno con un esempio per diverse classi, così il modello si esercita proprio sul problema che dovrà affrontare.

Classificazione one-shot con embedding#

I modelli di classificazione Ultralytics YOLO26 restituiscono embedding delle immagini tramite embed(), che applica un pooling all'output del layer precedente alla head di classificazione per ottenere un vettore per immagine. Questo esempio crea un classificatore one-shot a 10 classi per CIFAR-10 a partire da questi embedding: l'unico dato etichettato è un'immagine memorizzata per classe, e a ogni query viene assegnata l'etichetta dell'immagine memorizzata più simile:

from pathlib import Path

import torch
import torch.nn.functional as F
from torchvision.datasets.utils import download_and_extract_archive
from ultralytics import YOLO

# CIFAR-10 test images, one folder per class
download_and_extract_archive("https://github.com/ultralytics/assets/releases/download/v0.0.0/cifar10.zip", "data")
images = [sorted(folder.glob("*.png")) for folder in sorted(Path("data/cifar10/test").iterdir()) if folder.is_dir()]
model = YOLO("yolo26n-cls.pt")

# Support set: the first image of each class is its only labeled example (one shot)
shots = torch.stack([model.embed(paths[0], verbose=False)[0] for paths in images])

# Query set: the next 50 images of each class, each labeled with the class of its most similar shot
correct = 0
for label, paths in enumerate(images):
    for path in paths[1:51]:
        query = model.embed(path, verbose=False)[0]
        correct += F.cosine_similarity(shots, query.unsqueeze(0)).argmax().item() == label
print(f"10-way 1-shot accuracy: {correct / 500:.1%} (random guessing: 10%)")

Il modello non viene mai addestrato su CIFAR-10, quindi l'accuratezza stampata misura quanto un esempio per classe definisca quella classe nello spazio di embedding di YOLO26; per aggiungere un'undicesima classe basterebbe memorizzare un altro embedding.

Applicazioni#

  • Verifica dei volti: I varchi automatici alle frontiere confrontano un'immagine ripresa in diretta da una telecamera con l'unica foto memorizzata nel chip del passaporto, mentre telefoni e sistemi di controllo degli accessi confrontano ogni tentativo con il volto registrato al momento dell'iscrizione.
  • Riconoscimento dei prodotti al dettaglio: I negozi aggiungono continuamente nuovi prodotti, e una singola foto di catalogo per articolo consente a un sistema di riconoscerlo sullo scaffale senza riaddestramento.
  • Apprendimento per imitazione one-shot: Addestra i robot a eseguire una nuova variante di un compito, per esempio impilare blocchi in un nuovo ordine, dopo aver osservato una singola dimostrazione.

Sfide#

Un singolo esempio non può mostrare la variabilità di una classe, quindi una foto di riferimento scattata con poca luce, da un'angolazione insolita o con l'oggetto parzialmente nascosto fornisce un riferimento poco efficace per tutti i confronti successivi. La soglia di corrispondenza determina l'equilibrio tra falsi positivi e falsi negativi e deve essere ottimizzata su coppie di convalida per ogni applicazione; inoltre, un embedding addestrato su un dominio, come le foto di tutti i giorni, distingue meno bene le classi in un altro dominio, come le immagini mediche.

  • Apprendimento few-shot: Il problema generale di apprendere da pochi esempi etichettati per classe. L'apprendimento one-shot è il caso con esattamente un esempio, indicato come 1-shot nella notazione N-way K-shot.
  • Apprendimento zero-shot: Riconosce classi prive di esempi, sulla base di una descrizione testuale o degli attributi.
  • Apprendimento per trasferimento: Riutilizza un modello preaddestrato per un nuovo compito, di solito con un fine-tuning su molti esempi etichettati. Anche i sistemi one-shot si basano su caratteristiche trasferite, ma le confrontano direttamente senza aggiornare alcun peso.
  • Rilevamento delle anomalie: Apprende l'aspetto della normalità e segnala tutto ciò che se ne discosta, rispondendo alla domanda se un elemento è insolito anziché a quale classe appartiene.

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