Ultralytics YOLO27 : Rejoins la liste d'attente.
Licence YOLO
Retour au glossaire Ultralytics

One-Shot Learning

L’apprentissage one-shot reconnaît une nouvelle classe à partir d’un seul exemple étiqueté, généralement en comparant des plongements. Présentation des réseaux siamois, des usages et du code.

L’apprentissage one-shot consiste à reconnaître une nouvelle classe à partir d’un seul exemple annoté. Un modèle classique de classification d’images a besoin de centaines d’images annotées par classe et d’un nouvel entraînement chaque fois qu’une classe est ajoutée, alors qu’une personne peut généralement reconnaître un nouveau visage ou un nouveau produit après l’avoir vu une seule fois. Les systèmes one-shot s’en rapprochent en réutilisant les connaissances acquises sur de nombreuses classes : un réseau entraîné sur ces classes transforme les images en représentations vectorielles où celles d’un même objet sont proches les unes des autres. Un seul exemple suffit alors pour situer une nouvelle classe. La vérification faciale, la vérification des signatures et la reconnaissance de produits fonctionnent toutes de cette manière. Dans les grands modèles de langage (LLMs), le prompting one-shot fournit au modèle un unique exemple de tâche résolu dans son prompt.

Fonctionnement de l’apprentissage one-shot#

La plupart des systèmes one-shot remplacent la classification par la comparaison. Un réseau neuronal effectue l’extraction de caractéristiques sur l’exemple stocké et sur chaque nouvelle requête. Une distance entre les deux représentations vectorielles, comme la distance euclidienne ou la similarité cosinus, détermine si elles correspondent. Un réseau neuronal siamois formalise cette approche avec deux branches qui partagent les mêmes poids. En 1993, Jane Bromley, Yann LeCun et leurs collègues en ont utilisé un pour vérifier des signatures. En 2015, Gregory Koch et ses collègues en ont entraîné un pour classer des caractères manuscrits issus de nouveaux alphabets après avoir vu un seul exemple de chacun :

Le réseau de représentations vectorielles est préalablement entraîné sur de nombreuses autres classes avec des fonctions de perte contrastive ou triplet, qui rapprochent les images d’une même classe et éloignent celles de classes différentes. La distance ainsi apprise se généralise donc aux classes qui apparaissent plus tard. Les méthodes de méta-apprentissage, comme les Matching Networks, s’entraînent sur des milliers de tâches one-shot simulées, chacune comportant un exemple de plusieurs classes, afin que le modèle s’exerce précisément au problème qu’il devra résoudre.

Classification one-shot avec des représentations vectorielles#

Les modèles de classification Ultralytics YOLO26 renvoient des représentations vectorielles d’images via embed(), qui regroupe la sortie de la couche précédant la tête de classification en un vecteur par image. Cet exemple crée un classificateur one-shot à 10 classes pour CIFAR-10 à partir de ces représentations : une seule image stockée par classe constitue l’ensemble des données annotées, et chaque requête reçoit l’étiquette de l’image stockée la plus similaire :

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%)")

Le modèle ne s’entraîne jamais sur CIFAR-10. La précision affichée mesure donc à quel point un seul exemple par classe définit cette classe dans l’espace des représentations vectorielles de YOLO26. Pour ajouter une onzième classe, il suffirait de stocker une représentation vectorielle supplémentaire.

Applications#

  • Vérification faciale : les portiques automatisés aux frontières comparent une image prise par caméra en direct à l’unique photo stockée sur la puce d’un passeport. Les téléphones et les systèmes de contrôle d’accès comparent chaque tentative au visage enregistré lors de l’inscription.
  • Reconnaissance de produits en magasin : les magasins ajoutent constamment de nouveaux produits, et une seule photo de catalogue par article suffit à un système pour le reconnaître en rayon sans nouvel entraînement.
  • Apprentissage par imitation one-shot : entraîne des robots à réaliser un nouvel exemple de tâche, comme empiler des blocs dans un nouvel ordre, après avoir observé une seule démonstration.

Défis#

Un seul exemple ne permet pas de représenter les variations d’une classe. Une photo de référence prise sous un mauvais éclairage, sous un angle inhabituel ou avec l’objet partiellement masqué constitue donc un point de comparaison médiocre pour toutes les comparaisons suivantes. Le seuil de correspondance détermine l’équilibre entre les fausses acceptations et les faux rejets ; tu dois l’ajuster sur des paires de validation pour chaque application. Une représentation vectorielle entraînée sur un domaine, par exemple des photos du quotidien, distingue moins bien les classes dans un autre domaine, comme celui des images médicales.

  • Apprentissage few-shot : problème général consistant à apprendre à partir de quelques exemples annotés par classe. L’apprentissage one-shot en est le cas où il y en a exactement un, noté 1-shot dans la notation N-way K-shot.
  • Apprentissage zero-shot : reconnaît des classes sans aucun exemple, à partir d’une description textuelle ou d’attributs.
  • Apprentissage par transfert : réutilise un modèle préentraîné pour une nouvelle tâche, généralement en l’affinant à partir de nombreux exemples annotés. Les systèmes one-shot s’appuient eux aussi sur des caractéristiques transférées, mais les comparent directement sans mettre à jour les poids.
  • Détection d’anomalies : apprend à reconnaître la normalité et signale tout ce qui s’en écarte fortement. Elle détermine si un élément est inhabituel plutôt que la classe à laquelle il appartient.

Découvre les solutions

La vision par ordinateur dans le sport

La vision par ordinateur dans le sport

Découvre comment Ultralytics YOLO propulse la vision par ordinateur dans le sport grâce au suivi des joueurs et du ballon, aux analyses de performance, aux conseils d’entraînement et à la rééducation des athlètes.
En savoir plus
Vision par ordinateur pour les images aériennes

Vision par ordinateur pour les images aériennes

Transforme les images de drones et les images aériennes en informations exploitables en temps réel pour l’agriculture, l’aquaculture, la conservation et l’analyse géospatiale avec Ultralytics YOLO.
En savoir plus
Vision par ordinateur dans l’aérospatiale

Vision par ordinateur dans l’aérospatiale

Applique la vision par ordinateur dans l’aérospatiale avec Ultralytics YOLO pour l’inspection des aéronefs, la détection des corps étrangers sur les pistes, les opérations au sol des aéroports et la détection des défauts des matériaux composites.
En savoir plus
La vision par ordinateur dans la sécurité

La vision par ordinateur dans la sécurité

Protège chaque site avec les modèles Ultralytics YOLO. L’IA visuelle permet la surveillance des périmètres, la détection des menaces, la reconnaissance des plaques d’immatriculation et la sécurité au travail.
En savoir plus
La vision par ordinateur en robotique

La vision par ordinateur en robotique

Donne plus de capacités à tes machines grâce aux modèles Ultralytics YOLO. Dans la robotique, l’IA visuelle permet la navigation autonome, la perception, le suivi des objets et le contrôle en temps réel.
En savoir plus
La vision par ordinateur dans la logistique

La vision par ordinateur dans la logistique

Optimise la logistique avec les modèles Ultralytics YOLO. La vision par IA permet d’inspecter les colis, de les trier, de suivre les véhicules et de surveiller la sécurité des entrepôts en temps réel.
En savoir plus
La vision par ordinateur dans le commerce de détail

La vision par ordinateur dans le commerce de détail

Réinvente le commerce de détail avec les modèles Ultralytics YOLO. La vision par IA permet de suivre les stocks, de surveiller les rayons, de gérer les files d’attente et de mieux comprendre les clients.
En savoir plus
La vision par ordinateur dans le secteur de la santé

La vision par ordinateur dans le secteur de la santé

Crée des solutions de santé avec les modèles Ultralytics YOLO. La vision par IA dans le secteur de la santé accélère l’imagerie médicale, améliore les diagnostics et facilite la surveillance des patients.
En savoir plus
La vision par ordinateur dans l’industrie manufacturière

La vision par ordinateur dans l’industrie manufacturière

Optimise la fabrication avec les modèles Ultralytics YOLO. La vision par IA améliore le contrôle qualité, la détection des défauts, le respect des règles concernant les EPI et l’automatisation des chaînes de montage.
En savoir plus
La vision par ordinateur dans l’automobile

La vision par ordinateur dans l’automobile

Mets la vision par ordinateur au service de l’automobile avec les modèles Ultralytics YOLO. La vision par IA renforce la sécurité routière, l’aide à la conduite et l’automatisation des véhicules pour des routes plus intelligentes.
En savoir plus
Vision par ordinateur dans l’agriculture

Vision par ordinateur dans l’agriculture

Fais entrer l’IA de vision dans l’agriculture intelligente avec les modèles Ultralytics YOLO. Optimise le suivi des cultures et du bétail ainsi que l’agriculture de précision pour obtenir des rendements plus élevés et plus intelligents.
En savoir plus

Construisons ensemble l’avenir de l’IA !

Commence ton parcours vers l’avenir de l’apprentissage automatique